基于神经网络生成文本摘要的方法与流程

文档序号:14677344发布日期:2018-06-12 21:41阅读:317来源:国知局
基于神经网络生成文本摘要的方法与流程

本发明涉及自然语言处理技术领域,尤其涉及一种基于神经网络生成文本摘要的方法。



背景技术:

我们正在处于信息爆炸的时代,在享受多样信息所带来的各种便利的同时,人们越来越迫切地希望能够对信息进行提炼与浓缩,以较少的文字表达主要内容和中心思想,从而减少信息获取的时间。尽管大多数科技论文都附有作者自己撰写的摘要,但是社会科学领域的许多文章、新闻报道以及其它文字资料都没有手工文摘。然而,手工编写摘要需要对原文内容进行全面的了解,因此摘要的手工撰写过程相当花费时间。对于某些专业领域的文献,摘要的手工编写还需要一定的专业知识和丰富的行业经验,而能够达到这种要求的人还很少。互联网的迅速崛起使得文本信息呈爆炸性增长,这就导致手工编写摘要需要越来越多的人力,而这显然是不现实的。

现有技术中自动生成文档摘要的方法有很多,但基本上都集中在抽取式方法中,其基本流程通常分为两步,首先,通过语言学知识或统计分析抽取文档中的段落、句子、短语或关键词;然后将抽取的文本进行重组得到文本摘要。虽然采用抽取式方法来提取摘要在一定程度上避免了人们必须通读全文以了解重要信息的问题,但是在内容和语言质量方面都不能令人满意。因为通过抽取式方法得到摘要中的句子仅仅是原文档中一些重要句子的简单拼凑,没有关联性,导致信息片段化、有歧义,最终导致用户不能准确理解。

因此,有必要发明一种新的自动生成文档摘要的方法。



技术实现要素:

本发明之目的是提供一种基于神经网络生成文本摘要的方法,其能够自动生成文本摘要,并且生成的文本摘要内容通顺流畅,句子之间具有高度的关联性。

本发明提供一种基于神经网络生成文本摘要的方法,其中,该方法包括如下步骤:

S100、将原始文本进行分词处理,对经过分词处理后的单词进行向量化表示得到词向量;

S200、将步骤S100中得到的每个句子的全部词向量按顺序输入第一循环神经网络的第一层,得到输入每个词后的句子状态向量,其中,每个句子的最后一个状态向量代表该句子的句向量;

S300、将每个句子的句向量按顺序输入到第一循环神经网络的第二层,得到输入每个句子后对应的文档状态向量,其中,输入最后一个句子得到的文档状态向量为摘要的初始结构;

S400、将所述摘要的初始结构输入到第二循环神经网络进行解码;

S500、将解码获取的每个单词对应的向量和所述摘要的初始结构输入到所述第二循环神经网络,得到摘要的第一个单词和摘要文档的第一个状态向量;然后将得到的所述第一个单词和得到所述第一个摘要文档的状态向量输入到所述第二循环神经网络中,得到摘要的第二个单词和摘要文档的第二个状态向量;将得到的新单词和得到该新的摘要文档的状态向量循环输入到所述第二循环神经系统中,直到摘要生成完毕。

作为优选方式,所述第一神经网络包括多个层级结构,用于生成表示句子级别和文档级别的文本状态向量。

作为优选方式,所述第一循环神经网络为多层双向GRU神经网络,每个所述层级结构包括多个相连的GRU网络模块,并且,

不同所述层级结构的所述GRU网络模块的参数不同,以便处理不同级别的文本。

作为优选方式,所述GRU神经网络包括两个层级结构,

所述第一循环神经网络的第一层用于生成表示句子级别的文本状态向量;

所述第一循环神经网络的第二层用于生成表示文档级别的文本状态向量。

作为优选方式,所述第一循环神经网络的第一层包括多个相连的GRU1网络模块,用于得到每个句子的状态向量;

所述第一循环神经网络的第二层包括多个相连的GRU2网络模块,用于得到所述文档状态向量。

作为优选方式,所述第二循环神经网络为GRU解码神经网络,包括多个相连的GRU3网络模块。

作为优选方式,所述GRU1网络模块、所述GRU2网络模块和所述GRU3网络模块的结构相同,参数不同。

作为优选方式,步骤S200中将步骤S100中得到的每个句子的全部词向量按顺序输入第一循环神经网络的第一层,得到输入每个词后的句子状态向量包括:

将第i个所述词向量和第i-1所述词向量对应句子的状态向量输入到第i个所述GRU1网络模块中,经过第i个所述GRU1网络模块处理得到输入第i个词向量后句子的状态向量。

