关键短语生成研究现状

2020-11-26 05:02王艺霖
现代计算机 2020年7期
关键词:短语关键自动

王艺霖

(四川大学计算机学院,成都 610065)

0 引言

关键短语是文本信息的精简概括,能够代表文本的主题和核心观点[1]。高质量的关键短语有利于读者方便、快速地理解文章内容,所以很多学者研究如何从文章中自动抽取和生成关键短语。从文章中生成关键短语的方法不仅可以生成在文本中出现的关键短语,还可以生成在文章中没有出现的关键短语,自动生成关键短语任务是自然语言处理和信息检索的基本任务之一,自动生成关键短语的方法有助于文本摘要、文本分类、观点挖掘、文本索引、文本聚类等[2]下游任务。下面对当前自动生成关键短语的任务进行总结。

1 关键短语

关键短语是能够代表文章主题的短语,关键短语具有以下几个属性[3]:

完整性:生成的关键短语应该与人工标注的关键短语完全相同,而不是生成在人工标注的关键短语下部分子串。例如,人工标注的关键短语是“机器学习”,生成的关键短语也应该是“机器学习”,而不应该生成“机器”或“学习”这种关键短语。

主题相关性:生成的关键短语应该与文章的主题密切相关,而不是生成与文章无关的关键短语。例如,文章的主题是机器学习,生成的关键短语应该与机器学习这个主题密切相关,如人工智能等关键短语。

覆盖性:生成的关键短语应该能覆盖文章的主要内容。例如,一篇文章从经济、政治、科技、文化的角度来介绍成都,生成的关键短语需要覆盖这四个方面,而不是只覆盖其中几个方面。

现有工作中把关键短语分为在文章中出现的关键短语和在文章中没有出现的关键短语。现有的方法可以分为两种:自动抽取关键短语的方法和自动生成关键短语的方法。自动抽取关键短语的方法可以抽取在文章中出现的关键短语,而自动生成关键短语的方法不仅可以生成在文章中出现的关键短语,还可以生成在文章中没有出现的关键短语,下面对这两种方法进行总结。

2 自动抽取关键短语的方法

自动抽取关键短语的方法是从文章中自动抽取具有重要性和主题性的关键短语。自动抽取关键短语的方法一般分为两步:第一步,通过启发式规则从文章中选出多个候选关键短语,例如使用N-Grams[4]或词性模板匹配的方式[5]从文章中选出候选关键短语。第二步,使用有监督或无监督方法对候选关键短语进行排序,最后按照分数的高低选出前N个候选关键短语作为关键短语。具体来说,有监督方法把关键短语抽取问题看成二分类问题,通过训练分类器来判断候选短语是不是关键短语,而无监督方法不仅有使用PageRank算法对文章中每个单词计算得分,然后把每个单词得分相加或相乘得到每个候选短语的得分,最后按照候选短语得分从高到低选取前N个作为关键短语[6],还有使用主题聚类的方法[7]找到有关文章主题的关键短语。有研究学者发现有些关键短语不会在文章中出现,而自动抽取关键短语的方法不能抽取没在文章中出现的关键短语,所以提出自动生成关键短语的方法。

3 自动生成关键短语的方法

自动关键短语生成方法不仅可以生成在文章中出现的关键短语,还可以生成在文章中没有出现的关键短语。2017年Meng[8]提出CopyRNN模型使用注意力机制[9]和拷贝机制[10]的序列到序列[11]模型,既可以生成在文章中出现的关键短语,还可以生成文章中没有出现的关键短语。训练的时候输入是文章摘要,输出是一个关键短语,测试的时候使用beam search来生成过量的候选关键短语,最后按照候选关键短语的得分从高到低选取前N个候选短语作为关键短语。作者分别对在文章中出现的关键短语和没有在文章中出现的关键短语进行了实验,在文章出现的关键短语的效果要比没有在文章出现的关键短语好,没有在文章中出现的关键短语只使用召回率查看效果,而且效果不是很好,说明没有在文章出现的关键短语相比在文章出现的关键短语很难生成,需要进一步对没有在文章中出现的关键短语建模来提高效果。

自从上述模型提出后,有大量学者进行了改进。下面对这些相关工作进行汇总。

