Python scikit learn 的 TfidfVectorizer - 最大值为 1.0?

Python scikit learn's TfidfVectorizer - max of 1.0?

我在网上找不到这个问题的答案,但是 tfidfVectorizer.fit_transform 的结果是一个 最大值为 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。它是否归一化?

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

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

normalize() 来自 sklearn.preprocessing 模块,它表示它默认对行进行规范化。 Herenormalize() 文档的 link。