作为优选方式,步骤S300中将每个句子的句向量按顺序输入到第一循环神经网络的第二层,得到输入每个句子后对应的文档状态向量包括:

将第i个所述句向量和第i-1个所述句向量对应的文档状态向量输入到第i个所述GRU2网络模块中,经过第i个所述GRU2网络模块处理得到输入第i个所述句向量后对应的文档状态向量。

作为优选方式,其中,步骤S100中采用Word2Vec中基于层次化soft-max的CBOW模型对所述经过分词处理后的单词进行向量化表示。

作为解释说明:

Word2Vec是一种预测模型,可以高效地学习嵌入字,Word2Vec的基本思想是把自然语言中的每一个词,表示成一个统一意义统一维度的短向量,具体的有CBOW(连续词袋模型)和skip-gram模型。其中,CBOW适合小型数据集,并且是使用上下文预测目标词;skip-gram适合大规模数据集,并且是使用目标词预测上下文。

本发明具有以下优点和有益效果:

1、本发明的基于神经网络生成文本摘要的方法,无需依赖人工的经验知识,例如词性标注,句法分析,篇章结构分析等,通过循环神经网络能够自动生成文本摘要,并且利用该方法生成的文本摘要的句子之间关联性强、没有歧义,能够帮助用户准确理解文档。

2、本发明采用的为CBOW模型,根据上下文预测目标词,从而有效的根据输入文档得到文档的摘要,并且利用CBOW模型可以有效控制词向量的维度,并且可以表示词与词之间的关系,进而降低编码的难度。

3、本发明的基于神经网络生成文本摘要的方法,利用CBOW模型对词汇进行向量表示,可以有效控制词向量的维度,降低编码难度,提高编码效率,并且能够有效避免传统方法中得到的摘要中含有字面不相似而词义相似的词语的问题,比如“计算机”和“电脑”按照传统方法是没有相似性的,但是按照词向量的表示则能够体现这种字面不匹配而语义匹配的相似性,进而避免相同词义的词重复出现。

4、本发明的基于神经网络生成文本摘要的方法,能够有效提高生成文本摘要的效率和准确率,并且可以降低人工撰写摘要的成本。

附图说明

下面将简要说明本申请所使用的附图,显而易见地,这些附图仅用于解释本发明的构思。

图1是本发明的基于神经网络生成文本摘要的方法的流程图;

图2是本发明的基于神经网络生成文本摘要的方法中GRU网络模块的结构图;

图3是本发明的基于神经网络生成文本摘要的方法的循环神经网络结构图。

附图标记汇总:

1、第一循环神经网络的第一层 2、第一循环神经网络的第二层

3、第二循环神经网络

具体实施方式

在下文中,将参照附图描述本发明基于神经网络生成文本摘要的方法的实施例。

在此记载的实施例为本发明的特定的具体实施方式,用于说明本发明的构思,均是解释性和示例性的,不应解释为对本发明实施方式及本发明范围的限制。除在此记载的实施例外,本领域技术人员还能够基于本申请权利要求书和说明书所公开的内容采用显而易见的其它技术方案,这些技术方案包括对在此记载的实施例做出任何显而易见的替换和修改的技术方案。

本说明书的附图为示意图,辅助说明本发明的构思,示意性地表示各部分的形状及其相互关系。请注意,为了便于清楚地表现出本发明实施例的各部分的结构,各附图之间不一定按照相同的比例绘制。相同或相似的参考标记用于表示相同或相似的部分。

下面具体介绍本发明的实施例。

参见图1,在本实施例中,本发明提供一种基于神经网络生成文本摘要的方法,包括如下步骤:

S100、将原始文本进行分词处理,对经过分词处理后的单词进行向量化表示得到词向量;

S200、将步骤S100中得到的每个句子的全部词向量按顺序输入第一循环神经网络的第一层,得到输入每个词后的句子状态向量,其中,每个句子的最后一个状态向量代表该句子的句向量;

S300、将每个句子的句向量按顺序输入到第一循环神经网络的第二层,得到输入每个句子后对应的文档状态向量,其中,输入最后一个句子得到的文档状态向量为摘要的初始结构;

S400、将摘要的初始结构输入到第二循环神经网络进行解码;

S500、将解码获取的每个单词对应的向量和摘要的初始结构输入到第二循环神经网络,得到摘要的第一个单词和第一个摘要文档的状态向量;然后将得到的第一个单词和得到第一个摘要文档的状态向量输入到第二循环神经网络中,得到摘要的第二个单词和第二个摘要文档的状态向量;将得到的新单词和得到该新的摘要文档的状态向量循环输入到第二循环神经系统中,直到摘要生成完毕。

