NLP调研1 - 文本自动摘要概况
本次调研内容,是围绕“文本自动摘要”进行的概要性调研。调研的主要内容为,自动摘要的类型、应用程序和摘要系统和摘要评价技术这三个方面。以北大研究成果PKUSUMSUM为基础,研究其实现过程和原理,随后通过查询相关资料,完善“文本自动摘要”知识的体系内容。
1 概要
1.1 应用范围
针对新的文本类型进行自动摘要:学术文献、 会议记录、 电影剧本、学生反馈、软件代码、 直播文字;文本摘要技术的发展趋势: 结合文本摘要与语音合成技术的新闻自动播报、 多语言/跨语言文本摘要、 针对不同领域多类型文本的摘。
多文档摘要(后文将提到):例如:在互联网上使用搜索引擎时,搜索同一主题的文档往往会返回成千上万个网页,如果将这些网页形成一个统一的、精炼的、更够反应主要信息的摘要必要有重要意义。另一方面,对于网络上某一新闻单位针对同一事件的系列报道,或者对某一事件数家新闻单位同一时间的报道,若能从这些相关性很强的文档中提炼出一个覆盖性强、形式简洁的摘要也同样具有重要意义。
1.2类型
按照不同的标准可以划分为不同的类型,下面主要介绍按照摘要和原文关系进行划分:
基于抽取的摘要(Extraction-based summarization)
在这个摘要任务中,系统将抽取整个对象集合,但并不对其做修改。例如关键字提取,其目的是选择个别单词或短语作为文档和文档摘要的”标签“。之后选择句子(句子不需要修改)来创建一个简短的摘要。其本质是转化为一个排序问题,给每个句子打分,将高分的句子筛选出来。经典的方法为LexRank。综合实现难易度和实现结果,该目前使用方法最为合适。
另一种思路是通过压缩句子来实现——压缩式摘要(compressive),有部分资料也将其分为一类,这里放在抽取式中来介绍。其做法是对句子进行压缩和抽取两种操作,经典的方法为ILP:句子中的每个词都对应一个二值变量表示该词是否保留,并且每个词都有一个打分,目标函数就是最大化句子中的词的打分,在处理的过程中给出限制。能有效提高ROUGE值(在后面会介绍到,对摘要进行评价),但会牺牲句子可读性。
在后面的方法程序介绍中,均采用此类型。
基于抽象的摘要(Abstraction-based summarization)
在这个摘要任务中,系统将试图去理解文章的内容和意思,它不仅将那些视为重要的信息进行抽取,同时抽象释义出源文档的内容。这种方法更加接近摘要的本质,但是技术难度较大,目前效果欠佳。因此并未对此领域进行进一步调研。
其他分类方法
根据功能划分:可分为指示型摘要、报道型摘要和评论型摘要;根据输入文本的数量划分,可分为单文档摘要和多文档摘要,此内容将在后面介绍;根据原文语言种类划分,可分为单语言摘要、跨语言摘要。
1.3 实现基本步骤
一般来说,自动摘要过程包括以下三个基本步骤:
文本分析过程 是对原文文本进行分析处理,识别冗余信息;
文本内容的选取和泛化 是从文档中辨识重要信息,通过摘要或概括的方法压缩文本,或者通过计算分析的方法形成文摘表示;
文摘的转化和生成 实现对原文内容的重组或者根据内部表示生成文摘,并确保文摘的连贯性。
2.应用程序和摘要系统
2.1 实现技术
通过调研,初步研究了PKUSUMSUM ,并调研出HanLP和YAHA两个基于分词实现自动摘要的系统。
PKUSUMSUM
该系统是由北大万小军老师课题组制作的,集成多种无监督摘要提取算法,支持多种语言和多种摘要任务,采用Java编写,代码完全开源。说明文档
以下列举了其采用的多种方法和摘要任务的匹配方案。其中对于`Submodular`算法存在两种类型,是根据两篇论文分别对其的实现。
Method | Single-document | Multi-document | Topic-based Multi-document |
---|---|---|---|
Coverage | - | Yes | Yes |
Lead | Yes | Yes | Yes |
Centroid | Yes | Yes | Yes |
TextRank | Yes | Yes | - |
LexPageRank | Yes | Yes | - |
ILP | Yes | Yes | - |
Submodular1 | Yes | Yes | - |
Submodular2 | Yes | Yes | - |
ClusterCMRW | - | Yes | - |
ManifoldRank | - | - | Yes |
PKUSUMSUM系统使用的算法非常丰富,日后将对这些方法进行深入研究。
其处理流程大致如下,系统拿到文档后,对文档根据语言的不同进行相应的分词处理,并将分词结果带入到算法中得出摘要。在整个系统中,多种算法与文档的语言并没有直接关系。只需要将文档语言与分词工具的语言对应好即可。但调研中发现有一类文档属于多语言融合,关于处理此类文档其语言和算法直接是否相关还有待考证。
HanLP 和 YAHA
HanLP是由一系列模型与算法组成的Java工具包,目标是普及自然语言处理在生产环境中的应用。HanLP的主要功能点在于中文分词上有十分丰富的方法,并具备语料库。
对于自动摘要功能,HanLP较为简单,只通过TextRank进行摘要,不支持多文档摘要。
YAHA和HanLP类似,不过YAHA是基于Python开发的一款工具。着重点依然是在分词技术上,提供有两种自动摘要的方法,但是并未对其具体算法进行描述。日后可对其算法进行探究。
2.2 多文档摘要
面临问题
在单文档摘要系统中,一般都采取基于抽取的方法。而对于多文档而言,由于在同一主题中不同文档中不可避免的存在信息交叠和信息差异,因此,如何避免信息冗余,同时反应出来不同文档的信息差异是多文档摘要中的首要目标。另外,单文档的输出句子一般都按照句子所在原文中出现的顺序排序,而在多文档摘要中,大都采用时间顺序排列句子,如何准确地得到每个句子的时间信息,也是多文档摘要中需要解决的一个重要问题。
如前文指出的三个基本步骤,无论采取什么方法,都需要面临三个关键问题:①文档冗余信息的识别和处理;②重要信息的辨别;③生成文摘的连贯性。
处理方法
常用的冗余识别方法有两种:一种是聚类方法,测量所有句子对之间的相似度,然后用聚类方法识别公共信息的主题,如McKeown等人的工作;另一种方法是采用候选法,将系统首先测量候选文段与已选文段之间的相似度,仅当候选段有足够的新信息时才将其入选,如最大边缘相关法MMR (Maximal Marginal Relevance)。
辨识重要信息常用方法有抽取法和信息融合法。抽取法的基本思路是选出每个聚类中有代表性的一部分(一般为句子),默认这些代表行的部分(句子)可以表达这个聚类中的主要信息。例如上文中介绍的PKUSUMSUM系统中Centroid里采用的MEAD方法。信息融合(information fusion)的目的是要生成一个简洁、通顺并能反映这些句子(主题)之间共同信息的句子。为达到这个目标要识别出对所有入选的主题句都共有的短语,然后将之合并起来。
为了确保摘要句子的一致性和连贯性,需要排列进句子的先后顺。目前采用的句子排序方法通常有两种:一种是时间排序法(chronological ordering),另一种是扩张排序算法(augmented algorithm)。
3.摘要评测
分类
评测的方法可分为两类:
内部评价方法(Intrinsic Methods)在提供参考摘要的前提下,以参考摘要为基准评价系统摘要的质量。通常情况下,系统摘要与参考摘要越吻合,其质量越高。
外部评价方法(Extrinsic Methods)不需要提供参考摘要,利用文档摘要代替原文档执行某个文档相关的应用。例如:文档检索、文档聚类、文档分类等,能够提高应用性能的摘要被认为是质量好的摘要。
其中内部评价方法,是比较直接比较纯粹的,被学术界最常使用的文摘评价方法,将系统生成的自动摘要与专家摘要采用一定的方法进行比较也是目前最为常见的文摘评价模式。
下面介绍两个比较简单的,也是在自动摘要评价以及自动文档摘要的相关国际评测中经常会被用到的两个内部评价方法:Edmundson和ROUGE。
Edmundson评价
Edmundson评价方法比较简单,可以客观评估,就是通过比较机械文摘(自动文摘系统得到的文摘)与目标文摘的句子重合率(coselection rate)的高低来对系统摘要进行评价。也可以主观评估,就是由专家比较机械文摘与目标文摘所含的信息,然后给机械文摘一个等级评分。 类如等级可以分为:完全不相似,基本相似,很相似,完全相似等。
Edmundson比较的基本单位是句子,通过句子级标号分隔开的文本单元,句子级标号包括“。“ “:” ”;“ ”!“ “?”,并且只允许专家从原文中抽取句子,而不允许专家根据自己对原文的理解重新生成句子,专家文摘和机械文摘的句子都按照在原文中出现的先后顺序给出。
计算公式:
每一个机械文摘的重合率为按三个专家给出的文摘得到的重合率的平均值:
即对所有专家的重合率取一个均值,Pi为相对于第i个专家的重合率,n为专家的数目。
ROUGE准则
ROUGE是由ISI的Lin和Hovy提出的一种自动摘要评价方法,现被广泛应用于DUC1(Document Understanding Conference)的摘要评测任务中。
ROUGE基于摘要中n元词(n-gram)的共现信息来评价摘要,是一种面向n元词召回率的评价方法。ROUGE准则由一系列的评价方法组成,包括ROUGE-1,ROUGE-2,ROUGE-3,ROUGE-4,以及ROUGE-Skipped-N-gram等,1、2、3、4分别代表基于1元词到4元词以有跳跃的N-gram模型。在自动文摘相关研究中,一般根据自己的具体研究内容选择合适的N元语法ROUGE方法。
计算公式:
其中,n-gram表示n元词,{Ref Summaries}表示参考摘要,即事先获得的标准摘要,Countmatch(n-gram)表示系统摘要和参考摘要中同时出现n-gram的个数,Count(n-gram)则表示参考摘要中出现的n- gram个数。
不难看出,ROUGE公式是由召回率的计算公式演变而来的,分子可以看作“检出的相关文档数目”,即系统生成摘要与标准摘要相匹配的N-gram个数,分母可以看作“相关文档数目”,即标准摘要中所有的N-gram个数。