Python CountVectorizer:transform方法在单个文本行上返回多维数组
首先,我把它放在短信语料库中:Python CountVectorizer:transform方法在单个文本行上返回多维数组,python,python-2.7,text,scikit-learn,sklearn-pandas,Python,Python 2.7,Text,Scikit Learn,Sklearn Pandas,首先,我把它放在短信语料库中: from sklearn.feature_extraction.text import CountVectorizer clf = CountVectorizer() X_desc = clf.fit_transform(X).toarray() 看起来效果不错: X.shape = (5574,) X_desc.shape = (5574, 8713) 但后来我将transform方法应用于文本行,正如我们所知,它的结果应该是(,8713)形状,但我们看到:
from sklearn.feature_extraction.text import CountVectorizer
clf = CountVectorizer()
X_desc = clf.fit_transform(X).toarray()
看起来效果不错:
X.shape = (5574,)
X_desc.shape = (5574, 8713)
但后来我将transform方法应用于文本行,正如我们所知,它的结果应该是(,8713)形状,但我们看到:
str2 = 'Have you visited the last lecture on physics?'
print len(str2), clf.transform(str2).toarray().shape
52(528713)
这是怎么回事?还有一件事-所有数字都是零您始终需要将数组或向量传递给
变换
;如果只想转换单个元素,则需要传递一个单例数组,然后提取其内容:
clf.transform([str1])[0]
顺便说一句,将二维数组作为输出的原因是字符串实际上存储为字符列表,因此矢量器将字符串视为数组,其中每个字符都被视为单个文档。始终需要将数组或向量传递给
transform
;如果只想转换单个元素,则需要传递一个单例数组,然后提取其内容:
clf.transform([str1])[0]
顺便说一句,将二维数组作为输出的原因是字符串实际上存储为字符列表,因此矢量器将字符串视为数组,其中每个字符都被视为单个文档。在
clf.transform(str1)中什么是str1
?在clf.transform(str1)
中什么是str1
?