TF-IDF算法
TF-IDF算法的全称叫 Term Frequency-Inverse Document Frequency 词频-逆文档频率算法。
TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。TF-IDF加权的各种形式常被搜索引擎应用,作为文件与用户查询之间相关程度的度量或评级。除了TF-IDF以外,因特网上的搜索引擎还会使用基于链接分析的评级方法,以确定文件在搜寻结果中出现的顺序。
TF-IDF主要用来文章关键词抽取
当需要抽取一篇文章的关键词时候,往往我们最先想到的是计算文章的所有词的词频,文章越是和主题相关,出现主题相关的词越是多,词频也就越大,按照词频来排序,找出关键词top N。但是问题来了,像‘的’,‘我们’,‘地’等这些没什么实在意义的词在所有文章中出现的词频应该都是很高的,我们称这样的词称为停词。在计算top N的关键词频之前,我们需要过滤掉这些停词,那么根据前几个排名的关键词我们也就能得出一篇文章的大概主题在说什么。
TF=当前词出现在文章中烦人个数/文章中总的词个数
当然,以上说的只是从TF(词频)角度来分析,那我们接下来就要从TF-IDF来说了。
TF-IDF简单但强大,在之前我们对于停词是直接采取过滤的方案,有没有方法自从让那些词频又高但又不重要的停词排到后面呢,这儿就用到了IDF(逆文档频率)了。IDF的计算公式如下:
IDF=log文档总个数/包含当前词的文档个数+1
从表达式中我们可以看出,包含当前词的文档个数越多,IDF的值越小,说明该词越不重要。反之,该词越重要。简单打个比方,像‘的’‘地’这些停词几乎在每一篇文章中都有出现,那么她的IDF就接近0。
IDF更像是给TF赋的一个权重,故TF-IDF的计算公式为:
TF−IDF=TF∗IDF
所以用TF-IDF来抽取文章关键词的方法就是先计算每个词在文章中的词频(TF),然后计算词的权重(IDF),最后将TF,IDF相乘再排序,得到top N个关键词,也就是文章的关键词了。
计算出文章的关键词后,我们就可以来计算两篇文章的相似度了,这儿相似度我们可以用余弦相似度。
余弦相似度公式:
具体步骤如下:
1、分词
2、抽取每篇文章的前30个关键词,用TF-IDF算法实现。
3、运动词袋模型(bag of words)计算每篇文章的特征向量。
4、计算余弦相似度,值越大表明文章约相似。