2015-10-14 90 views
1

我找不到这个在线答案,但是tfidfVectorizer.fit_transform的结果最大值为1.0Python scikit学习的TfidfVectorizer - 最大1.0?

因为,与 idf(term_i)= log (#number of docs/ number of docs containing term_i),在许多情况下不应该idf,并且随后tfidf,> 1.0?

即包含单词'absinthe'的文档。假设我们这个词的freq(tf)是1,但是idf是(1000个总文件/ 1个包含'absinthe'的文件)= 1000,1 * 1000 = 1000,不是?

但在我使用scikit-learn的TfidfVectorizer的情况下,我得到的最大值似乎是1.是否正常化?

回答

1

默认情况下,tfidf行是L2归一化的。 Here是源代码中的关键代码。

if self.norm: 
     X = normalize(X, norm=self.norm, copy=False) 

normalize()来自sklearn.preprocessing模块,它表明,它在默认情况下归行。 Here是链接到normalize()文档。