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.mzph.cn/news/833916.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OSPF Stub区域

原理概述 OSPF 协议定义了多种区域( Area )类型,其中比较常见的有 Stub 区域和 Totally Stub 区域。区域的类型决定了在这个区域当中所存在的 LSA 的类型。 Stub 区域不允许 Type-4和 Type-5 LSA 进入,该区域会通过 Type-3 LSA…

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

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

实战BACnet/IP标准通信网关在楼宇自动化中的应用

智慧楼宇建设实现不同设备间的互联互通是一项巨大挑战,尤其是在那些历史悠久的建筑中,新旧系统并存的情况尤为普遍。某大型商业综合体就面临着这样的困境:老旧的暖通空调系统采用Modbus RTU协议,而新部署的能源管理系统却要求BACn…

502页 | 2024年人工智能指数报告-英文版(免费下载)

【1】关注本公众号,转发当前文章到微信朋友圈 【2】私信发送 【2024年人工智能指数报告】 【3】获取本方案PDF下载链接,直接下载即可。 如需下载本方案PPT原格式,请加入微信扫描以下方案驿站知识星球,获取上万份PPT解决方案&…

学习软考----数据库系统工程师22

关系运算 基本的关系代数运算 拓展的关系运算 除:需要S连接中属性为C和D的两个元组都与R连接一样,且在R连接中对应的另外的元素完全一致 总结

Java17的崛起——newrelic的2024 年 Java 生态系统状

newrelic 2024 年 Java 生态系统状况 原文PDF:点我下载 生产中最常用的 Java 版本 Oracle 每六个月发布一次新的 Java 版本(通常是在 3 月和 9 月),每个版本都包含一些新功能和错误修复。每两年,Oracle 都会推出一…

一篇教程搞定Windows系统中的Docker应用安装

文章目录 1. 引言2. “Docker -> WSL -> Windows”的依赖逻辑3. 安装方法3.1 安装WSL3.2 安装Docker Desktop 4. 是否安装成功?初始化一个容器试试。FAQ 1. 引言 Docker是一个用于创建、管理和编排容器的应用。容器是运行在操作系统上的一个应用,…

【Git】Git学习-15:分支简介和基本操作

学习视频链接:【GeekHour】一小时Git教程_哔哩哔哩_bilibili​编辑https://www.bilibili.com/video/BV1HM411377j/?vd_source95dda35ac10d1ae6785cc7006f365780https://www.bilibili.com/video/BV1HM411377j/?vd_source95dda35ac10d1ae6785cc7006f365780 git bran…

鸿蒙开发接口Ability框架:【@ohos.ability.particleAbility (particleAbility模块)】

particleAbility模块 particleAbility模块提供了Service类型Ability的能力,包括启动、停止指定的particleAbility,获取dataAbilityHelper,连接、断开当前Ability与指定ServiceAbility等。 说明: 本模块首批接口从API version 7开…

深度学习笔记_10YOLOv8系列自定义数据集实验

1、mydaya.yaml 配置方法 # 这里分别指向你训练、验证、测试的文件地址,只需要指向图片的文件夹即可。但是要注意图片和labels名称要对应 # 训练集、测试集、验证机文件路径,可以是分类好的TXT文件,也可以直接是图片文件夹路径 train: # t…

ue引擎游戏开发笔记(35)——为射击添加轨道,并显示落点

1.需求分析: 我们只添加了开枪特效,事实上并没有实际的效果产生例如弹痕,落点等等。所以逐步实现射击的完整化,先从实现落点开始。 2.操作实现: 1.思路:可以这样理解,每次射击的过程是一次由摄…

百度文库最新AI旋转验证码

上个月发现百度文库最新出了一个验证码,是AI生成的。内容每次可能都不一样,所以给识别造成 了很大困难。传统的比对放松完全失效。 一、介绍 这个是最近才出的最新验证码,内容主要以工厂、建筑、山峰、机器人、汽车、盆栽植物等为主。如下图…

【linux】进程概念|task_struct|getpid|getppid

目录 ​编辑 1.进程的概念 进程的基本概念 进程与程序的主要区别 进程的特征 进程的状态 描述进程—PCB task_struct中的内容 查看进程 1.创建一个进程,运行以下代码 通过系统调用获取进程标示符 getpid()以及getppid() 1.进程的概念 进程的基本概念…

洛谷 P3391:文艺平衡树 ← Splay树模板题

【题目来源】https://www.luogu.com.cn/problem/P3391【题目描述】 您需要写一种数据结构(可参考题目标题),来维护一个有序数列。 其中需要提供以下操作:翻转一个区间,例如原有序序列是 5 4 3 2 1,翻转区间…

深度学习常用优化算法笔记介绍,各种梯度下降法详细介绍

优化算法 mini-batch梯度下降法 当一个数据集其数据量非常大的时候,比如上百万上千万的数据集,如果采用普通的梯度下降法,那么运算速度会非常慢,因为如果使用梯度下降法在每一次迭代的时候,都需要将这整个上百万的数…

航空电子FC节点卡, FC交换机,主要采用LC或MPO光纤接口形式

FC节点卡主要采用LC或MPO光纤接口形式,可以作为4/2个独立端口使用,也可以作为2对/1对冗余端口使用,支持1.0625Gbps、2.125Gbps、4.25Gbps、8.5Gbps通信速率。节点卡完全遵循FC-LS,FC-FS,FC-AE-ASM、FC-AE-1553B等FC光纤…

初始Java篇(JavaSE基础语法)(7)抽象类和接口(上)

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏:JavaSE 目录 抽象类 抽象类的概念: 抽象类语法 抽象类特性 抽象类的作用 接口 接口的概念: 语法规则 接口…

精通GDBus:Linux IPC的现代C接口

目录标题 1. GDBus介绍2. GDBus的优点3. 安装GDBus4. 使用GDBus连接到D-Bus总线实现D-Bus服务调用D-Bus方法发送和接收信号 5. 总结 在Linux环境下,不同的程序需要通过某种方式进行通信和协同工作。GDBus是GLib库的一部分,提供了一个基于GObject系统的、…

单片机-点亮第一盏灯

原理图 需求:点亮或是熄灭LED 通过控制 P5.3引脚输出高电平时,LED灯就点亮,输出低电平时LED灯就熄灭 1.项目创建 新建项目 配置开发板信息 当前位STC芯片的开发板,选择STC MCU Database 搜素具体芯片型号,进行配置…

[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 …