当前位置: 首页 > news >正文

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)

from sklearn.feature_extraction.text import TfidfVectorizercorpus = ["我喜欢自然语言处理","语言模型是人工智能的核心","我正在学习文本挖掘"
]vectorizer = TfidfVectorizer()
tfidf_matrix = vectorizer.fit_transform(corpus)# 输出词汇表
print(vectorizer.get_feature_names_out())# 查看第一个句子的TF-IDF向量
print(tfidf_matrix[0].toarray())
http://www.dtcms.com/a/286556.html

相关文章:

  • RFID技术赋能智慧物流:实现搬运环节的精准化与高效化
  • 【PTA数据结构 | C语言版】多叉堆的上下调整
  • 【LeetCode 2163. 删除元素后和的最小差值】解析
  • 上市公司-企业超额商誉数据(2005-2023年)-实证数据
  • 《C++继承深度引擎:从内存布局到多态全景拆解》​
  • 飞算科技:以创新科技引领数字化变革,旗下飞算 JavaAI 成开发利器
  • Linux Master 知识库 —— 致 Linux 系统工程师
  • 通信算法之294:LTE系统中的整数倍频偏估计
  • 太阳辐射监测站:洞察太阳能量的科技之眼
  • 【软件系统架构】系列七:系统性能——路由器性能深入解析
  • 告别宕机!Ubuntu自动重启定时任务设置(一键脚本/手动操作)
  • [Raspberry Pi]如何將無頭虛擬顯示器服務(headless display)建置在樹莓派的Ubuntu桌面作業系統中?
  • 汽车免拆诊断案例 | 07款丰田Hilux启动故障
  • Redis——MoreKey
  • 深入理解进程地址空间:虚拟内存与进程独立性
  • nodeJs笔记(六)
  • Ubuntu系统下交叉编译Android的X265库
  • 【leetcode】3202. 找出有效子序列的最大长度(2)
  • 联合利华发起TRO维权行动,OUAI商标或引发跨境圈大批量冻结
  • 密码学基础概念详解:从古典加密到现代密码体系
  • 函数指针和指针函数
  • 【非辐射复合】半导体中非辐射载流子复合的双能级机制
  • 储能BMS通信“卡壳”?CAN转EtherCAT让电池数据“跑起来”
  • animation-timing-function动画的速度曲线
  • 面试150 被围绕的区域
  • 数据结构——单调栈
  • PHP语法高级篇(三):过滤器与JSON
  • 计算机“十万个为什么”之跨域
  • STM32 RTOS 开发基础:从任务管理到同步机制的全面解析
  • 深入解析PyQt5信号与槽的高级玩法:解锁GUI开发新姿势