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