TF-IDF(词频-逆文档频率)

TF-IDF 完整讲解

一、全称

TF:Term Frequency 词频

IDF:Inverse Document Frequency 逆文档频率

合起来 TF-IDF = 词频-逆文档频率,是文本挖掘、检索最经典的词语权重计算算法,用来衡量一个词在某篇文档里的重要程度。

二、TF(词频)

含义:某个词在当前文档 中出现的次数,出现越多,TF越高。

公式:

TF(t,d)=词t在文档d中出现次数文档d总词数 TF(t,d) = \frac{词t在文档d中出现次数}{文档d总词数} TF(t,d)=文档d总词数词t在文档d中出现次数

举例:文档共100个词,"人工智能"出现5次 → TF=5/100=0.05

三、IDF(逆文档频率)

作用:惩罚到处都出现的通用词(的、是、我、今天),突出独有关键词。

逻辑:一个词如果在绝大多数文档都出现,说明它区分度极低,IDF就小;只在少数文档出现,IDF大。

公式:

IDF(t)=log⁡(总文档数N包含词t的文档数nt+1) IDF(t) = \log\left( \frac{总文档数N}{包含词t的文档数n_t + 1} \right) IDF(t)=log(包含词t的文档数nt+1总文档数N)

+1 是平滑处理,避免分母为0(新词没在任何文档出现)。

四、TF-IDF 最终权重

TF−IDF(t,d)=TF(t,d)×IDF(t) TF-IDF(t,d) = TF(t,d) \times IDF(t) TF−IDF(t,d)=TF(t,d)×IDF(t)

权重含义

  1. TF大、IDF大:词在本文高频、全局很少见 → 核心关键词
  2. TF大、IDF小:词到处都有(停用词)→ 不重要
  3. TF小、IDF大:稀有词,单次出现也有一定区分度

五、直观例子

语料库共1000篇文章:

  1. "的":几乎1000篇都有 → IDF极小,TF-IDF几乎为0,过滤掉
  2. "手机":800篇有 → IDF偏小
  3. "大模型微调":仅30篇有 → IDF很大
    如果某篇论文里"大模型微调"反复出现,它的TF-IDF值会远高于普通词汇,就是这篇文章的主题词。

六、常见用途

  1. 搜索引擎:计算关键词和搜索文本匹配度,排序检索结果
  2. 文本关键词提取:提取文章核心词
  3. 文本向量化:把句子/文档转为数字向量,用于分类、聚类、相似度计算
  4. 舆情分析、NLP预处理

七、优缺点

优点

  • 简单高效,计算速度快
  • 天然过滤无意义停用词
  • 可直接转向量用于机器学习模型

缺点

  1. 只统计词频,不理解语义,无法区分多义词、近义词
  2. 不考虑词语顺序、上下文(Bag-of-Words 词袋假设)
  3. 长文档天然TF偏低,需要额外归一化

八、工具实现

Python 常用库一键计算:

  1. sklearn.feature_extraction.text.TfidfVectorizer(最常用)
  2. jieba分词 + TF-IDF 提取中文关键词
  3. Gensim TfidfModel 处理大规模语料

极简示例伪代码

python 复制代码
from sklearn.feature_extraction.text import TfidfVectorizer
corpus = ["AI大模型应用", "AI图像识别", "汽车自动驾驶"]
tfidf = TfidfVectorizer()
res = tfidf.fit_transform(corpus)
# 输出每个词的TF-IDF权重
print(dict(zip(tfidf.get_feature_names_out(), res.toarray()[0])))
相关推荐
小蒋观天下12 小时前
雷击与浪涌防护:前端SPD选型、接地网误区,接地不当反而引入干扰
深度学习·算法·机器学习
WBluuue13 小时前
数据结构与算法:分块(一):块状数组、块状链表
数据结构·c++·算法·链表
澳鹏Appen15 小时前
澳鹏重磅发布ExamOCRBench:面向端到端试卷判分的多任务基准
算法·benchmark·基准评测
benjormin15 小时前
Java数据结构 二叉搜索树
数据结构·算法
人工智能培训15 小时前
知识图谱:结构化表达实体与关系的知识组织技术
大数据·人工智能·算法·重构·生活·知识图谱
地平线开发者15 小时前
QAT 实战:从 PyTorch 模型到 J6E 实板精度与延时验证
pytorch·算法·自动驾驶
IT星宿15 小时前
github-gravity:用 Rapier2D 把 GitHub 贡献图做成 SVG 物理动画
算法·github
♡すぎ♡16 小时前
SWE 的基本条件
算法·swe·浅水模拟
郝学胜-神的一滴17 小时前
AI 编程智能体 17:四步搞定专属AI智能体
大数据·人工智能·python·神经网络·算法·langchain·强化学习
微尘hjx18 小时前
【StrongSort 03】多轨迹算法StrongSort改进点
人工智能·算法·yolo·视觉检测·ultralytics·strongsort·轨迹算法