TF-IDF算法原理及应用

释放双眼,带上耳机,听听看~!
本文介绍了TF-IDF算法的原理和应用,包括信息检索、数据挖掘以及文本数据清洗中的关键词挖掘。通过TF-IDF算法,可以快速定位具体文档的关键内容。

本文正在参加【NLP】入门(二):搜索引擎是怎么工作的 中,博主简单地介绍了搜索引擎的工作原理,并且在文末提到了处理匹配排序最有名的算法之一 TF-IDF。

接下来,跟随博主来了解一下 TF-IDF 算法;

什么是 TF-IDF ?

TF-IDF (term frequency–inverse document frequency) 是一种用于信息检索与数据挖掘的常用加权技术,常用于挖掘文章中的关键词,而且算法简单高效,常被工业用于最开始的文本数据清洗。

TF-IDF 有两层意思,一层是 “词频”(Term Frequency,缩写为 TF),另一层是 “逆文档频率”(Inverse Document Frequency,缩写为 IDF)。

如果直接解释 TF (词频), IDF (逆文本频率指数),对于从来没接触过这些说法的人,肯定是感觉是云里雾里的。

这里我们接着沿用上一篇博文里提到的关于咨询公司的事件。假如你是个新手房产中介,当客户来咨询楼盘相关信息时,你需要快速的从所有楼盘资料中,定位到某几篇需要的文档中,那应该怎么做呢?

这时就想起了上篇博文 【NLP】入门(二):搜索引擎是怎么工作的 中提到的倒排索引,将资料进行归类,我们将去寻找每篇文档的关键词,那些在某篇文档中出现频率很高的词,比如每篇文档中基本都会有谈论 “租房”,“新房” 或 “二手房” 这样的字眼,这些高频的字眼其实就代表着这篇文档的属性, 我们大概也能通过这些字眼判断这是不是客户关心的问题。

但是有一个问题,很多语气词,没有代表意义的词在一篇文档中同样频率很高,比如 “我”,“中介”,“和” 这种词,几乎每篇文档中都会存在,而且提及很多次。 它们很明显,虽然词频高,但是不具有区分力,用上面的方法,这些词也会被误认为很重要。

因此引入了一个全局参数(IDF),来判断这个词在所有文档中,是不是垃圾信息,而不是光看局部信息(某篇文档中的词频 TF),以至于带来统计偏差;

很明显,“我”,“中介”,“和” 这种词在全量文档中就是这样的垃圾信息, 而 “租房”,“新房” 或 “二手房”是在全局下有区分力的词。所以如果我们把局部(TF)和全局(IDF)的信息都整合起来一起看的时候,我们就能快速定位到具体的文档了。

具体解析

接下来我们将上面的内容用数字来进行表示,这样会更加生动形象。

TFTF

中介 租房 买房
文档1 0 9 4 1
文档2 5 21 1 15
文档3 2 3 1 0

IDFIDF

中介 租房 买房
区分力 0.1 1.9 21.1 15.6

TF×IDFTF times IDF

中介 租房 买房
文档1 0 17.1 84.4 15.6
文档2 0.5 39.9 21.1 234
文档3 0.2 5.7 21.1 0

TF-IDF 两者结合其实就是两者相乘的意思,这样的结果意味着所有的文档,都能用一串集合所有词的分数来表示。通过分数的高低,我们也能大概看出这篇文档的关键内容是什么。比如第一篇,虽然 TF 告诉我们文档中 “中介” 这个词最多,但是 IDF 却告诉我们 “租房” 在文档中更具有代表性,所以根据 TF-IDF 的结合,这篇文档更具有 “租房” 属性。

那我们在搜索时又都经历了什么呢?

假设我们搜索关键词 “中介租房”,机器会利用词表的模式计算 “中介租房” 这个问题的 TF-IDF 值,然后会计算问句和每篇文档的 cos 距离,这个例子中的计算过程,简单来说,就是将文档按照词的维度放到一个四维空间中,然后把问句同样也放到这个空间里,最后看空间中这个问题离哪一个文档的距离最近,越近则相似度越高。通过这样的方式呢,我们就能找到搜索问题的最佳匹配文档了。

说到这里,不得不提到一个在 NLP 问题中非常重要的东西,那就是向量。我们刚刚把问句或者是文档,用数字的模式,投射到空间中,都是将问句或文档转变成向量,然后按照向量的模式指向空间中的某个位置。

举个例子,第一串数字就是文档1的向量表达,第二串是文档2的向量表达,第三串是问题的向量表达。他们都是空间中的点。

中介 租房 买房
文档1 0 17.1 84.4 15.6
文档2 0.5 39.9 21.1 234
问题 0 1×times1.9 1×times21.1 0

这里使用三维空间代替四维空间:

TF-IDF算法原理及应用

所以,TF-IDF 是一种向量表达形式,以后在接触 NLP 模型的过程中,还会不断听到词向量,句向量,文章向量等等不同的向量表达形式。

后记

以上就是 【NLP】入门(三):TF-IDF(理论篇) 的全部内容了。

本文简单地从理论上介绍了 TF-IDF,下一篇博文 【NLP】入门(四):TF-IDF(代码篇) 将从代码的角度来诠释 TF-IDF,敬请期待,希望本篇博文对大家有所帮助!

📝 上篇精讲:【NLP】入门(二):搜索引擎是怎么工作的

💖 我是 𝓼𝓲𝓭𝓲𝓸𝓽,期待你的关注;

👍 创作不易,请多多支持;

🔥 系列专栏:AI NLP

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

对抗生成网络GAN系列——WGAN原理及实战演练

2023-12-19 12:29:14

AI教程

对抗生成网络GAN系列——f-AnoGAN原理及缺陷检测实战

2023-12-19 12:42:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索