我试图使用Sklearn的TfidfVectorizer对象获取单个文档的tf-idf向量。我基于一些训练文档创建了一个词汇表,并使用fit_transform来训练TfidfVectorizer。然后,我想要找到任何给定测试文档的tf-idf向量。
from sklearn.feature_extraction.text import TfidfVectorizer
self.vocabulary = "a list of words I want to look for in the documents".split()
self.vect = TfidfVectorizer(sublinear_tf=True, max_df=0.5, analyzer='word',
stop_words='english')
self.vect.fit_transform(self.vocabulary)
...
doc = "some string I want to get tf-idf vector for"
tfidf = self.vect.transform(doc)
问题在于此函数返回一个有n行的矩阵,其中n是我的文档字符串的大小。我希望它只返回代表整个字符串的单个向量,表示tf-idf。如何使其将字符串视为单个文档,而不是将每个字符视为一个文档?另外,我对文本挖掘非常陌生,如果我在概念上做错了什么,那将是很好的了解。任何帮助都将不胜感激。
fit
或fit_transform
(请参见更新)来训练 TF-IDF 转换,使用transform
进行应用而无需更新计数。 - alko