机器学习第五篇----TF-IDF算法详解

TF-IDF是一种常用的文本特征表示方法,用于衡量词在文档中的重要性。TF表示词频,IDF则反映了词的稀有程度。本文详细介绍了TF-IDF的计算公式,包括TF、IDF和TF-IDF的定义,并通过信息论角度解释了其数学原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TF-IDF是Term Frequency - Inverse Document Frequency的缩写,即“词频-逆文本频率”。它由两部分组成,TF和IDF。在前期的关键词提取和文本one-hot的时候使用较多

1、TF-IDF 算法
TF(词频):表示词w在文档Di中出现的频率,计算公式如下

在这里插入t图片描述
其中count(w)为关键词w出现的次数,|Di| 为文档Di中所有词的数量。

IDF(逆文档频率):)反映关键词的普遍程度——当一个词越普遍(即有大量文档包含这个词)时,其IDF值越低;反之,则IDF值越高。计算公式如下:
在这里插入图片描述
其中,N为所有的文档总数,I(w,Di)表示文档Di是否包含关键词,若包含则为1,若不包含则为0。若词w在所有文档中均未出现,则IDF公式中的分母为0,因此实践中需要对IDF做平滑

在这里插入图片描述
词w在文档Di的TF-IDF值计算如下:

在这里插入图片描述

2、TF-IDF代码实现

from sklearn.feature_extraction.text import TfidfVectorizer
corpus=["I come to China to travel", 
    "This is a car polupar in China",          
    "I love tea and Apple ",   
    "The work is to write some papers in science"] 
#如果是中文需要对文本进行分词,去掉停用词
tfidf2 = TfidfVectorizer()
re = tfidf2.fit_transform(corpus)
print re

3、TF-IDF的数学原理
TF-IDF虽然广泛应用到NLP,信息检索等领域,但是它出现之初,是没有数学原理支撑的,解释性很差。吴军老师在《数学之美》中对于TF-IDF从信息论的角度进行了解释。

在信息论中,我们可以用query中关键词(key word)的信息量来表示这个关键词所含有信息的多少,所以我们可以用关键词的信息量来表示这个词的权重,可以用公式表示
在这里插入图片描述
因为N为整个语料库的大小,所以N是一个常数,然后我们可以把公式表示成如下所示:
在这里插入图片描述
但是有个缺陷:两个词的TF相同,一个是某篇特定文章中的常见词,而另一个词是分散在多篇文章中的,那么显然第一个词有更高的分辨率,它应该有更大的权重。
吴军博士对此做出了以下的理想假设:
1.每篇文章的大小基本相同,均为M个词那么
在这里插入图片描述
2.一个关键词在文章中出现,不管出现多少次,贡献都等同,这样一个词要么在一个文献中出现c(w)=TF(w)/D(w)次,要么是0(c(w) < M)。所以从上面得到的公式我们可以推导出:
在这里插入图片描述
所以,由这个公式可以知道,TF-IDF和信息量之间的差异,因为上式随着c(w)的增加而递减,所以我们将上述公式继续进行推导可以得到:
在这里插入图片描述所以可以得到:
在这里插入图片描述所以由上述式子可以知道,当关键词的信息量I(w)越大,那么他的TF-IDF(w)的值就越大;同时query命中文章中的w次数越多,c(w)越大,TF-IDF(w)也越大。所以在信息论的角度,可以合理的解释TF_IDF的数据原理。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值