文本摘要生成方法、装置、设备和存储介质与流程

文档序号:26750642发布日期:2021-09-25 02:23阅读:164来源:国知局
文本摘要生成方法、装置、设备和存储介质与流程

1.本技术涉及自然语言处理技术领域,尤其涉及一种文本摘要生成方法、装置、设备和存储介质。


背景技术:

2.现有技术中,文章的摘要的获取方法包括抽取式获取摘要、rnn和 seq

to

seq模型或transformer等生成式获取摘要。
3.传统的抽取式获取摘要主要由extractive(抽取式)方法来生成,抽取式的方法局限于在原始文本中寻找,得到的结果也是原始文本的段落。抽取式方法主要由三个主要步骤组成:句子重要性评估,句子的去重操作,对句子做长度的约束。句子的重要性可以采用tf

idf和textrank或者启发式规则来决定,大致方法为用textrank使用句子的相似度,以句子为节点构造无向有权边,不断权值更新迭代得到最适合。然而采用抽取式方法得到的文章的摘要有很多不足,例如,成句并不能够通顺、选取的目标词有歧义性等等。
4.在传统的生成式摘要中,研究人员用了rnn和seq

to

seq的序列模型。 rnn相比于抽取式的改进是,在rnn的序列模型中,有对隐状态的学习和建模,在一定程度上对输入文本进行隐语义的学习和训练。然而rnn本身的结构导致它不能对长语义进行捕捉,上下文的信息不能够在模型中进行传递。还有一个弊端是,在seq

to

seq的架构中,前序列的学习输出为一个低维的向量表示(当然通常情况下是一个1维的长向量),这个向量是一个固定大小的向量,后序列根据前序列的输出向量进行学习。在程序中,由于这个向量是固定大小,对于特别长的文本会截取向量表达内容。这样会导致语义损失的问题。并且在整个seq

to

seq的过程中并没有对语义的重点进行学习的过程。
5.自从self

attention的机制提出,自然语言处理有了非常大的进展。 self

attention的机制使得encoder和decoder的输出都有对句子中词权重的学习,这样在向量表达中有了侧重点。同时输入也包括了句子中的位置信息,用于辅助句子中词权重学习。然而传统的transform只是一个单结构的 encoder

decoder的架构,网络层数并没有那么深,所以在一定任务上表现并没有那么好,且具有准确率不高、标注工作过于繁琐等问题。


技术实现要素:

6.为了解决现有技术中提取或生成的摘要语句不通顺、语义损失或准确率不高的技术问题。本技术提供了一种文本摘要生成方法、装置、设备和存储介质,其主要目的在于训练出具有较好的生成摘要功能的摘要生成模型,保证生成的摘要具有较高的准确性和可读性。
7.为实现上述目的,本技术提供了一种文本摘要生成方法,该方法包括:
8.获取训练样本集,训练样本集包括使用样本摘要标注过的样本文本;
9.利用训练样本集对当前预训练bert模型进行训练;
10.判断当前预训练bert模型是否不为检测模型且不满足预设的训练终止条件;
11.若当前预训练bert模型为检测模型,和/或,当前预训练bert模型满足预设的训练终止条件,则对当前预训练bert模型进行能力检测,得到能力检测结果,
12.根据能力检测结果判断是否执行训练节点回退操作,
13.若执行训练节点回退操作,则根据回退规则确定下一预训练bert模型,将下一预训练bert模型作为当前预训练bert模型,返回执行利用训练样本集对当前预训练bert模型进行训练的步骤;
14.若不执行训练节点回退操作且所述当前预训练bert模型不满足预设的训练终止条件,则根据当前预训练bert模型确定下一预训练bert模型,将下一预训练bert模型作为当前预训练bert模型,返回执行所述利用所述训练样本集对当前预训练bert模型进行训练的步骤;
15.若不执行训练节点回退操作且当前预训练bert模型满足预设的训练终止条件,则得到摘要生成模型;
16.若当前预训练bert模型不为检测模型且不满足预设的训练终止条件,则根据当前预训练bert模型确定下一预训练bert模型,将下一预训练bert模型作为当前预训练bert模型,返回执行利用训练样本集对当前预训练bert模型进行训练的步骤;
17.将摘要待提取文本输入至摘要生成模型,得到目标摘要。
18.此外,为实现上述目的,本技术还提供了一种文本摘要生成装置,其特征在于,该装置包括:
19.样本获取模块,用于获取训练样本集,训练样本集包括使用样本摘要标注过的样本文本;
20.训练模块,用于利用训练样本集对当前预训练bert模型进行训练;
21.第一判断模块,用于判断当前预训练bert模型是否为检测模型以及是否满足预设的训练终止条件;
22.检测模块,用于若当前预训练bert模型为检测模型,或,当前预训练bert 模型满足预设的训练终止条件,则对当前预训练bert模型进行能力检测,得到能力检测结果;
23.第二判断模块,用于根据能力检测结果确定是否执行训练节点回退操作;
24.第一循环模块,用于若执行训练节点回退操作,则根据回退规则确定下一预训练bert模型,将下一预训练bert模型作为当前预训练bert模型,返回至训练模块;
25.第二循环模块,用于若不执行训练节点回退操作且当前预训练bert模型不满足预设的训练终止条件,则根据当前预训练bert模型确定下一预训练bert 模型,将下一预训练bert模型作为当前预训练bert模型,返回至训练模块;
26.训练停止模块,用于若不执行训练节点回退操作且当前预训练bert模型满足预设的训练终止条件,则得到摘要生成模型;
27.第三循环模块,用于若当前预训练bert模型不为检测模型且不满足预设的训练终止条件,则根据当前预训练bert模型确定下一预训练bert模型,将下一预训练bert模型作为当前预训练bert模型,返回至训练模块;
28.摘要生成模块,用于将摘要待提取文本输入至摘要生成模型,得到目标摘要。
29.为实现上述目的,本技术还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机可读指令,处理器执行计算机可读指令时执行如前
面任一项的文本摘要生成方法的步骤。
30.为实现上述目的,本技术还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行如前面任一项的文本摘要生成方法的步骤。
31.本技术提出的文本摘要生成方法、装置、设备和存储介质,本技术利用被样本摘要标注的样本文本对预训练bert模型进行模型训练,并通过抽检的方式对训练过程中的检测模型进行能力检测,以及时将训练节点从糟糕的训练节点回退至较好的历史训练节点,进而通过回退操作纠正训练方向直至训练完成。本技术有效提升bert在摘要模型上的表现能力的同时,尽量避免bert 模型在训练微调过程中发生灾难性遗忘等其他丧失本身基本功能的问题,保证了最后得到的已训练的摘要生成模型既保留了bert模型原本的各种强大功能,也具有较好的摘要生成功能,进而保证生成的摘要具有较高的准确性和可读性。
32.另外,在预训练bert模型出来之前,通常的自然语言处理流程是进行分词任务

