Sklearn的TfidfVectorizer中tfidf值的计算

TfidfVectorizer的实现是通过CountVectorizer和TfidfTransformer共同实现的。
其中TfidfTransformer实现了每个词的tfidf值的计算。

下图是官方文档中,对tfidf值计算的说明:
Sklearn的TfidfVectorizer中tfidf值的计算
可以看出默认的计算方法是
idf(d,t)=log[(1+n)1+df(d,t)]+1 idf(d,t) = \log\bigg[ \frac{(1+n)}{1+df(d,t)}\bigg] +1
其中:

  • nn:所有的文档数目
  • df(d,t)df(d,t):包含词tt的文档数目

如果公式最后没有+1+1的话,如果某个词在所有文档中都出现,且 log1=0\log1 = 0改词的逆文档频率将为0,从而导致改词被忽略。