TF-IDF

news/2024/11/21 1:33:40/

2.TF - IDF:作用:提取出来一句话中词的重要性,分成两个部分:
tf: 词频(某一类中词条出现的次数 / 该类中所有词条数目)
idf: 逆文档频率(作用:去掉逗号,的等)公式:idf = log(总文档数 / 包含词条w的文档数 + 1)
计算出来的:tf * idf = 词的重要性。
缺点:高维稀疏

在处理算法以及挖掘数据的时候,所有的数据都是以字符串的形式存在的,所以文本挖掘的时候,需要先对字符串进行数字化,从而能够进行计算,TF-IDF就是这样一种计算,能够将字符串转化成数字,从而能够更快更方便的进行计算。

是一种针对于关键词的统计分析的方法,用于评估一个词对一个文档,或者语料库的重要程度,一个词跟它在文章中出现的次数成正比,和他在语料库中出现的次数成反比,这种方法有效的提升关键词和文章的相关性。

在TF-IDF中分为两个部分,TF和IDF

TF词频,表示某个词在文章中出现的总的次数,但是这个标准通常被归一化一下,就是TF=(某个词出现的次数/该篇文档中总的词数),这样做的好处就是,比如在两个文档中,这两个文档的篇幅长度差别特别特别的打,这个时候,长文档中不常出现的词的次数可能也会比短文章中的词出现的频率高,因此,做个这样的归一化更加方便它们之间的比较。

 

IDF是逆文档频率,包含某个词的文档越少,那么这个词越重要,因为表示这个词区分文档的能力越强,IDF=ln(语料库中的文档总数 / 包含某个词的文档数 + 1),+1是为了防止某个词从未出现过而导致分母为0。

 

 

TF-IDF = TF * IDF 输出的值越大,证明这个词对于这个文档的重要性越大。

示例1

  有很多不同的数学公式可以用来计算TF-IDF。这边的例子以上述的数学公式来计算。词频 (TF) 是一词语出现的次数除以该文件的总词语数。假如一篇文件的总词语数是100个,而词语"母牛"出现了3次,那么"母牛"一词在该文件中的词频就是3/100=0.03。一个计算文件频率 (DF) 的方法是测定有多少份文件出现过"母牛"一词,然后除以文件集里包含的文件总数。所以,如果"母牛"一词在1,000份文件出现过,而文件总数是10,000,000份的话,其逆向文件频率就是 log(10,000,000 / 1,000)=4。最后的TF-IDF的分数为0.03 * 4=0.12。

示例2

   根据关键字k1,k2,k3进行搜索结果的相关性就变成TF1*IDF1 + TF2*IDF2 + TF3*IDF3。比如文档1的term总量为1000,k1,k2,k3在文档1出现的次数是100,200,50。包含了 k1, k2, k3的文档总量分别是 1000,10000,5000。document set的总量为10000。 TF1 = 100/1000 = 0.1 TF2 = 200/1000 = 0.2 TF3 = 50/1000 = 0.05 IDF1 = log(10000/1000) = log(10) = 2.3 IDF2 = log(10000/100000) = log(1) = 0; IDF3 = log(10000/5000) = log(2) = 0.69 这样关键字k1,k2,k3与文档1的相关性= 0.1*2.3 + 0.2*0 + 0.05*0.69 = 0.2645 其中k1比k3的比重在文档1要大,k2的比重是0.

TF-IDF的优点:

TF-IDF算法的优点是简单快速,结果比较符合实际情况。

TF-IDF算法的不足:

TF-IDF 采用文本逆频率 IDF 对 TF 值加权取权值大的作为关键词,但 IDF 的简单结构并不能有效地反映单词的重要程度和特征词的分布情况,使其无法很好地完成对权值调整的功能,所以 TF-IDF 算法的精度并不是很高,尤其是当文本集已经分类的情况下。

在本质上 IDF 是一种试图抑制噪音的加权,并且单纯地认为文本频率小的单词就越重要,文本频率大的单词就越无用。这对于大部分文本信息,并不是完全正确的。IDF 的简单结构并不能使提取的关键词, 十分有效地反映单词的重要程度和特征词的分布情 况,使其无法很好地完成对权值调整的功能。尤其是在同类语料库中,这一方法有很大弊端,往往一些同类文本的关键词被盖。

TF-IDF算法实现简单快速,但是仍有许多不足之处:

(1)没有考虑特征词的位置因素对文本的区分度,词条出现在文档的不同位置时,对区分度的贡献大小是不一样的。

(2)按照传统TF-IDF,往往一些生僻词的IDF(反文档频率)会比较高、因此这些生僻词常会被误认为是文档关键词。