词嵌入

模型建模

输出的一套比较标准的程序。大部分的语言模型建模都是基于此而展开改进的,也正是因为此流程,在分词阶段就可能产生大量的语义损失,导致最终获取到的摘要出现语句不通顺、不准确等效果不佳的问题。由于预训练bert模型是基于字符进行建模,因此可以在一定程度上有效避免在分词阶段带来的语义损失,保证了生成的摘要的准确性和可读性。
33.再次,标注工作一直是自然语言处理较为头疼的问题,耗费大量的时间人力。但是预训练bert是一种经过大量样本训练过的成熟的预训练模型,因此可以减少标注工作,节省人力物力。
附图说明
34.图1为本技术一实施例中文本摘要生成方法的应用场景图;
35.图2为本技术一实施例中文本摘要生成方法的流程示意图;
36.图3为本技术一实施例中文本摘要生成装置的结构框图;
37.图4为本技术一实施例中计算机设备的内部结构框图。
38.本技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
39.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
40.本技术提供的文本摘要生成方法,可应用在如图1的应用环境中,其中,终端设备可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。
41.当然,本技术提供的文本摘要生成方法还可以由终端设备和服务器共同实现。终端设备和服务器之间通过网络连接,以进行数据传输。
42.图2为本技术一实施例中文本摘要生成方法的流程示意图。参考图2,以该方法应
用在图1中的终端设备为例进行说明。该文本摘要生成方法包括以下步骤s100

