一种基于XLNet的自动摘要方法与装置与流程

文档序号:22243478发布日期:2020-09-15 19:59阅读:331来源:国知局
一种基于XLNet的自动摘要方法与装置与流程

本发明属于信息处理技术领域,具体涉及一种基于xlnet模型的自动摘要方法与装置。主要利用神经语言模型xlnet提取文本的语义信息,克服了传统方法对词语语义、句法结构信息提取不足的问题,且对输入文本的序列长度不做限制,能够灵活准确地从文本中提取摘要语句。



背景技术:

随着互联网技术尤其是移动互联网技术的不断发展,人们的学习、工作、生活等方方面面都与网络密切相关。网络上的信息为人们带来了便利,但面对数量庞大的网络信息,人们难以从中挑选出对自己最有用的信息,文本自动摘要正是解决这一问题的关键技术之一。针对一篇文本或多篇相似的文本,利用文本摘要技术获取其核心、简明、自然的摘要信息,可以在一定程度上减轻读者搜集、阅读文档的繁重压力;此外,生成的摘要还可以被应用于搜索引擎、推荐系统等领域,使其更精确地获得文档的核心内容,从而提升性能。

自动摘要技术要求计算机能够为输入的文档生成一个包含其主要内容的短句,主要分为两种模式:生成式摘要(abstractivesummarization)与抽取式摘要(extractivesummarization)。前者要求计算机在理解原文的基础上,自动地组织词句,生成出一个句子作为摘要;后者则是从原文中选取一些关键的语句作为摘要。相比较而言,生成式摘要不仅需要计算机“理解”文档,还要自己生成语句,受限于自然语言处理技术的发展,生成的摘要往往词不达意,同时包含大量的语法错误,让人难以理解;抽取式摘要的语句均来自原文,语法错误较少,更便于后续的使用。

近年来,已有许多方法被应用到自动摘要领域。早期的研究主要通过统计字词的分布规律,以及人工构造规则等方法来寻找文章的关键句作为摘要。例如通过统计文章所有词语的tfidf值,结合句子在文章中的位置,句子的长度等信息,计算最终的得分并选取分数最高的句子作为摘要。这样的方法虽然形式简洁,易于理解,却忽略了词句自身的语义信息,往往要人工构造大量规则,费时费力且效果不佳。

随着深度学习的发展,通过多层人工神经网络提取语义信息的方法被广泛应用于自然语言处理领域。词嵌入技术通过在海量开放语料中的训练,得到词语的语义信息;循环神经网络(recurrentneuralnetwork,rnn)与transformer结构则被设计并用于理解词语序列构成的句子与篇章。将这两种方法结合,并辅以特殊的训练方法,可以得到能为文章中的每一个单词分别生成上下文相关词向量的神经语言模型(neurallanguagemodel,nlm),其中广为人知的模型包括bert、xlnet等。其中xlnet采用计算得到词语的相对位置编码,理论上支持无限长的文档序列建模,但其未考虑句子在文档中的位置信息,可能对文档摘要任务带来不利影响。



技术实现要素:

发明目的:本发明目的在于提出一种基于xlnet的自动摘要方法与装置,利用神经语言模型xlnet提取文本的语义信息,并引入绝对位置编码,克服传统方法对词语语义、句法结构信息提取不足的问题,且对输入文本的序列长度不做限制,能够灵活准确地从文本中提取摘要语句。

技术方案:为实现上述发明目的,本发明所述的一种基于xlnet的自动摘要方法,首先对文本文档进行预处理,按句切分,并将每句话按xlnet词表切分为词语序列。接着构建xlnetsum模型,并基于随机梯度下降算法在有标签的训练集数据上进行训练,并利用验证集评价模型是否训练完成。最后用训练好的模型对测试集文本的句子进行预测评分,并通过后处理得到各个文本的摘要。

具体包括如下步骤:

(1)将文本按句进行切分,将句子按词进行切分,在每个句子前增添显示的用于明确句子界限的占位符;每个单独的句子将作为模型中的最小评分单元,以及摘要的最小组成单元;

(2)构建基于xlnet模型的xlnetsum模型,包括输入层、多层transformer-xl、全局位置编码信息层和输出层;其中输入层将输入的词语序列转化为词嵌入向量与句序号;多层transformer-xl用于从输入的词嵌入向量与句序号中获取文本的语义信息,为文本中的每一个词语生成上下文相关的动态词向量;全局位置编码信息层用于利用三角函数的周期性给出位置信息,并将每个句子中用于明确句子界限的占位符对应的动态词向量和全局位置编码拼接作为句子的特征向量;输出层将句子的特征向量转化为归一化的输出,表示对应的句子属于摘要内容的概率;