针对上述模型在捕捉语义方面的问题,很多论文提出了改进点,在考虑短语之间关系方面,2018年Chen[12]针对CopyRNN没有考虑短语之间的关系提出了CorrRNN模型,该模型使用coverage机制考虑已生成短语在文中的语义表达和review机制考虑已生成短语的语义表达避免产生表达相同意思的关键短语,提高生成关键短语的多样性以及降低生成短语的冗余度。

在考虑文章标题方面,因为文章标题中含有文章的主题以及部分关键短语并且之前工作忽视了文章标题的重要性,所以2018年Chen[13]提出了TG-Net模型通过对文章标题进一步编码来提升文章标题在编码端的重要程度,促进模型生成更多与文章标题语义相关的关键短语,并且提升了在文章出现的关键短语和没有在文章出现的关键短语的效果。

在考虑数据不足方面,2018年Ye[14]考虑到上述关键短语生成模型只能在丰富的语料上训练模型,在语料较少的数据上训练模型效果较差,因为序列到序列模型参数很多,需要大量标注好关键短语的文本,科技类论文有很多标注好关键短语的文本,CorrRNN模型就是使用这种数据来训练模型,但是使用模型应用到其它领域,有可能其他领域有标注关键短语的文本很少,很难训练效果较好的关键短语生成模型,所以提出使用半监督的方式充分利用较少有关键短语的语料和很多没有标注关键短语的语料来提高生成关键短语的效果。

在考虑额外数据方面,2019年Chen[15]提出多任务学习的框架使用关键短语抽取模型、额外与输入文档相关的短语以及关键短语生成模型三种共同提高关键短语生成的效果,该模型类似集成的思想,使用有关关键短语抽取的特征、关键短语生成的特征以及与该文章相似的关键短语语义编码共同决策来生成关键短语,虽然这种多任务很新颖,但是效果提升较少、效果不明显。

2018年Yuan[16]针对之前所有模型在测试时使用beam search生成过量关键短语,然后选取固定个数的短语作为关键短语的问题,例如选取前5或10个关键短语,Yuan认为在测试时需要根据文章语义来生成不同个数的关键短语,提出了使用短语序列训练模型,因为短语序列中有短语分隔符和结束符,所以使用短语序列来训练模型可以在测试的时候根据结束符来生成任意个数的关键短语。进而提出catSeq模型使用注意力机制和拷贝机制的序列到序列模型根据文章的语义来生成任意个数的关键短语,提出了适用于测试时不同个数关键短语的评价指标来进行评价。

2019年Hou[17]针对catSeq模型生成短语个数较少的缺点提出使用适应性回报的强化学习RL来训练catSeq模型促进模型生成很多并且准确的关键短语。通过在回报上使用召回率来鼓励模型生成更多的关键短语,其中,生成错的关键短语也不会进行惩罚,模型通过一段时间训练后可以产生大量关键短语,但是关键短语的准确率很低,作者又再在回报上使用F1值来鼓励模型生成更加准确的关键短语。由于使用召回率和F1值来鼓励模型生成更加准确以及更多的关键短语,该值是不可微的,无法进行求导,所以该作者使用强化学习对模型进行训练。关键短语任务很适合使用强化学习针对关键短语生成的问题可以通过修改回报来解决某些问题。

虽然关键短语生成任务很适合使用强化学习来训练模型,但是有以下几个问题:

动作空间大,该任务动作空间很大,例如词表大小为5万个词,动作空间为5万,探索空间很大导致模型训练时间相比有监督训练时间长很多而且训练过程中很不稳定。

回报设计难,设计一个很好的回报来鼓励模型生成关键短语是非常重要的,特别是立即回报。

效率低,使用强化学习来训练关键短语模型需要大量探索其他词以及利用现有的词,训练效率相比有监督学习效率太低。

4 结语

本文对关键短语抽取和关键短语生成的论文进行了总结,分别介绍了关键短语抽取和生成的基本流程,对关键短语生成模型的相关工作进行了进一步分析。虽然有很多论文解决关键短语生成问题,但是还有很多缺点以及效果需要进一步提高。

猜你喜欢
短语关键自动
硝酸甘油,用对是关键
高考考好是关键
自动捕盗机
让小鸭子自动转身
自动摇摆的“跷跷板”
关于自动驾驶
《健民短语》一则
蒋百里:“关键是中国人自己要努力”
鹏鹏猪