(3)传统TF-IDF中的IDF部分只考虑了特征词与它出现的文本数之间的关系,而忽略了特征项在一个类别中不同的类别间的分布情况。

(4)对于文档中出现次数较少的重要人名、地名信息提取效果不佳。

改进方法:TF-IWF

简单的调库使用:

CountVectorizer

CountVectorizer类会将文本中的词语转换为词频矩阵。

例如矩阵中包含一个元素a[i][j],它表示j词在i类文本下的词频。

它通过fit_transform函数计算各个词语出现的次数,

通过get_feature_names()可获取词袋中所有文本的关键字,

通过toarray()可看到词频矩阵的结果。

输出的结果:

 

TfidfTransformer

统计CountVectorizer中每个词语的tf-idf权值
TF-IDF的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。TF-IDF实际上是:TF * IDF。

它们两个的输出对比:

统计数量的得到的矩阵

经过加权,也就是说TF-IDF得到的矩阵

 

 

TfidfVectorizer

其实就是CountVectorizer  +  TfidfTransformer组合使用

CountVectorizer会将文本中的词语转换为词频矩阵,它通过fit_transform函数计算各个词语出现的次数,通过get_feature_names()可获得所有文本的关键词,通过toarray()可看到词频矩阵的结果。

TfidfTransformer用于统计vectorizer中每个词语的TFIDF值。

而这个TfidfVectornizer就是将原始文档的集合转化为tf-idf特性的矩阵,相当于CountVectorizer配合TfidfTransformer使用的效果。
即TfidfVectorizer类将CountVectorizer和TfidfTransformer类封装在一起。

 


http://www.ppmy.cn/news/722.html

相关文章

Android S(31) APP 页面绘制流程

接上一篇app 启动流程调用OnCreate方法,页面布局绘制进入setContentView 1、加载布局setContentView() 这里getWindow()直接返回mWindow,这个早在onCreate 调用前Activity#attach里面完成初始化。 进入attach方法,构建一个窗体对象PhoneWind…

365天深度学习训练营-第P2周:彩色图片识别

目录 一、前言 二、我的环境 三、代码实现 1、数据下载以及可视化 2、CNN模型 3、训练结果可视化 4、随机图像预测 四、模型优化 1、CNN模型 2、VGG-16模型 3、Alexnet模型 4、Resnet模型 一、前言 >- **🍨 本文为[🔗365天深度学习训练营]…

12.01 M4-UART-IT实验

1.使用CORTEX-M4核,实验中断实验和串口实验结合--->上传到CSDN 按键触发时,LED灯状态取反,并且在串口工具打印一句话 KEY1按键按下,LED1状态取反,串口工具打印key1 down!!!! 主要代码gpio.c void HAL_GPI…

SpringBoot实用开发之热部署

目录 热部署 手动启动热部署 自动启动热部署 热部署范围布置 关闭热部署 热部署 能学到spring boot实用开发篇的相信都已经对IDEA和maven了如指掌了,我就基于这些前置知识来说一下热部署,其实也很简单。 手动启动热部署 首先可以在你的pom.xml文…

第二证券|汽车板块现涨停潮!多只地产债再涨到临停

在昨日大幅上涨后,今日上午A股商场持续上行,不过涨势放缓,到上午收盘,上证指数上涨0.21%。 昨日带动大市上行的地产板块今日上午涨势减缓,包含福星股份、世茂股份在内的多只地产股涨停。不过也有极少数地产股逆势跌落&…

Rust机器学习之Plotters

Rust机器学习之Plotters 本文将带领大家学习Plotters的基础用法。重点学习Plotters的图表元素和常用图表的使用。 本文是“Rust替代Python进行机器学习”系列文章的第四篇,其他教程请参考下面表格目录: Python库Rust替代方案教程numpyndarrayRust机器…

信创平台:查询CPU,内存等命令

信创平台:龙芯,海光、鲲鹏服务器查询CPU,内存等命令 #1、查看操作系统(统信操作系统) 海光查询操作系统: cat /etc/os-release查看操作系统 cat /etc/os-version查看操作系统版本 龙芯,鲲鹏查询操作系统:cat /etc…

蓝桥杯嵌入式AD采样解析

文章目录前言一、什么是AD采样二、原理图查看及cubeMX配置三、代码解析总结前言 本文将带大家学习AD采样。 一、什么是AD采样 原理部分这里就不多介绍了,给大家推荐一篇文章大家自己去了解一下即可。 AD采样 二、原理图查看及cubeMX配置 在板子上面有两个可调电…