【发布时间】:2019-04-21 13:57:34
【问题描述】:
我的数据格式是:
datas = {[1,2,4,6,7],[2,3],[5,6,8,3,5],[2],[93,23,4,5,11,3,5,2],...}
datas 中的每个元素是一个句子,每个数字是一个单词。我想获取每个数字的 TFIDF 值。用sklearn或者其他方式怎么做?
我的代码:
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction.text import CountVectorizer
datas = {[1,2,4,6,7],[2,3],[5,6,8,3,5],[2],[93,23,4,5,11,3,5,2]}
vectorizer=CountVectorizer()
transformer = TfidfTransformer()
tfidf = transformer.fit_transform(vectorizer.fit_transform(datas))
print(tfidf)
我的代码不起作用。错误:
Traceback (most recent call last): File
"C:/Users/zhuowei/Desktop/OpenNE-master/OpenNE-
master/src/openne/buildTree.py", line 103, in <module>
X = vectorizer.fit_transform(datas) File
"C:\Users\zhuowei\Anaconda3\lib\site-
packages\sklearn\feature_extraction\text.py", line 869, in fit_transform
self.fixed_vocabulary_) File "C:\Users\zhuowei\Anaconda3\lib\site-
packages\sklearn\feature_extraction\text.py", line 792, in _count_vocab
for feature in analyze(doc): File
"C:\Users\zhuowei\Anaconda3\lib\site-
packages\sklearn\feature_extraction\text.py", line 266, in <lambda>
tokenize(preprocess(self.decode(doc))), stop_words) File
"C:\Users\zhuowei\Anaconda3\lib\site-
packages\sklearn\feature_extraction\text.py", line 232, in <lambda>
return lambda x: strip_accents(x.lower())
AttributeError: 'int' object has no attribute 'lower'
【问题讨论】:
-
您搜索了什么来解决这个问题,您发现了什么?您尝试了什么,为什么没有成功?
-
我已经把我的代码放在上面了
-
感谢您的代码。不过,请仍然包含完整的回溯。
-
好的我已经添加了完整的回溯,我认为我的方式是错误的,但我不知道如何解决它
-
不幸的是,这看起来不像是完整的回溯。此外,回溯中的
str(nodes[0])似乎与您的问题中的任何内容都不对应。您可能应该查看有关如何创建 minimal reproducible example 的指南。
标签: python-3.x scikit-learn nlp tf-idf