搜索微信公众号:‘AI-ming3526’或者’计算机视觉这件小事’ 获取更多AI干货
csdn:https://blog.csdn.net/abcgkj
github:https://github.com/xiaoming3526/ai-ming3526
所谓自动文摘就是利用计算机自动地从原始文献中提取文摘,文摘是全面准确地反映某一文献中心内容地简单连贯的短文。
互联网迅速发展伴随着每天产生大量的文本数据,文摘是文本的主要内容,用户想查询和了解自己关注的话题需要花费大量时间进行选择和阅读文章,并且文摘任务单靠人工也是无法实现的。为了应对这种状况,学术界尝试使用计算机技术实现对文献的自动处理,自动文摘即为研究之一。应用场景:
根据与原文的关系分为:
根据处理文档的数量分为:
根据面向的用户分为:
根据是否需要训练语料库分为:
本文主要从抽取式和生成式两方面进行介绍。
主要思想:是将文本看作是句子的线性序列,将句子看作是词的线性序列,通过计算句子的权重得分,排序抽取重要的句子。
计算句子权重的依据主要包括:
优点: 简单易用,不受领域限制,在新闻领域基于规则的方法效果突出。
缺点: 对词句的使用大多停留于表面信息,且容易造成文摘句子冗余,在主题覆盖面上也很难满足。故学者一般都将基于规则和统计的方法与其他方法相结合,例如 Ko, Youngjoong[6]提出一种结合统计信息和上下文信息的自动文摘方法。
主要思想: 将句子作为节点,构建拓扑结构图,边的建立主要通过计算两个句子间的相似度,如果相似度大于给定的阈值,则两个节点之间建立一条边。
用于文本的基于图模型的排序算法代表算法:
TextRank | LexRank | |
---|---|---|
句子相似度 | 两个句子的相同词个数,也就是词共现个数计算 | 基于 TF-IDF 向量的余弦相似度方法 |
面向的文档对象数量 | 单文档 | 多文档 |
图模型文摘抽取的主要步骤:
图模型的构建的主要步骤:
这两种方法虽然也能有效的计算两句子相似度,但忽略了句子的语义信息。
Ferreira[12]提出了一种包含了句法分析、语法分析以及语义成分分析的句子相似度测量方法。Wei[13]提出一种基于查询的句子相似度计算方法,指出query 不应只限于影响节点,更应该影响节点间的权重,并开发了一种基于查询的相似度度量方法。Ramesh 提出基于 WordNet 的句子相似度计算方法,在许多情况下,两个完全不同的篇章单元可能存在语义相关,希望通过 WordNet 资源和语义图来克服这种问题,该算法使用文本节点之间的语义关联来构造语义图,并利用排序算法对节点进行排序。Ramesh[14]提出基于维基百科的句子相似度计算方法,建立一个句子-概念二部图,然后在图上迭代更新对输入句子进行排序。并且在建立的多个二部图模型上都得到了收敛性质。
基于主题的自动文摘方法主要利用文本的语义信息,挖掘句子间的语义关系,将代表文本主题的句子最佳文摘。
基于整数规划的自动文摘方法是将文摘抽取问题转化成整数线性规划问题,在文摘长度等若干限制条件下,求全局最优解。
基于 ILP 的文摘抽取系统的过程是:文档清理(文档格式化,去除无用符);分句(使用 splitta1分句,每行一句);抽取概念并计算其权重;句子剪枝(将词数少于 10 的句子剪枝);写 ILP 需要的问题描述公式,并调用 ILP solver2,将文摘结果按原文顺序输出。
基于 ILP 的文摘抽取方法效果较好,在文摘长度的约束条件下,最大化文摘和原文的相似度,能覆盖到整篇文档,且减少冗余。
缺点: 是由于选择概念和计算权重等计算量较大,比其他文摘抽取方法耗时久。
在自然语言处理领域,生成式文摘研究一直是一个热门且复杂的课题,生成式自动文摘系统应该是能理解所有文档内容并且重新组织产生连贯的、简短的且能传达原文重要信息的摘要[20]。
本文重点使用解码器是根据编码器对源语言的抽象表示预测目标词序列的,正是这种抽象表示为生成式自动文摘提供了可能。本文虽然实现了基于深度学习模型的生成式自动文摘,但仍有很多弊端,如生成重复词等问题。
部分生成式自动文摘方法都是将生成过程分成两部分[21]:
近年来,深度学习方法在很多自然语言处理任务上表现突出。括语音识别、机器翻译、自动问答、命名实体识别等多项任务中深度学习都表现出相当不错的成绩。学术界也开始将深度学习模型应用于生成式自动文摘任务。
障碍: 公开的大规模文摘语料太少,并且人工构建大规模文摘语料十分难。经典的 DUC,TAC 和 TREC 语料也只有数百篇人工英文文摘。
EMNLP 2015发布了一个大规模新浪微博中文文摘语料库,包含 240 多万篇人工文摘和微博原文,并且提出了一个基于 GRU 的 Encoder-Decoder 深度学习模型方法作为基线方法[25] 。
论文中对比了将单个汉字作为输入(将字典大小降到 4,000)和将分词后的词语作为输入(词典大小降到 50,000),实验结果显示将单个汉字作为输入效果更好,原因是词典大小有限,有些文章中的词不在词典中,出现未登录词的情况。并对比了两种模型结构,第一种结构是在 Decoder 中不使用所有文本,即只将 RNN 最后一层的隐状态作为 Decoder 的输入。第二种结构是 Decoder中使用所有文本,即将 Decoder 的所有隐状态的组合作为 Decoder 的输入[26]。实验结果显示使用所有的文本的模型效果更好。
在 RNN 方面,使用 Chung 提出的 GRU(gated recurrent unit)模型[27]GRU 被证明效果与 LSTM 差别不大,但在收敛速度上更胜一筹[28]。因为现有的生成式文摘方法经常遇到未登录词和生成重复词问题,针对这两个问题,NLPCC2017 年 Single Document Summarization任务中 The state of art 的系统提出了基于双向 LSTM 的 Encoder-Decoder 模型和Joint Attention 机制的方法,针对未登录词问题,使用在输入序列加上 Subword机制[29]处理。针对生成重复词问题,使用 Joint Attention 机制,在 Decoder 输入序列加 Attention 机制,为了在每个 timestep 存储和传送更加全面的信息,并在Encoder 输出序列加 Attention 机制,通过回顾之前的输出信息来避免生成重复短语,这是因为 Encoder 所有时刻的输出共用一个 Context Vector,后边的信息可能会将之前的信息稀释或者覆盖。
自动文摘评价指标主要从文摘的连贯性、可读性、信息覆盖度、长度、冗余度等方面来评价,目前比较流行的方法是 ROUGE 方法,ROUGE 评价方法是由 Flick[30]基于机器翻译的自动评价方法研发的。该评价方法的主要思想是通过比较生成的文摘和人工文摘之间的相似内容,一般是 N 元词共现来评价文摘质量,是自动文摘领域比较权威的测评方法。ROUGE 评价包括五个评价指标:
ROUGE-N,系统文摘和人工文摘的 n-gram 共现统计。ROUGE-1 表示意愿字共现,ROUGE-2 代表二元字共现。ROUGE-N 只能评价准确率,不能评价召回率。 ROUGE-N 计算公式如式(1-1)所示。
ROUGE-W,在 ROUGE-L 的基础上,引入了加权洗漱,考虑了序列的连续匹配。
ROUGE-S,基于系统文摘和人工文摘的顺序词对统计。F 值计算公式如式(1-8)所示,召回率计算如式(1-6)所示,精确率计算如式(1-7)所示。
ROUGE-SU,对 ROUGE-S 和 ROUGE-1 进行综合加权。Lin[31]通过实验证明:ROUGE-2,ROUGE-L,ROUGE-W 和 ROUGE-S 用于单文档自动文摘任务时效果较好;ROUGE-1,ROUGE-L,ROUGE-W,ROUGE-SU 用于评价短文摘时效果较好;ROUGE-1,ROUGE-L,ROUGE-W,ROUGE-SU 用于多文档自动文摘任务时效果较好(匹配时需要去停止词);使用多个人工文摘可以提高评价的准确性。