TfidfVectorizer与tf-idf定义的区别

4
为了教程的目的,我希望手动实现TfidfVectorizer的功能,以展示背后发生的事情。在这篇Stack Overflow文章中,我找到了TfidfVectorizer的工作原理。有了这个,用一种简单的方式实现它并使用正确的参数设置向量化器,输出确实是相同的。一切都很好。
然而,现在我有点困惑: TfidfVectorizer使用CountVevtorizer计算词项频率tf。这意味着tf只是表示文档中一个词出现次数的整数。但通常术语频率tf(t,d)被定义为:
tf(t,d) = (#occurrences of t in d) / (#terms in d)

因此,词频是介于0和1之间的值。

这是如何配合使用的呢?为什么要使用TfidfVectorizer来计算单词出现次数而不是根据定义使用(归一化的)频率。我想这不是一个大问题,但我希望理解它。

1个回答

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)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接