如何借助计算机提取文章的关键词(Automatic Keyphrase extraction),或比较两篇文章的相似度?
- TF-IDF算法
- 余弦相似性(cosine similiarity)
TF-IDF算法
TF-IDF介绍
TF-IDF(term frequency–inverse document frequency)是一种用于信息检索与数据挖掘的常用加权技术。用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度
如果某个词比较少见,但是它在这篇文章中多次出现,那么它很可能就对文章比较重要,反映了这篇文章的特性。某个词对文章的重要性越高,它的TF-IDF值就越大。所以,按 TF-IDF值逆序排列,排在最前面的几个词,就是这篇文章的关键词。
TF-IDF算法步骤
- 第一步,计算词频。
词频(TF) = 某个词在文章中的出现次数
考虑到文章有长短之分,为了便于不同文章的比较,进行”词频”标准化。
词频(TF) = 某个词在文章中的出现次数/文章的总词数 或者
词频(TF) = 某个词在文章中的出现次数/文章中的出现次数最多的词的出现次数
- 第二步,计算逆文档频率。
这时,需要一个语料库(corpus),用来模拟语言的使用环境。
逆文档词频(IDF) = log(语料库的文档总数/(包含改词的文档数+1))
如果一个词越常见,那么分母就越大,逆文档频率就越小越接近0。分母之所以要加1,是为了避免分母为0(即所有文档都不包含该词)。log表示对得到的值取对数。
第三步,计算TF-IDF。
可以看到,TF-IDF与一个词在文档中的出现次数成正比,与该词在整个语言中的出现次数成反比。所以,自动提取关键词的算法就是计算出文档的每个词的TF-IDF值,然后按降序排列,取排在最前面的几个词。
TF-IDF算法实现
TF-IDF算法本身和实现过程中可能的影响因素
1、IDF的引入,其初衷是抑制某一文档内无意义高频词的负面影响,但是在总文档于关键词出现文档比值较大时,低频词将因此而被凸现出