基于Bert模型的文本中句子生成方法和装置

文档序号:30610342发布日期:2022-07-01 23:27阅读:185来源:国知局
基于Bert模型的文本中句子生成方法和装置
基于bert模型的文本中句子生成方法和装置
技术领域
1.本发明涉及文本生成技术领域,具体涉及一种基于bert模型的文本中句子生成方法和一种基于bert模型的文本中句子生成装置。


背景技术:

2.相关技术中,当前大多数的生成方法是使用深度神经网络模型来生成句子,神经网络具有非常强大的拟合能力,它减轻了传统模型学习能力的不足。但是,深度神经网络的训练需要大量的人工标注数据,获取这样的数据的成本高昂,导致很多领域的有标注语料数量较少。


技术实现要素:

3.本发明为解决上述技术问题,提供了一种基于bert模型的文本中句子生成方法,采用bert模型能够自动生成文本中句子,从而人工提供训练数据,大大节省了人力物力资源。
4.本发明采用的技术方案如下:
5.一种基于bert模型的文本中句子生成方法,包括以下步骤:在模型输入层对输入的源语句进行编码以获取输入矩阵;在bert-base编码层采用bert模型对所述输入矩阵进行编码,叠加12层transformer,取最后一层的输出作为所述bert-base编码层的输出;在解码端采用transformer decoder端的网络对所述bert-base编码层的输出进行顺序解码以生成所述解码端的输出;在softmax的激活层将所述解码端的输出映射到词表上以获取每个单词概率的输出向量;根据所述每个单词概率的输出向量生成相应的句子。
6.所述模型输入层包括:token embeddings层、position embeddings层和segment embeddings层。
7.所述根据所述每个单词概率的输出向量生成相应的句子,包括:采用beam search方式根据所述每个单词概率的输出向量生成相应的句子。
8.一种基于bert模型的文本中句子生成装置,包括:第一编码模块,所述第一编码模块用于在模型输入层对输入的源语句进行编码以获取输入矩阵;第二编码模块,所述第二编码模块用于在bert-base编码层采用bert模型对所述输入矩阵进行编码,叠加12层transformer,取最后一层的输出作为所述bert-base编码层的输出;解码模块,所述解码模块用于在解码端采用transformer decoder端的网络对所述bert-base编码层的输出进行顺序解码以生成所述解码端的输出;获取模块,所述获取模块用于在softmax的激活层将所述解码端的输出映射到词表上以获取每个单词概率的输出向量;生成模块,所述生成模块用于根据所述每个单词概率的输出向量生成相应的句子。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述的基于bert模型的文本中句子生成方法。
10.一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的基于bert模型的文本中句子生成方法。
11.本发明的有益效果:
12.本发明采用bert模型能够自动生成文本中句子,从而人工提供训练数据,大大节省了人力物力资源。
附图说明
13.图1为本发明实施例的基于bert模型的文本中句子生成方法的流程图;
14.图2为本发明实施例的基于bert模型的文本中句子生成装置的方框示意图。
具体实施方式
15.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
16.图1是根据本发明实施例的基于bert模型的文本中句子生成方法的流程图。
17.如图1所示,本发明实施例的基于bert模型的文本中句子生成方法可包括以下步骤:
18.s1,在模型输入层对输入的源语句进行编码以获取输入矩阵。
19.根据本发明的一个实施例,模型输入层包括:token embeddings层、position embeddings层和segment embeddings层。
20.具体而言,模型输入层包含三部分:token embeddings层、position embeddings层和segment embeddings层。在token embeddings层,每个句子的起始标记都用“[cls]”来表示,结束标记符用“[sep]”表示,其余的单词使用字典的id来表示,为了不破坏bert输入层的结构,本发明仍采用segment embeddings层来区分token embeddings层,区分的方式是第一句全部用0表示,第二句用1表示,本发明的输入只有一句话,因此输入的segment embedding层全部用0来表示。token embeddings层、segment embeddings层和positon embedding层都可用神经网络来学习得到相应的embeddings表示,分别用et、es和ep表示。最后将这三个矩阵相加得到输入矩阵e。
[0021]
s2,在bert-base编码层采用bert模型对输入矩阵进行编码,叠加12层transformer,取最后一层的输出作为bert-base编码层的输出。
[0022]
具体而言,bert-base编码层可采用bert-base模型(例如,谷歌开源的bert-base模型),该模型由12层transformer组成,每个transformer的隐藏层大小为768,多头注意力机制的头数为12,总参数为110m。transformer层采用多头自注意力机制,所以q,k,v(q,k,v分别表示三个输入向量)都是输入矩阵e本身。对q、k、v分别做线性变化得到q、k、v:
[0023]
q=qw
iq

[0024]
k=kw
ik

[0025]
v=vw
iv

