TF-IDF(Term Frequency - Inverse Document Frequency)

TF-IDF(Term Frequency - Inverse Document Frequency)是一种在信息检索与文本挖掘中非常常用的关键词提取方法,用于衡量一个词在文档集合中的重要性。它的核心思想是:

如果一个词在某个文档中出现得频繁,同时在其他文档中很少出现,那么这个词对该文档具有较强的区分性,应当被赋予较高的权重。


一、TF-IDF 的基本组成

1. TF(Term Frequency)------词频

表示词语在当前文档中出现的频率。常见定义如下:

用于衡量词对当前文档的重要性。


2. IDF(Inverse Document Frequency)------逆文档频率

表示某个词在整个语料库中出现的"稀有程度":

其中:

  • NNN:语料库中的文档总数

  • ∣{d∈D:t∈d}:包含词 t 的文档数量

  • 加 1 是为了避免除以 0

IDF 越大,说明词越"稀有",对区分性越重要。


3. TF-IDF 计算公式

即:某词在某文档中的词频 × 该词在整个语料库中的逆文档频率。


二、TF-IDF 的直观理解

  • 一个词在文档中频繁出现 → TF 高 → 可能重要

  • 但如果这个词在所有文档中都频繁出现(比如 "的""是""and") → IDF 低 → 权重应该降低

  • 所以 TF-IDF 是一种平衡词频与泛用性的机制


三、使用场景

  • 关键词提取:找出一篇文章中最重要的词语

  • 文本分类:将文档向量化后用于机器学习模型

  • 信息检索:计算查询和文档之间的相关性(如搜索引擎)


四、TF-IDF 的特点

优点:

  • 简单高效,无需训练模型

  • 能过滤掉高频但无意义的词(如停用词)

  • 常用于传统机器学习方法(SVM、朴素贝叶斯等)中的文本特征表示

缺点:

  • 无法捕捉语义("漂亮"和"美丽"是不同的词)

  • 对词的顺序不敏感(bag-of-words 特性)

  • 对长文档可能存在偏差(词频偏大)


五、TF-IDF 在 Python 中的使用示例(基于 scikit-learn)

python 复制代码
from sklearn.feature_extraction.text import TfidfVectorizer

corpus = [
    "我喜欢自然语言处理",
    "语言模型是人工智能的核心",
    "我正在学习文本挖掘"
]

vectorizer = TfidfVectorizer()
tfidf_matrix = vectorizer.fit_transform(corpus)

# 输出词汇表
print(vectorizer.get_feature_names_out())

# 查看第一个句子的TF-IDF向量
print(tfidf_matrix[0].toarray())
相关推荐
L.fountain2 小时前
图像自回归生成(Auto-regressive image generation)实战学习(一)
人工智能·深度学习·学习·计算机视觉·图像自回归
摘星编程2 小时前
Ascend C编程语言详解:打造高效AI算子的利器
c语言·开发语言·人工智能
DisonTangor2 小时前
【小米拥抱开源】小米MiMo团队开源309B专家混合模型——MiMo-V2-Flash
人工智能·开源·aigc
hxxjxw2 小时前
Pytorch分布式训练/多卡训练(六) —— Expert Parallelism (MoE的特殊策略)
人工智能·pytorch·python
Robot侠3 小时前
视觉语言导航从入门到精通(一)
网络·人工智能·microsoft·llm·vln
掘金一周3 小时前
【用户行为监控】别只做工具人了!手把手带你写一个前端埋点统计 SDK | 掘金一周 12.18
前端·人工智能·后端
神州问学3 小时前
世界模型:AI的下一个里程碑
人工智能
zhaodiandiandian3 小时前
AI深耕产业腹地 新质生产力的实践路径与价值彰显
人工智能
古德new3 小时前
openFuyao AI大数据场景加速技术实践指南
大数据·人工智能
youcans_3 小时前
【医学影像 AI】FunBench:评估多模态大语言模型的眼底影像解读能力
论文阅读·人工智能·大语言模型·多模态·眼底图像