我正在处理sklearn中的大量文本数据。首先,我需要向量化文本上下文(字数统计),然后执行TfidfTransformer。我有以下代码似乎没有将CountVectorizer的输出带到TfidfTransformer的输入。

TEXT = [data[i].values()[3] for i in range(len(data))]

from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfTransformer

vectorizer = CountVectorizer(min_df=0.01,max_df = 2.5, lowercase = False, stop_words = 'english')

X = vectorizer(TEXT)
transformer = TfidfTransformer(X)
X = transformer.fit_transform()

当我运行此代码时,出现以下错误:
Traceback (most recent call last):
File "nlpQ2.py", line 27, in <module>
X = vectorizer(TEXT)
TypeError: 'CountVectorizer' object is not callable

我以为我已经对文本进行矢量化处理了,现在它在一个矩阵中-我错过了过渡步骤吗?谢谢!!

最佳答案

这条线

X = vectorizer(TEXT)

不会产生矢量化器的输出(这是引发异常的那一个,它与TfIdf本身无关),应该调用fit_transform。此外,您的下一个电话也是错误的。您必须将数据作为参数传递给fit_transform,而不是传递给构造函数。
X = vectorizer.fit_transform(TEXT)
transformer = TfidfTransformer()
X = transformer.fit_transform(X)

关于python - sklearn中从CountVectorizer到TfidfTransformer的过渡,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38676436/

10-12 20:36