TF-IDF解释

TF-IDF 表征了某个词对于一段文本的重要性和独特性


假设我们有以下三段简短的文本数据:

文本1: 这个苹果很新鲜很甜
文本2: 我买了一个苹果非常喜欢
文本3: 这个苹果皮非常光滑


首先,我们构建这个小文本集合的词典(vocabulary),去掉一些常见的无意义词语(如"的"、"一个"等),词典为:

{‘这个’, ‘苹果’, ‘新鲜’, ‘甜’, ‘我’, ‘买了’, ‘非常’, ‘喜欢’, ‘皮’, ‘光滑’}

共10个词条。

接下来,计算每个词条在每个文本中的TF(词频)值,以及在整个文本集合中的IDF(逆向文档频率)值。

例如对于"苹果"这个词条:
TF(文本1) = 1/4 = 0.25 (在文本1中出现1次,文本长度4)
TF(文本2) = 1/5 = 0.2
TF(文本3) = 1/4 = 0.25
IDF = log(3/3) = 0 (在所有3个文件中都出现过)

将每个词条的TF*IDF值作为该词条在该文本的特征值,那么文本1可以用一个10维的特征向量表示为:

[0.27, 0.25, 0.27, 0.27, 0, 0, 0, 0, 0, 0]

文本2的特征向量为:

[0, 0.2, 0, 0, 0.4, 0.4, 0.4, 0.4, 0, 0]

文本3的特征向量为:

[0.27, 0.25, 0, 0, 0, 0, 0, 0, 0.27, 0.27]

这样,我们就根据TF-IDF的值,将原始的文本数据转化为了数值型的向量形式,方便被机器学习模型使用。


可以看出,在这个例子中,"苹果"对1和3更为重要,“新鲜”"甜"等对1更重要,“非常”"喜欢"对2更重要,“皮”"光滑"对3更重要。这些重要特征被很好地保留下来,而常见无意义的词组被过滤掉。

通过这个例子,我们可以看到TF-IDF如何高效地根据词条在不同文本中的重要性赋予权重,将文本表示为向量形式的特征,以输入机器学习任务中。


TF-IDF通过以下两个方面来凸显文档中的重要词语:

1.词频(TF)部分

TF指的是单词在当前文档中出现的频率。一个词语在文档中出现的频率越高,说明它对该文档越重要,应当赋予更高的权重。

TF通常通过以下公式计算:

TF(t,d) = freq(t,d) / sum(freq(w,d) for w in d)

其中, freq(t,d)表示词语t在文档d中出现的频率,sum表示文档d中所有单词频率之和。这样可以归一化词频,避免受文档长度的影响。

2.逆向文档频率(IDF)部分

IDF的作用是降低那些在整个文档集中过于常见的词语的权重,提高那些较为独特、稀有的词语的权重。

IDF通过以下公式计算:

IDF(t,D) = log(N / freq(d in D contains t))

其中,N是语料库中文档的总数,freq(d in D contains t)是含有单词t的文档数量。


可以看到,如果一个单词在很多文档中都出现过,它的IDF值会较小;反之,如果一个词语在很少文档中出现,它的IDF值会较大。

最终,TF-IDF是TF和IDF的乘积:

TF-IDF(t,d,D) = TF(t,d) * IDF(t,D)

通过这种交叉计算,TF-IDF使得:

  1. 文档中出现频率高的词语获得较高权重(高TF)
  2. 在整个语料库中罕见的词语获得较高权重(高IDF)
  3. 普通常见词语的权重被削减(高TF低IDF或低TF低IDF)

因此,对于文档来说,它的特征词语(如专有名词、术语等)会获得很高的TF-IDF分数,而那些像"的"、"一个"这样的常见词语则会被降低权重,从而凸显了文档的重要词语特征。

这就是TF-IDF能突出重要词语、消除噪音的根本原因,使其成为自然语言处理中一种广泛使用的词语重要性加权方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/604384.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IO 5.8日

1:使用 dup2 实现错误日志功能 使用 write 和 read 实现文件的拷贝功能,注意,代码中所有函数后面,紧跟perror输出错误信息,要求这些错误信息重定向到错误日志 err.txt 中去 2:判断一个文件是否拥有用户可写…

LeetCode509:斐波那契数(使用动态规划)

题目描述 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) 0,F(1) 1 F(n) F(n - 1) F(n - 2),其中 n > 1…

BFS专题——FloodFill算法:200.岛屿数量

文章目录 题目描述算法原理代码实现CJava 题目描述 题目链接:200.岛屿数量 PS:注意题目中每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。也就是说斜角是不算了, 例如示例二,是三个岛屿。 算法原理 这道题目是 DFS&#xff0…

三维天地助力实验室质量管理工作无纸化、流程化、标准化

质量管理是实验室日常管理工作中的重点内容,目前大多数实验室信息化的方向还是以实验主流程向无纸化转变为主,质量管理工作仍然依靠线下纸质文件或者线上登记台账的方式进行,这种方式存在任务流转效率低、资源浪费等问题,此外历史数据难以保存也是实验室管理人员的一大痛点。 …

【Android】Room数据库的简单使用方法