(3)将经步骤(1)处理后的训练集文本输入xlnetsum模型,得到模型对文本中各个句子的评分,通过损失函数计算当前模型在训练集上的误差,并利用随机梯度下降算法进行反向传播,更新xlnetsum模型的参数;通过验证集上的损失判断模型训练是否完成,并选取验证集损失最低的模型作为输出模型;

(4)将经由步骤(1)处理后的测试集文本输入训练完成的xlnetsum模型,得到文本中句子的评分,基于评分进行后处理,选择最为重要的若干句子作为摘要。

作为优选,所述步骤(1)中将句子切分为词序列时,首先统计模型词表中的所有词语,并为其构建前缀树;将每一个句子从首个字符开始,与前缀树进行最大长度匹配,通过贪心算法将句子切分为词语序列,作为模型的输入。

作为优选,所述步骤(2)中全局位置编码信息的计算方式为:

其中pos∈[0,l),是词语所处的位置,l是文本序列的总词语数,q是大于l的常数,m是动态词向量的维度,upos∈rm,维度与xlnet的动态词向量输出一致,upos,r是upos向量的第r项。

作为优选,所述步骤(3)中的损失函数基于标准交叉熵设计,计算方法为:

其中n为当前样本的语句总数,labi和outi分别为第i句话的标签和预测值

作为优选,所述步骤(4)中在进行后处理时利用3-gram排除信息冗余的句子,并为每个文本选择最多3个句子作为摘要。

基于相同的发明构思,本发明所述的一种基于xlnet的自动摘要装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序被加载至处理器时实现所述的基于xlnet的自动摘要方法。

基于相同的发明构思,本发明提供一种存储装置,存储有可在处理器上运行的计算机程序,所述计算机程序被加载至处理器时实现所述的基于xlnet的自动摘要方法。

有益效果:与现有技术相比,本发明具体有如下优点:

(1)基于神经语言模型xlnet,能够在极大程度上获取文本中词语、句法结构等语义信息,缓解了传统模型语义提取不足的缺点,有效地提高了模型对文本的理解能力。

(2)通过易于扩展的相对位置编码技术,xlnetsum模型受文本长度上限影响较小,能够灵活地处理超长文本的输入,为其抽取准确的摘要语句。

(3)标准xlnet忽略了语句在文本中的绝对位置信息,也就忽视了总起句、总结句等特殊位置的语句与普通语句的不同。xlnetsum模型引入绝对位置编码技术,缓解了这一问题。

附图说明

图1为本发明实施例中xlnetsum模型的结构图。

图2为本发明实施例中生成文档摘要的流程图。

图3为测试集中的一篇文章样例图。

具体实施方式

下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。

在本实施例中,采用cnn/dailymail数据集对本方法进行说明。该数据集是文本摘要领域数据量最大、应用最广的数据集,包括来自cnn的92579篇新闻和来自dailymail的219506篇新闻,每篇新闻都附有对应的人工摘要语句。按照数据集推荐的划分方法,将其分为训练集、验证集和测试集(分别各287227、13368、11490篇文章),每个数据集的文本均预先通过贪心算法由人工摘要语句得到摘要标签。以下为本发明实施例公开的一种基于xlnet的自动摘要方法,具体实施步骤:

步骤1,数据预处理。对于数据集中的一篇文本,首先将其切分为不同的句子。句号、问号、感叹号、省略号、英文句点或换行符等字符均可视为一句话的结束,每个单独的句子将作为模型中的最小评分单元,以及摘要的最小组成单元。在本数据集中,每篇文本的句子间均以换行符分割。然后利用标准xlnet词表构建前缀树,以贪心算法对切分后的每一句话进行分词并将词语转化为对应的id,使其符合模型的输入要求,并在每句话前增添[sep]占位符的id,指明不同句子的界限。最后,考虑到此数据集中文章普遍较长,本实施例将设定模型输入最大长度为2048,对于超出长度的序列,直接截断后续词语,对于长度不足的序列,以0补齐。对于训练集和验证集,还要将其摘要标签转化为向量表示,便于模型计算损失。向量标签形如

lab=[lab1,lab2,lab3,...]

其中lab∈rn,n是文本词语序列的句子数。labi与词语序列中的每一个[sep]占位符对应,当对应语句属于摘要句时,labi=1;否则labi=0。

步骤2,构建xlnetsum模型。如图1所示,模型每次输入一个文本序列,最终得到文本中各个句子的评估结果(out)。具体而言,该步骤的实施分为以下子步骤:

