我想知道是否存在将文档列表转换为文档术语矩阵的优雅方法。这样做的动机是需要对文档中的术语进行微妙的转换,即词干。 输入数据就像
[['tom','want','apple'],['tom','love','pear']]
输出数据应该是矩阵或任何可以轻松转换为numpy.array的数据类型。就像:
[[1,1,1,0,0],[1,0,0,1,1]]
我现在拥有的是加入外部列表中的每个元素,然后在CountVectorizer
中使用sklearn.feature_extraction.text
。但是对于大型语料库来说这样做效率很低。
有什么建议吗?谢谢。
答案 0 :(得分:1)
from sklearn.preprocessing import MultiLabelBinarizer
mlb = MultiLabelBinarizer()
data = [['tom','want','apple'],['tom','love','pear']]
mlb.fit_transform(data)
返回
array([1, 0, 0, 1, 1],
[0, 1, 1, 1, 0])
注意:文档按字母顺序排序。
mlb.classes_
>>> array(['apple', 'love', 'pear', 'tom', 'want'])