Far*_*fer 2 python tf-idf scikit-learn
from sklearn.feature_extraction.text import CountVectorizer
vectorizer = CountVectorizer()
vectorizer = vectorizer.fit(word_data)
freq_term_mat = vectorizer.transform(word_data)
from sklearn.feature_extraction.text import TfidfTransformer
tfidf = TfidfTransformer(norm="l2")
tfidf = tfidf.fit(freq_term_mat)
Ttf_idf_matrix = tfidf.transform(freq_term_mat)
voc_words = Ttf_idf_matrix.getfeature_names()
print "The num of words = ",len(voc_words)
Run Code Online (Sandbox Code Playgroud)
当我运行包含这段代码的程序时,出现以下错误:
回溯(最近一次调用):文件“vectorize_text.py”,第 87 行,在
voc_words = Ttf_idf_matrix.getfeature_names()
文件“/home/farheen/anaconda/lib/python2.7/site->packages/scipy/sparse/ base.py", line 499, in getattr
raise AttributeError(attr + " not found")
AttributeError: get_feature_names not found
请建议我一个解决方案。
小智 7
我发现您的代码有两个问题。首先,您将 get_feature_names() 应用于矩阵输出,而不是矢量化器。您需要将其应用于矢量化器。其次,您不必要地将其分解为太多步骤。您可以使用 TfidfVectorizer.fit_transform() 在更少的空间内做您想做的事。尝试这个:
from sklearn.feature_extraction.text import TfidfVectorizer
vectorizer = TfidfVectorizer()
transformed = vectorizer.fit_transform(word_data)
print "Num words:", len(vectorizer.get_feature_names())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8614 次 |
| 最近记录: |