0

我想知道是否存在将文档列表转换为文档术语矩阵的优雅方法。这样做的动机是需要对文档中的术语进行细微的转换,即词干。输入数据就像

[['tom','want','apple'],['tom','love','pear']]

输出数据应该是矩阵或任何可以轻松转换为 numpy.array 的数据类型。就像:

[[1,1,1,0,0],[1,0,0,1,1]]

我现在拥有的是加入外部列表中的每个元素,然后CountVectorizersklearn.feature_extraction.text. 但是对于大型语料库这样做是低效的。

有什么建议么?谢谢你。

4

1 回答 1

3

使用MultiLabelBinarizer.

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'])
于 2017-05-29T09:11:26.780 回答