需要说明的是,步骤S100中的分词处理是将文本中的字符串切分成合理的、符合语境意义的词语序列的过程,它是自然语言理解和文本信息处理的关键技术和难点之一,也是自动生成摘要研究框架中的一个重要处理环节。中文的词语切分问题比较复杂,其原因在于词语之间没有明显的标记,词语的使用灵活、变化多样、语义丰富,容易产生歧义。据研究,基于统计的中文文本分词的主要难点在于歧义消解和新词发现,而通过规则可以明显降低这些错误,因此,本发明的方法采用统计+规则的方式对文本进行分词,进而降低错误率。

另外,对单词进行向量化表示的模型包括One-hot模型和Distributed模型。其中,One-hot模型简单,但是其维度无法控制,并且词与词之间的关系无法表示,因此,本方法采用Distributed的模型,具体采用Word2Vec中基于层次化softmax的CBOW模型对单词进行向量化表示。

优选地,第一神经网络包括多个层级结构,其中每个层级结构包括多个组成模块,处于不同层级结构的模块的参数不同,进而实现用不同的层级结构处理不同级别的文本,以便生成表示单词级别和句子级别的文本状态向量。

具体在本实施例中,第一循环神经网络为多层双向GRU神经网络,包括两个层级结构,每个层级结构包括多个相连的GRU网络模块,不同层级结构的GRU网络模块的参数不同,以便处理不同级别的文本,其中,第一循环神经网络的第一层1包括多个相连的GRU1网络模块,用于得到每个词向量的状态向量;第一循环神经网络的第二层2包括多个相连的GRU2网络模块,用于得到每个句向量的状态向量。

通过将不同级别的文本采用不同的层级结构表示,能够有效降低失误了,提高编码效率,并且,通过层级结构的处理先将句子总结,然后对所有句子总结,步步深入进而使得到的文本摘要具有高度的概括性和关联性。

在本方法的文本表示中,首先通过第一循环神经网络对文本进行建模,然后得到该短文中每个词对应时刻的状态向量,该模型使用词向量完成对短文本中每个词的状态向量表示。其中,如图2所示,步骤S200中的第一循环神经网络中采用门循环计算单元(Gated Recurrent Unit,GRU),该单元的计算公式如下:

rt=σ(Wrxt+Urht-1)

zt=σ(Wzxt+Uzht-1)

上述公式中t代表t时刻,xt为时刻t时输入词的词向量,ht-1为t时刻的上一时刻的词向量输入后得到的句子的状态向量,ht为xt输入后得到的句子的状态向量,需要说明的是,向量的处理顺序是按时间展开的,即,每个时刻对应着一个单词或句子。

具体地,下面以某个句子的第i个词向量输入后生成句子状态向量hi为例具体介绍一个词向量生成与其对应的句子的状态向量的过程。

第i个词向量生成句子的状态向量hi的过程如下:

zi=σ(WzEs(xi)+Uzhi-1)

ri=σ(WrEs(xi)+Urhi-1)

其中,Es(*)表示词向量矩阵中返回对应词的词向量,h-1是初始化为全0的向量。

结合图2和图3可知,词向量在GRU1网络模块完成其状态向量的表示,具体的计算过程是将第i个词向量和第i-1个词向量对应句子的状态向量输入到第i个GRU1网络模块中,经过第i个GRU1网络模块处理得到输入第i个词向量后句子的状态向量。由上述的计算过程可知,在本发明的方法中,由于通过循环神经网络的第一层对句子进行建模,使得t时刻输入单词后对应句子的状态向量理论上包含了该时刻之前的所有单词的信息,也就是说,输入最后一个词后得到的句子的状态向量hn包含了整个句子的所有信息,因此,hn代表了整个句子的状态向量,即句向量。

需要说明的是,上述词向量矩阵是在训练网络的同时训练得到的,该矩阵中每一行对应一个单词的向量,矩阵中的每个参数均是经过训练获取的。具体地,首先对文本中的单词进行统计,选择出现最多的单词作为矩阵中的目标单词,然后随机初始化一个矩阵,在训练中不停的根据目标值调整矩阵中的数据,其中矩阵中对应的单词可以选择最常用的单词,并且单词的个数可以根据需要自己决定,比如10000个或20000个。通过该词向量矩阵后生成的文本摘要引入了外部经验知识,从而使摘要更加准确,句子之间不生硬关联性强。