s900。
43.s100:获取训练样本集。
44.具体地,训练样本集包括使用样本摘要标注过的样本文本。训练样本集中包含多个样本,每个样本是由一对样本文本和对应的样本摘要生成的。样本摘要是对应的样本文本的标签值,也是真实摘要。
45.s200:利用训练样本集对当前预训练bert模型进行训练。
46.具体地,利用训练样本集对当前预训练bert模型进行训练即利用当前预训练bert模型对训练样本集进行模型预测。bert模型是一种预训练模型。bert 全称为bidirectional encoder representation transformer,其实也是transformer 架构的改进,也是现在自然语言处理的一个通用预训练语言模型。bert本身具备一定的语义理解能力,在预训练的过程中使用百亿量级的文本做训练。它主要的改进在于masked language model(mlm)和next sentence prediction。 mlm用了随机对字符进行遮挡的方法来提升语言模型的泛化能力。而nextsentence prediction和mlm联合提升预训练的文本表达效果。预训练bert 模型具有强大的功能,但是在实际应用中需要对预训练bert模型进行有针对性的单独训练,使其具有实现特定的功能,这就需要通过特定的训练样本对预训练bert模型进行微调。
47.当前预训练bert模型可以是初始预训练bert模型,也可以是训练过程中构建的预训练bert模型。将初始模型参数作为当前模型参数对初始预训练bert 模型的模型参数进行参数量化,则可以构建出当前预训练bert模型。
48.参数量化后的初始预训练bert模型作为当前预训练bert模型根据训练样本集中的样本文本的特征数据,对样本文本进行模型预测得到预测摘要。即利用当前预训练bert模型对各个样本文本进行模型预测,得到预测摘要。样本摘要是样本文本的真实标签数据,即真实摘要,预测摘要是根据当前预训练bert模型为样本文本预测的摘要,是模型预测值。真实摘要和预测摘要存在一定的差异,并不一定完全相同。
49.根据样本文本的预测摘要和样本摘要(真实摘要)可以确定当前预训练 bert模型预测的准确度即精度,判断出当前预训练bert模型是否满足预设的训练终止条件,还能在不满足预设的训练终止条件时,确定如何调整模型参数(即获取下一个预训练bert模型的模型参数的更新方向),以得到下一个预训练bert模型的模型参数;进而在当前预训练bert模型的基础上,根据下一个预训练bert模型对当前预训练bert模型进行模型重构,得到下一个预训练 bert模型。
50.更具体地,训练样本集中的样本输入至当前预训练bert模型,计算出实际输出(预测摘要)与期望输出(样本摘要)的误差值得到预测结果,根据预测结果可以判断是否满足训练终止条件。由于训练样本集中有很多样本,每个样本都有对应的误差值,因此,需要对所有误差值进行归一化处理,以得到损失函数。随后,根据所确定出的损失函数,使用反向传播算法来确定下一个预训练bert模型的模型参数,以更新当前预训练bert模型的模型参数,得到下一个预训练bert模型。该损失函数反映了当前预训练bert模型的预测能力,用于衡量前预训练bert模型距离最小化误差还有多远。
51.利用下一个预训练bert模型预测样本文本的摘要得到预测摘要;根据预测摘要和样本摘要确定预测结果。如此迭代训练模型,直至模型满足预设的训练终止条件。
52.s300:判断当前预训练bert模型是否不为检测模型且不满足预设的训练终止条件。
53.具体地,训练训练终止条件具体为训练总次数或循环次数达到预设次数、包括当前预训练bert模型在内连续预设数量的预训练bert模型的损失函数不再下降或趋于稳定,或,损失函数达到一个阈值,即连续多个版本的bert模型的表现能力一样或趋于不变。训练循环过程的训练终止条件还可以是模型参数的变化量不大于预定阈值。
54.检测模型可以根据模型的训练完成时刻或模型版本来确定。例如,可以每间隔第一预设数量的历史预训练bert模型确定一个检测模型,即相邻两个检测模型之间间隔第一预设数量的历史预训练bert模型。
55.训练完成时刻或模型版本可以存储在训练记录表中。每完成一个模型训练,都会根据当前预训练bert模型对应的训练数据对训练记录表进行更新,以在训练记录表中增加当前预训练bert模型的相关数据。其中,训练数据包括当前预训练bert模型的模型参数、训练完成时刻和是否满足预设的训练终止条件。训练记录表中记录了训练过程中每个版本的历史预训练bert模型的相关数据。因此,训练记录表中记录了每个历史预训练bert模型对应的模型参数、训练完成时刻、是否满足预设的训练终止条件、模型版本等相关数据。
56.例如,还可以根据训练完成时刻每间隔第一预设时长范围内确定一个检测模型,即相邻两个检测模型之间的训练完成时刻的时间间隔在第一预设时长范围内。
57.s400:若当前预训练bert模型为检测模型,和/或,当前预训练bert模型满足预设的训练终止条件,则对当前预训练bert模型进行能力检测,得到能力检测结果。
58.具体地,一般情况下,模型训练过程中每次训练都会调整更新模型参数,直至利用调整的模型参数得到的预训练bert模型满足训练终止条件。然而 bert的网络结构非常深,在通过模型训练对预训练bert模型进行微调的过程中可能存在有很多潜在问题,例如一些不恰当的微调操作会使得预训练 bert模型丧失本身的语义理解能力甚至发生灾难性遗忘等问题。因此,在训练过程中,不可避免可能会出现预训练bert模型往越来越坏的方向微调。如果不能及时发现模型微调的方向错误,可能导致模型恶性循环无止境的向坏的方向训练下去甚至永远满足不了预设的训练终止条件,不仅延长了训练时间,而且白做无用功。
59.每间隔一段时长或间隔一定数量的历史预训练bert模型就确定一个检测模型,对检测模型进行能力检测,可以及时发现模型的训练趋势和方向,及时纠正错误的训练方向,使模型往正确的方向训练,并且还可以缩短训练时长,有效的保证模型的最终训练效果。
60.当然,如果当前预训练bert模型不属于检测模型,但是其满足预设的训练终止条件,也需要进行能力检测。因为,满足预设的训练终止条件可能意味着训练完成,即,当前预训练bert模型可能是最终的摘要生成模型。我们最终的目的不仅仅要增加预训练bert模型的新功能,还要保证其原本功能不倒退弱化或消失。因此,需要对此时的当前预训练bert模型进行能力检测,以再次确保其是否在满足预设的训练终止条件的同时还保证其原本的基本能力。
61.能力检测结果包括表现指标不满足预设标准或表现指标满足预设标准。
62.将检测模型或满足预设的训练终止条件的当前预训练bert模型的检测结果更新至训练记录表中方便后面训练糟糕的情况下能够快速回退,将训练节点从糟糕的当前训练节点回退至较好的历史训练节点。
63.s500:根据能力检测结果判断是否执行训练节点回退操作。
64.具体地,如果能力检测结果为当前预训练bert模型的表现指标满足预设标准,则确定不执行训练节点回退操作,直接由当前节点按训练时间至下一个训练节点。如果能力检测结果为当前预训练bert模型的表现指标不满足预设标准,则确定需要执行训练节点回退操作。回退操作具体至将训练节点从当前训练节点回退至某个历史训练节点,从该历史训练节点开始重新进行模型训练。
65.s600:若执行训练节点回退操作,则根据回退规则确定下一预训练bert 模型,将下一预训练bert模型作为当前预训练bert模型,返回执行步骤s200 及s200之后的步骤。
66.具体地,若执行训练节点回退操作,则在将当前训练节点回退后确定下一预训练bert模型。
67.不论当前预训练bert模型是检测模型还是满足预设的训练终止条件的模型,只要其能力检测结果为表现指标不满足预设标准,则需要执行模型训练节点的回退操作。回退操作具体就是将模型训练节点回退至目标历史预训练 bert模型,使得从目标历史预训练bert模型开始继续执行模型的训练。
68.步骤s600中不论是哪种情况,都需要继续执行模型训练,因此确定了下一预训练bert模型后,需要将下一预训练bert模型作为新一轮训练过程中的当前预训练bert模型,返回执行步骤s200及s200之后的步骤。在新一轮训练过程中进入步骤s300的时候需要继续判断当前预训练bert模型是否为检测模型以及是否满足预设的训练终止条件,进而确定是执行步骤s400及s400 之后的步骤还是执行步骤s800。
69.通过回退操作既可以将训练节点从不理想的当前节点回退到较理想的某个历史节点,也节省了回退的时间,快速纠正了训练方向,使得预训练bert 模型的训练恢复至正常训练方向和节奏上,节省了训练时间,尽可能保证了预训练bert模型自身的基本功能和新功能的进一步强化。
70.s710:若不执行训练节点回退操作且当前预训练bert模型不满足预设的训练终止条件,则根据当前预训练bert模型确定下一预训练bert模型,将下一预训练bert模型作为当前预训练bert模型,返回执行步骤s200及s200之后的步骤。
71.具体地,如果不执行训练节点回退操作且当前预训练bert模型不满足预设的训练终止条件,则训练还未完成,此时虽然不需要执行回退操作,但是还需要继续进行模型的训练,下一预训练bert模型是根据当前预训练bert模型确定的,即是根据当前训练节点确定。
72.执行训练节点回退操作和不执行训练节点回退操作,其新的训练节点不同,因此,下一预训练bert模型也会不同。如果执行训练节点回退操作,则下一预训练bert模型是根据回退到的那个历史训练节点来确定的。
73.s720:若不执行训练节点回退操作且当前预训练bert模型满足预设的训练终止条件,则得到摘要生成模型。
74.具体地,在一轮训练过程中步骤s710、s720和步骤s600在步骤s500之后择一执行。若当前预训练bert模型满足预设的训练终止条件且表现指标满足预设标准,则不需要执行回退操作,且训练完成,此时得到当前预训练bert 模型即为摘要生成模型。
75.s800:若当前预训练bert模型不为检测模型且不满足预设的训练终止条件,则根据当前预训练bert模型确定下一预训练bert模型,将下一预训练bert 模型作为当前预训
练bert模型,返回执行步骤s200及s200之后的步骤。
76.具体地,若当前预训练bert模型不满足预设的训练终止条件且不属于检测模型,则不需要进行能力检测,训练节点不需要回退,从当前预训练bert 模型进入到其下一预训练bert模型。利用下一预训练bert模型对训练样本集中的样本文本进行模型预测,返回执行步骤s200及s200之后的步骤。
77.在新一轮训练过程中进入步骤s300的时候需要继续判断当前预训练bert 模型是否为检测模型以及是否满足预设的训练终止条件,进而确定是执行步骤s400及s400之后的步骤还是执行步骤s800。
78.在一轮训练过程中,步骤s400和步骤s800在步骤s300之后择一执行。
79.s900:将摘要待提取文本输入至摘要生成模型,得到目标摘要。
80.具体地,提取待提取文本的目标特征数据输入至摘要生成模型,由摘要生成模型根据提取的目标特征数据对待提取文本的摘要进行预测,得到目标摘要。
81.本技术在有效提升bert在摘要模型上的表现能力的同时,尽量避免bert 模型在训练微调过程中发生灾难性遗忘等其他丧失本身基本功能的问题,保证了最后得到的已训练的摘要生成模型既保留了bert模型原本的各种强大功能,也具有较好的摘要生成功能。
82.另外,在预训练bert模型出来之前,通常的自然语言处理流程是进行分词任务

