TopicRank: Graph-Based Topic Ranking for Keyphrase Extraction
TopicRank简介
TopicRank是2013年的一种无监督关键词抽取算法,其还是一种基于图的关键词抽取算法,主要创新点在于会依赖文档的主题进行辅助辅助排序。候选关键词将以主题进行划分,被用作完整的词图节点。
相对于TextRank算法,我们算法的优势在于:1、对主题而不是单词进行排序,是一种更直接的方法,可以涵盖文档主要主题的关键短语集。为此,我们只需从每一个排名靠前的聚类中选择一个候选关键词。将候选关键字短语聚类到主题中也消除了冗余,同时强化了边缘。(这点非常重要,关键词排名的性能很大程度上取决于图的简洁性,以及它精确表示文档的语义能力)2、使用了一个完整的图能够好地捕捉主体之间的语义关系。
TopicRank思想
SingleRank是对文档中每一个词(通常是名词或者形容词),然后后面对所有的词进行组合,最终对组合后的词进行重要性排序。(组合计算的公式是对词中的每个字得分进行相加,这样就会导致有些其实是非关键词的词得分偏高), 在此基础上,作者提出的TopicRank是通过对单个和多个单词表达式进行排序(其实也就是直接且分出词,在构建词图,而不是将文档先划分成每个字,在构建字图,在组合成词)。
TopicRank实现
图1 TopicRank实现流程图
TopicRank实现的两大步骤:
1.对文档进行处理(句子分割、词性标记和序列标注)。
2.根据主题在文档中的重要性对主题进行排序,并通过为每个最重要的主题选择一个关键短语候选来提取关键短语。
关键词候选词通常是独立处理的,它们所代表的主题信息分散在整个图中。
图的构建方式,包含边的权重和图的点:
其中w i , j 代表的是关键词结点c i 和c j 之间在文档中的的距离(也称为偏移位置);pos(c i)代表的是关键词节点c i 的所有偏移位置。
图2 TopicRank抽取示例
TopicRank实现
实验数据集:Inspec、SemEval 2010、WikiNews(https://github.com/adrien-bougouin/WikinewsKeyphraseCorpus)、DEFT。
表1 四种数据集详情
TextRank是一个未加权的图,SingleRank是一个用词之间共出现次数加权的图。也就是是否考虑了窗口进入算法中。
算法实现参考:TopicRank源码实现
TopicRank总结
TopicRank针对SingleRank的不足提出了一种基于主题为背景的无监督关键字抽取算法。TopicRank算法先对候选词进行层次聚类,得出多个不同主题,然后将这些主题作为结点添加到完全图上。这个完全图代表了文档的主题呈现。使用PageRank算法对主体进行评分,然后通过每个排名靠前的主题中选择最具代表性的候选主题来提取关键短语。
优势:对于数量冗余的候选词进行聚类,抽取的关键词将覆盖文档的大多数主题。完全图的使用还捕捉了主体之间的关系,而无需任何手动定义的参数,比使用共现窗口连接的效果更佳。