TfidfVectorizer与tf-idf的定义

时间:2018-02-01 11:06:26

标签: python scikit-learn tf-idf

对于教程,我想手动实现TfidfVectorizer正在做的事情,只是为了显示后台发生了什么。在Stack Overflow article中,我发现了TfidfVectorizer的工作原理。有了这个,以简单的方式实现它是很简单的,并且使用矢量化器的正确参数设置,输出确实是相同的。一切都好。

但是,现在我有点困惑:TfidfVectorizer使用tf计算频率CountVevtorizer。这意味着tf只是一个整数,表示文档中术语的出现次数。但通常,文档tf(t,d)中术语t的频率d定义为:

tf(t,d) = (#occurrences of t in d) / (#terms in d)

因此术语频率是介于0和1之间的值。

这如何组合在一起?为什么根据定义使用TfidfVectorizer术语计数而不是(标准化)频率。我认为这不是什么大问题,但我会理解它。

1 个答案:

答案 0 :(得分:0)

通常,TfidfVectorizer用作下一个构造:

from sklearn.feature_extraction.text import TfidfVectorizer
features = ['1', '2', '3', '4', '5']
data = ['string1', 'string2', 'string3', 'string4', 'string5']
tfidfve = TfidfVectorizer()
tfidfve.fit_transform(data, features)