TF-IDF 是评估一个词在文档中重要程度的算法。它由两部分组成:
这个词在文档中出现的频率
这个词在所有文档中的稀有程度
想象你要选一个班干部,你会考虑两个因素:
TF-IDF = TF × IDF:既要出现频率高,又要很特别,这样的词才重要!
TF 表示一个词在文档中出现的频率。出现次数越多,TF 值越高。
假设有一篇文档:"我喜欢机器学习,机器学习很有趣"
机器学习 很 有趣 机器学习 是 未来
统计: 机器学习: 2次 有趣: 1次 未来: 1次
IDF 表示一个词的稀有程度。在所有文档中出现得越少,IDF 值越高(越重要)。
假设有 3 篇文档:
计算 IDF:
就像用放大镜看东西一样,对数函数可以:
把 TF 和 IDF 相乘,就得到了 TF-IDF 分数。分数越高,说明这个词越重要!
假设有 3 篇文档,我们要计算文档1中"机器学习"的 TF-IDF:
步骤1:计算 TF
文档1:"我喜欢机器学习"
TF("机器学习", 文档1) = 1 / 4 = 0.25
步骤2:计算 IDF
"机器学习" 出现在 2 篇文档中(文档1和文档2)
IDF("机器学习") = log(3 / 2) ≈ 0.405
步骤3:计算 TF-IDF
TF-IDF("机器学习", 文档1) = 0.25 × 0.405 = 0.101
让我们看看不同词的 TF-IDF 分数对比:
我喜欢机器学习,机器学习很有趣
机器学习是未来的趋势
我喜欢编程和算法
| 词 | 出现次数 | TF | 包含该词的文档数 | IDF | TF-IDF | 重要性 |
|---|---|---|---|---|---|---|
| 机器学习 | 2 | 0.25 | 2 | 0.405 | 0.101 | ⭐ 高 |
| 我 | 1 | 0.125 | 2 | 0.405 | 0.051 | 📌 中 |
| 喜欢 | 1 | 0.125 | 2 | 0.405 | 0.051 | 📌 中 |
| 有趣 | 1 | 0.125 | 1 | 1.099 | 0.137 | ⭐ 高 |
| 的 | 0 | 0 | 3 | 0 | 0 | ❌ 低 |
观察:"机器学习"和"有趣"的 TF-IDF 分数最高,说明它们最能代表这篇文档的特点!
试试输入不同的词和文档,看看 TF-IDF 分数如何变化!
找出最能代表网页的关键词
识别文档的主题和类别
找到相似的文章和内容
出现多 + 很稀有 = 重要词!