NLP Academy · 课时

词频与逆文档频率

评分的两个组成部分

第 2 / 4 课13 个步骤

词频与逆文档频率 是 CoddyKit 上的免费 NLP Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 NLP Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 NLP Academy 课程共包含 4 节课。

一个评分的两半

TF-IDF 由两个相乘的部分组成:词频和逆文档频率。每个部分分别弥补了原始计数的一种缺陷。

简单理解词频

词频衡量某个词在一篇文档中出现的次数。一个词出现得越多,说明这篇文档越偏向该主题。

对 TF 进行归一化

我们通常会将一个词的计数除以文档长度。这样做可以防止长文档仅仅因为词更多,就显得更加重要。

count = 3
doc_length = 50
tf = count / doc_length
print(round(tf, 3))

仅靠 TF 还不够

单独使用词频时,仍然会奖励那些大量出现的填充词。我们还需要第二个因素,来惩罚那些到处出现的词。

文档频率

文档频率统计包含某个词的文档数量。文档频率越高,说明这个词在整个文档集合中越常见。

反转它:逆文档频率

我们希望稀有词获得高分,因此要对这个计数进行反转。逆文档频率会在一个词只出现在少数文档中时升高,在它无处不在时降低。

用对数控制数值

IDF 使用对数,这样极其稀有的词也不会产生过大的数值。log 让尺度变化更加平滑,并且便于比较不同词语。

import math
total_docs = 1000
docs_with_word = 10
idf = math.log(total_docs / docs_with_word)
print(round(idf, 3))

将两者相乘

最终得分就是 TF 乘以 IDF。一个词只有同时满足在当前文档中频繁出现、在其他文档中较为稀有,才能获得高分,这正是我们想要的组合。

tf = 0.06
idf = 4.6
tfidf = tf * idf
print(round(tfidf, 3))

哪些词得分高

一篇文章中的主题词 neuroscience 可能获得高分。而 the 之类的词会因为其 IDF 几乎为零而被大幅压低。

哪些词得分低

几乎出现在每篇文档中的词只能获得很小的权重。TF-IDF 会自动降低这些背景噪声的权重,而不需要手动列出停用词。

它为何如此有效

TF-IDF 用一个简洁的公式,平衡了局部重要性与全局稀有度。这种平衡正是这种加权方法几十年来一直是搜索和文本处理基础工具的原因。⭐

快速检查

逆文档频率这一部分实际上奖励什么?

回顾

TF 衡量局部频率,IDF 奖励全局稀有度,而两者的乘积就是 TF-IDF。它们结合起来,就能突出真正定义一篇文档的词语。✅

免费开始

用 AI 导师学习 Python — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
30
课程
120

常见问题解答

「词频与逆文档频率」课时是免费的吗?

是的 — 「词频与逆文档频率」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 NLP Academy 课程的其余内容,请升级到 CoddyKit PRO。 NLP Academy 课程共包含 4 节课。

「词频与逆文档频率」这节课中我会学到什么?

评分的两个组成部分 你通过在浏览器中直接运行的动手代码来练习 NLP Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 NLP Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 NLP Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「词频与逆文档频率」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 NLP Academy 课中编写并运行代码吗?

能。每节 NLP Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 原始计数的问题
  2. 词频与逆文档频率
  3. 使用 scikit-learn 实现 TF-IDF
  4. 找出最重要的词语
← 返回 NLP Academy