Room数据库的使用方法 目录 1、添加Room数据库的依赖2、Entity——定义实体类 2.1 定义主键——PrimaryKey2.2 字段注解——ColumnInfo 3、Dao——定义数据访问对象4、Database——数据库 4.1 通过回调观察数据库是否创建成功 5、使用时注意点6、编写异步 DAO 查询 6.1 写异步…

24_Scala集合Map

文章目录 Scala集合Map1.构建Map2.增删改查3.Map的get操作细节 Scala集合Map –默认immutable –概念和Java一致 1.构建Map –创建kv键值对 && kv键值对的表达 –创建immutable map –创建mutable map //1.1 构建一个kv键值对 val kv "a" -> 1 print…

Java IO流(二)

1. 缓冲流 1.1 字节缓冲流概述 当对文件或其他数据源进行频繁的读/写操作时,效率比较低,这时如果使用缓存流就能够更高效地读/写信息。 比如,可以使用缓冲输出流来一次性批量写出若干数据减少写出次数来提高写出效率。 如果用生活中的例子做…

多模态EDA论文小记

论文地址 该论文主要改进点是:通过动态化局部搜索中每个集群大小,高斯和柯西分布共同产生个体。总的来说改进点不多,当然也可能是笔者还没发现。 局部搜索 划分集群 划分集群有两个策略分别是: 随机生成一个点作为中心点&…

什么软件可以把视频合并在一起?6个软件教你快速进行视频编辑

什么软件可以把视频合并在一起?6个软件教你快速进行视频编辑 当你需要对视频进行编辑和合并时,选择合适的软件可以极大地提高工作效率和编辑质量。以下是六款被广泛认可且功能强大的视频编辑软件,它们可以帮助你快速、高效地进行视频编辑和合…

PDF转word转ppt软件

下载地址:PDF转word转ppt软件.zip 平时工作生活经常要用到PDF转word转ppt软件,电脑自带的又要开会员啥的很麻烦,现在分享这款软件直接激活就可以免费使用了,超级好用,喜欢的可以下载

C++从入门到精通---模版

文章目录 泛型编程函数模版模版参数的匹配原则类模版类模版的定义格式类模版的实例化 总结 泛型编程 泛型编程是一种编程范式,旨在实现通用性和灵活性。它允许在编写代码时使用参数化类型,而不是具体的类型,从而使代码更加灵活和可重用。 在…

NodeMCU ESP8266 操作 SSD1306 OLED显示屏详解(图文并茂)

文章目录 1 模块介绍2 接线介绍3 安装SSD1306驱动库4 源码分析4.1 硬件兼容性4.2 可能存在的问题总结1 模块介绍 我们将在本教程中使用的OLED显示屏是SSD1306型号:单色0.96英寸显示屏,像素为12864,如下图所示。 OLED显示屏不需要背光,这在黑暗环境中会产生非常好的对比度。…

全面的Partisia Blockchain 生态 4 月市场进展解读

Partisia Blockchain 是一个以高迸发、隐私、高度可互操作性、可拓展为特性的 Layer1 网络。通过将 MPC 技术方案引入到区块链系统中,以零知识证明(ZK)技术和多方计算(MPC)为基础,共同保障在不影响网络完整…

Springboot+Vue项目-基于Java+MySQL的个人云盘管理系统(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…

去除图片水印软件-inpaint

一、普通使用教程 亲眼看看使用 Inpaint 从照片中删除不需要的元素是多么容易: 1.1加载图片 1.2 选择要纠正的问题区域 1.3 告别不需要的对象并保存 二、功能 1 修复旧照片 老并不总是意味着坏。我们拥有的一些旧照片对我们来说仍然很重要,因为它们仍…

FPGA ov5640视频以太网传输

1 实验任务 使用DFZU4EV MPSoC 开发板及双目OV5640摄像头其中一个摄像头实现图像采集,并通过开发板上的以太网接口发送给上位机实时显示。 2 Verilog代码 2.1 顶层模块 timescale 1ns / 1ps //以太网传输视频顶层模块module ov5640_udp_pc (input sys_cl…

威客网上招标系统(五)

目录 5 详细设计 5.1 系统首页 5.1.1系统首页(网站首页index.jsp) 5.1.2 下沙派威客网首页界面说明 5.2 站内新闻信息 5.2.1站内新闻操作界面 5.2.2系统主操作界面说明 5.3威客在线操作界面 5.3.1 威客在线操作界面 5.3.2威客在线说明 5.4系统…

PCIe下一代线缆标准CopprLink发布

作为业界广泛采用的高速串行点对点互联标准,PCIe自诞生以来历经多次迭代升级,现已成为CPU、GPU、FPGA、SSD等计算设备间不可或缺的互连桥梁。PCIe 7.0标准更是将数据传输速率提升至令人惊叹的32 GB/s(每通道)。 然而,面…

[MySQL数据库] Java的JDBC编程(MySQL数据库基础操作完结)

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏:🍕 Collection与数据结构 (91平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 🧀Java …

力扣hot100:199. 二叉树的右视图/437. 路径总和 III(dfs/回溯/树上前缀和/哈希表)

文章目录 一、LeetCode:199. 二叉树的右视图二、LeetCode:437. 路径总和 III 一、LeetCode:199. 二叉树的右视图 LeetCode:199. 二叉树的右视图 差点因为是个中等题打退堂鼓。其实比较简单。 右视图实际上只需要找到&#xff0c…
最新文章