从文档列表构建文档术语矩阵,每个文档都以列表形式

时间:2017-05-29 08:56:22

标签: python term-document-matrix

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

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

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

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

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

有什么建议吗?谢谢。

1 个答案:

答案 0 :(得分:1)

使用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'])