引子:Automatic Keyphrase extraction
很长文章里面,如何自动提取关键词汇呢?
比如在《中国的蜜蜂养殖》的长文里面,我们准备提取它的关键词。首先一个思路, 那些出现频率很高词汇应该更加重要一些,例如“中国”,“蜜蜂”,“的”等等,这就叫做词频(Term Frequency,缩写为TF)。我们进行词频统计,得到词频和词汇的字典。然后我们需要分析词频比较高那些词汇重要性,那些常用词汇例如“是”“的”“吗”之类停用词(stop words)我们将他们都过滤。这样获得就是比较有意义词汇,例如“中国”“蜜蜂”“养殖”。这些词汇中“中国”是常见词汇,但是“蜜蜂”和“养殖”很明显不是常见词汇,我们有理由认为在一片文章中平时不常见词汇具有更加重要作用。
用统计学语言表达,就是在词频的基础上,要对每个词分配一个"重要性"权重。最常见的词("的"、"是"、"在")给予最小的权重,较常见的词("中国")给予较小的权重,较少见的词("蜜蜂"、"养殖")给予较大的权重。这个权重叫做"逆文档频率"(Inverse Document Frequency,缩写为IDF),它的大小与一个词的常见程度成反比。知道了"词频"(TF)和"逆文档频率"(IDF)以后,将这两个值相乘,就得到了一个词的TF-IDF值。某个词对文章的重要性越高,它的TF-IDF值就越大。所以,排在最前面的几个词,就是这篇文章的关键词。
算法细节如下:
1 TF计算,取 TF=(该词汇在文章中出现频数)/(本文词汇总数)
2 IDF,首先获取语料库模拟语言环境,逆文档频率: IDF=log(语料库文档总数/包含该词汇文档数目+1)
这样该词汇出现频率越高,那么IDF值越小,加1是防止包含词汇数目为0情况。
3 ID-IDF取值为两者乘积,那么就可以获取那些在平时文档相对少见,但是在特定文章中出现较多字眼,这些就是ID-IDF算法选定的关键字。
本文是学习:阮一峰老师文章笔记http://www.ruanyifeng.com/blog/2013/03/tf-idf.html