一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

文本纠错方法、装置、计算机设备和存储介质与流程

2022-07-13 10:31:41 来源:中国专利 TAG:


1.本技术涉及自然语言理解技术领域,特别是涉及一种文本纠错方法、装置、计算机设备和存储介质。


背景技术:

2.文本纠错,是指出文本中的文字错误,包括错别字或不符合语法规则的病句。传统的文本纠错使用端到端的神经网络模型(seq2seq模型),对于输入的有误的英文文本,模型可以解码输出正确的文本。
3.但是,传统的seq2seq模型通常采用自回归生成。自回归生成指的是解码阶段是逐字地递归生成的,即自回归seq2seq模型生成单词x后,x作为解码器的输入再生成下一个词,无法并行。因此,随着生成句子长度的增加,解码时间成线性增长,导致纠错效果差。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种能够提高纠错效果的文本纠错方法、装置、计算机设备和存储介质。
5.一种文本纠错方法,所述方法包括:
6.获取待纠错文本;
7.通过训练好的纠错模型,输出所述待纠错文本各字符的纠错操作信息,其中,通过所述纠错模型的编码器输出所述待纠错文本各字符的纠错操作类别;若所述纠错操作类别包括替换,则通过所述纠错模型的解码器,同时生成对应替换字符的替换后新字符信息;所述纠错操作信息包括各字符的纠错操作类别以及所述替换字符的所述替换后新字符信息;
8.根据所述纠错操作信息,对所述待纠错文本的相应字符进行纠错操作,显示纠错操作结果。
9.一种文本纠错装置,所述装置包括:
10.文本获取模块,用于获取待纠错文本;
11.纠错预测模块,用于通过训练好的纠错模型,输出所述待纠错文本各字符的纠错操作信息,其中,通过所述纠错模型的编码器输出所述待纠错文本各字符的纠错操作类别;若所述纠错操作类别包括替换,则通过所述纠错模型的解码器,同时生成对应替换字符的替换后新字符信息;所述纠错操作信息包括各字符的纠错操作类别以及所述替换字符的所述替换后新字符信息;
12.纠错处理模块,用于根据所述纠错操作信息,对所述待纠错文本的相应字符进行纠错操作,显示纠错操作结果。
13.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
14.获取待纠错文本;
15.通过训练好的纠错模型,输出所述待纠错文本各字符的纠错操作信息,其中,通过
所述纠错模型的编码器输出所述待纠错文本各字符的纠错操作类别;若所述纠错操作类别包括替换,则通过所述纠错模型的解码器,同时生成对应替换字符的替换后新字符信息;所述纠错操作信息包括各字符的纠错操作类别以及所述替换字符的所述替换后新字符信息;
16.根据所述纠错操作信息,对所述待纠错文本的相应字符进行纠错操作,显示纠错操作结果。
17.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
18.获取待纠错文本;
19.通过训练好的纠错模型,输出所述待纠错文本各字符的纠错操作信息,其中,通过所述纠错模型的编码器输出所述待纠错文本各字符的纠错操作类别;若所述纠错操作类别包括替换,则通过所述纠错模型的解码器,同时生成对应替换字符的替换后新字符信息;所述纠错操作信息包括各字符的纠错操作类别以及所述替换字符的所述替换后新字符信息;
20.根据所述纠错操作信息,对所述待纠错文本的相应字符进行纠错操作,显示纠错操作结果。
21.上述文本纠错方法、装置、计算机设备和存储介质,对待纠错文本,利用纠错模型输出各字符的纠错操作信息,通过所述纠错模型的编码器输出所述待纠错文本各字符的纠错操作类别;若所述纠错操作类别包括替换,则通过所述纠错模型的解码器,同时生成对应替换字符的替换后新字符信息,因此,能够实现纠错模型仅对错误字符本身进行纠错操作,不会对非错误字符进行操作,因而能够减小正确字符被改错的概率,另外,解码器同时生成对应字符的替换后新单词信息,无需对全部字符逐步解码,提高了纠错速度。
附图说明
22.图1为一个实施例中文本纠错方法的应用环境图;
23.图2为一个实施例中文本纠错方法的流程示意图;
24.图3为一个实施例中纠错模型的结构示意图;
25.图4为一个实施例中通过训练好的纠错模型,输出待纠错文本各字符的纠错操作信息的步骤的流程示意图;
26.图5为一个实施例中纠错模型的结构示意图;
27.图6为一个实施例中训练纠错模型的步骤的流程示意图;
28.图7为一个实施例中获取训练样本集的步骤的流程示意图;
29.图8为一个实施例中文本纠错装置的结构框图;
30.图9为一个实施例中计算机设备的内部结构图。
具体实施方式
31.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
32.本技术提供的文本纠错方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104通过网络进行通信。用户通过终端102输入待纠错文本,终端102将待
纠错文本发送至服务器104,由服务器104对待纠错文本进行纠错,向终端返回纠错操作信息,由终端显示纠错操作信息。可选地,还可由终端执行文本纠错方法,对待文本纠错进行纠错,得到纠错操作信息,并显示。用户通过输入待纠错文本,终端显示纠错操作信息,用户对文本的纠错能力得到了训练。本技术的文本纠错方法可应用于语言学习的应用场景,如各种语言的语法学习,单词学习等。
33.具体地,获取待纠错文本;通过训练好的纠错模型,输出待纠错文本各字符的纠错操作信息,其中,通过纠错模型的编码器输出待纠错文本各字符的纠错操作类别;若纠错操作类别包括替换,则通过纠错模型的解码器,同时生成对应替换字符的替换后新字符信息;纠错操作信息包括各字符的纠错操作类别以及替换字符的替换后新字符信息;根据纠错操作信息,对待纠错文本的相应字符进行纠错操作,显示纠错操作结果。
34.其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
35.在一个实施例中,如图2所示,提供了一种文本纠错方法,以该方法应用于图1中的终端或服务器为例进行说明,包括以下步骤:
36.步骤202,获取待纠错文本。
37.其中,可以是用户在终端输入待纠错文本,终端获得待纠错文本。也可以是终端将待纠错文本发送至服务器,服务器获取待纠错文本。可以理解的是,由文本纠错方法的执行主体获取待纠错文本。其中,待纠错文本的语言形式可以是任何一种语言,包括但不限于英文、中文等。
38.步骤204,通过训练好的纠错模型,输出待纠错文本各字符的纠错操作信息,其中,通过纠错模型的编码器输出待纠错文本各字符的纠错操作类别;若纠错操作类别包括替换,则通过纠错模型的解码器,同时生成对应字符的替换后新字符信息;纠错操作信息包括各字符的纠错操作类别以及替换字符的替换后新字符信息。
39.其中,纠错模型是预先训练好的,是非自回归的端到端的神经网络模型(非自回归seq2seq模型)。纠错模型的结构如图3所示,包括编码器和解码器。待纠错文本输入编码器,输出待纠错文本各字符的纠错操作类别。
40.其中,纠错操作类别包括以下类别,拷贝、删除、替换为n个字符,其中,替换为n个字符,根据替换字符n的数量,分别对应一个类别,如纠错操作类别可包括拷贝、删除、替换1个字符、替换2个字符、替换3个字符、替换为4个字符、
……
、替换为n个字符。纠错操作类别的数量可以根据应用场景进行调整,例如,在语法纠错场景中,源句与目标句内容基本一致,因此,设置为以下6类:拷贝、删除、替换1个字符、替换2个字符、替换3个字符和替换为4个字符。本实施例中,将插入统一看作替换,插入一个字符看作替换成两个字符。
41.具体地,将待纠错文本输入纠错模型的编码器,通过编码器输出待纠错文本各字符的纠错操作类别。
42.若纠错操作类别为拷贝,即该位置的字符无误,纠错后的正确句子中该位置的字符即为原字符。例如,待纠错文本为“we are totally accept its.”预测的第一个字符的纠错操作类别为拷贝,则纠错的正确句子的第一个字符仍为“we”。
43.若纠错操作类别为删除,即该位置的字符需要删除,其后跟随的字符的位置发生
变化。例如,待纠错文本为“we are totally accept its.”预测的第二个字符的纠错操作类别为删除,则纠错的正确句子的第二个字符删除,原本的第三个字符“totally”变为第二个字符。
44.若纠错操作类别为替换,该字符对应的位置为替换位置,为实现纠错,还需要该字符替换后的新字符信息,即替换后新字符信息用于替换待纠错文本中替换位置的字符。例如,待纠错文本为“we are totally accept its.”,第五个字符对应的纠错操作类别为替换为1个字符,替换后新字符信息为“it”,则将“its”替换为“it”。又例如,一个待纠错字符的第二个位置字符对应的纠错操作类别为替换为两个字符,则该将预测的两个字符替换第二个位置的原字符。
45.其中,对于替换这一操作类别,是指场景中涵盖的替换为n个字符的所有操作类别。以应用场景为语法纠错为例,操作类别为替换,包括了替换1个字符、替换2个字符、替换3个字符和替换为4个字符。
46.具体地,若纠错操作类别包括替换,将编码器输出的各字符的纠错操作类别,输入解码器,通过解码器,同时生成对应字符的替换后新字符信息。即,对于有两个或两个以上替换字符的情况,同时对所有替换后新字符信息进行预测。
47.步骤206,根据纠错操作信息,对待纠错文本的相应字符进行纠错操作,显示纠错操作结果。
48.具体地,根据纠错操作信息中的操作类别,确定需要执行纠错操作的字符位置,对相应位置的字符执行纠错操作。
49.具体地,对于待纠错文本每个位置的字符,若该位置的字符正确,不存在错误,则纠错模型预测的纠错操作类别为拷贝。对于这种情况,在实际纠错过程中,并不需要对该位置的字符进行纠正处理。即,可获取待纠错文本中非拷贝操作类别的字符位置,对相应位置的字符,根据纠错操作信息执行纠错操作。
50.执行纠错操作具体的可以是根据纠错操作信息,对待纠错文本中的字符执行删除、替换操作。其中,若纠错操作类型为替换,还将替换后新字符插入到待纠错文本中的相应位置。
51.一个实施例中,显示的纠错结果以待纠错文本为基础,在待纠错文本的基础上显示错误字符,对错误字符进行纠错操作。即对于待纠错文本,只关注文本的错误字符,以及对错误字符的修正。例如,以修订格式显示纠错操作信息。如,删除符显示删除的字符,插入符显示替换后插入的字符。
52.一个实施例中,显示的纠错结果为正确的替换句子,即不显示修订的过程,直接显示纠错操作后正解的文本。如一个待纠错文本为“we are totally accepted fact”,纠错操作后,显示的纠错操作结果为正确的句子“we totally accept the fact.”53.上述的文本纠错方法,对待纠错文本,利用纠错模型输出各字符的纠错操作信息,通过纠错模型的编码器输出待纠错文本各字符的纠错操作类别;若纠错操作类别包括替换,则通过纠错模型的解码器,同时生成对应替换字符的替换后新字符信息,因此,能够实现纠错模型仅对错误字符本身进行纠错操作,不会对非错误字符进行操作,因而能够减小正确字符被改错的概率,另外,解码器同时生成对应字符的替换后新单词信息,无需对全部字符逐步解码,提高了纠错速度。
attention)、多头位置注意层(multi-head positional-attention)、多头注意力交互层(multi-head inter-attention)以及全连接层。上一层的输出作为下一层的输入。编码器各网络块的全连接层的输出还作为解码器同层网络块的多头注意力交互层的输入。全连接层的输出作为每个网络块的输出,作为下一个网络块的输入,最后一个网络块的输出的词特征输入到softmaxt层,计算预测替换字符的替换后新字符信息。
67.具体地,如图4所示,若纠错操作类别包括替换为n个字符,则在步骤s302之后,还包括:
68.s304,根据所有字符的纠错操作类别,确定纠错目标句的长度,构建各位置字符的输入位置向量。
69.输入位置向量是字符的位置向量。其中,根据替换字符的数量与位置,以及删除字符的数量与位置,得到各位置字符的输入位置向量变化。具体地,解码器根据所有字符的纠错操作类别,确定纠错目标句的长度,构建各位置字符的输入位置向量。
70.具体地,若纠错操作类别包括删除和/或替换为n个字符,由于删除和替换为n个字符,涉及到字符数量和位置的变化,则根据需要删除的字符数量及位置和/或需要替换的字符数量及位置,确定纠错目标句的长度,构建各位置字符的输入位置向量。
71.其中,纠错操作类别包括删除和/或替换为n个字符,包括三种情况,第一种情况只包括删除,第二种情况只包括替换为n个字符,第三种情况包括删除和替换为n个字符。
72.针对以上三种情况,根据需要删除的字符数量及位置和/或需要替换的字符数量及位置,确定纠错目标句的长度,构建各位置字符的输入位置向量。具体地,根据字符位置的顺序,对相应的字符进行删除操作,和替换操作后,得到纠错目标句的长度,构建各位置字符的输入位置向量。
73.s306,根据预测的各字符的纠错操作类别,构建各位置字符的输入向量,其中,根据替换字符数量将相应数量的掩码向量作为替换位置字符的输入向量。
74.具体地,解码器根据编码器最后预测出来的每个单词的纠错操作类别标签,来构建各位置字符的输入向量。若待纠错文本的纠错操作信息包括删除,则删除对应位置字符后,根据各位置字符的纠错操作类别,构建各位置字符的输入向量。若纠错操作类别为拷贝,则将待纠错文本中对应位置字符的向量作为输入向量,若纠错操作类别为替换为n个字符,则根据替换字符数量将相应数量的掩码向量作为替换位置字符的输入向量。如,若纠错操作类别为替换为1个字符,则用1个占位符掩码(mask)向量作为替换位置字符的输入向量;若纠错操作类别为替换为2个字符,则用2个占位符掩码(mask)向量作为替换位置字符的输入向量,依此类推。
75.s308,将各位置字符的输入向量和输入位置向量输入纠错模型的解码器,通过解码器同时预测各替换位置替换后新字符信息。
76.替换位置是指根据替换操作信息所确定需要插入的新字符在目标句子中的位置,即所对应的字符在待纠错文本中的位置,即前文所提到的mask。
77.一个实施例的纠错模型如图5所示,包括编码器501和解码器502。以待纠错文本“we are totally accept its.”为例,将各位置的字符的词向量和位置向量输入到纠错模型的编码器,预测各字符的纠错操作类别,依次为1、0、1、1、2、1。其中1表示拷贝,0表示删除,2表示替换为1个字符。也就是说,第二个字符are预测的操作类别是删除,第五个字符预
测的操作类别是替换为1个字符,其它位置的字符直接拷贝。
78.其中,根据所有字符的纠错操作类别,删除了一个字符,替换了一个字符,则目标句在原来的长度的基础上减少了一个字符长度,共五个字符长度,基于此,构建各字符的输入位置向量。删除的字符为原来的第二个字符are,因此,原来的第二个字符以后的字符位置向量产生变化,例如,原来的第三个字符totally变为第二个字符。替换操作对应的字符为原来的第五个字符,替换位置为目标句子中的第四个位置,用mask(掩码)表示该位置字符的输入向量。
79.根据预测的操作类别,删除第二个字符后,对于纠错操作类别为拷贝的字符,直接拷贝,对于操作类别为替换的字符,根据替换字符的数量,替换为相应数量的mask(掩码)表示,即得到了文本为“we are totally accept mask.”,其中,mask表示预测的替换后的新单词。
80.将输入位置向量和字符的输入向量输入到解码器,经解码器预测得到替换位置替换后新字符信息。
81.本实施例中,增加了位置向量注意力机制,多对位置注意层对位置向量注意,其中,位置向量attention为:
[0082][0083]
上述公式与标准多头自注意力机制相同,其中,k和q为位置向量矩阵,v(value)使用当前层的输出,d
model
是位置向量的维度。可参考文献《attention is all you need》,作者包括ashish vaswani,noam shazeer,niki parmar,jakob uszkoreit,llion jones,aidan n.gomez,kaiser,illia polosukhin。
[0084]
传统的自回归端到端模型在预测时,单词是逐个生成的,无法获得下文信息,因此,在训练过程中,解码器端的多头自注意力矩阵计算完成后,会将当前预测的词之后的词的值掩盖,从而不引入未来词的信息,从而保证和预测过程的一致性,但会导致效率低的问题。本实施例中,采用非自回归端到端模型,同时预测各替换位置的替换后新字符信息,取消了注意力矩阵掩盖策略,能够提高处理效率。
[0085]
具体地,计算mask位置对应单词的概率,概率公式如下:
[0086]
pr(yi|x)=softmax(logit(yi|x,y
input
(s)))if
[0087]
其中,y
input
(s)是根据纠错操作类别构建的解码器的输入,mask表示掩码,x为待纠错文本的字符信息,yi为第i个位置对应的单词。
[0088]
具体地,根据待纠错文本的字符信息,包括输入向量和输入位置向量,以及通过每个单词的标签构建的解码器输入y
input
(s),进行分类。类别为整个词表,这里可以去掉词表中的低频词,对于对应于拷贝,或者删除的位置,不进行预测。
[0089]
步骤310,输出纠错操作类别和替换后新字符信息,得到纠错操作信息。
[0090]
上述的文本纠错方法,通过利用纠错模型,经过编码器,获得待纠错文本中每个单词对应的纠正操作类别,根据纠错操作类别构建解码器端的输入。最后,根据编码器端各层结果,以及解码器端的输入,同时预测所有替换位置的单词,而不需要一步步生成单词,最终获得修正后的文本,提高纠错处理效率。
[0091]
在另一个实施例中,如图6所示,训练纠错模型的步骤,包括:
[0092]
步骤602,获取训练样本集,训练样本集包括源语句、目标语句,以及源语句中各字符的第一纠错操作类别。
[0093]
其中,根据第一纠错操作类别,能够对源语句进行纠错操作能够得到目标语句。
[0094]
具体地,训练样本集中的源语句中存在可能有错的语句,也存在正确的语句。目标语句是指对错误的源语句进行纠错后,得到的正确语句。训练模型的目标是训练完成后,能够输出纠错操作信息,即从源语句到目标语句,对源语句中的每个字符所要进行的纠错操作。因此,在准备训练样本集中,将源语句变到目标语句的第一纠错操作信息,作为源语句的标注数据。
[0095]
具体地,如图7所示,获取训练样本集的步骤,包括:
[0096]
s702,获取初始样本集,初始样本集包括源语句和源语句对应的目标语句。
[0097]
其中,初始样本集可以为网上公开的数据集,也可以是重新标注的数据集。数据集中的每条样本包括源语句(可能有错),目标语句(正确),以及。错误类型既可能包括语法错误,又可能包括拼写错误,样本形式如下:
[0098]
表1纠错语料样例
[0099]
源句we are totally accepted fact.目标句we totally accept the fact.
[0100]
如表1所示,源语句的文本中下划线所示的字符存在错误,第二个字符are需要删除,第四个字符accepted语态错误。目标语句中下划线所示为修改,将字符are删除,字符accepted替换为accept。
[0101]
s704,获取源语句和目标语句的对齐结果。
[0102]
具体地,对齐是指源语句中字符与目标语句中字符的对应关系。具体地,可利用fast-align工具,获取源句与目标句的对齐结果。fast-align工具可参考文献:gu,j.,bradbury,j.,xiong,c.,li,v.o.,&socher,r.(2017).non-autoregressive neural machine translation.arxiv preprint arxiv:1711.02281.
[0103]
针对英文文本,在对齐前,将英文纠错语料中的中文标点转化为英文标点,去掉非ascii的字符。过滤掉其中源句和目标句长度相差超过一定长度的句子。另外,可以选择是否先进行一遍拼写纠错。
[0104]
s706,根据对齐结果,确定源语句各位置字符的第一纠错操作类别。
[0105]
根据对齐结果,一一对应关系的字符所对应的第一纠错操作类别为复制,一个字符对应多个字符的第一纠错操作类别为替换,不存在对应关系的字符的第一纠错操作类别为删除。
[0106]
以表2为例,如表2所示,源语句为“we are totally accepted fact.”,目标语句为“we totally accept the fact.we totally accept the fact.”[0107]
表2英文纠错语料转化为模型所需的形式
[0108]
源句we are totally accepted fact.目标句we totally accept the fact.源句和目标句对齐结果0-0 2-1 3-2 4-3 4-4 5-5源句中每个单词对应标签1 0 1 3 1 1
[0109]
表格中,第三行为使用fast-align工具得到的源句与目标句的对齐结果。fast-align是基于统计的工具,这里使用英文纠错的训练语料作为统计语料。其中0-0代表源句中的第1个单词对应与目标句中的第1个单词。3-2代表源句中的第4个单词accepted对应于目标句中的第3个单词accept,4-3,4-4代表源句中的单词fact对应于目标句中的两个词the fact,以此类推。第四行是根据第三行的结果以及文本对内容得到的源句中每个单词对应的标签。0表示删除,1表示拷贝,2表示替换成一个字符,3表示替换成两个字符。将插入统一看作替换,插入一个字符看作替换成两个字符。这里可能会存在一些问题,因为fast-align并不是100%正确的,例如上述例子中有可能会识别为源句中的accept对应于accept the,这种现象会随着统计语料的增加得到改善。或者后序的模型可以识别到这种模式。
[0110]
s708,根据源语句、目标语句和第一纠错操作类别,得到训练样本集。
[0111]
具体地,将第一操作类别和源语句作为源语句的标注,得到训练样本集。即,训练样本集中是将平行语料(源语句和目标语句)转化为源语句、目标语句以及第一纠错操作信息的形式。
[0112]
在步骤s602之后,还包括利用训练样本集对待训练的纠错模型进行训练的步骤,即步骤604,
[0113]
具体地,利用训练样本集对待训练的纠错模型进行训练的步骤,包括:
[0114]
s6041:将训练样本集中的源语句各字符的词向量和位置向量输入待训练的纠错模型的编码器,通过编码器预测各字符的第二纠错操作类别。
[0115]
若第一纠错操作类别只包括拷贝,或只包括拷贝和删除,则执行步骤s7043。
[0116]
具体地,纠错模型的结构如图5所示,包括编码器和解码器。其中编码器会预测待纠错文本中每个字符对应的第二纠错操作类别。
[0117]
编码器和标准transformer encoder一致,包括多层网络块,这里以一层网络块为例。每一层网络块包括两个子层,多头自注意层(multi-head self-attention)和全连接层(mlp),编码器的输入是待纠错文本中每个字符对应的词向量wi及其位置向量pi,经多头自注意层进行注意力处理,输入到每个位置字符对应的全连接层,得到每个位置字符的词特征。全连接层的输出作为每个网络块的输出,作为下一个网络块的输入,最后一个网络块的输出的词特征输入到softmaxt层,经softmax层计算待纠错文本每个字符对应的纠错操作类别标的概率,纠错操作类别标的概率的公式如下:
[0118]
p(si|x)=softmax(logit(si|x))
[0119]
其中,x为待纠错文本的字符信息,包括词向量wi及其位置向量pi,si为第i个位置字符的纠错操作类别。
[0120]
根据字符对应的词向量wi及其位置向量pi获得当前位置的语义表示,使用softmax进行分类。类别包括拷贝,删除,替换为n个字符(如替换为一个字符,替换为两字符,替换为三个字符,替换为四个字符等)。
[0121]
根据每个字符的概率最大的纠错操作类别标签,确定每个字符的纠错操作类别。若第一纠错操作类别只包括拷贝,或只包括拷贝和删除,则输出待纠错文本各字符的纠错操作类别,得到第二纠错操作类别。
[0122]
其中,第一操作类别是真实的操作类别,第二操作类别是纠错模型预测的操作类别。在第一操作类别只包括拷贝,或只包括拷贝或删除时,编码器输出第二纠错操作类别。
[0123]
对于第一纠错操作类别只包括拷贝的情况,则表示句子无误,目标句为待纠错文本的原字符的复制。对于纠错操作类别只包括拷贝和删除的情况,则删除待纠错文本中的错误字符,对正确字符进行复制,得到正确句子。
[0124]
s6043,输出源语句的第二纠错操作类别。
[0125]
s6045,根据预测的第一纠错操作类别和标柱第二纠错操作类别之间的差异,调整纠错模型的编码器。
[0126]
具体地,根据标的源语句的第一纠错操作类别,与模型训练过程中预测的源语句的第二纠错操作类别的差异,进行反向传播,调整纠错模型的参数。
[0127]
具体地,若未满足训练结束条件,则迭代返回步骤s6041,以重复利用训练样本集对待训练的纠错模型进行训练的步骤,直到满足训练结束条件,执行步骤s606,获得训练好的纠错模型。
[0128]
其中,结束条件包括迭代次数达到最大迭代次数,或是模型输出精度达到要求。
[0129]
请继续参阅图5,解码器502具有与编码器501相同层数的网络块,以一层网络块为例,从输入到输出依次包括多头自注意层(multi-head self-attention)、多头位置注意层(multi-head positional-attention)、多头注意力交互层(multi-head inter-attention)以及全连接层。上一层的输出作为下一层的输入。编码器各网络块的全连接层的输出还作为解码器同层网络块的多头注意力交互层的输入。全连接层的输出作为每个网络块的输出,作为下一个网络块的输入,最后一个网络块的输出的词特征输入到softmaxt层,计算预测替换字符的替换后新字符信息。
[0130]
在步骤s6041之后,若第一纠错操作类别包括替换为n个字符,则执行:
[0131]
s6043,根据第一纠错操作类别,确定纠错目标句的长度,构建各位置字符的输入位置向量。
[0132]
需要注意的是,此处,基于源语句标的真实的第一纠错操作类别,而非利用编码器预测的第二纠错操作类别,能够提供正确的目标句的长度,构建真实的输入位置向量。
[0133]
输入位置向量是字符的位置向量。其中,根据替换字符的数量与位置,以及删除字符的数量与位置,各位置字符的输入位置向量变化。具体地,解码器根据所有字符的第一纠错操作类别,确定纠错目标句的长度,构建各位置字符的输入位置向量。
[0134]
具体地,若第一纠错操作类别包括删除和/或替换为n个字符,由于删除和替换为n个字符,涉及到字符数量和位置的变化,则根据需要删除的字符数量及位置和/或需要替换的字符数量及位置,确定纠错目标句的长度,构建各位置字符的输入位置向量。
[0135]
其中,纠错操作类别包括删除和/或替换为n个字符,包括三种情况,第一种情况只包括删除,第二种情况只包括替换为n个字符,第三种情况包括删除和替换为n个字符。
[0136]
针对以上三种情况,根据需要删除的字符数量及位置和/或需要替换的字符数量及位置,确定纠错目标句的长度,构建各位置字符的输入位置向量。具体地,根据字符位置的顺序,对相应的字符进行删除操作,和替换操作后,得到纠错目标句的长度,构建各位置字符的输入位置向量。
[0137]
s6044,根据第一纠错操作类别,构建各位置字符的输入向量,其中,根据替换字符数量将相应数量的掩码向量作为替换位置字符的输入向量。
[0138]
具体地,解码器根据标注的源语句的第一纠错操作类别,来构建各位置字符的输
入向量。若第一纠错操作类别包括删除,则删除对应位置字符后,根据各位置字符的纠错操作类别,构建各位置字符的输入向量。若第一纠错操作类别为拷贝,则将待纠错文本中对应位置字符的向量作为输入向量,若第一纠错操作类别为替换为n个字符,则根据替换字符数量将相应数量的掩码向量作为替换位置字符的输入向量。如,若纠错操作类别为替换为1个字符,则用1个占位符掩码(mask)向量作为替换位置字符的输入向量;若纠错操作类别为替换为2个字符,则用2个占位符掩码(mask)向量作为替换位置字符的输入向量,依此类推。
[0139]
s6046,将各位置字符的输入向量和输入位置向量输入待训练的纠错模型的解码器,通过解码器同时预测各替换位置替换后新字符信息,得到预测的纠错结果。
[0140]
替换位置是指根据替换操作信息所确定需要插入的新字符在目标句子中的位置,即所对应的字符在待纠错文本中的位置,即前文所提到的mask。
[0141]
一个实施例的纠错模型如图5所示,包括编码器501和解码器502。以待纠错文本“we are totally accept its.”为例,将各位置的字符的词向量和位置向量输入到纠错模型的编码器,预测各字符的纠错操作类别,依次为1、0、1、1、2、1。其中1表示拷贝,0表示删除,2表示替换为1个字符。也就是说,第二个字符are预测的操作类别是删除,第五个字符预测的操作类别是替换为1个字符,其它位置的字符直接拷贝。
[0142]
其中,根据所有字符的纠错操作类别,删除了一个字符,替换了一个字符,则目标句在原来的长度的基础上减少了一个字符长度,共五个字符长度,基于此,构建各字符的输入位置向量。删除的字符为原来的第二个字符are,因此,原来的第二个字符以后的字符位置向量产生变化,例如,原来的第三个字符totally变为第二个字符。替换操作对应的字符为原来的第五个字符,替换位置为目标句子中的第四个位置,用mask(掩码)表示该位置字符的输入向量。
[0143]
根据预测的操作类别,删除第二个字符后,对于纠错操作类别为拷贝的字符,直接拷贝,对于操作类别为替换的字符,根据替换字符的数量,替换为相应数量的mask(掩码)表示,即得到了文本为“we are totally accept mask.”,其中,mask表示预测的替换后的新单词。
[0144]
将输入位置向量和字符的输入向量输入到解码器,经解码器预测得到替换位置替换后新字符信息。
[0145]
本实施例中,增加了位置向量注意力机制,多对位置注意层对位置向量注意,其中,位置向量attention为:
[0146][0147]
上述公式与标准多头自注意力机制相同,其中,k和q为位置向量矩阵,v(value)使用当前层的输出,d
model
是位置向量的维度。
[0148]
传统的自回归端到端模型在预测时,单词是逐个生成的,无法获得下文信息,因此,在训练过程中,解码器端的多头自注意力矩阵计算完成后,会将当前预测的词之后的词的值掩盖,从而不引入未来词的信息,从而保证和预测过程的一致性,但会导致效率低的问题。本实施例中,采用非自回归端到端模型同时预测各替换位置的替换后新字符信息,取消了注意力矩阵掩盖策略,能够提高处理效率。
[0149]
具体地,计算mask位置对应单词的概率,概率公式如下:
[0150]
pr(yi|x)=softmax(logit(yi|x,y
input
(s)))if
[0151]
其中,y
input
(s)是根据纠错操作类别构建的解码器的输入,mask表示掩码,x为待纠错文本的字符信息,yi为第i个位置对应的单词。
[0152]
具体地,根据待纠错文本的字符信息,包括输入向量和输入位置向量,以及每个单词的标签构建的解码器输入y
input
(s),进行分类。类别为整个词表,这里可以去掉词表中的低频词,对于对应于拷贝,或者删除的位置,不进行预测。
[0153]
s6048,根据预测的纠错结果和目标语句之间的差异,调整纠错模型的解码器;根据预测的第一纠错操作类别和标柱第二纠错操作类别之间的差异,调整纠错模型的编码器。
[0154]
具体地,根据标的源语句的第一纠错操作信息,与模型训练过程中预测的源语句的第二纠错操作的差异,进行反向传播,调整纠错模型编码器的参数,根据标的源语句的目标语句,与模型训练过程中解码器预测的纠错结果之间的差异,进行反向传播,调整纠错模型解码器的参数。
[0155]
在训练时,传统的端到端的文本纠错方法,只需要考虑解码器端的预测单词的交叉熵损失,真实标签是目标句。而本技术方案,还进一步考虑编码器端预测源句中每个单词对应的标签的损失,解码器用到的纠错操作类别的标签是训练集预处理通过对齐结果得到的。即,在训练时,根据源句中每个单词的标签构建解码器的输入时,使用的纠错操作类别的标签是训练集预处理通过对齐结果得到的真实标签,而不是预测标签。对于每个样本(x,y),损失函数如下:
[0156][0157]
其中,p(si|x)为第i个字符的纠错操作类别的概率,y
input
(s)是根据纠错操作类别构建的解码器的输入,mask表示掩码,x为待纠错文本的字符信息,yi为第i个位置对应的单词,λ是超参数,最小化损失函数的值,训练模型,保存在验证集上最好的模型。
[0158]
训练得到纠错模型后,对于输入文本,经过编码器,获得源句中每个单词对应的标签,根据标签构建解码器端的输入。最后,根据编码器端各层结果,以及解码器端的输入,同时预测所有替换位置的单词,而不需要一步步生成单词,最终获得修正后的文本。本技术的文本纠错模型尤其适用于英文纠错任务,加快解码速度。
[0159]
应该理解的是,虽然上述各流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述各流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0160]
在一个实施例中,如图8所示,提供了一种文本纠错装置,包括:
[0161]
文本获取模块802,用于获取待纠错文本。
[0162]
纠错预测模块804,用于通过训练好的纠错模型,输出所述待纠错文本各字符的纠
错操作信息,其中,通过所述纠错模型的编码器输出所述待纠错文本各字符的纠错操作类别;若所述纠错操作类别包括替换,则通过所述纠错模型的解码器,同时生成对应替换字符的替换后新字符信息;所述纠错操作信息包括各字符的纠错操作类别以及所述替换字符的所述替换后新字符信息。
[0163]
纠错处理模块806,用于根据所述纠错操作信息,对所述待纠错文本的相应字符进行纠错操作,显示纠错操作结果。
[0164]
上述文本纠错装置,对待纠错文本,利用纠错模型输出各字符的纠错操作信息,通过所述纠错模型的编码器输出所述待纠错文本各字符的纠错操作类别;若所述纠错操作类别包括替换,则通过所述纠错模型的解码器,同时生成对应替换字符的替换后新字符信息,因此,能够实现纠错模型仅对错误字符本身进行纠错操作,不会对非错误字符进行操作,因而减小正确字符被改错的概率,另外,解码器同时生成对应字符的替换后新单词信息,无需对全部字符逐步解码,提高了纠错速度。
[0165]
在另一个实施例中,纠错预测模块,用于将所述待纠错文本各字符的词向量和位置向量输入所述纠错模型的编码器,通过所述编码器预测各字符的纠错操作类别;若所述纠错操作类别只包括拷贝,或只包括拷贝和删除,则输出所述待纠错文本各字符的纠错操作类别,得到纠错操作信息。
[0166]
在另一个实施例中,纠错预测模块,用于若所述纠错操作类别包括替换为n个字符,则根据所有字符的纠错操作类别,确定纠错目标句的长度,构建各位置字符的输入位置向量;根据预测的各字符的所述纠错操作类别,构建各位置字符的输入向量,其中,根据替换字符数量将相应数量的掩码向量作为替换位置字符的输入向量;将各位置字符的所述输入向量和所述输入位置向量输入所述纠错模型的解码器,通过所述解码器同时预测各替换位置替换后新字符信息;输出所述纠错操作类别和替换后新字符信息,得到纠错操作信息。
[0167]
具体地,若所述纠错操作类别包括删除和/或替换为n个字符,则根据需要删除的字符数量及位置和/或需要替换的字符数量及位置,确定纠错目标句的长度,构建各位置字符的输入位置向量。
[0168]
在另一个实施例中,文本纠错装置还包括:
[0169]
样本集获取模块,用于获取训练样本集,所述训练样本集包括源语句、目标语句,以及源语句中各字符的第一纠错操作类别。
[0170]
训练模块,用于利用所述训练样本集对待训练的纠错模型进行训练,其中,具体用于将所述训练样本集中的源语句各字符的词向量和位置向量输入待训练的纠错模型的编码器,通过所述编码器预测各字符的第二纠错操作操作类别;若所述第一纠错操作类别只包括拷贝,或只包括拷贝和删除,则输出所述源语句的第二纠错操作类别;根据预测的所述第一纠错操作类别和标柱的所述第二纠错操作类别之间的差异,调整所述纠错模型的编码器;
[0171]
模型输出模块,用于重复利用所述训练样本集对待训练的纠错模型进行训练的步骤,直到满足训练结束条件,获得训练好的纠错模型。
[0172]
在另一个实施例中,训练模块,用于若所述第一纠错操作类别包括替换为n个字符,则根据所述第一纠错操作类别,确定纠错目标句的长度,构建各位置字符的输入位置向量;根据所述第一纠错操作类别,构建各位置字符的输入向量,其中,根据替换字符数量将
only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
[0184]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0185]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献