基于语义依存和外部知识库的关键词抽取
2022-03-22廖光忠
倪 兵,廖光忠+
(1.武汉科技大学 计算机科学与技术学院,湖北 武汉 430081; 2.武汉科技大学 大数据科学与工程研究院,湖北 武汉 430081)
0 引 言
随着互联网上文本数据的大量增长,从文本中提取出具有核心思想的关键词这一技术得到了巨大的发展,但面对网络上日益繁杂的数据,其效果仍有待进一步提升[1]。在众多的关键词抽取方法中,以TextRank为代表的基于图的方法具有简单易部署、效果不错、易于融合其它各种特征等优点,成为了近年来的研究热点[2,3]。在对TextRank算法的改进上,多数是通过改进词图中节点的得分计算公式,从而选取出更合适的文本关键词[4]。这类方法典型的有将TF-IDF(term frequency-inverse document frequency)融合到TextRank中[5,6];在词图的迭代计算过程中加入词位置和语义特征[7,8];将文档中的词频、词长和词性等特征融入其中[9-11]。此外,还有利用文档主题模型将文档集中每篇文档的主题以概率分布的形式给出,然后据此计算候选关键词的主题特征影响力[12]。在机器学习方面,有使用Word2vec进行词向量表征,获取词向量模型,通过词向量融合了语义特征,优化了TextRank中均等的概率转移问题[13,14]。上述方法多数还是通过基础的共现窗口来构建词图,然而在中文中,句子中相邻的词语间多数并不具备认知上的语义关联,针对这方面的改进,有使用句法依存代替共现窗口构建词图[15]。本文一方面以语义依存图代替共现窗口构建词图,相比于句法依存,能从句子的底层语法结构上获取词语间更深层的语义联系。同时引入规范化谷歌距离(normalized Google distance,NGD)[16]和外部领域词典对候选关键词加权计算得分,综合考虑了文档的内外部信息。然后对获取的关键词应用本文提出的前后向匹配算法做进一步处理,得到的关键词可读性更好。
1 TextRank的不足
TextRank继承自PageRank的思想,其将文档中的候选关键词看作是PageRank中的网页,将共现窗口内的候选关键词进行组合构建词图[17]。词图中的顶点为候选关键词,边是词语与其共现窗口内其它词语的共现关系,以此来模拟PageRank中网页间超链接的连接关系。在给候选关键词打分的过程中,TextRank根据式(1)进行多次迭代计算,获取词图中各顶点所代表的候选关键词的得分,然后选取出得分最高的前N个候选关键词作为文档的关键词
(1)
使用TextRank对候选关键词打分与PageRank对网页打分的原理是一致的,然而TextRank在关键词抽取过程中存在一些不足,具体表现在以下几点:
(1)在PageRank中,如果一个网页中有超链接指向另一个网页,那么就代表这两个网页具有相关性。而在Text-Rank中,是根据两个词语是否出现在同一个共现窗口内来判断的,但是在同一个共现窗口内的词语大部分并不具备任何语义上的相关性,仅仅只是位置上的临近而已。
(2)TextRank方法并未考虑不同重要性的词语对最终选取文档关键词的影响[18],同时在词图中某条边的权重只受到对应两个候选关键词的共现频次影响,没有考虑其间的语义关联,最终选取的文档关键词受词频的影响很大,降低了关键词抽取的正确率。
(3)最终得到的文档关键词在可读性上受中文分词技术的影响很大。例如,很多中文分词工具会将“自然语言处理”分割为“自然”、“语言”和“处理”;“关键词提取”分割成了“关键词”和“提取”。这导致最终得到的文档关键词缺乏可读性,不具有完整的语义。
2 研究方法
2.1 词图构建
本文使用讯飞开放平台提供的语义依存图分析对句子中各个语言单位间的语义关联进行分析,并将语义关联以依存结构呈现。语义依存图分析会直接将文档进行分句、分词和词性标注,然后对每句话中各个词语构建出语义结构上的依存图关系,以“组建中国南水北调集团有限公司”这句话为例,其语义依存图结构如图1所示。
图1 语义依存图结构
在PageRank中,一个网页中有超链接指向另一个网页,那么这两个网页在内容上是存在关联的。在图1中,“组建”与除“有限公司”外的其它词语并未有语义上的关联,而使用共现窗口,“组建”与其它每个词语都会有一个无向边相连。相较于共现窗口,语义依存分析可以很好描述句子中各个语言单位之间的语义关联,所构建的有向词图具有认知上的语义联系,更加符合PageRank中网页间通过超链接的指向关系,并且去除了共现窗口大小对最终获取文档关键词的影响。此外,相较于句法分析,语义分析通过标记句子中各个语言单位间的语义关系,可以更加直接地获取深层的语义信息。
当前的语义依存关系有主要语义角色、事件关系和语义依附标记3大类型,前两大类型描述了语义角色间的关系。这3类语义依存关系共包含71种具体的关系类型,可以非常详细准确地描述句子中各个语言单位。对于关键词抽取而言,主要语义角色和事件关系是核心,是分析句子的主要成分,而语义依附标记所对应的语气等依附性词语基本不会成为一个文档的关键词。因此,当两个词语间的关系是语义依附标记时,就抛弃其出链所指向的词语,不将其加入词图中。
在部分事件关系和主要语义角色中,有向图边的指向是以谓语动词为核心。比如,在“我送她一束花”中,其施事关系指向是“送→我”;在“国家依法宣判”中,其方式角色关系的指向是“宣判→依法”,而不是我们习惯上理解的类似于“主→谓”这种结构顺序。但在PageRank中,如果某个网页比较重要,应该有更多的网页指向它,而不是它指向更多的网页,因此针对这几个特殊的关系类型,在构建词图的时候需要转换其边的指向顺序。此外,每个句子中都包含一个根节点Root,其指向句子的核心成分,通常是谓语动词。
对于中文文本而言,每句话的语义依存关系是独立存在的,因此对于一篇文档,只需要依次对其中的每句话进行语义依存分析即可。本文以一个四元组来表示句子中的每个词语,形式为 (Wp,Ww,Wd,Wr), 其中Wp为词语在句子中的位置,Ww为词语本身,Wd为词语在句中的语义依存关系所指向的另一个词语位置,Wr为语义依存关系类型。在构建词图的过程中,以结构体SW存储句子中的各个词语,使用邻接表来存储整个词图,如图2所示。
图2 词图的邻接表存储格式
其中,n为文档中总的词语个数,x为文档中某个候选关键词。左侧第一竖列代表文档中所有的候选关键词,对于每个SWi∈n, 右侧是与其具有语义依存关联所指向的其它词语,通过链表相连接。
2.2 候选关键词打分
2.2.1 规范化谷歌距离
规范化谷歌距离(NGD)被用来计算两个词或短语的语义相似度,在自然语言中,具有相同或相似意思的两个关键字在以规范化谷歌距离为单位的情况下趋向于“接近”,意思不同的两个关键字则趋向于“疏远”。该算法假设若两个词语出现在同一个文档中则代表两者具有语义关系,因此当两个词语出现在同一文档中的次数越高,那么其语义相似性就更强
(2)
N是外部数据集中总的文档数量,当采用维基百科作为外部数据集时,则为下载的词条总数;p(Vi) 可以看作是一个函数,输入词语Vi, 返回数据集中包含词语Vi的文档数量;p(Vi,Vj) 则是输入两个词语,返回同时包含这两个词语的文档数量。使用式(2)计算的NGD数值范围在零到正无穷之间,等于零代表两个词语是完全相同的,等于正无穷则代表两个词语是完全独立的,没有任何语义上的相似性。使用NGDR(Vi,Vj) 表示两个词语的NGD数值的倒数。
本文基于维基百科这个外部知识库来使用规范化谷歌距离度量词语相似度,首先从网络上下载维基百科词条;其次对下载的每个词条文档去除html标签等内容,只保留标题和正文,并且对这些文档进行预处理,内容包括切词、去除停用词等不具备实意的词语;最后对所有的词语建立倒排索引,每个词语对应一个倒排链,链表上的内容为包含这个词语的维基百科词条。基于倒排索引,可以很容易计算出任意两个词语的NGD数值。以SWi∈n来代替式(1)中的Wij, 则有式(3)
(3)
2.2.2 外部领域词典加权
领域词典是相关领域内常用词汇的集合,对于某些文档,尤其是专业性较强的文档,其关键词很有可能是对应领域的专业词汇,因此当一个候选关键词出现在领域词典中,其成为文档关键词的概率应更高[19]。本文使用清华大学推出的开放领域词库作为外部领域词典。对于将词库中的所有词语存储入位图中以及查询要抽取关键词的某个文档中的词语是否处于词库中时,借鉴布隆过滤器的思想,如图3所示。
图3 存储和查询词语
首先对词库中的每个词语使用K个哈希函数求哈希值,那么会得到K个不同的哈希值,分别记作 [X1、X2、…、XK]。 然后将这K个哈希值作为位图中的下标,对应的 [Bitmap[X1]、Bitmap[X2]、…、Bitmap[XK]] 都设置为1。当要查询文档中某个词语是否处于这个词库中时,使用同样的K个哈希函数对这个词语求K个哈希值,若这K个哈希值作为位图中的下标对应的位都为1,则说明这个文档中的词语处于词库中,当有一个不为1则说明其不处于词库中。该方法存在一定程度的误判,对于存在于位图中的词一定可以判断为存在,但是对于不存在于位图中的词也可能判断为存在。不过实验中位图的装载因子(存在的词条数/位图中能容纳的词条数)大小可以容忍这种误判的概率,并且也可以通过调整哈希函数的个数、位图的大小和存储词语的个数之间的比例,使得误判的概率降到非常低。
在给词语进行外部词典加权的过程中,首先对每个词语设置一个初值为1的λ, 之后按照式(4)依次对文档中每个词语计算
(4)
式中:freq(Vi) 表示词语Vi在文档中出现的次数。这样在进行外部领域词典加权的同时也考虑了词频对文档关键词的影响。若词语Vi的领域词典加权得分为λi, 则其归一化权重如式(5)所示
(5)
最终计算候选关键词得分公式为
(6)
在使用式(6)的计算过程中,当前后两次迭代计算结果的值小于指定的阈值时判定为收敛,当算法收敛或者迭代的次数超过设定的最大迭代次数时计算停止。计算过程中阈值取值为0.0001,最大迭代次数为200。
2.3 补充关键词语义完整性
分词是在文档预处理阶段进行的,而由于目前分词算法的不足,会导致将具有完整语义的词语进行切分,最终抽取的文档关键词也会缺乏可读性。若最终的文档关键词不具有完整语义,则即使在词图迭代计算过程中的得分很高,也是毫无意义的,因此对最终得分TOP-N的关键词做进一步处理,使其更具有可读性。
本文提出一种前后向匹配的方法应用于获取的文档关键词中,使其更具有可读性。对每个选取的文档关键词,具体的处理过程如下所示:
(1)在原文档中找到包含关键词的句子集合T;
(2)依次对T中包含的每个句子进行分词和词性标注,然后去除不包含实意的特定词性的词语,包括代词、介词、连词、助词、感叹词和标点符号,得到剩下的词语集合S,S是T中单个句子经过处理后的词语集合;
(3)在句子集合T中找到关键词在集合S中所在的位置,然后进行前后向匹配;
(4)若某个词语匹配的句子数量与集合T中所有的句子数量的比值大于α(α∈0.5~1) 时,则将这个词语按照原有的顺序附加到原关键词上,组成一个新的关键词。需要注意的是,当某个词语匹配率低于值α, 则该方向的匹配结束,只进行另一方向的匹配。
(5)对所有新的关键词进行去重处理,得到文档最终的关键词。
本文提出的关键词抽取方法总体流程如图4所示。
图4 关键词抽取流程
3 实验结果和分析
3.1 实验数据集
实验数据采用在多个网络新闻平台上抓取IT、经济和日常社会性新闻共400篇,其中IT和经济各100篇,日常社会性新闻200篇。爬取的文档格式为XML,所以需要先进行清洗,去除标签只保留标题、关键词和正文内容。由于实验结果严重依赖于新闻中标注的关键词,但是经过观察发现原有的关键词并不是太准确,因此本文采用多人人工交叉的方式进行手动标注,为此召集数十名校内相关专业的师生完成。每篇文档提取的关键词在4~6个,在实验中按照文档已有的关键词个数动态改变算法的关键词提取数量。
3.2 评价指标
关键词抽取效果的评判标准采用准确率P、召回率R和F1值,其计算公式为
(7)
(8)
(9)
在前后向匹配算法中,α的值对最终获取的文档关键词有较大的影响。若该值太低,则可能将一个本不需要补充语义完整性的关键词进行了补充;若该值太高,则又可能将一个需要补充语义完整性的关键词忽略了,因此,α的取值对前后向匹配算法至关重要。经过大量的数据实验,得出了以下结果:根据表1,当α取值为0.8时,召回率最大,效果最好。
表1 α取值对召回率的影响
3.3 实验结果和分析
对同一篇文档进行是否应用前后向匹配算法的关键词可读性效果对比,以展示本文所提出的改进关键词可读性算法的效果。实验使用了一篇主题为“新时代中国共产党的历史使命”的文档,字数1528,以及一篇主题为“中国高速发展”,字数1906,各抽取5个文档关键词,其对比结果见表2。
表2 关键词可读性对比
为了说明本文所提出方法的有效性,选取了4个已有的无监督基于图的关键词提取方法进行对比,实验结果见表3。
表3 实验结果对比
TFIDF-TextRank是结合了TF-IDF和TextRank两个传统方法,将TFIDF融入TextRank中改进词图中边的权重转移;EPRank是融合了词位置和词向量Word2vec,对TextRank算法进行加权,改进词图迭代过程中的词打分公式。这两个方法在准确率、召回率和F1值上具有一定的提升,但总体来说优化的效果并不明显。根据实验数据对比,本文提出的方法明显优于其它4个关键词提取方法,这验证使用语义依存分析代替共现窗口以及借助外部知识库特征进行加权的方式是有效的。
实验发现,文中的方法在100篇IT新闻和100篇经济新闻中关键词抽取的效果好于在日常社会性新闻中抽取的效果,考虑到外部领域词典的影响,在专业性更强的文档下外部领域词典能发挥的作用更大,因此这种情况是合理的。另外,此方法在构建词图的过程中没有消除停用词或特定词性的词语,而是在语义依存分析结束后去除语义依附标记类关系的词汇,这种做法更符合PageRank的思想,避免得到的关键词结果受文档信息不完整的影响。
4 结束语
本文使用语义依存关系代替共现窗口构建词图,使用基于维基百科的规范化谷歌距离以及引入外部领域词典来给候选关键词打分,并提出了前后向匹配算法来提高关键词的可读性。实验结果表明,文中所使用的方法显著提升了关键词抽取的效果,相较于TextRank方法,在准确率、召回率和F1值上分别提升了18.6%、19.7%和17.1%,并且实验过程无需受到各种参数的制约,实现简单。此外,根据表3的对比可知,对抽取的文档关键词应用于前后向匹配算法能较好提升关键词的可读性,使其表达的语义信息更完整。接下来的工作是融合其它语义和统计特征来继续改进词图中节点的打分公式,同时进一步改善关键词可读性问题。