参见图3,X=<x1,x2,...,xn>表示输入的词语序列,模型依次读入词语,并利用RNN来分别得到它们的隐层表示。经过步骤S200后得到每个句子的句向量,然后通过步骤S300得到每个句子对应的状态向量,其中步骤S300与步骤S200中的网络结构和更新方法相似,例如输入第i个句子后对应的文档状态向量得到的过程为:将第i个句向量和第i-1个句子对应的文档状态向量输入到第i个GRU2网络模块中,经过第i个GRU2网络模块处理得到输入第i个句向量后对应的文档状态向量,其只是将步骤S200中每一步词向量的部分变为句向量,得到每个句子的状态向量,与步骤S200的原理相同,由于输入句向量后得到的文档的状态向量都包含了它之前所有句子的信息,所以得到的最后一个文档状态向量Hm代表了整篇文档的状态向量,即摘要的初始结构。

本发明的方法通过循环神经网络得到的句向量与该句子的所有单词相关,而文档的状态向量又与文档的所有句子相关,从而使得最终得到的文本摘要的句子之间关联性强,没有歧义。

如图3所示,第二循环神经网络3为GRU解码神经网络,包括多个相连的GRU3网络模块。为了生成文本的摘要,首先将摘要的初始结构Hm输入到第二循环神经网络3进行解码;然后将解码获取的每个单词对应的向量和摘要的初始结构Hm输入到第二循环神经网络3的GRU3网络模块中,经过处理得到摘要文档的第一个状态向量S1,将摘要文档的第一个状态向量S1与词向量矩阵进行乘积,然后判断该状态向量对应哪一个单词,进而生成摘要文本的第一个单词w1;然后将得到的第一个单词w1和得到的第一个摘要文档的状态向量S1输入到第二个GRU3网络模块中,得到摘要的第二个单词w2;循环将得到的新单词和得到该新单词后摘要文档的状态向量输入到第二循环神经系统的GRU3网络模块中,直到摘要生成完毕。

需要说明的是,GRU1网络模块、GRU2网络模块和GRU3网络模块的结构相同,参数不同,进而完成不同的步骤,并生成不同的文本。

这样生成的文本摘要的每个词之间都相互关联,并且加引入了外部经验知识,从而使生成摘要的句子之间关联性强、没有歧义,能够帮助用户准确理解文档。

具体地,本发明的方法为了得到文本的摘要,使用第二循环神经网络3从整篇文档的状态向量Hm中解码生成解码序列(y0,...,yt-1),然后通过进一步计算得到文本摘要。即摘要是在历史生成的序列(y0,...,yt-1)的基础上进行,利用第二循环神经网络3对已生成的序列(y0,...,yt-1)进行建模,该模型使用序列(y0,...,yt-1)对文本摘要的状态进行表示,其中,时刻i-1的文本摘要的状态向量si-1的计算过程如下:

zi-1=σ(WZ′Er(yi-1)+Uz′si-2+Hzhn)

ri-1=σ(Wr′Er(yi-1)+Ur′si-2+Hrhn)

其中s-1=Wshn,Er(*)表示从摘要端的词向量矩阵中返回对应词的词向量。si-1包含了已生成的(y0,...,yi-1)的信息,同时Hm包含了短文本的所有信息。所以利用该方法生成的文本摘要的句子之间关联性强、没有歧义,能够帮助用户准确理解文档。

利用本发明的方法解码生成的摘要,除了利用词典中的词汇之外,还将原始文本中存在的词汇加入到候选词之中。这样,对于结果中词典之外(out-of-vocabulary OOV)的词汇,也可以在摘要中表示出来。OOV一般是出现在原始文本中而不存在于词典中的词,通常在输出结果中被标记位<UNK>,它们一般是比较重要的词,比如名字和地点,其中包含着许多对文本含义至关重要的信息。在解码过程中每一次生成摘要词语的时候,解码器都生成两个概率值,分别是该摘要词语来自于此表的概率和直接借鉴原文中某个具体词语的概率,因此解码的时候,输出的分布不仅仅覆盖此表,还覆盖原文词汇,能够一定程度上解决OOV问题。

以上对本发明的基于神经网络生成文本摘要的方法的实施方式进行了说明。对于本发明的基于神经网络生成文本摘要的方法的具体特征可以根据上述披露的特征的作用进行具体设计,这些设计均是本领域技术人员能够实现的。而且,上述披露的各技术特征并不限于已披露的与其它特征的组合,本领域技术人员还可根据本发明之目的进行各技术特征之间的其它组合,以实现本发明之目的为准。

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