TF-IDF的原理概述

       今天来说一下什么是TF-IDF,我记得这个东西从2017年开始就一直缠绕着我,今天我把它撕扯下来,拼凑着这样的一篇趣文,我想看过之后,大家就算没学过高等数学,那么对于它的原理也会了然于胸了。为了能以一种接地气的方式表达出它的原理,本文几乎不涉及复杂的数学公式,尽管那些公式在我看来是那么的富有美感……

       这里有一篇文章,一篇很长很长的文章,有赤道那么长(此处运用夸张的修辞手法,形象生动的描绘出文章之长)。现在我们想不在人工干预的情况下,使用计算机提取出文章的关键词,那么应该怎么做呢?这个问题涉及到了计算机技术的很多前沿领域,例如:信息检索、文本挖掘、文本处理等等。一想到这些,大家难免会想,这得需要多么复杂的技术才能完成这项工作,但是巧合的是,有这么一个算法,可以完美的解决这个问题,这就是TF-IDF算法。我们的故事从这里才算正式开始~


       对于鸢尾花,大家想必都不陌生吧。和大多数人一样我对这种花也是爱恨交织,并不是因为在法国,人们会将它制成香水,而是因为它的花瓣、花萼简直就是机器学习路上的利器。既然这么方便,我们还是用鸢尾花来举例吧,这里有一篇叫做《欧洲鸢尾花的成长》的文章,我们接下来想要使用计算机将这篇文章的关键词取出。

一、词频(Term Frequency,缩写为TF)

       首先我们想到如果一个词语能够成为关键词,那么最起码它应该在文章中出现过很多次,那么这就涉及到一个词频的统计。统计结果当然没有让我们失望,出现最多的是那些“的”、“了”、“是”之类的词语,这些词语肯定不能成为关键词,它们有一个非常美丽的统称,叫“停用词”,意思就是停止使用了,这些词对我们毫无帮助,一般在进行词频统计之前就需要过滤掉。

       这里出现了第一个假设:假设我们已经将这些词语过滤掉了,现在剩下的都是有着实际意义的词语。这时候我们遇到了另外一个问题,我们发现“欧洲”、“鸢尾花”、“成长”这三个词出现的次数一样,这不就说明这三个词作为关键词的话,它们的重要性都是一样的吗?显然,它们的重要性是不一样的,“欧洲”在其他地方,可能较“鸢尾花”和“成长”更常见些,所以我们有理由相信,在这篇文章中,“鸢尾花”和“成长”的重要程度要高于“欧洲”的重要程度。所以我们需要另外一个参数来衡量一个词语是不是经常出现的词语。换句话说,我们需要给每个词语分配一个权重值,以此来判断该词的重要程度。

1、计算词频:

(1)词频 = 某个词在文章中出现的次数

有时候为了不同文章(不同文章长短不一)之间便于比较,通常会对词频进行标准化,标准化的方式如下:

(2)词频 = 某个词在文章中出现的总次数 ÷ 文章的总词数

二、逆文档频率(Inverse Document Frequency,缩写为IDF)

       如果一个词语不经常出现,但是它在本文中却经常出现,那么我们有理由怀疑它能反映本文的特性,也就是我们需要的关键词。上面提到的权重值在此处还有另外一个叫法,那就是逆文档频率,它的大小与一个词语的常见程度成反比。所谓的TF-IDF就是词频和逆文档频率的乘积,某个词对文章的重要程度越高,它的TF-IDF值就越大,所以排在前面的这几个词就是文章的关键词。

2、计算逆文档频率:
    此时需要一个语料库,用来模拟语言的使用环境,例如:这是属于科学类的文章,那么所有的科学类文章做成一个大的语料库。
逆文档频率 = log(语料库的文档总数 ÷ (包含该词的文档数 + 1))


3、计算TF-IDF
TF-IDF = 词频 × 逆文档频率

       通过上述公式可以看出,TF-IDF与一个词在文档中的出现次数成正比,与该词在整个语料库中的出现次数成反比。所以,自动提取关键词的算法就很清楚了,就是计算出文档的每个词的TF-IDF值,然后按降序排列,取排在最前面的几个词。

       通过计算发现在文章中一共有1000个词语,"欧洲"、"鸢尾花"、"成长"各出现20次,则这三个词的"词频"(TF)都为0.02。然后,通过网页搜索发现,包含"的"字的网页共有250亿张,假定这就是科学类网页总数。包含"欧洲"的网页共有62.3亿张,包含"鸢尾花"的网页为0.484亿张,包含"成长"的网页为0.973亿张。则它们的逆文档频率(IDF)和TF-IDF如下:

扫描二维码关注公众号,回复: 12047371 查看本文章
  包含该词的文档数 IDF TF-IDF
欧洲 62.3亿 0.603 0.0121
鸢尾花 0.484亿 2.713 0.0543
成长 0.973亿 2.410 0.0482

       从上表可以看出,“鸢尾花”的TF-IDF最高,“成长”次之,“欧洲”的TF-IDF值最低。

       好了,到此大家是不是对TF-IDF的原理有了一定的了解了,你们在这个过程中遇到了什么问题,欢迎留言,让我看看你们都遇到了哪些问题~

猜你喜欢

转载自blog.csdn.net/gdkyxy2013/article/details/108997570
今日推荐