[0026]
然后将q、k、v输入到多头自注意力机制中,得到多头注意力的输出m,其中,
[0027]
m=mutihead(q,k,v)=concat(head1,

,headh)wo,
[0028]
其中,
[0029]
然后,将多头注意力的输出m输入到线性层后再经过dropout层输出矩阵m1,然后矩阵m1与输入矩阵e进行残差连接得到矩阵m2=m1+e,如果是第n(n≠1)层transformer,则与上一层的transformer的输出作残差连接,为了加快网络的收敛速度,将矩阵m2作层归一化,即
[0030][0031]
其中mi代表对m2的每一行进行归一化;u
l
和σ
l
分别表示每个样本的均值和方差;α和β代表缩放和平移的参数向量,归一化后得到矩阵m3。将矩阵m3输入到一个全连接层(fully connected feed forward)得到矩阵m4,其中包含两个relu线性激活函数,公式如下:
[0032]
m4=ffn(m3)=max(0,m3w1+b1)w2+b2[0033]
然后再一次经过和上面一样,经过线性层、dropout层以及与矩阵m3作残差连接后进行层归一化,得到矩阵m5,以上整一个计算流程就是一个transformer层。通过叠加12层transformer,取最后一层的输出作为bert-base编码层的输出,记为o。
[0034]
s3,在解码端采用transformer decoder端的网络对bert-base编码层的输出进行顺序解码以生成解码端的输出。
[0035]
具体而言,解码端采用6层的transformer decoder端的网络,解码端与编码端bert的结构差不多,只是在解码端的输入不使用segment embeddings层、多了一个掩码多头注意力机制层以及在多头注意力机制层多了一个encoder-decoder attention。具体而言,解码端的输入不使用segment embeddings层,而token embeddings层和positon embedding层都可用神经网络来学习得到相应的embeddings表示,分别用h
t
和h
p
表示,最后将这两个矩阵相加得到第一输入矩阵h。多了一个掩码多头注意力机制层,主要是在原来的多头注意力机制上采用sequence mask的掩码方式,sequence mask是为了使得decoder在解码的时候不能看见未来的信息,也就是对于一个序列在t的时刻,解码输出应该只能依赖于t时刻之前的输出,而不能依赖t之后的输出,所以采用一个下三角attention矩阵来做掩码。在多头注意力机制层多了一个encoder-decoder attention,其中,q来自于解码器的上一个输出,k和v则来自于与bert-base编码层的输出o,其计算方式与编码端完全一致。最终通过6层transformer decoder进行顺序解码,以得到解码端的输出d。
[0036]
s4,在softmax的激活层将解码端的输出映射到词表上以获取每个单词概率的输出向量。
[0037]
s5,根据每个单词概率的输出向量生成相应的句子。
[0038]
根据本发明的一个实施例,根据每个单词概率的输出向量生成相应的句子,包括:采用beam search方式根据每个单词概率的输出向量生成相应的句子。
[0039]
具体而言,将解码之后的解码端的输出d经过一层softmax的激活层映射到词表上得到每个单词概率的输出向量,以获取每个单词概率的输出向量,然后采用beam search方
embeddings层和segment embeddings层。
[0049]
根据本发明的一个实施例,生成模块500具体用于:采用beam search方式根据每个单词概率的输出向量生成相应的句子。
[0050]
需要说明的是,本发明实施例的基于bert模型的文本中句子生成装置更具体的实施方式可参照上述基于bert模型的文本中句子生成方法的实施例,在此不再赘述。
[0051]
根据本发明实施例的基于bert模型的文本中句子生成装置,通过第一编码模块在模型输入层对输入的源语句进行编码以获取输入矩阵,以及通过第二编码模块在bert-base编码层采用bert模型对输入矩阵进行编码,叠加12层transformer,取最后一层的输出作为bert-base编码层的输出,并通过解码模块在解码端采用transformer decoder端的网络对bert-base编码层的输出进行顺序解码以生成解码端的输出,以及通过获取模块在softmax的激活层将解码端的输出映射到词表上以获取每个单词概率的输出向量,并通过生成模块用于根据每个单词概率的输出向量生成相应的句子。由此,采用bert模型能够自动生成文本中句子,从而人工提供训练数据,大大节省了人力物力资源。
[0052]
对应上述实施例,本发明还提出一种计算机设备。
[0053]
本发明实施例的计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述的基于bert模型的文本中句子生成方法。
[0054]
根据本发明实施例的计算机设备,采用bert模型能够自动生成文本中句子,从而人工提供训练数据,大大节省了人力物力资源。
[0055]
对应上述实施例,本发明还提出一种非临时性计算机可读存储介质。
[0056]
本发明实施例的非临时性计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述的基于bert模型的文本中句子生成方法。
[0057]
根据本发明实施例的非临时性计算机可读存储介质,采用bert模型能够自动生成文本中句子,从而人工提供训练数据,大大节省了人力物力资源。
[0058]
在本发明的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0059]
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0060]
在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
[0061]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示
例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0062]
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
[0063]
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0064]
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0065]
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1