子步骤2-1,构建输入层,将输入的词语序列转化为词嵌入向量与句序号。其中词嵌入由文本的词语id转化而来,以固定的词向量表示文本序列中的每一个词语,可通过查表的方法获得。句序号与文本的句子相对应,属于相同句子的词语共享相同的句序号,以向模型指明不同句子的区别。词嵌入向量与句序号是标准xlnet的输入。

子步骤2-2,构建xlnet模型。标准xlnet是一个由多层transformer-xl叠加而来的模型,可以从输入的词嵌入向量与句序号中获取文本的深层语义信息,并为文本中的每一个词语生成上下文相关的动态词向量。

子步骤2-3,构建全局位置编码信息层。标准xlnet中忽略了词语和句子在全文的位置,此设计对摘要抽取任务不利。因此需要重新构建全局位置编码信息,此处利用三角函数的周期性给出位置信息:

其中pos∈[0,l)是词语所处的位置,l是文本序列的总词语数。q是一个远大于l的常数,本实施例中可取10000或以上整数。upos,r是upos向量的第r项,r∈[0,m),与动态词向量的维度m匹配。将每个句子中[sep]占位符对应的动态词向量和全局位置编码拼接,其中词向量在前,位置编码在后,形如

epos=concat(cpos,upos)

其中epos∈r2m是pos位置的拼接向量,cpos∈rm与upos∈rm分别是该位置的xlnet动态词向量输出与绝对位置编码。

子步骤2-4,构建输出层,将句子的特征向量转化为归一化的输出,表示对应的句子属于摘要内容的概率。具体而言,首先将特征向量由全连接层转化为标量,然后利用sigmoid函数归一化为概率。

步骤3,模型训练,通过训练集和验证集数据得到可用的xlnetsum模型。在在训练前,先从经过预训练的标准xlnet中加载对应神经网络层的参数,不属于xlnet的其余层则采用随机初始化的方法获取参数。在训练时,每批次中向xlnetsum模型提供训练集中的2个样本,得到样本中各个句子的输出out,通过损失函数评价out与数据集提供的标签lab的差异,并求得损失函数对各个参数的梯度,利用基于随机梯度下降法的adam优化器对模型参数进行更新。每隔5000个批次保存一次模型,并在验证集上计算模型的损失,直至验证集的损失不再下降为止,并以验证集损失最小的模型作为最终的模型。损失函数的计算方法为:

步骤4,模型预测,为测试集文本抽取摘要语句。如图2所示,首先将测试集的文本按步骤1所述切分;然后输入xlnetsum模型,得到每个句子属于摘要的概率评分,最后基于评分进行后处理,选择最为重要的若干句子作为摘要。本实施例中,在进行后处理时利用3-gram排除信息冗余的句子,并为每个文本选择最多3个句子作为摘要。具体而言,首先将所有句子按评分由大到小排列;然后逐个将评分最大的句子加入到摘要中,并在当前句与已选摘要有3-gram重复是跳过该句;最后在选够三句或处理完所有句子时停止挑选。所谓3-gram是指在文中连续出现的3个字(中文)或者3个单词(英语),表1给出了关于n-gram的两个具体的示例。

表1n-gram示例

图3为测试集中的一篇文章样例,斜体部分为模型选择的摘要语句,加粗部分为数据集标签给出的摘要语句。可以看出二者完全吻合。

为进一步说明本发明所提方案的优秀性能,表2以rouge-1、rouge-2、rouge-l的f1值为评价指标,列出了本发明所提方法与传统模型的结果对比。其中rouge-1与rouge-2是rouge-n指标在n=2时的特例,计算方法为

其中x、s分别是抽取的摘要和数据集给出的人工摘要,ngram是语句中长度为n的连续短语,countmatch(ngram)指抽取结果与标准摘要中ngram匹配的个数,count(ngram)指摘要中ngram的总个数。rouge-l的计算方法为

recall=lcs(s,x)/s

precision=lcs(s,x)/x

lcs是两个句子间最长公共子序列的长度,s为标准摘要s的长度,x为抽取摘要x的长度,recall是召回率,precision是精确率。

rouge-1与rouge-2分别重点关注字和短语级别的信息复现,而rouge-l则基于最大公共子序列,着重考虑整个摘要的完整性。采用f1而非单纯的精确率与召回率,则可以同时兼顾模型输出结果的准确性和完整性。

表2对比实验的结果

由表中结果可以看出,本发明所提方法在各项指标上均优于传统方法。

基于相同的发明构思,本发明实施例公开的基于xlnet的自动摘要装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被加载至处理器时实现上述的基于xlnet的自动摘要方法。

基于相同的发明构思,本发明实施例公开的一种存储装置,存储有可在处理器上运行的计算机程序,该计算机程序被加载至处理器时实现所述的基于xlnet的自动摘要方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1