我正在尝试使用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。我怎样才能将字符串看作一个单独的文档,而不是将每个字符看作一个文档?另外,我对文本挖掘还很陌生,所以如果我在概念上做错了什么,那就很好了。如有任何帮助,我们将不胜感激。
如果只想计算给定词汇表的tf idf,请使用
vocabulary
参数到TfidfVectorizer
构造函数然后,要拟合,即计算计数,使用给定的
corpus
,即一个iterable文档,请使用fit
:方法
fit_transform
是最后,
transform
方法接受一个语料库,因此对于单个文档,您应该将其作为列表传递,或者将其视为可输入的符号,每个符号都是一个文档。相关问题 更多 >
编程相关推荐