Python 如何让scikit从预先标记的文档计算文档术语矩阵?

Python 如何让scikit从预先标记的文档计算文档术语矩阵?,python,machine-learning,scikit-learn,countvectorizer,Python,Machine Learning,Scikit Learn,Countvectorizer,我必须使用预先标记的文档,我可以将这些文档加载到字符串的列表中。我想使用scikit计算它们的文档术语矩阵。这可能吗 或者我应该自己手动构造/计算docterm矩阵吗 我之所以要使用scikit,是因为上述内容需要集成到一个经过scikits CountVectorizer和培训的程序中 在下面的代码中,text_list是“列表列表”,换句话说text_list=[[doc1]、[doc2]、…、[docn]]。您可以获得一个稀疏矩阵,其中包含语料库中每个文档的术语及其频率 from skle

我必须使用预先标记的文档,我可以将这些文档加载到字符串的
列表中。我想使用scikit计算它们的文档术语矩阵。这可能吗

或者我应该自己手动构造/计算docterm矩阵吗


我之所以要使用scikit,是因为上述内容需要集成到一个经过scikits CountVectorizer和培训的程序中

在下面的代码中,text_list是“列表列表”,换句话说text_list=[[doc1]、[doc2]、…、[docn]]。您可以获得一个稀疏矩阵,其中包含语料库中每个文档的术语及其频率

from sklearn.feature_extraction.text import CountVectorizer

count_vect = CountVectorizer()
TermCountsDoc = count_vect.fit_transform(text_list)   
Terms = np.array(count_vect.vocabulary_.keys())
T= TermCountsDoc.todense() #in case you need to transform it to dense matrix

是的,您可以使用CountVectorizer。但是要确保把一个样本的所有术语都包含在一个列表中,可能用空格隔开。对不起,我不明白。假设我已经有了一份适合以前文档的简历,我该如何将多个列表(每个列表对应于一个文档)转换为文档术语矩阵?感谢调用似乎不起作用的transform()。我有一个
计数向量器cv
,一个字符串列表
文本
,还有一个
多项式NB预测器
。如果我先做
dtm=cv.transform(text)
,然后再做
prediction=predictor.predict(dtm)
,我得到的预测数与文本中的单词数一样多。它似乎是为文本中的每个单词分配一个类。我不想那样。我有一篇文章,我想把它作为一个整体来分类(所以我希望有一个预测)。我做错什么了吗?您传递给transform的列表中的每个元素(在您的例子中为
text
)都将用作一个单独的示例。如果希望它们被视为单个,请将它们作为单个字符串传递,并在列表中用空格分隔,以便len(list)=1。感谢您的帮助。所以很奇怪,这对我不起作用。Scikit向我抱怨它如何期望一个字符串列表,而不是一个字符串列表。。。然而,我发现了一种不同的方法,因此我不再进一步探讨这一途径。