词嵌入

模型建模

输出的一套比较标准的程序。大部分的语言模型建模都是基于此而展开改进的,也正是因为此流程,在分词阶段就可能产生大量的语义损失,导致最终获取到的摘要出现语句不通顺、不准确等效果不佳的问题。由于预训练bert模型是基于字符进行建模,因此可以在一定程度上有效避免在分词阶段带来的语义损失,保证了生成的摘要的准确性和可读性。
83.再次,标注工作一直是自然语言处理较为头疼的问题,耗费大量的时间人力。但是预训练bert是一种经过大量样本训练过的成熟的预训练模型,因此可以减少标注工作,节省人力物力。
84.在一个实施例中,在步骤s100之前,该方法还包括:
85.获取样本文件中每两个样本文本对应的两个样本摘要的摘要相似度;
86.将摘要相似度大于等于预设相似度所对应的两个样本文本的标签设为相同样本摘要,或,将摘要相似度大于等于预设相似度的两个样本摘要进行合并处理后作为对应的两个样本文本的共同样本摘要;
87.根据所有样本文本的权重比,复制样本文本、并复制对应的样本摘要作为样本文本副本的标签,使不同样本文本之间的数量之比为权重之比。
88.具体地,在实际的模型训练过程中,每个样本都有对应的标签。通常情况下,标签的种类越少,则模型训练过程中越容易收敛,若标签的种类繁多,甚至一个样本对应一种不同的标签,则模型很难找出并学习到样本与标签之间的规则,因此,模型也很难收敛。为了解决模型收敛的问题,本实施例对样本文本对应的样本摘要进行合并或替换处理。如果两个样本文本其样本摘要的相似度非常高,则可以认为这两个样本文本可以共有一个样本摘要作为标签(可以选择两个样本摘要中任意一个样本摘要作为共同样本摘要标签),因此,可以减少样本摘要的种类,进而加速模型训练过程中的收敛。
89.当然,选择两个样本摘要中任意一个样本摘要作为共同样本摘要标签可能过于草
率,造成语义丢失,因此,还可以对两个样本摘要进行合并处理,那么得到的样本摘要融合了两个原始样本摘要的语义,更能体现两个样本文本的意思表示。精准的样本摘要也使得训练出来的模型具有更好的摘要生成能力。
90.本实施例减少标签的种类的操作有助于模型收敛,减少了标签,也减少了模型结果的泛化误差。
91.另外,需要生成摘要的文本有多种类型,有的类型的文本具有大量的语料素材,可以得到大量的训练样本。但是有的类型的文本例如特殊领域的文本则存在训练样本较少的问题,一年能产生的公文都没有很大的数量。一般在模型训练过程中,充足的训练样本能够使得模型得到充分训练,得到更加健壮的模型。因此,在样本文本较少的情况下需要对已有的样本文本按照权重的比例进行复制得到样本文本副本。使得权重高的样本文本复制的副本更多,权重小的样本文本复制的副本少一些。这样有针对性的复制样本文本,可以有效解决样本少的问题。
92.迁移学习的目标就是解决样本少,但是又需要模型表能力强的业务场景。本实施例通过迁移学习对样本文本进行有效的权重分配,使得bert模型更适合于特定业务场景。同时保证了模型泛化能力。
93.在一个实施例中,在步骤s300之前,该方法还包括以下步骤:
94.根据获取到的当前预训练bert模型对应的训练数据更新训练记录表,训练记录表包括每个历史训练节点对应的历史预训练bert模型及对应的模型参数、训练完成时刻、是否满足预设的训练终止条件。
95.具体地,每完成一轮模型训练,都会根据当前预训练bert模型对应的训练数据对训练记录表进行更新。训练数据包括当前预训练bert模型的模型参数、训练完成时刻和是否满足预设的训练终止条件。训练记录表中记录了训练过程中每个版本的历史预训练bert模型的相关数据。因此,训练记录表中记录了每个历史预训练bert模型对应的模型参数、训练完成时刻、是否满足预设的训练终止条件、模型版本等相关数据。
96.在本实施例中,步骤s600中若执行训练节点回退操作,则根据是回退规则确定下一预训练bert模型,具体包括:
97.若执行训练节点回退操作,则根据训练记录表和回退规则,将训练节点从当前预训练bert模型对应的当前训练节点回退至目标历史训练节点,
98.根据目标历史训练节点对应的目标历史预训练bert模型确定下一预训练 bert模型。
99.具体地,因为训练记录表中记录了每个历史训练节点所对应的历史预训练bert模型的历史模型参数、训练完成时刻、是否满足预设的训练终止条件、模型版本等相关数据,因此,可以根据训练记录表查找出目标历史模型参数,目标历史模型参数用于参数化对应的目标历史预训练bert模型,该目标历史模型参数所对应的目标历史预训练bert模型的表现指标满足预设标准,且,不满足预设的训练终止条件,将训练节点回退至目标历史模型参数所对应的目标历史训练节点。
100.此情况下,下一预训练bert模型可以是目标历史预训练bert模型,也可以是根据当前训练节点的训练结果获取模型更新信息,根据模型更新信息对目标历史预训练bert模型的历史模型参数进行调整后重新构建的新的预训练 bert模型。其中,模型更新信息包括
梯度和学习率。优先地,本技术设置了学习率约束规则,且该约束规则为学习率随训练次数递减,即,约束了随着训练次数的增加,学习率不允许增加,只能不变或降低。约束学习率可以有效地减少模型发生灾难性遗忘的可能。
101.目标历史预训练bert模型为当前预训练bert模型之前的历史预训练bert 模型中表现指标满足预设标准,且,不满足预设的训练终止条件的历史预训练bert模型。由于训练记录表中记录了每个历史预训练bert模型的历史模型参数、训练完成时刻、是否满足预设的训练终止条件和模型版本,因此,在不需要进行重复训练的基础上,通过训练记录表可以快速找到表现指标满足预设标准,且,不满足预设的训练终止条件的目标历史预训练bert模型。既可以将训练节点从不理想的当前节点回退到较理想的某个历史节点,也节省了回退的时间,快速纠正了训练方向,使得预训练bert模型的训练恢复至正常训练方向和节奏上,节省了训练时间,尽可能保证了预训练bert模型自身的基本功能和新功能的进一步强化。
102.若不执行回退操作,且当前预训练bert模型不满足预设的训练终止条件,则需要以当前训练节点为起点进入下一轮训练节点。此时,下一预训练bert 模型是根据当前训练节点得到的模型更新信息对当前预训练bert模型的模型参数进行调整后重新构建的新的预训练bert模型。其中,模型更新信息包括梯度和学习率。优先地,本技术设置了学习率约束规则,且该约束规则为学习率随训练次数递减,即,约束了随着训练次数的增加,学习率不允许增加,只能不变或降低。约束学习率可以有效地减少模型发生灾难性遗忘的可能。
103.在一个实施例中,在步骤s400之后,该方法还包括:若当前预训练bert 模型为检测模型或满足预设的训练终止条件,则根据当前预训练bert模型的能力检测结果更新训练记录表,其中,能力检测结果包括表现指标满足预设标准或不满足预设标准。
104.具体地,由于每次训练结束都会将当前预训练bert模型的训练数据更新至训练记录表中,因此,训练记录表中记录了每个历史训练节点所对应的历史预训练bert模型的历史模型参数、训练完成时刻、是否满足预设的训练终止条件、模型版本。又由于还会将检测模型或满足预设的训练终止条件的当前预训练模型的能力检测结果更新至训练记录表中,因此训练记录表还记录了为检测模型的历史预训练bert模型的能力检测结果(表现指标满足预设标准或表现指标不满足预设标识)。因此,根据训练记录表的能力检测结果可以判断任意一个历史预训练bert模型是否有历史检测模型,以及其表现指标是否满足预设标准。
105.在本实施例中,根据训练记录表,将训练节点从当前预训练bert模型对应的当前训练节点回退至目标历史训练节点,包括:
106.根据训练记录表和回退规则获取当前预训练bert模型之前且表现指标满足预设标准的目标历史预训练bert模型,
107.将训练节点从当前预训练bert模型对应的当前训练节点回退至目标历史预训练bert模型对应的目标历史训练节点。
108.具体地,目标历史预训练bert模型为当前预训练bert模型之前的历史预训练bert模型中表现指标满足预设标准,且,不满足预设的训练终止条件的历史预训练bert模型。由于训练记录表中记录了每个历史预训练bert模型的历史模型参数、训练完成时刻、是否满足预设的训练终止条件,因此,在不需要进行重复训练的基础上,通过训练记录表可以快速找到表现指标满足预设标准,且,不满足预设的训练终止条件的目标历史预训练bert模型。
109.根据训练记录表和回退规则获取当前预训练bert模型之前且表现指标满足预设标准的历史预训练bert模型作为目标历史预训练bert模型,或,根据训练记录表获取当前预训练bert模型之前最近且表现指标满足预设标准的历史检测模型作为目标历史预训练bert模型。
110.目标历史预训练bert模型也可以不是历史检测模型,可以是根据间隔时间或间隔的历史预训练bert模型的数量确定的一个历史预训练bert模型。
111.更具体地,当前预训练bert模型之前表现指标满足预设标准的历史预训练bert模型有至少一个,可以根据训练完成时刻从当前时刻开始向前倒退第二预设时长确定一个历史预训练bert模型作为候选历史预训练bert模型。利用测试样本集对该候选历史预训练bert模型进行能力检测,若候选历史预训练bert模型的能力检测结果为其表现指标满足预设标准,则确定该候选历史预训练bert模型为目标历史预训练bert模型。
112.如果候选历史预训练bert模型的能力检测结果为其表现指标不满足预设标准,从该候选历史预训练bert模型的训练完成时刻开始向前倒退第二预设时长确定一个新的历史预训练bert模型作为候选历史预训练bert模型,利用测试样本集对该候选历史预训练bert模型进行能力检测,若候选历史预训练 bert模型的能力检测结果为其表现指标满足预设标准,则确定该候选历史预训练bert模型为目标历史预训练bert模型,若其表现指标不满足预设标准,则查找下一个候选历史预训练bert模型,直到找到一个候选历史预训练bert 模型的表现指标满足预设标准,将其作为目标历史预训练bert模型。
113.另外,如果候选历史预训练bert模型的训练完成时刻之后存在历史检测模型,则优先确定该历史检测模型的表现指标是否满足预设标准,如果满足,则确定该历史检测模型为目标历史预训练bert模型。如果候选历史预训练bert 模型的训练完成时刻之后不存在历史检测模型,则对该候选历史预训练bert 模型进行能力检测。
114.上述方法可以尽可能的找到距离当前预训练bert模型最近的且表现指标满足预设标准的目标历史预训练bert模型。
115.当然,在上述查找目标历史预训练bert模型过程中,如果候选历史预训练bert模型为历史检测模型,则直接根据训练记录表中记录的其能力检测结果来确定其是否可以作为目标历史预训练bert模型,而不需要再次进行能力检测,节省了训练步骤和计算开销,能够快速定位目标历史预训练bert模型。
116.根据训练记录表可以确定哪些历史预训练bert模型是检测模型,还能确定其表现指标是否满足预设标准。再根据历史预训练bert模型的训练完成时刻,可以快速定位当前预训练bert模型之前且表现指标满足预设标准的历史检测模型作为目标历史预训练bert模型。此方法不需要额外对历史预训练bert 模型进行能力检测,达到快速回退的目的,减少计算开销,节省训练时间成本。
117.在一个实施例中,步骤s400中对当前预训练bert模型进行能力检测,得到能力检测结果,具体包括以下步骤:
118.获取测试样本集;
119.利用测试样本集对当前预训练bert模型进行模型功能检测,以获取表现指标;
120.根据表现指标与预设标准得到能力检测结果。
121.具体地,根据能力检测的类型,测试样本集也不同。如果检测预训练bert 模型的
分类功能,则测试样本集为已标注分类的样本集合。其表现指标包括召回率、精准率等。
122.如果检测预训练bert模型的语义匹配功能,则测试样本集为已标注匹配度的多组待匹配文本集合。每组待匹配文本包含两个待匹配文本。其表现指标可以包括匹配度。
123.能力检测结果包括当前预训练bert模型的表现指标满足预设标准,或,当前预训练bert模型的表现指标不满足预设标准。
124.在一个实施例中,在步骤s200之前,该方法还包括:
125.对每个样本文本进行分句处理,得到每个样本文本对应的样本语段集,样本语段集包括至少一个样本语段;
126.对样本语段进行文本聚类,以对属于冗余词库中的冗余语句的样本语段进行截取操作,得到截取后的样本文本。
127.具体地,摘要是根据原始文本生成的,因此,摘要的内容与原始文本的内容有较大关系。但是在很多情况下,有的原始文本中可能会有很多与文本的实质内容无关、对文本的主体内容理解意义不大的冗余语句或语段。这些冗余语句或语段对生成摘要不具有贡献或参考意义,且容易造成干扰。
128.例如针对特殊领域的公文进行摘要生成。与新闻文本重点不同,特殊领域的公文的特点在于套话比较多。新闻文本的段落开头会对语义进行大致描述,结尾会对语义进行总结,中间部分大多是描述主体。然而特殊领域的公文结构有着很大不同,通常会有一些对公文内容不直接相关的文本段,通常这些文本段出现在公文段落的开头。因此,去除原始文本中的冗余语句或语段具有十分重要的意义。
129.对样本语段进行文本聚类具体步骤为:对每个样本语段集中的每个样本语段进行分词处理,得到每个样本语段对应的包含至少一个词(token元素) 的第一序列,其中每个词为对应样本语段中的一部分;对词进行语义识别以实现对每个样本语段对应的第一序列进行文本聚类。
130.针对不同文本的语言特点,本实施例采用特定的文本截断方法。在做文本截断的过程中重点对开头部分和结尾部分的语义token进行截取,不保留等措施。这样的好处是在于文本截取后,截取后的文本也与一般的描述性语言较为接近,且减少不必要的处理量,加快训练进度。
131.在一个实施例中,步骤s200具体包括以下步骤:
132.对每个样本文本进行分句处理,得到每个样本文本对应的样本语段集;
133.对每个样本语段集中的每个样本语段进行分词处理,得到每个样本语段对应的包含至少一个词的第一序列;
134.获取每个词的语义标签;
135.将样本语段集对应的第一序列集合输入至特征提取器,以提取样本语段集的第一特征信息,第一特征信息包括样本语段集中每个词的词编码、位置编码;
136.根据词的语义标签生成每个词对应的语义编码;
137.将同一个词的词编码、位置编码和语义编码进行拼接处理,以得到每个样本语段集的第二特征信息;
138.将训练样本集中样本文本的第二特征信息输入至当前预训练bert模型,得到对应样本文本的预测摘要;
139.根据当前预训练bert模型得到的样本文本的预测摘要和样本摘要,确定当前预训练bert模型是否满足预设的训练终止条件。
140.具体地,每个样本语段集包括至少一个样本语段,每个样本语段由至少一个词组成。因此,每个样本语段对应的第一序列包括至少一个词(token元素)。
141.将每个样本语段对应的第一序列输入至特征提取器,可以提取出第一序列中每个词的词编码和位置编码。
142.由于每个词标注有语义标签,因此,将词的语义标签输入至特征提取器还可以提取出每个词的语义编码。
143.将同一个词的词编码、位置编码、语义编码进行拼接,则相当于增加了第一序列中每个词的特征,进而增加了每个样本的特征。
144.本实施例增加样本语义相当于增加了特征表述内容,对每个训练样本中的样本文本中的词进行语义标注得到具有样本语义的样本文本,对样本文件中每个句子进行分词和特征提取,得到句子中每个词的词编码(词向量)、位置编码和语义编码,每个句子的句向量由对应的多个词编码、位置编码和语义编码组成,一个样本文本由对应的多个句子的句向量组成。
145.本实施例在输入特征中增加语义信息,这样输入的特征就包含每一个词的编码、位置编码和语义编码。本实施例运用了语义结合词向量表示并输入到bert模型,达到了提升模型准确率的效果。
146.得根据词的语义标签生成每个词对应的语义编码具体方法为:根据词标签生成向量(类似于word embedding方法),得到向量之后对齐大小进行转化,采用max pooling或者卷积方式,得到与词编码和位置编码一样长度的向量。
147.在上述实施例的基础上,在将训练样本集中样本文本的第二特征信息输入至当前预训练bert模型之前,步骤s200还包括:将第二特征信息中的词编码、位置编码和语义编码转换为低维向量。
148.具体地,这里的架构是采用一个encoder的结构,输入至encoder转换为一个低维向量(例如:原有的1*200转变为1*80)我们认为现有的1*80的这个纬度的向量能够包含现有语义信息,或者说能够达到一个近似的效果。这样的作用是在包含了近似语义的情况下,训练的过程得到了大幅缩减,因为输入数据的维度减少了,但是语义并没有缩减。在采用了encoder结构降维后,训练时间缩短了21%。但是模型的准确度仅仅下降了1.8%。引入降维的策略提升了模型效果。
149.应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
150.图3为本技术一实施例中文本摘要生成装置的结构框图。参考图3,该装置包括:
151.样本获取模块100,用于获取训练样本集,训练样本集包括使用样本摘要标注过的样本文本;
152.训练模块200,用于利用训练样本集对当前预训练bert模型进行训练;
153.第一判断模块300,用于判断当前预训练bert模型是否为检测模型以及是否满足预设的训练终止条件;
154.检测模块400,用于若当前预训练bert模型为检测模型,和/或,当前预训练bert模型满足预设的训练终止条件,则对当前预训练bert模型进行能力检测,得到能力检测结果;
155.第二判断模块500,用于根据能力检测结果判断是否执行训练节点回退操作;
156.第一循环模块600,用于若执行训练节点回退操作,则根据回退规则确定下一预训练bert模型,将下一预训练bert模型作为当前预训练bert模型,返回至训练模块200;
157.第二循环模块710,用于若不执行训练节点回退操作且当前预训练bert 模型不满足预设的训练终止条件,则根据当前预训练bert模型确定下一预训练bert模型,将下一预训练bert模型作为当前预训练bert模型,返回至训练模块200;
158.训练停止模块720,用于若不执行训练节点回退操作且当前预训练bert 模型满足预设的训练终止条件,则得到摘要生成模型;
159.第三循环模块800,用于若当前预训练bert模型不为检测模型且不满足预设的训练终止条件,则根据当前预训练bert模型确定下一预训练bert模型,将下一预训练bert模型作为当前预训练bert模型,返回至训练模块200;
160.摘要生成模块900,用于将摘要待提取文本输入至摘要生成模型,得到目标摘要。
161.该文本摘要生成装置一般设置于服务器/终端设备中。
162.在一个实施例中,该装置还包括:
163.相似度计算模块,用于获取样本文件中每两个样本文本对应的两个样本摘要的摘要相似度;
164.样本摘要处理模块,用于将摘要相似度大于等于预设相似度所对应的两个样本文本的标签设为相同样本摘要,或,将摘要相似度大于等于预设相似度的两个样本摘要进行合并处理后作为对应的两个样本文本的共同样本摘要;
165.样本复制模块,用于根据所有样本文本的权重比,复制样本文本、并复制对应的样本摘要作为样本文本副本的标签,使不同样本文本之间的数量之比为权重之比。
166.在一个实施例中,该装置还包括:
167.第一更新模块,用于根据获取到的当前预训练bert模型对应的训练数据更新训练记录表,训练记录表包括每个历史训练节点对应的历史预训练bert 模型的历史模型参数、训练完成时刻、是否满足预设的训练终止条件。
168.第一循环模块600具体包括:
169.回退模块,用于若执行训练节点回退操作,则根据训练记录表和回退规则,将训练节点从当前预训练bert模型对应的当前训练节点回退至目标历史训练节点,
170.第一模型确定模块,用于根据目标历史训练节点对应的目标历史预训练 bert模型确定下一预训练bert模型。
171.在一个实施例中,该装置还包括:
172.第二更新模块,用于根据当前预训练bert模型的能力检测结果更新训练记录表,训练记录表还包括:每个历史检测模型的能力检测结果。
173.回退模块具体包括:
174.目标模型定位单元,用于根据训练记录表和回退规则获取当前预训练bert 模型之前且表现指标满足预设标准的目标历史预训练bert模型,
175.回退单元,用于将训练节点从当前预训练bert模型对应的当前训练节点回退至目
标历史预训练bert模型对应的目标历史训练节点。
176.在一个实施例中,检测模块400具体包括:
177.测试样本获取单元,用于获取测试样本集;
178.检测单元,用于利用测试样本集对当前预训练bert模型进行模型功能检测,以获取表现指标;
179.判定单元,用于根据表现指标与预设标准得到能力检测结果。
180.在一个实施例中,该装置还包括:
181.第一分句模块,用于对每个样本文本进行分句处理,得到每个样本文本对应的样本语段集,样本语段集包括至少一个样本语段;
182.聚类模块,用于对样本语段进行文本聚类,以对属于冗余词库中的冗余语句的样本语段进行截取操作,得到截取后的样本文本。
183.在一个实施例中,训练模块200具体包括:
184.第二分句模块,用于对每个样本文本进行分句处理,得到每个样本文本对应的样本语段集;
185.分词模块,用于对每个样本语段集中的每个样本语段进行分词处理,得到每个样本语段对应的包含至少一个词的第一序列;
186.语义获取模块,用于获取每个词的语义标签;
187.第一编码模块,用于将样本语段集对应的第一序列集合输入至特征提取器,以提取样本语段集的第一特征信息,第一特征信息包括样本语段集中每个词的词编码、位置编码;
188.第二编码模块,用于根据词的语义标签生成每个词对应的语义编码;
189.拼接模块,用于将同一个词的词编码、位置编码和语义编码进行拼接处理,以得到每个样本语段集的第二特征信息;
190.输入模块,用于将训练样本集中样本文本的第二特征信息输入至当前预训练bert模型得到对应样本文本的预测摘要;
191.预测模块,用于根据当前预训练bert模型得到的样本文本的预测摘要和样本摘要,确定当前预训练bert模型是否满足预设的训练终止条件。
192.其中上述模块/单元中的“第一”和“第二”的意义仅在于将不同的模块/ 单元加以区分,并不用于限定哪个模块/单元的优先级更高或者其它的限定意义。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本技术中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式。
193.关于文本摘要生成装置的具体限定可以参见上文中对于文本摘要生成方法的限定,在此不再赘述。上述文本摘要生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
194.图4为本技术一实施例中计算机设备的内部结构框图。该计算机设备具体可以是
图1中的终端设备。如图4所示,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,该计算机设备的处理器用于提供计算和控制能力。存储器包括存储介质和内存储器。存储介质可以是非易失性存储介质,也可以是易失性存储介质。存储介质存储有操作系统,还可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器实现文本摘要生成方法。该内存储器为存储介质中的操作系统和计算机可读指令的运行提供环境。该内存储器中也可储存有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行文本摘要生成方法。该计算机设备的网络接口用于与外部服务器通过网络连接通信。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
195.在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机可读指令(例如计算机程序),处理器执行计算机可读指令时实现上述实施例中文本摘要生成方法的步骤,例如图2所示的步骤s100至步骤s900及该方法的其它扩展和相关步骤的延伸。或者,处理器执行计算机可读指令时实现上述实施例中文本摘要生成装置的各模块/单元的功能,例如图3所示模块100至模块900的功能。为避免重复,这里不再赘述。
196.处理器可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列 (field

programmable gatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
197.存储器可用于存储计算机可读指令和/或模块,处理器通过运行或执行存储在存储器内的计算机可读指令和/或模块,以及调用存储在存储器内的数据,实现计算机装置的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、视频数据等)等。
198.存储器可以集成在处理器中,也可以与处理器分开设置。
199.本领域技术人员可以理解,图4中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
200.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机可读指令,计算机可读指令被处理器执行时实现上述实施例中文本摘要生成方法的步骤,例如图2所示的步骤s100至步骤s900及该方法的其它扩展和相关步骤的延伸。或者,计算机可读指令被处理器执行时实现上述实施例中文本摘要生成装置的各模块/单元的功能,例如图3所示模块100至模块900 的功能。为避免重复,这里不再赘述。
201.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指示相关的硬件来完成,所述的计算机可读指令可存储于一计算机
可读取存储介质中,该计算机可读指令在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom (prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom) 或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双倍速率sdram (ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram (sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
202.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
203.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘) 中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本技术各个实施例所述的方法。
204.以上仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1