python - TfidfVectorizer 与 tf-idf 的定义

标签 python scikit-learn tf-idf

对于教程,我想手动实现 TfidfVectorizer 正在执行的操作,只是为了显示后台发生的情况。在此Stack Overflow article我发现了 TfidfVectorizer 的工作原理。这样,就可以简单地以简单的方式实现它,并且通过矢量化器的正确参数设置,输出确实是相同的。一切都好。

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

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

所以词频是一个介于 0 和 1 之间的值。

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

最佳答案

通常,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)

关于python - TfidfVectorizer 与 tf-idf 的定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48561247/

相关文章:

python - 如何告诉 RandomizedSearchCV 选择分布或 None 值?

machine-learning - 用于分类/多类分类的梯度提升树的弱学习器

scala - 使用 Apache Spark 和 mllib 生成关键字

python - 如何获得 tf-idf 分类器的最佳特征?

python - 如何获取 "Word"在 NLP 中的重要性(TFIDF + 逻辑回归)

Python - 如何仅使用变量使用 dict() 函数?

python - 模块未找到错误: No module named 'sipdistutils' while install python-poppler-qt5

python - 使用 TLS1.1 和 urllib3 的 HTTP GET 站点

python - 在 pandas 中有效地创建稀疏数据透视表?

python - Orange PCA 和 scikit-learn PCA 的结果不同