CN111858914B - 一种基于句级评估的文本摘要生成方法和系统 - Google Patents
一种基于句级评估的文本摘要生成方法和系统 Download PDFInfo
- Publication number
- CN111858914B CN111858914B CN202010727523.1A CN202010727523A CN111858914B CN 111858914 B CN111858914 B CN 111858914B CN 202010727523 A CN202010727523 A CN 202010727523A CN 111858914 B CN111858914 B CN 111858914B
- Authority
- CN
- China
- Prior art keywords
- paper
- time
- sentence
- word
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/34—Browsing; Visualisation therefor
- G06F16/345—Summarisation for human users
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/253—Grammatical analysis; Style critique
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Machine Translation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于句级评估的文本摘要生成方法,包括:获取论文数据集,并对论文数据集中的每个论文进行预处理,所有预处理后的论文构成预处理后的论文数据集,将预处理后的论文数据集输入训练好的基于句级评估的文本摘要生成模型中,以得到论文数据集中每个论文对应的文本摘要。本发明能够解决现有生成式文本摘要技术采用的指针生成模型不能很好地处理生成方向偏离问题,导致错误积累的技术问题,以及指针生成模型不能很好地关注到重要信息的技术问题,以及现有生成式文本摘要技术采用的强化学习机制容易导致生成的摘要不可读的技术问题,以及强化学习机制会导致模型关注重要信息的能力有所下降的技术问题。
Description
技术领域
本发明属于自然语言处理中的文本摘要技术领域,更具体地,涉及一种基于句级评估的文本摘要生成方法和系统。
背景技术
文本摘要技术包括抽取式文本摘要技术以及生成式文本摘要技术。其中,抽取式文本摘要技术是通过抽取文本的前三行(Lead-3)或者利用TextRank图、聚类等方法从论文中提取出重要且能概况论文信息的句子(一般是直接提取整个句子),该技术虽然提取语言的可读性比较高,但是因不能高度概括一个句子,会导致生成的摘要包括很多不重要信息,产生的文本过于冗余;生成式文本摘要技术是让机器学习人类的思维方式,利用神经网络的各种变形方法训练模型,通过学习文本内容让机器在每一时间步生成一些新颖的单词,使生成的摘要更加凝练简洁。
生成式文本摘要技术广泛被应用的是序列到序列(Sequence to sequence,简称Seq2Seq)模型,早期的Seq2Seq模型存在词表溢出和重复性关注同一个单词或者句子问题;如今,Seq2Seq模型主要采用See等人于2017年提出的指针生成模型,通过在基于注意力的Seq2Seq模型上增加可以从论文复制词表以外的单词和覆盖(Coverage)机制,有效的缓解了早期Seq2Seq模型存在的词表溢出和重复性问题。后来,Paulus等人于2017年提出了强化学习机制,其在现有框架的基础上使用解码器注意机制结合强化学习生成质量更高的摘要,该方法利用强化学习机制对模型生成的摘要进行全局性监督,再配合词级监督机制,在缓解指针生成等模型“教师强迫”问题的同时不忽略句子的语法问题。
上述两种生成式文本摘要方法分别从模型的角度和训练方法的角度对网络模型进行了改进,但是它们仍然存在一些不可忽略的技术问题:
第一,指针生成模型采用“教师强迫”算法,在训练和测试之间存在“暴漏偏差”,使得模型不能很好地处理生成方向偏离问题,导致错误积累;
第二,指针生成模型采用词级监督,在训练过程中,固定地将生成的每个单词与同一位置的参考摘要单词进行比较,计算交叉熵损失函数,忽略了潜在正确的可能性,导致模型不能很好地关注到重要信息;
第三,强化学习机制在整个摘要层面进行监督,忽略了文本之间的语法问题,导致生成的摘要不可读;
第四,强化学习机制在整个摘要层面上又结合了词级监督,在提高文本可读性的同时导致模型关注重要信息的能力有所下降。
总而言之,上述两种方法有一个共同问题,即关注文本重要信息的能力不足,没能在语句可读性和总结文本关键内容上达到很好地兼容。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于句级评估的文本摘要生成方法和系统,其目的在于,解决现有生成式文本摘要技术采用的指针生成模型不能很好地处理生成方向偏离问题,导致错误积累的技术问题,以及指针生成模型不能很好地关注到重要信息的技术问题,以及现有生成式文本摘要技术采用的强化学习机制容易导致生成的摘要不可读的技术问题,以及强化学习机制会导致模型关注重要信息的能力有所下降的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种基于句级评估的文本摘要生成方法,包括以下步骤:
一、获取论文数据集,并对论文数据集中的每个论文进行预处理,所有预处理后的论文构成预处理后的论文数据集;
二、将步骤一预处理后的论文数据集输入训练好的基于句级评估的文本摘要生成模型中,以得到论文数据集中每个论文对应的文本摘要。
优选地,基于句级评估的文本摘要生成模型采用的是基于注意力机制的序列到序列模型。
优选地,指针生成模型是通过以下步骤训练得到的:
(1)获取论文数据集;
(2)对步骤(1)得到的论文数据集中的所有论文进行逐篇解析,以得到xml格式的论文数据集;
(3)对步骤(2)得到的论文数据集的每个论文分别进行预处理,所有预处理后的论文构成更新后的论文数据集(X,Y),其中X表示更新后论文数据集的输入序列,Y表示该输入序列对应的参考摘要句子序列;
(4)将步骤(3)得到的更新后的论文数据集中的所有论文依次输入到LSTM编码器,以得到与每个论文xu对应的编码器隐藏状态序列hu={hu,1,hu,2,…,hu,l},其中,编码器隐藏状态序列中的最后一个编码器隐藏状态hu,l作为论文xu对应的LSTM解码器的初始隐藏状态su,0,l表示长度阈值,u∈[1,Num],Num表示论文数据集中论文的总数;
(11)将步骤(9)得到的论文xu对应的上下文向量和步骤(10)得到的t时刻论文xu对应的解码器隐藏状态su,t连接,并输入LSTM编码器的两个线性层中,以得到t时刻论文xu对应的词汇表中所有单词的概率分布
(13)根据步骤(11)得到的t时刻论文xu对应的词汇表中所有单词的概率分布步骤(12)得到的t时刻论文xu对应的生成概率以及步骤(7)得到的t时刻论文xu中第i个单词的注意力分布获得t时刻论文xu对应的扩展词汇表中每个单词w的概率分布Pu(w)。
(14)从步骤(13)得到的t时刻论文xu对应的扩展词汇表中所有单词的概率分布中获取最大概率值Pu(yu,t)及其对应的单词yu,t,并将单词yu,t存储在预先设置的句子序列Sg(g的初始值为0)中,判断时刻t的值是否等于预设的最大解码时间步T,如果是,进入步骤(18),否则,进入步骤(15);
(15)判断步骤(14)中获取的单词yu,t是否是“.”,如果是,进入步骤(16),否则进入步骤(19);
(16)使用ROUGE评分指标计算步骤(14)得到的句子序列Sg与论文xu对应的参考摘要句子序列中每一个参考摘要句子之间的匹配度,从中选取最大匹配度作为模型对该句子序列Sg的奖励得分R(Sg),然后设置g=g+1,其中,m表示该参考摘要句子序列中句子的总数;
(17)根据步骤(16)得到的R(Sg)、以及步骤(14)得到的最大概率值Pu(yu,t)生成句子序列Sg的损失函数L(Sg);
(18)根据步骤(17)得到的句子序列Sg的损失函数计算t=T时,模型为论文xu生成摘要的句级损失L(yu);
(19)根据步骤(8)得到的t时刻论文xu受到的覆盖损失covlossu,t获取t=T时,模型为论文xu生成摘要的总覆盖损失;
(20)根据步骤(18)得到的模型为论文xu生成摘要的句级损失和步骤(19)得到的模型为论文xu生成摘要的总覆盖损失,得到论文xu生成摘要yu的复合损失函数Lmixed(yu);
(21)根据步骤(20)得到的论文xu生成摘要yu的复合损失函数对基于句级评估的生成模型进行训练,以得到训练后的基于句级评估的生成模型;
(22)重复上述步骤(4)到(21)达预设迭代次数,过程结束。
优选地,对步骤(1)得到的论文数据集中的每篇论文进行解析这一过程具体包括以下子步骤:
(2-1)利用PDFTron工具读取论文的全部内容,并初始化计数器page=1,单词存储变量temp为空,全局标签flag=1;
(2-2)判断page是否大于论文的总页数,如果是,则过程结束,否则进入步骤(2-3);
(2-3)设置计数器line=1;
(2-4)判断line是否大于论文中第page页的总行数,如果是,则进入步骤(2-5),否则进入步骤(2-6);
(2-5)计数器page=page+1,并返回步骤(2-2);
(2-6)获取论文中第page页第line行的字号size(page,line),并判断size(page,line)是否等于预设的标题字号font1,如果是,则进入步骤(2-7),否则进入步骤(2-8);
(2-7)判断论文中第page页第line行的字号size(page,line)是否等于论文中第page页第line-1行的字号,如果是,则添加论文中第page页第line行的单词word(page,line)到单词存储变量temp中,然后进入步骤(2-8),否则进入步骤(2-9);
(2-8)设置计数器line=line+1,并返回步骤(2-4);
(2-9)将步骤(2-7)更新后的单词存储变量temp中的内容存储到xml文件的标题或正文中,并将该单词存储变量temp中的内容置空;
(2-10)判断步骤(2-6)获取的论文中第page页第line行的字号size(page,line)是否等于预设的一级标题字号font2,如果是,则进入步骤(2-11),否则进入步骤(2-14);
(2-11)判断论文中第page页第line行的单词word(page,line)是否包含规定形式的单词,如果是,则进入步骤(2-12),否则进入步骤(2-13);
(2-12)设置全局标签flag=1,并返回步骤(2-8);
(2-13)设置全局标签flag=0,并返回步骤(2-8);
(2-14)判断步骤(2-6)获取的论文中第page页第line行的字号size(page,line)是否等于预设的正文字号font3,如果是,则进入步骤(2-15),否则返回步骤(2-8)。
(2-15)判断全局标签flag是否等于1,如果是则返回步骤(2-7),否则返回步骤(2-8)。
其中,t时刻指解码器的第t解码时间步,t∈[1,T],初始值为1,T为LSTM解码器的最大解码时间步,tanh()表示双曲正切函数,当t=1时,su,t-1即为论文xu对应的解码器的初始隐藏状态su,0,v、Wh、Ws、battn都是可学习的参数,vT表示v的转置。
步骤(7)中的更新过程是采用以下公式:
其中,Wc、battn都是可学习的参数。
优选地,步骤(8)中t时刻论文xu受到的覆盖损失covlossu,t等于:
步骤(9)中论文xu对应的上下文向量等于:
步骤(10)中t时刻论文xu对应的LSTM编码器隐藏状态等于:
其中,input(u,t)表示的是t时刻论文xu对应LSTM解码器的输入值,f表示LSTM编码器中的长短时记忆循环网络单元。
其中V'、V、b、b'都是可学习的参数;
步骤(12)中t时刻论文xu对应的生成概率为:
其中向量winput和标量bptr都是可学习的参数,σ是sigmoid函数;
步骤(13)中t时刻论文xu对应的扩展词汇表中每个单词w的概率分布为:
其中,论文xu对应的扩展词汇表Pu(w)大小为50000加上论文xu对应的词表溢出单词后的总和,xu,i表示论文xu中第i个单词,代表的是若论文xu中单词xu,i=w(i∈[1,l]),则将单词xu,i对应的的注意力权值进行累加,如果w在论文xu中没有出现过,则等于0;如果w是一个词表溢出单词,那么等于0;
优选地,步骤(17)中句子序列Sg的损失函数L(Sg)为:
其中q为句子序列Sg包含的单词个数,a的初始值设为0,每计算完一个句子序列的损失函数,将a的值更新为a+q,并根据更新后的a值和上述公式来计算下一个句子序列的损失函数;
步骤(18)中摘要的句级损失L(yu)等于:
其中n表示模型为论文xu生成摘要的句子数;
步骤(19)中论文xu生成摘要yu的总覆盖损失Lc(yu)为:
步骤(20)中论文xu生成摘要yu的复合损失函数Lmixed(yu)为:
Lmixed(yu)=L(yu)+λLc(yu)
其中,λ为0到1之间的小数。
按照本发明的另一方面,提供了一种基于句级评估的文本摘要生成系统,包括:
第一模块,用于获取论文数据集,并对论文数据集中的每个论文进行预处理,所有预处理后的论文构成预处理后的论文数据集;
第二模块,用于将第一模块预处理后的论文数据集输入训练好的基于句级评估的文本摘要生成模型中,以得到论文数据集中每个论文对应的文本摘要。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
(1)由于本发明在训练过程中,模型解码器的输入单词不完全使用参考摘要单词进行“教师强迫”监督,而是以概率的形式选择是使用参考摘要单词还是模型预测的单词作为解码器的输入,既能及时对模型进行修正又能锻炼模型处理生成方向偏离问题的能力。因此能够解决现有生成式文本摘要技术采用的指针生成模型不能很好地处理生成方向偏离问题,导致错误积累的技术问题。
(2)由于本发明采用词级和句级相结合的方式进行监督,在模型生成一个句子序列时,将该句子序列与对应论文参考摘要的句子序列一一进行匹配,选取匹配度最高的句子序列得分参与计算损失函数,防止模型错过捕捉的重要信息。因此,能够解决现有指针生成模型不能很好地关注到重要信息的技术问题。
(3)由于本发明采用词级和句级相结合的方式进行监督,根据解码器在每一时间步生成的单词组成的句子序列,保证了一个句子序列的语法问题,再将生成的多个这样的句子序列组成摘要。因此,能够解决现有生成式文本摘要技术采用的强化学习机制容易导致生成的摘要不可读的技术问题。
(4)由于本发明在词级和句级层面上进行监督,相比强化学习机制的在整个摘要层面上进行监督,本发明更加细粒度地关注文本信息,不容易忽视重要信息。因此,能够解决现有强化学习机制会导致模型关注重要信息的能力有所下降的技术问题。
(5)本发明同时结合了指针生成模型的覆盖机制,惩罚模型重复性关注论文中同一个单词的情况,解决了生成的摘要存在重复性的问题。
附图说明
图1是本发明指针生成模型的示意图;
图2是本发明基于句级评估的文本摘要生成方法的流程图;
图3是本发明方法的训练过程中对论文进行解析的流程图;
图4是对论文进行解析后得到的xml文件的示意图;
图5是基于句级评估的文本摘要生成方法的编码解码过程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明的基本思路在于,其一,用爬虫技术和解析算法制作一个长文档、有结构的学术论文数据集;其二,在解码时使用强化学习(Reinforcement Learning,简称RL)方法的句级序列评估与词级覆盖机制相结合,从句级层面逐一与参考摘要句子序列计算ROUGE_L得分,解决了现有模型在解码步骤时逐一用参考摘要对应位置的单词进行“教师强迫”监督,而不能灵活地匹配不同句子顺序的正确的参考摘要问题。同时也解决了从整个摘要层面判断模型生成的序列与参考摘要序列匹配程度而引起的句子不可读问题。综合了两个方法的优缺点,提出折中地从句级层面对模型进行监督,既能减缓错过文本重要信息,也能解决生成的句子不可读问题。另外也引入词级覆盖机制,惩罚模型重复关注论文中的单词,改善生成的文本重复性问题。
如图1所示,本发明主要包括两个部分,第一部分是基于句级评估的文本摘要生成方法,主要由模型和评分器组成,模型沿用See等人提出的指针生成模型,并加入句级评估机制,该模型对论文数据集进行训练,通过指针机制以pgen的概率从词汇表中生成单词,以(1-pgen)的概率从论文复制单词,不断训练模型,将模型生成的摘要(以句子序列存储)与对应的参考摘要(以句子序列存储)输入到评分器中,计算出损失值来更新基于句级评估的文本摘要生成模型,经过多次迭代,最终训练出一个能产生高质量摘要的模型;第二部分是基于句级评估的文本摘要生成模型的训练过程,将自制的PDF学术论文数据集序列输入到编码器LSTM神经网络中,根据产生的编码器隐藏状态和上下文信息指导解码器LSTM神经网络输出目标词,先计算出词级上的交叉熵损失函数,待达到最大输出序列,计算模型生成的摘要句与对应文本的参考摘要句的句级损失,词级和句级损失相结合得到第一损失值,在解码时,同时计算模型重复关注同一些单词的覆盖损失,作为第二损失值,将两个损失值加权求和训练模型。
如图2所示,根据本发明的第一方面,提供了一种基于句级评估的文本摘要生成方法,包括以下步骤:
(1)获取论文数据集,并对论文数据集中的每个论文进行预处理,所有预处理后的论文构成预处理后的论文数据集;
具体而言,本步骤中获取的方式是,首先通过爬虫技术获取IEEE Transactionson Neural Neworks and Learning Systems网页上的论文下载链接,然后利用python语言中的requests.get()命令自动下载论文数据集;
在本实施方式中,下载的论文数据集是PDF格式的。
本步骤中对论文数据集的每个论文进行预处理具体为,对于论文数据集的每个论文,如果该论文长度不足l(其中l的取值范围为300-600个单词,优选为400),则在该论文的末尾添加多个零,以使其其长度为固定长度l,如果论文长度超过l,则删除论文结尾处多余的单词,以使其长度达到固定长度l。
(2)将步骤(1)预处理后的论文数据集输入训练好的基于句级评估的文本摘要生成模型中,以得到论文数据集中每个论文对应的文本摘要。
具体而言,本发明中的基于句级评估的文本摘要生成模型采用的是基于注意力机制的序列到序列模型(Sequence-to-sequence model,简称Seq2Seq模型)。
本发明指针生成模型是通过以下步骤训练得到的:
(1)获取论文数据集;
具体而言,本步骤中获取的方式是,首先通过爬虫技术获取IEEE Transactionson Neural Neworks and Learning Systems网页上的论文下载链接,然后利用python语言中的requests.get()命令自动下载论文数据集;
在本实施方式中,下载的论文数据集是PDF格式的。
(2)对步骤(1)得到的论文数据集中的所有论文进行逐篇解析,以得到xml格式的论文数据集;
本步骤具体为,首先获取论文数据集里的第一篇论文,利用PDFTron工具读取该论文中的全部内容,使用解析算法对该全部内容进行解析,以获取其中的主要内容,再将解析出的主要内容存储到以该论文标题命名的xml文件中,然后针对论文数据集中的剩余论文,重复上述过程,直到解析完最后一个论文为止,此时就获取了xml格式的论文数据集。
如图4所示,其示出了本步骤解析后得到的xml格式论文的示例。
如图3所示,本步骤中,使用解析算法对全部内容进行解析,以获取其中的主要内容这一过程具体包括以下子步骤:
(2-1)利用PDFTron工具读取论文的全部内容,并初始化计数器page=1,单词存储变量temp为空,全局标签flag=1;
具体而言,计数器page用于表示论文的页号。
(2-2)判断page是否大于论文的总页数,如果是,则过程结束,否则进入步骤(2-3);
(2-3)设置计数器line=1;
具体而言,计数器line用于表示论文的行号。
(2-4)判断line是否大于论文中第page页的总行数,如果是,则进入步骤(2-5),否则进入步骤(2-6);
(2-5)计数器page=page+1,并返回步骤(2-2);
(2-6)获取论文中第page页第line行的字号size(page,line),并判断size(page,line)是否等于预设的标题字号font1,如果是,则进入步骤(2-7),否则进入步骤(2-8);
(2-7)判断论文中第page页第line行的字号size(page,line)是否等于论文中第page页第line-1行的字号,如果是,则添加论文中第page页第line行的单词word(page,line)到单词存储变量temp中,然后进入步骤(2-8),否则进入步骤(2-9);
具体而言,line=1时不需判断步骤(2-7)设置的条件,直接添加第page页第line行的单词到变量temp中。
(2-8)设置计数器line=line+1,并返回步骤(2-4);
(2-9)将步骤(2-7)更新后的单词存储变量temp中的内容存储到xml文件的标题或正文中,并将该单词存储变量temp中的内容置空;
(2-10)判断步骤(2-6)获取的论文中第page页第line行的字号size(page,line)是否等于预设的一级标题字号font2,如果是,则进入步骤(2-11),否则进入步骤(2-14);
(2-11)判断论文中第page页第line行的单词word(page,line)是否包含规定形式的单词,如果是,则进入步骤(2-12),否则进入步骤(2-13);
具体而言,规定形式的单词包括摘要(Abstract)、简介(Introduction)、结论(Conclusions)等。
(2-12)设置全局标签flag=1,并返回步骤(2-8);
(2-13)设置全局标签flag=0,并返回步骤(2-8);
(2-14)判断步骤(2-6)获取的论文中第page页第line行的字号size(page,line)是否等于预设的正文字号font3,如果是,则进入步骤(2-15),否则返回步骤(2-8);
(2-15)判断全局标签flag是否等于1,如果是则返回步骤(2-7),否则返回步骤(2-8);
(3)对步骤(2)得到的论文数据集的每个论文分别进行预处理,所有预处理后的论文构成更新后的论文数据集(X,Y),其中X表示更新后论文数据集的输入序列,Y表示该输入序列对应的参考摘要句子序列;
本步骤中对论文数据集的每个论文进行预处理具体为,对于论文数据集的每个论文xu(其中u∈[1,Num],Num表示论文数据集中论文的总数)而言,xu={xu,1,xu,2,…,xu,l},如果该论文长度不足l(其中,l的取值范围为300-600个单词,优选为400),则在该论文的末尾添加多个零,以使其长度为固定长度l,如果论文长度超过l,则删除论文结尾处多余的单词,以使其长度达到固定长度l。
(4)将步骤(3)得到的更新后的论文数据集中的所有论文依次输入到单层双向长短期记忆网络(LongShort-TermMemory,简称LSTM)编码器,以得到与每个论文xu对应的编码器隐藏状态序列hu={hu,1,hu,2,…,hu,l},其中,编码器隐藏状态序列中的最后一个编码器隐藏状态hu,l作为论文xu对应的LSTM解码器的初始隐藏状态su,0,如图5所示;
其中,t时刻指解码器的第t解码时间步,解码器的最大解码时间步记为T,T优选设置为100,即t∈[1,T],初始值为1,tanh()指双曲正切函数(非线性的激活函数)。具体而言,当t=1时,su,t-1即为论文xu对应的解码器的初始隐藏状态su,0,将t时刻论文xu中所有单词的注意力权值经过一个softmax层,得到t时刻论文xu中所有单词组成的注意力分布它可以指导解码器关注论文中哪些单词来生成下一个单词,其中,v、Wh、Ws、battn都是可学习的参数(所有参数都被初始化为0.0001),vT指v的转置。
具体而言,由于在生成多句文本摘要时,序列到序列模型容易出现对已经关注过的单词进行重复关注的情况,所以要加入覆盖(coverage)机制对重复性关注进行惩罚,在覆盖机制中,引入t时刻论文xu中第i个单词的覆盖值它是通过对步骤(5)计算的t时刻前(t'∈[1,t-1])论文xu中第i个单词的注意力分布值(初始化为0)进行累加求和得到的。
本步骤同时结合了指针生成模型的覆盖机制,惩罚模型重复性关注论文中同一个单词的情况,解决了生成的摘要存在重复性的问题。
其中,Wc、battn都是可学习的参数(所有参数都被初始化为0.0001)。
具体而言,上下文向量表示这一步从论文读取的内容的固定大小表示。
其中,input(u,t)表示的是t时刻论文xu对应LSTM解码器的输入值,以概率的形式选择是使用参考摘要单词还是模型预测的单词作为解码器的输入,训练前期选择使用模型预测的单词作为解码器输入的概率值优选为0.15,后期随着迭代次数的增加线性增加概率值,锻炼模型自己生成摘要的能力。f表示LSTM编码器中的长短时记忆循环网络单元。
由于本步骤在训练过程中,模型解码器的输入单词不完全使用参考摘要单词进行“教师强迫”监督,而是以概率的形式选择是使用参考摘要单词还是模型预测的单词作为解码器的输入,既能及时对模型进行修正又能锻炼模型处理生成方向偏离问题的能力。因此能够解决现有生成式文本摘要技术采用的指针生成模型不能很好地处理生成方向偏离问题,导致错误积累的技术问题。
(11)将步骤(9)得到的论文xu对应的上下文向量和步骤(10)得到的t时刻论文xu对应的解码器隐藏状态su,t连接,并输入LSTM编码器的两个线性层中,以得到t时刻论文xu对应的词汇表中所有单词的概率分布计算公式如下:
具体而言,词汇表的大小优设为50000(即词汇表中有5000个单词),V'、V、b、b'都是可学习的参数(所有参数都被初始化为0.0001)。
具体而言,向量winput和标量bptr都是可学习的参数(所有参数都被初始化为0.0001),σ是sigmoid函数。
(13)根据步骤(11)得到的t时刻论文xu对应的词汇表中所有单词的概率分布步骤(12)得到的t时刻论文xu对应的生成概率以及步骤(7)得到的t时刻论文xu中第i个单词的注意力分布获得t时刻论文xu对应的扩展词汇表中每个单词w的概率分布:
其中,论文xu对应的扩展词汇表Pu(w)大小为50000加上论文xu对应的词表溢出单词(Out OfVocabulary,简称OOV)后的总和,xu,i表示论文xu中第i个单词,代表的是若论文xu中单词xu,i=w(i∈[1,l]),则将单词xu,i对应的的注意力权值进行累加,如果w在论文xu中没有出现过,则等于0。如果w是一个词表溢出单词,那么等于0。。
(14)从步骤(13)得到的t时刻论文xu对应的扩展词汇表中所有单词的概率分布中获取最大概率值Pu(yu,t)及其对应的单词yu,t,并将单词yu,t存储在预先设置的句子序列Sg(g表示句子序列的序号,其初始值为0)中,判断时刻t的值是否等于预设的最大解码时间步T,如果是,进入步骤(18),否则,进入步骤(15);
由于本步骤采用词级和句级相结合的方式进行监督,根据解码器在每一时间步生成的单词组成的句子序列,保证了一个句子序列的语法问题,再将生成的多个这样的句子序列组成摘要。因此,能够解决现有生成式文本摘要技术采用的强化学习机制容易导致生成的摘要不可读的技术问题。
(15)判断步骤(14)中获取的单词yu,t是否是“.”,如果是,进入步骤(16),否则进入步骤(19);
具体而言,本步骤中判断单词yu,t是否是“.”的原因在于,如果是“.”,则代表Sg已经是一个完整的句子序列,否则说明Sg还不是一个完整的句子序列。
(16)使用ROUGE评分指标计算步骤(14)得到的句子序列Sg与论文xu对应的参考摘要句子序列中每一个参考摘要句子之间的匹配度,从中选取最大匹配度作为模型对该句子序列Sg的奖励得分R(Sg),然后设置g=g+1,其中,m表示该参考摘要句子序列中句子的总数;
(17)根据步骤(16)得到的R(Sg)、以及步骤(14)得到的最大概率值Pu(yu,t)生成句子序列Sg的损失函数如下:
具体而言,q为句子序列Sg包含的单词个数,a的初始值设为0,当g=1时,根据a的初始值和上述公式来计算第一个句子序列的损失函数,当g=2时,a的值被更新为a+q,根据更新后的a值和上述公式来计算第二个句子序列的损失函数,当g=3时,a的值被更新为a+q+q,根据更新后的a值和上述公式来计算第三个句子序列的损失函数,…,以此类推。
由于本步骤采用词级和句级相结合的方式进行监督,在模型生成一个句子序列时,将该句子序列与对应论文参考摘要的句子序列一一进行匹配,选取匹配度最高的句子序列得分参与计算损失函数,防止模型错过捕捉的重要信息。因此,能够解决现有指针生成模型不能很好地关注到重要信息的技术问题。
(18)根据步骤(17)得到的句子序列Sg的损失函数计算t=T时,模型为论文xu生成摘要的句级损失为:
其中n表示模型为论文xu生成摘要的句子数,从中可以看出,最小化L(yu)即最小化模型生成每个句子序列Sg的损失L(Sg)。
(19)根据步骤(8)得到的t时刻论文xu受到的覆盖损失covlossu,t获取t=T时,模型为论文xu生成摘要yu的总覆盖损失:
(20)根据步骤(18)得到的模型为论文xu生成摘要的句级损失和步骤(19)得到的模型为论文xu生成摘要的总覆盖损失,得到论文xu生成摘要yu的复合损失函数为:
Lmixed(yu)=L(yu)+λLc(yu)
其中,λ为0到1之间的小数。
(21)根据步骤(20)得到的论文xu生成摘要yu的复合损失函数对基于句级评估的生成模型进行训练,以得到训练后的基于句级评估的生成模型;
(22)重复上述步骤(4)到(21)达预设迭代次数,过程结束。
此时的生成模型可以对文本数据集X产生好的摘要序列。
在本发明中,迭代次数的取值范围是200000到250000次,优选为230000次。
跟现有的生成式摘要技术相比,包括被广泛引用的See等人提出的指针生成模型和Paulus等人提出的结合强化学习机制的生成模型,本发明不在整个摘要层面上进行监督,而是在参考摘要句级层面对模型生成的句子进行监督,更加细粒度地监督模型生成的句子序列与参考摘要中的句子序列匹配度最高的能力,使用外部评分器(ROUGE-L指标)计算这个匹配度得分,不仅可以解决原有大多数模型需要利用参考摘要逐词进行监督,解决不能灵活地匹配不同顺序的参考摘要问题,还能解决Paulus等人提出模型中使用强化学习方法从摘要层面上进行奖罚模型,太宽泛地与生成的摘要进行匹配,忽略了句子的可读性问题,同时也结合See等人提出的指针生成机制和覆盖机制,解决词表溢出和重复性生成句子序列问题,使最后生成的摘要在内容上可以总结到重要信息,在语言上具有一定的可读性,同时改善重复性问题,使生成的内容更加全面。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于句级评估的文本摘要生成方法,其特征在于,包括以下步骤:
一、获取论文数据集,并对论文数据集中的每个论文进行预处理,所有预处理后的论文构成预处理后的论文数据集;
二、将步骤一预处理后的论文数据集输入训练好的基于句级评估的文本摘要生成模型中,以得到论文数据集中每个论文对应的文本摘要;其中指针生成模型是通过以下步骤训练得到的:
(1)获取论文数据集;
(2)对步骤(1)得到的论文数据集中的所有论文进行逐篇解析,以得到xml格式的论文数据集;
(3)对步骤(2)得到的论文数据集的每个论文分别进行预处理,所有预处理后的论文构成更新后的论文数据集(X,Y),其中X表示更新后论文数据集的输入序列,Y表示该输入序列对应的参考摘要句子序列;
(4)将步骤(3)得到的更新后的论文数据集中的所有论文依次输入到LSTM编码器,以得到与每个论文xu对应的编码器隐藏状态序列hu={hu,1,hu,2,…,hu,l},其中,编码器隐藏状态序列中的最后一个编码器隐藏状态hu,l作为论文xu对应的LSTM解码器的初始隐藏状态su,0,l表示长度阈值,u∈[1,Num],Num表示论文数据集中论文的总数;
(11)将步骤(9)得到的论文xu对应的上下文向量和步骤(10)得到的t时刻论文xu对应的解码器隐藏状态su,t连接,并输入LSTM编码器的两个线性层中,以得到t时刻论文xu对应的词汇表中所有单词的概率分布
(13)根据步骤(11)得到的t时刻论文xu对应的词汇表中所有单词的概率分布步骤(12)得到的t时刻论文xu对应的生成概率以及步骤(7)得到的t时刻论文xu中第i个单词的注意力分布获得t时刻论文xu对应的扩展词汇表中每个单词w的概率分布Pu(w);
(14)从步骤(13)得到的t时刻论文xu对应的扩展词汇表中所有单词的概率分布中获取最大概率值Pu(yu,t)及其对应的单词yu,t,并将单词yu,t存储在预先设置的句子序列Sg(g的初始值为0)中,判断时刻t的值是否等于预设的最大解码时间步T,如果是,进入步骤(18),否则,进入步骤(15);
(15)判断步骤(14)中获取的单词yu,t是否是“.”,如果是,进入步骤(16),否则进入步骤(19);
(16)使用ROUGE评分指标计算步骤(14)得到的句子序列Sg与论文xu对应的参考摘要句子序列中每一个参考摘要句子之间的匹配度,从中选取最大匹配度作为模型对该句子序列Sg的奖励得分R(Sg),然后设置g=g+1,其中,m表示该参考摘要句子序列中句子的总数;
(17)根据步骤(16)得到的R(Sg)、以及步骤(14)得到的最大概率值Pu(yu,t)生成句子序列Sg的损失函数L(Sg):
(18)根据步骤(17)得到的句子序列Sg的损失函数计算t=T时,模型为论文xu生成摘要的句级损失L(yu):
(19)根据步骤(8)得到的t时刻论文xu受到的覆盖损失covlossu,t获取t=T时,模型为论文xu生成摘要的总覆盖损失Lc(yu):
(20)根据步骤(18)得到的模型为论文xu生成摘要的句级损失和步骤(19)得到的模型为论文xu生成摘要的总覆盖损失,得到论文xu生成摘要yu的复合损失函数Lmixed(yu);
(21)根据步骤(20)得到的论文xu生成摘要yu的复合损失函数对基于句级评估的生成模型进行训练,以得到训练后的基于句级评估的生成模型;
(22)重复上述步骤(4)到(21)达预设迭代次数,过程结束。
2.根据权利要求1所述的基于句级评估的文本摘要生成方法,其特征在于,基于句级评估的文本摘要生成模型采用的是基于注意力机制的序列到序列模型。
3.根据权利要求1所述的基于句级评估的文本摘要生成方法,其特征在于,对步骤(1)得到的论文数据集中的每篇论文进行解析这一过程具体包括以下子步骤:
(2-1)利用PDFTron工具读取论文的全部内容,并初始化计数器page=1,单词存储变量temp为空,全局标签flag=1;
(2-2)判断page是否大于论文的总页数,如果是,则过程结束,否则进入步骤(2-3);
(2-3)设置计数器line=1;
(2-4)判断line是否大于论文中第page页的总行数,如果是,则进入步骤(2-5),否则进入步骤(2-6);
(2-5)计数器page=page+1,并返回步骤(2-2);
(2-6)获取论文中第page页第line行的字号size(page,line),并判断size(page,line)是否等于预设的标题字号font1,如果是,则进入步骤(2-7),否则进入步骤(2-8);
(2-7)判断论文中第page页第line行的字号size(page,line)是否等于论文中第page页第line-1行的字号,如果是,则添加论文中第page页第line行的单词word(page,line)到单词存储变量temp中,然后进入步骤(2-8),否则进入步骤(2-9);
(2-8)设置计数器line=line+1,并返回步骤(2-4);
(2-9)将步骤(2-7)更新后的单词存储变量temp中的内容存储到xml文件的标题或正文中,并将该单词存储变量temp中的内容置空;
(2-10)判断步骤(2-6)获取的论文中第page页第line行的字号size(page,line)是否等于预设的一级标题字号font2,如果是,则进入步骤(2-11),否则进入步骤(2-14);
(2-11)判断论文中第page页第line行的单词word(page,line)是否包含规定形式的单词,如果是,则进入步骤(2-12),否则进入步骤(2-13);
(2-12)设置全局标签flag=1,并返回步骤(2-8);
(2-13)设置全局标签flag=0,并返回步骤(2-8);
(2-14)判断步骤(2-6)获取的论文中第page页第line行的字号size(page,line)是否等于预设的正文字号font3,如果是,则进入步骤(2-15),否则返回步骤(2-8);
(2-15)判断全局标签flag是否等于1,如果是则返回步骤(2-7),否则返回步骤(2-8)。
6.根据权利要求5所述的基于句级评估的文本摘要生成方法,其特征在于,
其中V'、V、b、b'都是可学习的参数;
步骤(12)中t时刻论文xu对应的生成概率为:
其中向量winput和标量bptr都是可学习的参数,σ是sigmoid函数;
步骤(13)中t时刻论文xu对应的扩展词汇表中每个单词w的概率分布为:
8.一种基于句级评估的文本摘要生成系统,其特征在于,包括:
第一模块,用于获取论文数据集,并对论文数据集中的每个论文进行预处理,所有预处理后的论文构成预处理后的论文数据集;
第二模块,用于将第一模块预处理后的论文数据集输入训练好的基于句级评估的文本摘要生成模型中,以得到论文数据集中每个论文对应的文本摘要;其中指针生成模型是通过以下模块训练得到的:
第一子模块,用于获取论文数据集;
第二子模块,用于对第一子模块得到的论文数据集中的所有论文进行逐篇解析,以得到xml格式的论文数据集;
第三子模块,用于对第二子模块得到的论文数据集的每个论文分别进行预处理,所有预处理后的论文构成更新后的论文数据集(X,Y),其中X表示更新后论文数据集的输入序列,Y表示该输入序列对应的参考摘要句子序列;
第四子模块,用于将第三子模块得到的更新后的论文数据集中的所有论文依次输入到LSTM编码器,以得到与每个论文xu对应的编码器隐藏状态序列hu={hu,1,hu,2,…,hu,l},其中,编码器隐藏状态序列中的最后一个编码器隐藏状态hu,l作为论文xu对应的LSTM解码器的初始隐藏状态su,0,l表示长度阈值,u∈[1,Num],Num表示论文数据集中论文的总数;
第十一子模块,用于将第九子模块得到的论文xu对应的上下文向量和第十子模块得到的t时刻论文xu对应的解码器隐藏状态su,t连接,并输入LSTM编码器的两个线性层中,以得到t时刻论文xu对应的词汇表中所有单词的概率分布
第十三子模块,用于根据第十一子模块得到的t时刻论文xu对应的词汇表中所有单词的概率分布第十二子模块得到的t时刻论文xu对应的生成概率以及第七子模块得到的t时刻论文xu中第i个单词的注意力分布获得t时刻论文xu对应的扩展词汇表中每个单词w的概率分布Pu(w);
第十四子模块,用于从第十三子模块得到的t时刻论文xu对应的扩展词汇表中所有单词的概率分布中获取最大概率值Pu(yu,t)及其对应的单词yu,t,并将单词yu,t存储在预先设置的句子序列Sg(g的初始值为0)中,判断时刻t的值是否等于预设的最大解码时间步T,如果是,进入第十八子模块,否则,进入第十五子模块;
第十五子模块,用于判断第十四子模块中获取的单词yu,t是否是“.”,如果是,进入第十六子模块,否则进入第十九子模块;
第十六子模块,用于使用ROUGE评分指标计算第十四子模块得到的句子序列Sg与论文xu对应的参考摘要句子序列中每一个参考摘要句子之间的匹配度,从中选取最大匹配度作为模型对该句子序列Sg的奖励得分R(Sg),然后设置g=g+1,其中,m表示该参考摘要句子序列中句子的总数;
第十七子模块,用于根据第十六子模块得到的R(Sg)、以及第十四子模块得到的最大概率值Pu(yu,t)生成句子序列Sg的损失函数L(Sg):
第十八子模块,用于根据第十七子模块得到的句子序列Sg的损失函数计算t=T时,模型为论文xu生成摘要的句级损失L(yu):
第十九子模块,用于根据第八子模块得到的t时刻论文xu受到的覆盖损失covlossu,t获取t=T时,模型为论文xu生成摘要的总覆盖损失Lc(yu):
第二十子模块,用于根据第十八子模块得到的模型为论文xu生成摘要的句级损失和第十九子模块得到的模型为论文xu生成摘要的总覆盖损失,得到论文xu生成摘要yu的复合损失函数Lmixed(yu);
第二十一子模块,用于根据第二十子模块得到的论文xu生成摘要yu的复合损失函数对基于句级评估的生成模型进行训练,以得到训练后的基于句级评估的生成模型;
第二十二子模块,用于重复上述第四子模块到第二十一子模块达预设迭代次数,过程结束。
9.根据权利要求8所述的基于句级评估的文本摘要生成系统,其特征在于,基于句级评估的文本摘要生成模型采用的是基于注意力机制的序列到序列模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010727523.1A CN111858914B (zh) | 2020-07-27 | 2020-07-27 | 一种基于句级评估的文本摘要生成方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010727523.1A CN111858914B (zh) | 2020-07-27 | 2020-07-27 | 一种基于句级评估的文本摘要生成方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111858914A CN111858914A (zh) | 2020-10-30 |
CN111858914B true CN111858914B (zh) | 2021-07-30 |
Family
ID=72950212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010727523.1A Active CN111858914B (zh) | 2020-07-27 | 2020-07-27 | 一种基于句级评估的文本摘要生成方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111858914B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112328555B (zh) * | 2020-11-25 | 2022-11-04 | 国家电网有限公司 | 一种招标文件的快速生成方法 |
CN112765979B (zh) * | 2021-01-15 | 2023-05-09 | 西华大学 | 论文关键词提取系统及其方法 |
CN114494980B (zh) * | 2022-04-06 | 2022-07-15 | 中国科学技术大学 | 多样化视频评论生成方法、系统、设备及存储介质 |
CN115630651B (zh) * | 2022-10-24 | 2023-06-02 | 北京百度网讯科技有限公司 | 文本生成方法和文本生成模型的训练方法、装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6842167B2 (ja) * | 2017-05-08 | 2021-03-17 | 国立研究開発法人情報通信研究機構 | 要約生成装置、要約生成方法及びコンピュータプログラム |
CN110134782B (zh) * | 2019-05-14 | 2021-05-18 | 南京大学 | 一种基于改进的选择机制和lstm变体的文本摘要模型及自动文本摘要方法 |
CN111291534A (zh) * | 2020-02-03 | 2020-06-16 | 苏州科技大学 | 面向中文长文本自动摘要的全局编码方法 |
-
2020
- 2020-07-27 CN CN202010727523.1A patent/CN111858914B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111858914A (zh) | 2020-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111858914B (zh) | 一种基于句级评估的文本摘要生成方法和系统 | |
CN112487182B (zh) | 文本处理模型的训练方法、文本处理方法及装置 | |
CN108647207B (zh) | 自然语言修正方法、系统、设备及存储介质 | |
CN109359294B (zh) | 一种基于神经机器翻译的古汉语翻译方法 | |
Ganegedara | Natural Language Processing with TensorFlow: Teach language to machines using Python's deep learning library | |
US11170175B1 (en) | Generating replacement sentences for a particular sentiment | |
CN111414464A (zh) | 一种问题生成方法、装置、设备及存储介质 | |
CN111368565A (zh) | 文本翻译方法、装置、存储介质和计算机设备 | |
CN109062907B (zh) | 融入依存关系的神经机器翻译方法 | |
CN110309511B (zh) | 基于共享表示的多任务语言分析系统及方法 | |
CN115795009A (zh) | 基于生成式多语言模型的跨语言问答系统构建方法和装置 | |
CN110598222B (zh) | 语言处理方法及装置、语言处理系统的训练方法及装置 | |
CN110442880B (zh) | 一种机器翻译译文的翻译方法、装置及存储介质 | |
CN110738062A (zh) | 一种gru神经网络蒙汉机器翻译方法 | |
JP7061594B2 (ja) | 文章変換システム、文章変換方法、及びプログラム | |
CN116136870A (zh) | 基于增强实体表示的智能社交对话方法、对话系统 | |
CN112905637B (zh) | 基于对话改写模型的多轮文本到sql方法及系统 | |
CN110852066B (zh) | 一种基于对抗训练机制的多语言实体关系抽取方法及系统 | |
Yao | Attention-based BiLSTM neural networks for sentiment classification of short texts | |
CN115617954B (zh) | 问答方法、装置、电子设备及存储介质 | |
CN109918484B (zh) | 对话生成方法和装置 | |
CN116432637A (zh) | 一种基于强化学习的多粒度抽取-生成混合式文摘方法 | |
CN116955594A (zh) | 语义融合预训练模型构建方法及跨语言摘要生成方法和系统 | |
CN115964475A (zh) | 一种用于医疗问诊的对话摘要生成方法 | |
CN114896966A (zh) | 一种中文文本语法错误定位方法、系统、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |