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

一种文本纠错的对抗训练和推理方法、装置及相关介质与流程

2022-11-19 15:12:20 来源:中国专利 TAG:


1.本发明涉及自然语言处理领域,特别涉及一种文本纠错的对抗训练和推理方法、装置及相关介质。


背景技术:

2.自然语言处理领域是人工智能领域之一,随着互联网迅速发展,自然语言处理领域得到较广的普及,自然语言处理领域主要应用包括文本纠错、语法分析、实体识别等;其中,文本纠错目的在于解决写作时可能出现的错别字,是一项基础的文本处理任务,可以理解为写作辅助,即在内容写作平台上内嵌纠错模块,可在写作时自动检查并提示错别字情况,从而降低因疏忽导致的错误表述,有效提升文章写作质量,同时给用户更好的阅读体验。
3.目前现有技术中,文本纠错方法主要有以下三类:第一类,基于规则的纠错方法,该方法利用词汇搭配、语法结构等作为知识架构,以词典等的形式来纠正错别字;第二类,基于统计的纠错方法,该方法从大量语料库中构造概率信息,利用语言模型的方法筛选符合要求的候选字,利用候选字来纠正错别字;第三类,基于深度学习的纠错方法,该方法借助预训练模型的优势,以端到端的形式训练,达到纠正错别字的目的;第三类也是目前现有技术中较为领先的文本纠错技术。
4.但是,上述三大类文本纠错方法均没有考虑文本纠错模型的鲁棒性和泛化性,如目前的训练数据大多来自sighan13等学术数据集或者采用随机替换的方式构造样本对,忽略数据本身的纠错难度;训练和预测阶段的数据分布差异也是影响模型性能的因素之一,这些问题的存在导致了文本纠错模型的准确率和稳定性降低。


技术实现要素:

5.本发明实施例提供了一种文本纠错的对抗训练和推理方法、装置及相关介质,旨在解决现有技术中文本纠错模型的准确率以及稳定性低下的问题。
6.第一方面,本发明实施例提供了一种文本纠错的对抗训练和推理方法,包括:
7.获取训练集的文本样本,将所述文本样本输入嵌入层进行文本转化处理,得到嵌入文本;
8.将所述嵌入文本输入编码层进行编码得到编码文本;
9.将所述编码文本分别输入检测层和纠错层进行逻辑回归计算处理和多分类计算处理,得到所述文本样本中每一字符对应的纠错分数和所述文本样本对应的正确样本;
10.在每t个批次的数据迭代训练后进行对抗样本生成,并将生成的对抗样本加入所述训练集继续进行训练,得到文本纠错模型;
11.其中,对抗样本生成的步骤包括:遍历所述文本样本中的所有字符,对每一字符,选取其在混淆字典中的易错字符进行替换,形成一个候选样本,最终产生多个候选样本;计算各所述候选样本的混淆度,根据各所述候选样本的混淆度进行排序,提取混淆度最大的
前k个候选样本作为输出;
12.将待纠错文本输入至所述文本纠错模型进行推理,得到所述待纠错文本对应的正确样本。
13.第二方面,本发明实施例提供了一种文本纠错的对抗训练和推理装置,包括:
14.嵌入处理单元,用于获取训练集的文本样本,将所述文本样本输入嵌入层进行文本转化处理,得到嵌入文本;
15.编码处理单元,用于将所述嵌入文本输入编码层进行编码得到编码文本;
16.第一计算单元,用于将所述编码文本分别输入检测层和纠错层进行逻辑回归计算处理和多分类计算处理,得到所述文本样本中每一字符对应的纠错分数和所述文本样本对应的正确样本;
17.第二计算单元,用于在每t个批次的数据迭代训练后进行对抗样本生成,并将生成的对抗样本加入所述训练集继续进行训练,得到文本纠错模型;
18.其中,对抗样本生成的步骤包括:遍历所述文本样本中的所有字符,对每一字符,选取其在混淆字典中的易错字符进行替换,形成一个候选样本,最终产生多个候选样本;计算各所述候选样本的混淆度,根据各所述候选样本的混淆度进行排序,提取混淆度最大的前k个候选样本作为输出;
19.样本推理单元,用于将待纠错文本输入至所述文本纠错模型进行推理,得到所述待纠错文本对应的正确样本。
20.第三方面,本发明实施例提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述第一方面的文本纠错的对抗训练和推理方法。
21.第四方面,本发明实施例提供了一种计算机可读存储介质,其中,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述第一方面的文本纠错的对抗训练和推理方法。
22.本发明实施例通过一种文本纠错的对抗训练和推理方法,先获取训练集的文本样本,再分别经过嵌入层、编码层、检测层以及纠错层进行处理得到对应的纠错分数和正确样本;在每t个批次的数据迭代训练后进行对抗样本生成,并将生成的对抗样本其加入训练集进行训练得到文本纠错模型;将待纠错文本输入至所述文本纠错模型进行推理,得到所述待纠错文本对应的正确样本。本发明在生成对抗样本的过程中,选择混淆度最大的前k个候选样本,即将对模型扰动最大的前k个候选样本作为对抗样本,加入训练集进行训练,提高了所述文本纠错模型的稳定性;并且能够提高训练阶段的数据分布范围,使预测阶段与训练阶段的数据分布差异减小,从而提高文本纠错模型的准确率。本发明实施例还提供一种文本纠错的对抗训练和推理装置、计算机设备和存储介质,同样具有上述有益效果。
附图说明
23.为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
24.图1为本发明实施例提供的一种文本纠错的对抗训练和推理方法的流程示意图;
25.图2为本发明实施例提供的一种文本纠错的对抗训练和推理方法的系统架构图;
26.图3为本发明实施例提供的一种文本纠错的对抗训练和推理装置的示意性框图。
具体实施方式
27.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
28.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
29.还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
30.还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
31.下面请参见图1,图1为本发明实施例提供的一种文本纠错的对抗训练和推理方法的流程示意图,具体包括:步骤s101~s105。
32.s101、获取训练集的文本样本,将所述文本样本输入嵌入层进行文本转化处理,得到嵌入文本;
33.s102、将所述嵌入文本输入编码层进行编码得到编码文本;
34.s103、将所述编码文本分别输入检测层和纠错层进行逻辑回归计算处理和多分类计算处理,得到所述文本样本中每一字符对应的纠错分数和所述文本样本对应的正确样本;
35.s104、在每t个批次的数据迭代训练后进行对抗样本生成,并将生成的对抗样本加入所述训练集继续进行训练,得到文本纠错模型;
36.其中,对抗样本生成的步骤包括:遍历所述文本样本中的所有字符,对每一字符,选取其在混淆字典中的易错字符进行替换,形成一个候选样本,最终产生多个候选样本;计算各所述候选样本的混淆度,根据各所述候选样本的混淆度进行排序,提取混淆度最大的前k个候选样本作为输出;
37.s105、将待纠错文本输入至所述文本纠错模型进行推理,得到所述待纠错文本对应的正确样本。
38.具体的,在步骤s101中,获取训练集的文本样本,所述文本样本可以表示为x=[x1,x2,

,xn],即表示长度为n且带有错别字的样本,n为所述文本样本的长度。然后将所述文本样本输入嵌入层进行文本转化处理,得到嵌入文本,所述嵌入文本表示为a=[a1,a2,

,an],a1,a2,

,an均表示向量,例如可以均为768维的向量。
[0039]
以图2为例,“这座桥是由他设及的。”即为所述文本样本,该文本样本的长度n为10;在本实施例中,所述文本样本“这座桥是由他设及的。”输入嵌入层进行文本转化处理,嵌入层输出a=[a1,a2,

,a
10
],这里步骤是文本转化为向量的过程。
[0040]
在步骤s102中,将所述嵌入文本a=[a1,a2,

,an]输入编码层进行编码得到编码文本b=[b1,b2,

,bn]。
[0041]
在本实施例中,以图2为例,将a=[a1,a2,

,a
10
]输入编码层进行编码处理,所述编码层输出b=[b1,b2,

,b
10
],这里输出的维度与a相同,编码完成后即准备输入到检测层和纠错层进行下一步处理。
[0042]
在步骤s103中,将编码完成后得到的所述编码文本b=[b1,b2,

,bn]分别输入检测层和纠错层进行逻辑回归计算处理和多分类计算处理,得到所述文本样本中每一字符对应的纠错分数d=[d1,d2,

,dn]和所述文本样本对应的正确样本y=[y1,y2,

,yn]。
[0043]
在本实施例中,以图2为例,将所述编码层输出的b=[b1,b2,

,b
10
]输入所述检测层评估每一个字符的纠错分数,所述检测层的输出可以表示为d=[d1,d2,

,d
10
],每一个纠错分数均起到了评估的作用,该纠错分数可以表示某个字符出错的概率,例如纠错分数d1为0.1,则表示第一个字符“这”出错的概率为0.1。
[0044]
继续以图2为例,将所述编码层输出的b=[b1,b2,

,b
10
]输入所述纠错层进行多分类计算处理得到另一个结果,即所述文本样本对应的正确样本,所述纠错层的输出可以表示为y=[y1,y2,

,y
10
]。进一步的,对所述编码层编码得到的编码文本进行多分类计算的作用是将语义空间转化到词表空间。
[0045]
在步骤s104中,在每t(t仅为命名,也可以为自定义,t取正整数)个批次的数据迭代训练后进行对抗样本生成,并将生成的对抗样本加入所述训练集继续进行训练,训练完成后得到文本纠错模型。
[0046]
其中对抗样本生成方法分为两个步骤:
[0047]
第一步,遍历所述文本样本中的所有字符,对每一字符,选取其在混淆字典中的易错字符进行替换,形成一个候选样本,最终产生多个候选样本;在本实施例中,以图2中输入“这座桥是由他设及的。”为例,可以先取第一个字符,并选取其在混淆字典中的易错字符进行替换,形成一个候选样本“折座桥是由他设及的”,继续取第二个字符,并选取其在混淆字典中的易错字符进行替换,形成一个候选样本“这做桥是由他设及的”,依次类推,可以得到十个候选样本。
[0048]
第二步,计算各所述候选样本的混淆度,根据各所述候选样本的混淆度进行大小排序,然后根据排序提取混淆度最大的前k个候选样本作为输出;例如,本实施例中k可以取9。需要注意的是,k取值不作限定,k取值越大,则最后得到计算结果更加准确,但模型训练效率会有所降低,反之k取值越小,模型训练效率会有所提高,但计算结果准确率将降低,可以根据实际需求进行调整k值。
[0049]
在一实施例中,t的计算过程如下:
[0050][0051]
其中,sample表示训练集的文本样本总数,batch表示选取的训练数据的数量,epochs表示在文本样本的总迭代次数,epoch表示当前迭代次数;在本实施例中,所述文本纠错模型训练过程中设置选取t个批次后的数据迭代,作用在于不断逼近所述文本纠错模型的正确样本结果。
[0052]
进一步的,所述混淆度的计算过程包括:
[0053]
按如下公式计算得到句子混淆度:
[0054][0055][0056]
其中,pi表示对于xi,所述纠错层输出概率分布的最大值,n表示待计算样本的字符数量,s
sentence
表示所述句子混淆度,xi表示待计算样本的第i个字符;
[0057]
按如下公式计算得到字符混淆度:
[0058]sword
=di*(1-pi)
[0059]
其中,di表示对于xi,所述检测层输出的纠错分数,s
word
表示所述字符混淆度;
[0060]
按如下公式计算得到所述混淆度s:
[0061]
s=s
sentence
s
word

[0062]
在本实施例中,为了选取对所述文本纠错模型扰动最大的对抗样本,提出一种样本混淆度的评估方式,目的是为了衡量经过替换字符后的所述候选样本对所述文本纠错模型的扰动程度;先计算样本的整体句子的混淆度(合理性),即s
sentence
;需要注意的是,s
sentence
取值范围在(0,1)之间;当s
sentence
越小时,混淆度越低,表示整体句子越通顺;当s
sentence
越大时,则反之;本实施例还从替换字符本身的混淆度考虑,结合了检测层和纠错层的输出,计算样本中替换字符的混淆度s
word
,最后再将s
sentence
和s
word
相加,得到所述混淆度s。
[0063]
在步骤s105中,训练完成后将待纠错文本输入至所述文本纠错模型进行推理,得到对应的正确样本。
[0064]
另外的,本实施例还可在训练后的所述文本纠错模型基础上进行多轮次推理,使得纠错结果更加准确,大幅度提高了准确率。
[0065]
在一实施例中,所述步骤s105,包括:
[0066]
将待纠错文本输入至所述文本纠错模型进行推理,得到所述待纠错文本中每一字符对应的第一级纠错分数和所述待纠错文本对应的第一级正确样本;并将所述第一级纠错分数作为当前级纠错分数和所述第一级正确样本作为当前级正确样本;
[0067]
二次推理:对所述当前级纠错分数和所述当前级正确样本进行词向量加权求和,并再次输入所述编码层进行编码后分别经过所述检测层以及所述纠错层,得到下一级纠错分数和下一级正确样本;
[0068]
分别计算所述当前级正确样本和所述下一级正确样本的句子混淆度;判断所述下一级正确样本的句子混淆度是否大于所述当前级正确样本的句子混淆度,若否,则将所述下一级纠错分数作为当前级纠错分数和所述下一级正确样本作为当前级正确样本,并返回执行二次推理,直到判断结果为是;若是,则输出所述当前级正确样本。
[0069]
进一步的,所述词向量加权求和的计算公式如下:
[0070]ei
=di*e([mask]) (1-di)*e(yi)
[0071]
其中,ei表示词向量加权求和结果,di表示所述检测层输出的第i个纠错分数,e表示所述嵌入层,e([mask])表示通过所述嵌入层提取字符[mask]的词向量,e(yi)表示通过嵌入层提取所述当前级正确样本中第i个字符yi的词向量。
[0072]
进一步的,每一所述当前级纠错分数范围在0~1。
[0073]
在本实施例中,多轮次推理算法步骤为:第一步,将待纠错文本输入至所述文本纠错模型进行推理,得到所述待纠错文本中每一字符对应的第一级纠错分数和所述待纠错文本对应的第一级正确样本;第二步,即二次推理,对所述第一级纠错分数和所述第一级正确样本进行词向量加权求和,并再次输入所述编码层进行编码后分别经过所述检测层以及所述纠错层,得到第二级纠错分数和第二级正确样本;第三步,分别计算所述第一级正确样本和所述第二级正确样本的句子混淆度;需要注意的,这里的句子混淆度同样使用到所述步骤s104中的句子混淆度计算公式,这里就不再赘述,其中所述第一级正确样本的句子混淆度表示为(其中的i可以表示为第i次推理),所述第二级正确样本的句子混淆度表示为判断所述第二级正确样本的混淆度是否大于所述第一级正确样本的混淆度若是,表示句子混淆度不再降低,则输出所述第一级正确样本。若否,则将继续执行二次推理:对所述第二级纠错分数和所述第二级正确样本进行词向量加权求和,并再次输入所述编码层进行编码后分别经过所述检测层以及所述纠错层,得到第三级纠错分数和第三级正确样本。然后继续判断所述第三级正确样本的句子混淆度是否大于所述第二级正确样本的句子混淆度并根据判断结果确定是否继续执行后续的二次推理,直至输出最终的正确样本。
[0074]
而对于所述词向量加权求和的公式中,mask属于词表中的某个字符,这里的e(x)得到的结果同样是一个768维的向量;另外的,所述检测层输出的每个纠错分数范围在0~1之间,表示某个字符出错的概率,比如图2中d1为0.1,表示第一个字符“这”出错的概率为0.1。本发明实施例中,在所述本文纠错模型投入使用时,通过上述多轮次推理机制展开推理,提高推理的准确率。
[0075]
结合图3所示,图3为本发明实施例提供的一种文本纠错的对抗训练和推理方法装置的示意性框图,文本纠错的对抗训练和推理方法装置300包括:
[0076]
嵌入处理单元301,用于获取训练集的文本样本,将所述文本样本输入嵌入层进行文本转化处理,得到嵌入文本;
[0077]
编码处理单元302,用于将所述嵌入文本输入编码层进行编码得到编码文本;
[0078]
第一计算单元303,用于将所述编码文本分别输入检测层和纠错层进行逻辑回归计算处理和多分类计算处理,得到所述文本样本中每一字符对应的纠错分数和所述文本样本对应的正确样本;
[0079]
第二计算单元304,用于在每t个批次的数据迭代训练后进行对抗样本生成,并将生成的对抗样本加入所述训练集继续进行训练,得到文本纠错模型;
[0080]
其中,对抗样本生成的步骤包括:遍历所述文本样本中的所有字符,对每一字符,选取其在混淆字典中的易错字符进行替换,形成一个候选样本,最终产生多个候选样本;计算各所述候选样本的混淆度,根据各所述候选样本的混淆度进行排序,提取混淆度最大的前k个候选样本作为输出;
[0081]
样本推理单元305,用于将待纠错文本输入至所述文本纠错模型进行推理,得到所述待纠错文本对应的正确样本。
[0082]
在本实施例中,嵌入处理单元301获取训练集的文本样本并送入嵌入层进行处理
得到嵌入文本,编码处理单元302则将所述嵌入文本输入编码层进行编码得到编码文本,第一计算单元303将所述编码文本进行处理得到纠错分数和正确样本,第二计算单元304在每t个批次的数据迭代训练后进行对抗样本生成,并将生成的对抗样本加入所述训练集继续进行训练,得到文本纠错模型,最后样本推理单元305将待纠错文本输入至所述文本纠错模型进行推理,得到所述待纠错文本对应的正确样本。
[0083]
在一实施例中,t的计算过程如下:
[0084][0085]
其中,sample表示训练集的文本样本总数,batch表示选取的训练数据的数量,epochs表示在文本样本的总迭代次数,epoch表示当前迭代次数;在本实施例中,所述文本纠错模型训练过程中设置选取t个批次后的数据迭代,作用在于不断逼近所述文本纠错模型的正确样本结果。
[0086]
所述混淆度的计算过程包括:
[0087]
按如下公式计算得到句子混淆度:
[0088][0089][0090]
其中,pi表示对于xi,所述纠错层输出概率分布的最大值,n表示待计算样本的字符数量,s
sentence
表示所述句子混淆度,xi表示待计算样本的第i个字符;
[0091]
按如下公式计算得到字符混淆度:
[0092]sword
=di*(1-pi)
[0093]
其中,di表示对于xi,所述检测层输出的纠错分数,s
word
表示所述字符混淆度;
[0094]
按如下公式计算得到所述混淆度s:
[0095]
s=s
sentence
s
word

[0096]
在一实施例中,所述样本推理单元305,包括:
[0097]
一次推理单元,用于将待纠错文本输入至所述文本纠错模型进行推理,得到所述待纠错文本中每一字符对应的第一级纠错分数和所述待纠错文本对应的第一级正确样本;并将所述第一级纠错分数作为当前级纠错分数和所述第一级正确样本作为当前级正确样本;
[0098]
二次推理单元,用于对所述当前级纠错分数和所述当前级正确样本进行词向量加权求和,并再次输入所述编码层进行编码后分别经过所述检测层以及所述纠错层,得到下一级纠错分数和下一级正确样本;
[0099]
判断单元,用于分别计算所述当前级正确样本和所述下一级正确样本的句子混淆度;判断所述下一级正确样本的句子混淆度是否大于所述当前级正确样本的句子混淆度,若否,则将所述下一级纠错分数作为当前级纠错分数和所述下一级正确样本作为当前级正确样本,并返回执行二次推理,直到判断结果为是;若是,则输出所述当前级正确样本。
[0100]
所述词向量加权求和的计算公式如下:
[0101]ei
=di*e([mask]) (1-di)*e(yi)
[0102]
其中,ei表示词向量加权求和结果,di表示所述检测层输出的第i个纠错分数,e表示所述嵌入层,e([mask])表示通过所述嵌入层提取字符[mask]的词向量,e(yi)表示通过嵌入层提取所述当前级正确样本中第i个字符yi的词向量。
[0103]
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
[0104]
本发明实施例还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0105]
本发明实施例还提供了一种计算机设备,可以包括存储器和处理器,存储器中存有计算机程序,处理器调用存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然计算机设备还可以包括各种网络接口,电源等组件。
[0106]
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
[0107]
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献