文档关键字

TextRank

TextRank的思路来自于PageRank。PageRank最开始用来计算网页的重要性。整个互联网可以看作一张有向图,节点是网页。如果网页A存在到网页B的链接,那么有一条从网页A指向网页B的有向边,指向同一个网页的链接越多,该网页的重要性或者说PageRank值更大。综合考虑Title和Keywords等其它因素之后,Google通过PageRank来调整结果,使那些更重要的网页在搜索结果排名更靠前。

TextRank的原理和PageRank类似,一篇文档去掉停用词以后,每个单词相当于一个网页,有时候也会指定某些词性的单词才参与计算TextRank,比如名词和动词。网页有明显的指向关系,但是文档的单词之间只有前后关系,所以要指定一个滑动的窗口大小,比如前后5个单词。在滑动窗口内的单词之间的前后关系当做网页之间的指向关系,参与TextRank的计算。使用TextRank和TFIDF进行文档关键字自动提取-图1

TFIDF

测试数据

测试数据挑选了写本章时的一条新闻,新闻内容如下:

>据半岛电视台援引叙利亚国家电视台称,叙利亚已经对美国、英国、法国的空袭进行了反击。据介绍,在叙军武器库中,对西方最具威慑力的当属各型战术地对地弹道导弹。尽管美英法是利用巡航导弹等武器发动远程空袭,但叙军要对等还击却几乎是“不可能完成的任务”。目前叙军仍能作战的战机仍是老旧的苏制米格-29、米格-23、米格-21战斗机和苏-22、苏-24轰炸机,它们在现代化的西方空军面前难有自保之力,因此叙军的远程反击只能依靠另一个撒手锏——地对地战术弹道导弹.

提取关键字

Jieba提供了TextRank实现,直接使用默认参数就可以完成关键字的提取。

  1. 远程/
  2. 空袭/
  3. 电视台/
  4. 战术/
  5. 反击/
  6. 空军/
  7. 现代化/
  8. 叙利亚/
  9. 地对地/
  10. 只能/
  11. 武器/
  12. 任务/
  13. 国家/
  14. 据介绍/
  15. 法国/
  16. 进行/
  17. 当属/

Jieba提供了接口,设置关键字的个数以及提取的关键字的词性,比如:

  • topK,指定关键字的个数
  • allowPOS,指定关键字的词性,常见的词性包括:
    • n 名词
    • nr 人名
    • ns 地名
    • nz 其它专名
    • t 时间词
    • v 动词
    • vd 副动词
    • vn 名动词

我们只提取10个关键字,且只关注名词和动词以及名动词。

生成的结果如下所示,基本满足我们的需求了。

  1. 叙军/
  2. 远程/
  3. 电视台/
  4. 战术/
  5. 反击/
  6. 现代化/
  7. 叙利亚/
  8. 地对地/

使用TFIDF提取关键字

生成的结果如下所示,与TextRank相比差别不大。

  1. 叙军/
  2. 地对地/
  3. 空袭/
  4. 弹道导弹/
  5. 远程/
  6. 叙利亚/
  7. 电视台/
  8. 反击/
  9. 战术/

参考资料

  • Rada Mihalcea and Paul Tarau,TextRank: Bringing Order into Texts
  • The PageRank Citation Ranking:Bringing Order to the Web