描述
transform
方法(如LdaTransformer)只接受一个BOW列表作为参数,而不是numpy矩阵。从scikit-learn API的Angular 来看,这并不是很好。
在fit
方法中,通过使用matutils.Sparse2Corpus将稀疏矩阵参数转换为BOW。
https://github.com/RaRe-Technologies/gensim/blob/72d4ff81b37720e287ae37958e138934fcdae7ac/gensim/sklearn_api/ldamodel.py#L61
我认为最好能让所有transform
方法在sklearn_api中都能够接受BOW列表和稀疏矩阵作为参数,就像fit
方法一样。
5条答案
按热度按时间oxosxuxt1#
听起来合理,感谢你的报告@altescy:+1:
这个问题稍微更深一些:API看起来像sklearn,但使用非sklearn类型的输入和输出,我认为这是一个严重的问题,限制了当前API的使用(例如,这可以与任何sklearn模型自由组合,但这是真正重要的一点)。
我认为,最好只传递/返回scipy/numpy数组,wdyt @altescy ?
bogh5gae2#
CC: @chinmayapancholi13
1qczuiv03#
好的点子。
这个方法看起来很好,可以避免混淆。
我不知道为什么当前的API有两种文档数据类型🤔
如果没有问题的话,最好只使用scipy/numpy数组。
d7v8vwbk4#
我认为这应该与Sklearn API(仅数组)最一致,wdyt @piskvorky?
yws3nbqq5#
Sklearn完全不支持流式处理,因此内存矩阵可能没问题。如果人们需要更高性能/可扩展的实现,他们将不得不避免这些 Package 器并直接使用Gensim。