TF-IDF算法:提取关键词

2017-07-22  本文已影响745人  南极有条沙丁鱼

想要提取一篇文章的<b>关键词</b>,最直接的思维方式就是出现的越频繁的词就意味着越重要,但停用词需要除外。一篇文章中出现最多的就是停用词,只有避开这些无用的词,才能有效进行关键词打分。
<b>停用词</b>:出现次数最多的词是----"的"、"是"、"在"----这一类最常用的词。它们叫做"停用词"(stop words),表示对找到结果毫无帮助、必须过滤掉的词。
<b>TF-IDF</b>(term frequency–inverse document frequency)是一种用于资讯检索与资讯探勘的常用加权技术。
TFIDF的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。

TF词频计算公式.png
tf参数:
ni,j:是该词文件dj中出现次数,分母是在文件dj中所有字词的出现次数之和
idf逆文档频率计算公式.png
idf参数:
|D|: 语料库(corpus,用来模拟语言的使用环境)中的文件总数,
|{j : ti ∈ dj}| :包含词语ti的文件数目(即ni,≠0的文件数目),如果该词语不在语料库中,就会导致被除数为零,因此一般情况下使用:1+|{j : ti ∈ dj}|
tf-idf计算公式.png

TF-IDF = 词频(TF) x 逆文档频率(IDF)

包含该词的文档数 IDF TF-IDF
芯片 62.3 0.603 0.0121
汽车 0.484 2.713 0.054
无人驾驶 0.973 2.410 0.0482

从上表可见,"汽车"的TF-IDF值最高,"无人驾驶"其次,"芯片"最低。(如果还计算"的"字的TF-IDF,那将是一个极其接近0的值。)所以,如果只选择一个词,"汽车"就是这篇文章的关键词。

除了自动提取关键词,TF-IDF算法还可以用于许多别的地方。比如,信息检索时,对于每个文档,都可以分别计算一组搜索词("芯片"、"汽车"、"无人驾驶")的TF-IDF,将它们相加,就可以得到整个文档的TF-IDF。这个值最高的文档就是与搜索词最相关的文档。

TF-IDF算法的优点是简单快速,结果比较符合实际情况。缺点是,单纯以"词频"衡量一个词的重要性,不够全面,有时重要的词可能出现次数并不多。而且,这种算法无法体现词的位置信息,出现位置靠前的词与出现位置靠后的词,都被视为重要性相同,这是不正确的。(一种解决方法是,对全文的第一段和每一段的第一句话,给予较大的权重。)

上一篇下一篇

猜你喜欢

热点阅读