WikiRank: Improving Keyphrase Extraction Based on Background Knowledge
WikiRank简介
WikiRank是2018年提出来的,作者认为背景知识可以提供文档的有价值信息,但是它们很少呗应用到关键词抽取任务中来。作者为此提出一种基于维基百科为背景知识的关键词抽取算法。先按照常规,对文档进行分词来构建词图,然后将将关键词抽取任务看成是图的优化问题。作者最后获得2%的F1-score的提升。
WikiRank思想
WikiRank主要是在TopicRank的基础上继续修改,填补TopicRank的不足之处。TopicRank采用了主题式关键字抽取(来覆盖文档的主题信息),使用LDA算法来提取文档的顶部主题,然后将每个主题下的候选关键词分数相加,来得到最后某个主题的总体得分。TopicRank也存在两个缺点:1、主题太过笼统;2、因为采用的是LDA算法对文档主题进行提取,只能对其进行简单的分类,而不知道确切的主题意思,这样就存在很大的问题(一词多义问题)。为此作者针对以上问题提出了基于背景信息的WikiRank算法,来提升关键词抽取的效果。并且作者将其转化为一个最有化求解问题,极大地减小了剪枝计算的复杂度。
OverGeneration Errors(过度生成错误):关键词中某个字可能在很多文档中出现了,所以和这个关键字组成的短语可能将会被作为候选关键字被选中。但是这样也会存在很大的问题,因为有些词如“cattle(牛)”在一个文档中出现了很多次,可能文档中的"British cattle"将不被划分为关键词,但是其他词"cattle industry"、“cattle feed”、"cattle brain"将可能作为候选关键词。这将会导致准确率降低。(出现这个问题的原因在于,无监督关键词抽取多个词的关键字得分等于单个词得分之和。在监督学习中也常用单字图作为特征来提取关键词)
Redundancy errors(冗余错误):输出关键词出现相同意思的词。
Infrequency errors(罕见错误):不能识别出现次数较少的关键词。
WikiRank实现
实现步骤可以总结为三个点:
1.构建一个语义图,包含文档概念和关键词。
2.使用启发式方式对图进行剪枝,来过滤掉错误生成的候选词。
3.生成最佳的候选词集合作为输出。
TAGME来获取文档的底层概念,是一个强大的主题注释器,能够识别出短文本中句子和它相关的Wikipedia页面,其实也就是词的补充信息。这些信息有利于寻找词与词之间的相关性、分类和聚类。
图1 wikipedia对文档进行信息补充
生成候选关键词使用一个标准的POS标注器,候选词通常遵循以下模板
(JJ)∗(NN∣NNS∣NNP∣NNPS)
其中J J 代表的是形容词,NN,NNS,NNP,NNPS都是代表一些名词组成形式。
构建语义图,这个图不像常规的词图一样。该图结点不仅仅只有词还存在一些语义概念(concept),组成了图的所有结点。如果该词通过TAGME可以得到这个concept,那么这个concept和这个词就存在变得连接关系。
具体每个概念的计算得分如下所示:
图2 候选关键词生成算法
剪枝算法过程:
1.去除候选关键词p 从原始的图G上,如果它不存在任何的concept连接。
2.去除关键词p从原始的图G 上,如果它连接到的文档仅存在一次,并且只有一个concept。
3.去除关键词p 从原始的图G上,如果一个concept连接超过m个关键词,p将满足以下两个条件之一:A、没有和其他concept相连(仅仅与该concept连接);B、得分太低,低于得分第m个词的得分。
WikiRank实验
数据集:DUC-2001、Inspec、NUS Keyphrase Corpus、ISCI Meeting Corpus。
实验结果如下表所示:
表1 各种不同算法实验的得分结果