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

中文文本纠错方法、装置、设备与介质与流程

2022-10-13 06:03:34 来源:中国专利 TAG:


1.本发明涉及自然语言处理技术领域,尤其涉及一种中文文本纠错方法、装置、设备与介质。


背景技术:

2.文本纠错技术是实现自然语句智能检查、自动纠错的一项重要技术,它能够在提高语言正确性的同时减少人工校验的成本。文本纠错模块作为自然语言处理一个比较基础的模块,应用场景也十分广泛,如在搜索引擎中对用户输入查询词的纠错提示,网络平台文章字词正确性的智能审核,自动化语音识别的文本辅助智能转化等。
3.目前,现有中文文本纠错方法一般分为两大类,一类是基于规则的文本纠错,一类是基于深度学习模型的文本纠错。
4.基于规则的文本纠错主要分为两步,第一步是错误检测,第二步是错误纠正。错误检测部分要先对文本进行切词,如使用结巴中文分词器进行分词,但有可能文本中包含错别字,就会导致词切分错误。
5.另一种方法是基于深度学习模型的文本纠错,该类方法大多是端到端的文本纠错,即输入一段文本至深度学习模型后直接计算输出纠正后的文本内容,这样的深度学习模型需要大量的错误及正确的句子对用于前期的模型训练。
6.然而,现有的中文文本纠错方法无法有效概括并识别中文文本众多繁杂的错误类型,如文本乱序、字词缺失或冗余等语法语义错误,处理的文本也比较短,同时纠错提示定位模糊无法让机器快速找到错误位置并根据纠正意见进行文本修改。


技术实现要素:

7.本发明的主要目的在于提出一种中文文本纠错方法、装置、设备与介质,旨在提高中文篇章级长文本纠错的全面性和准确性、以及提高文本纠错的效率。
8.为实现上述目的,本发明提供一种中文文本纠错方法,所述中文文本纠错方法包括如下步骤:
9.获取待纠错文本,并通过所述序列标签模型进行纠错,确定建议纠错文本;
10.基于所述待纠错文本,对所述建议纠错文本进行后处理,生成纠错后的文本;
11.将所述待纠错文本和所述纠错后的文本进行差异比对,生成文本报错提示。
12.优选地,所述获取待纠错文本,并通过所述序列标签模型进行纠错,确定建议纠错文本的步骤之前,所述中文文本纠错方法还包括:
13.获取样本文本以及各个样本文本对应的目标文本,并根据预设词元表和预设分词算法对各个样本文本和各个目标文本进行分词操作,生成各个样本文本对应的样本分词列表、以及各个目标文本对应的目标分词列表;
14.根据所述目标分词列表对所述样本分词列表进行分类标注,生成序列标注的训练样本,其中,所述分类标注包括别字标签、多字标签以及少字标签;
15.获取所述序列标注的训练样本中的最大序列长度,并根据所述最大序列长度对所述序列标注的训练样本中的每一序列进行填充,生成原文分词序列,以及将所述原文分词序列输入到初始模型;其中,所述原文分词序列的序列长度与所述最大序列长度相同;所述序列标注的训练样本包括原文分词位置;
16.对所述原文分词序列和所述原文分词位置同时进行编码和嵌入,生成所述原文分词序列和所述原文分词位置对应的嵌入特征;
17.基于所述嵌入特征,获取所述序列标注的训练样本对应的样本操作标签张量和样本概率标记张量;
18.根据预设交叉熵损失函数对所述样本操作标签张量和所述样本概率标记张量进行迭代训练,获得序列标签模型。
19.优选地,所述基于所述嵌入特征,获取所述序列标注的训练样本对应的样本操作标签张量和样本概率标记张量的步骤包括:
20.步骤f1,将所述嵌入特征输入到所述初始模型的模型层,并通过所述模型层的注意力机制组对所述嵌入特征进行上下文语义分析,获得融合嵌入特征;
21.步骤f2,通过所述模型层的线性全连接组对所述融合嵌入特征进行线性全连接加权处理,获得中间特征;
22.步骤f3,通过所述模型层的相加组和标准化组对所述中间特征进行处理,获得初始操作标签张量和初始概率标记张量;
23.步骤f4,重复执行步骤f1到步骤f3,直到达到预设迭代次数或损失函数值不再减小为止,输出样本操作标签张量和样本概率标记张量。
24.优选地,所述获取待纠错文本,并通过序列标签模型进行纠错,确定建议纠错文本的步骤包括:
25.根据预设正则表达式对所述待纠错文本进行粗切分,生成分割文本;
26.若所述分割文本的文本长度小于预设文本长度,则对所述分割文本进行文本内容提取,生成短文本列表;
27.根据预设词元表和预设分词算法对所述短文本列表进行分词,生成预处理后的文本;
28.通过所述序列标签模型对所述预处理后的文本进行纠错,输出所述预处理后的文本对应的操作标签张量和概率标记张量;
29.根据所述操作标签张量、所述概率标记张量以及预设错误容忍概率,生成具体操作列表;其中,所述具体操作包括保留、删除、添加以及替换;
30.根据所述具体操作列表对所述预处理后的文本进行纠错处理,确定对应的建议纠错文本。
31.优选地,所述根据预设的正则表达式对所述待纠错文本进行粗切分,生成分割文本的步骤之后,所述中文文本纠错方法还包括:
32.若存在所述分割文本的文本长度大于所述预设文本长度,则对所述分割文本进行硬分割,生成子分割文本,并对所述子分割文本执行文本内容提取及后续分词步骤。
33.优选地,所述根据预设的词元表和预设分词算法对所述短文本列表进行分词,生成预处理后的文本的步骤包括:
34.对所述短文本列表进行文本清洗,生成清洗后的短文本列表;
35.对所述清洗后的短文本列表进行遍历和字符切分,生成切分列表;
36.根据预设词元表和预设分词算法对所述切分列表进行分词,生成预处理后的文本。
37.优选地,所述基于所述待纠错文本,对所述建议纠错文本进行后处理,生成纠错后的文本的步骤包括:
38.将所述待纠错文本与所述建议纠错文本进行差异对比,确定正确分割文本;
39.根据所述待纠错文本对所述正确分割文本进行切割位置和符号还原,生成纠错后的文本。
40.此外,为实现上述目的,本发明还提供一种中文文本纠错装置,所述中文文本纠错装置包括:
41.获取模块,用于获取待纠错文本,并通过所述序列标签模型进行纠错,确定所述预处理后的文本对应的建议纠错文本;
42.后处理模块,用于基于所述待纠错文本,对所述建议纠错文本进行后处理,生成纠错后的文本;
43.比对模块,用于将所述待纠错文本和所述纠错后的文本进行差异比对,生成文本报错提示。
44.此外,为实现上述目的,本发明还提供一种设备,所述设备为中文文本纠错设备,所述中文文本纠错设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的中文文本纠错程序,所述中文文本纠错程序被所述处理器执行时实现如上所述的中文文本纠错方法的步骤。
45.此外,为实现上述目的,本发明还提供一种介质,所述介质为计算机可读存储介质,所述计算机可读存储介质上存储有中文文本纠错程序,所述中文文本纠错程序被处理器执行时实现如上所述的中文文本纠错方法的步骤。
46.本发明提出的中文文本纠错方法、装置、设备与介质;所述中文文本纠错方法包括:获取待纠错文本,并通过序列标签模型进行纠错,确定建议纠错文本;基于所述待纠错文本,对所述建议纠错文本进行后处理,生成纠错后的文本;将所述待纠错文本和所述纠错后的文本进行差异比对,生成文本报错提示。本发明通过获取待纠错文本,并通过序列标签模型对待纠错文本进行纠错,确定待纠错文本对应的建议纠正文本;根据待纠错文本对建议纠正文本进行后处理,生成纠错后的文本;将待纠错文本和纠错后的文本进行差异比对,生成文本报错提示;从而提高中文文本纠错的全面性和准确性、以及提高文本纠错的效率。
附图说明
47.图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图;
48.图2为本发明中文文本纠错方法第一实施例的流程示意图;
49.图3为本发明中文文本纠错方法第一实施例的词元标注的第一说明示意图;
50.图4为本发明中文文本纠错方法第一实施例的词元标注的第二说明示意图;
51.图5为本发明中文文本纠错方法第二实施例的流程示意图;
52.图6为本发明中文文本纠错方法第二实施例的序列标签模型的训练流程示意图;
53.图7为本发明中文文本纠错方法第二实施例的标签表的样例示意图;
54.图8为本发明中文文本纠错方法第三实施例的流程示意图;
55.图9为本发明中文文本纠错方法第四实施例的流程示意图;
56.图10为本发明中文文本纠错方法第五实施例的流程示意图;
57.图11为本发明中文文本纠错方法第六实施例的流程示意图;
58.图12为本发明中文文本纠错装置第一实施例的功能模块示意图。
59.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
60.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
61.如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
62.本发明实施例设备可以是移动终端或服务器设备。
63.如图1所示,该设备可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
64.本领域技术人员可以理解,图1中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
65.如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及中文文本纠错程序。
66.其中,操作系统是管理和控制中文文本纠错设备与软件资源的程序,支持网络通信模块、用户接口模块、中文文本纠错程序以及其他程序或软件的运行;网络通信模块用于管理和控制网络接口1002;用户接口模块用于管理和控制用户接口1003。
67.在图1所示的中文文本纠错设备中,所述中文文本纠错设备通过处理器1001调用存储器1005中存储的中文文本纠错程序,并执行下述中文文本纠错方法各个实施例中的操作。
68.基于上述硬件结构,提出本发明中文文本纠错方法实施例。
69.参照图2,图2为本发明中文文本纠错方法第一实施例的流程示意图,所述中文文本纠错方法包括:
70.步骤s10,获取待纠错文本,并通过序列标签模型进行纠错,确定建议纠错文本;
71.步骤s20,基于待纠错文本,对所述建议纠错文本进行后处理,生成纠错后的文本;
72.步骤s30,将所述待纠错文本和所述纠错后的文本进行差异比对,生成文本报错提示。
73.本实施例通过获取待纠错文本,并通过序列标签模型对待纠错文本进行纠错,确定待纠错文本对应的建议纠正文本;根据待纠错文本对建议纠正文本进行后处理,生成纠错后的文本;将待纠错文本和纠错后的文本进行差异比对,生成文本报错提示;从而提高中
文文本纠错的全面性和准确性、以及提高文本纠错的效率。
74.以下将对各个步骤进行详细说明:
75.步骤s10,获取待纠错文本,并通过序列标签模型进行纠错,确定建议纠错文本。
76.在本实施例中,中文文本纠错方法应用于序列标签模型,该中文文本纠错方法主要对中文篇章级长文本进行纠错处理,并提供字符级别的纠错提示,即别字、多字以及少字等纠错提示,能够快速精确地定位到中文篇章级长文本中错误位置,并根据相关纠错提示对中文篇章级长文本进行修正,即提示该中文篇章级长文本中字符出错的具体位置、出错的字符以及该字符对应的建议纠正的字符,以解决耗时较长且定位修改模糊的问题。
77.从不同的渠道获取待纠错文本,可以是通过系统中的数据库中获取待纠错文本,也可以是通过不同用户的客户端中获取待纠错文本;其中,不同的用户包括业务人员、客户、第三方机构人员。本实施例对获取待纠错文本的渠道不作限定。
78.将待纠错文本输入到序列标签模型中,通过序列标签模型对待纠错文本进行单个词元拼写检查、错误词元标注、定位错误词元位置等纠错操作,并对待纠错文本中的错误词元进行纠错处理,生成对应的建议纠错文本。
79.如,待纠错文本:好在有情仁终成家眷。
80.建议纠正文本:$startsepl|||sepr$keep好sepl|||sepr$keep在sepl|||sepr$append_结sepl__sepr$append_局有sepl|||sepr$keep情sepl|||sepr$keep仁sepl|||sepr$replace_人终sepl|||sepr$keep成sepl|||sepr$keep家sepl|||sepr$delete眷sepl|||sepr$append_属。
81.其中,待纠错文本的词元中可能包含“##”或“[unk]”特殊标记,在处理进行标注序列时,“$replace”表示词元替换,替换单词或字;“$append”表示词元添加,单词或字前添加一个单词或字;“$delete”表示词元删除,删除该单词或字。
[0082]
参照图3,图3为词元标注的第一说明示意图,图3中“sepl_sepr”表示在“在”后增加“结局”一词,由于增加了两个词元“结”和“局”,用“sepl_sepr”进行增加词元的连接,“sepl|||sepr”用于原词元连接修改标签,“$start”表示序列起始,“$keep”表示词元保留不变,单词或字保持不变。
[0083]
参照图4,图4为词元标注的第二说明示意图,图4中表示将“仁”修改为“人”,删除“家”,在“眷”后增加“属”。
[0084]
序列标签模型对待纠错文本中所有错误-正确句子都进行上述标签标记的处理,
[0085]
步骤s20,基于待纠错文本,对所述建议纠错文本进行后处理,生成纠错后的文本。
[0086]
在一实施例中,将建议纠错文本与待纠错文本进行差异对比,确定建议纠错文本与待纠错文本的差异,并根据差异对建议纠错文本进行还原,生成纠错后的文本。
[0087]
如,待纠错文本为:好在有情仁终成家眷。
[0088]
建议纠错文本为:$startsepl|||sepr$keep好sepl|||sepr$keep在sepl|||sepr$append_结sepl__sepr$append_局有sepl|||sepr$keep情sepl|||sepr$keep仁sepl|||sepr$replace_人终sepl|||sepr$keep成sepl|||sepr$keep家sepl|||sepr$delete眷sepl|||sepr$append_属。
[0089]
纠错后的文本为:好在结局有情人终成眷属。
[0090]
步骤s30,将所述待纠错文本和所述纠错后的文本进行差异比对,生成文本报错提
示。
[0091]
在本实施例中,按照待纠错文本的字符进行定位,将上述得到的纠错后的文本与待纠错文本进行差异比对,得到字符级别的文本报错提示,其中,文本报错提示包括有别字的报错提示,多字的报错提示以及少字的报错提示。
[0092]
别字的报错提示为:[别字起始位置,别字终止位置,别字或词,建议纠正字或词];
[0093]
多字的报错提示为:[多字起始位置,多字终止位置,需要剔除的字或词,
‘’
],其中,起始位置与终止位置相同;
[0094]
少字的报错提示为:[少字起始位置,少字终止位置,
‘’
,需要增加的字或词],其中,起始位置与终止位置相同。
[0095]
本实施例通过获取待纠错文本,并通过序列标签模型对待纠错文本进行纠错,确定待纠错文本对应的建议纠正文本;根据待纠错文本对建议纠正文本进行后处理,生成纠错后的文本;将待纠错文本和纠错后的文本进行差异比对,生成文本纠错提示信息;从而提高中文文本纠错的全面性和准确性、以及提高文本纠错的效率。
[0096]
进一步地,基于本发明中文文本纠错方法第一实施例,提出本发明中文文本纠错方法第二实施例。
[0097]
中文文本纠错方法的第二实施例与中文文本纠错方法的第一实施例的区别在于本实施例是对步骤s10,获取待纠错文本,并通过序列标签模型进行纠错,确定建议纠错文本的步骤之前,参照图5,所述中文文本纠错方法还包括:
[0098]
步骤a10,获取样本文本以及各个样本文本对应的目标文本,并根据预设词元表和预设分词算法对各个样本文本和各个目标文本进行分词操作,生成各个样本文本对应的样本分词列表、以及各个目标文本对应的目标分词列表;
[0099]
步骤a20,根据所述目标分词列表对所述样本分词列表进行分类标注,生成序列标注的训练样本,其中,所述分类标注包括字词错误标签、字词冗余标签以及字词缺失标签;
[0100]
步骤a30,获取所述序列标注的训练样本中的最大序列长度,并根据所述最大序列长度对所述序列标注的训练样本中的每一序列进行填充,生成原文分词序列,以及将所述原文分词序列输入到初始模型;其中,所述原文分词序列的序列长度与所述最大序列长度相同;所述序列标注的训练样本包括原文分词位置;
[0101]
步骤a40,对所述原文分词序列和所述原文分词位置同时进行编码和嵌入,生成所述原文分词序列和所述原文分词位置对应的嵌入特征;
[0102]
步骤a50,基于所述嵌入特征,获取所述序列标注的训练样本对应的样本操作标签张量和样本概率标记张量;
[0103]
步骤a60,根据预设交叉熵损失函数对所述样本操作标签张量和所述样本概率标记张量进行迭代训练,获得序列标签模型。
[0104]
在本实施例中,通过获取样本文本和各个样本文本对应的目标文本,并根据预设词元表和预设分词算法对样本文本和目标文本进行分词,生成对应的样本分词列表和目标分词列表;根据目标分词列表对样本分词列表进行标注,生成序列标注的训练样本;对该序列标注的训练样本进行填充,生成对应的原文分词序列,以及将原文分词序列输入到初始模型,通过初始模型对原文分词序列和原文分词位置进行迭代训练,获得序列标签模型;从而提高训练后的序列标签模型的纠错的准确率。
[0105]
以下将对各个步骤进行详细说明:
[0106]
步骤a10,获取样本文本以及各个样本文本对应的目标文本,并根据预设词元表和预设分词算法对各个样本文本和各个目标文本进行分词操作,生成各个样本文本对应的样本分词列表、以及各个目标文本对应的目标分词列表。
[0107]
在本实施例中,从不同的渠道获取样本文本以及各个样本文本对应的目标文本,本实施例对获取样本文本以及各个样本文本对应的目标文本的渠道不作限定。其中,样本文本和目标文本优选为短文本。
[0108]
需要说明的是,为确保序列标签模型的准确性,训练样本要足够多,本实施例不限定训练集中样本文本和目标文本的数量;在实际应用中,训练集中的样本文本和目标文本的数量越多,序列标签模型输出的纠错结果就越准确。
[0109]
根据预设词元表和预设分词算法对样本文本和目标文本进行分词,将各个样本文本和各个目标文本切分为对应的样本分词列表和目标分词列表。
[0110]
其中,预设词元表优选为大小为21128的基础词元表;其中,预设词元表中的每一词元都有对应的id;如,词元“好”对应的id为1962。
[0111]
预设分词算法优选为wordpiece算法。
[0112]
如:样本文本一为:有问题酒会又答案。
[0113]
目标文本一为:有问题就会有答案。
[0114]
样本分词列表一为:有|问|题|酒|会|又|答|案。
[0115]
目标分词列表一为:有|问|题|就|会|有|答|案。
[0116]
步骤a20,根据所述目标分词列表对所述样本分词列表进行分类标注,生成序列标注的训练样本,其中,所述分类标注包括别字标签、多字标签以及少字标签。
[0117]
在本实施例中,根据目标分词列表对样本分词列表进行分类标注,将目标分词列表中与样本分词列表存在差异的字符进行分类标注;其中,分类标注包括别字标签、多字标签以及少字标签。
[0118]
步骤a30,获取所述序列标注的训练样本中的最大序列长度,并根据所述最大序列长度对所述序列标注的训练样本中的每一序列进行填充,生成原文分词序列,以及将所述原文分词序列输入到初始模型;其中,所述原文分词序列的序列长度与所述最大序列长度相同;所述序列标注的训练样本包括原文分词位置。
[0119]
在本实施例中,参照图6,图6为序列标签模型的训练流程示意图;获取序列标注的训练样本中最大序列长度的序列,并根据最大序列长度对序列标注的训练样本中的每一序列进行填充,使得填充后的每一序列的长度都与最大序列长度相同,该填充后的序列为原文分词序列;以及将原文分词序列输入到初始模型。
[0120]
如,最大序列长度为10,序列标注的训练样本的一序列为:中国版画博物馆,该序列的长度为7,也即该序列长度小于最大序列长度10。
[0121]
填充后的序列为:中|国|版|画|博|物|馆|[pad]|[pad]|[pad]。其中,“[pad]”在预设词元表中的id=0,利用“[pad]”填充长度小于最大序列长度的序列。
[0122]
另外,在每个序列的开头处添加三个表示序列开始的特殊字符“[cls]”(id=101)、“$”(id=109)以及“[unk]”(id=100)。原文分词序列的表达式为[批处理大小,批中的最大序列长度 3]。
[0123]
其中,序列标注的训练样本包括原文分词位置,其中,原文分词位置为每个词元在该原文中的位置。
[0124]
原文分词位置的表达式为[批处理大小,批中的最大序列长度],默认“$start”为原文起始标记,该起始标记也算在序列长度中。批处理大小为该原文分词序列中序列的数量。
[0125]
步骤a40,对所述原文分词序列和所述原文分词位置同时进行编码和嵌入,生成所述原文分词序列和所述原文分词位置对应的嵌入特征。
[0126]
在本实施例中,参照图6,图6为序列标签模型的训练流程示意图,将上述的原文分词序列和原文分词位置输入到初始模型的嵌入层,并对原文分词序列和原文分词位置同时进行编码处理,分别得到原文分词序列对应的词元张量,以及原文分词位置对应的位置张量;其中,编码处理优选为onehot处理;词元张量表达式为[批处理大小,批中最大序列长度,词元表大小],位置张量表达式为[批处理大小,批中最大序列长度,预先设定的文本序列长度];批处理大小为该原文分词序列中序列的数量,词元表大小为预设词元表中词元的数量,预先设定的文本序列长度为预先设定的每一段分割文本的最长序列长度max_len,可根据实际情况自行设定,在本实施例中,预先设定的文本序列长度优选为128或512。
[0127]
对词元张量和位置张量进行嵌入处理,处理得到词元张量和位置张量对应的嵌入特征;具体是把每个词元转换为特征表示,嵌入特征的表达式为:[批处理大小,批中的最大序列长度,768]。
[0128]
步骤a50,基于所述嵌入特征,获取所述序列标注的训练样本对应的样本操作标签张量和样本概率标记张量。
[0129]
在本实施例中,参照图6,图6为序列标签模型的训练流程示意图,将上述的嵌入特征输入到初始模型的模型层,其中,模型层优选为基于bert的模型层,嵌入特征依次通过自注意机制(self-attention)、线性全连接(linear)、相加(add)以及标准化(normalize)等操作,获取序列标注的训练样本对应的样本操作标签张量和样本概率标记张量。
[0130]
其中,操作标签张量用于表示字符的真实标签,且该操作标签张量大小为[批处理大小,批中最大序列长度,16502],其中,16502为标签表的长度,里面记录了每一个标签操作对应的id。
[0131]
参照图7,图7为标签表的样例示意图,“$keep”在标签表的id为0,“$delete”在标签表的id为1,“$append_!”在标签表的id为2,“$replace_!”在标签表的id为3,“$append_”在标签表的id为4。
[0132]
其中,概率标记张量用于表示字符是否有错的真实标记,且该概率标记张量大小为[批处理大小,批中最大序列长度,4],其中,4代表的分别是{“correct”:0,“incorrect”:1,“@@unknown@@”:2,“@@padding@@”:3},即正确、错误、未知以及填充。
[0133]
步骤a60,根据预设交叉熵损失函数对所述样本操作标签张量和所述样本概率标记张量进行迭代训练,获得序列标签模型。
[0134]
在本实施例中,根据样本操作标签张量和样本概率标记张量计算初始模型的交叉熵损失;其中,预设交叉熵损失函数优选为交叉熵损失函数;根据交叉熵损失函数对样本操作标签张量和样本概率标记张量进行迭代训练,直到迭代后的交叉熵损失不再减少为止,最后获得序列标签模型。
[0135]
利用mask进行辅助计算,其中,mask为有无字符的0或1标记。
[0136]
如,在一批数据中,序列1长度为10,序列2长度为15,则mask长度为15,mask1为序列1的有无标记,且mask1的前10个字符全为1,后5个字符全为0;mask2为序列2的有无标记,且mask2为长度15全为1的序列。
[0137]
在本实施例中,获取样本文本和各个样本文本对应的目标文本,并根据预设词元表和预设分词算法对样本文本和目标文本进行分词,生成对应的样本分词列表和目标分词列表;根据目标分词列表对样本分词列表进行标注,生成序列标注的训练样本;对该序列标注的训练样本进行填充,生成对应的原文分词序列,以及将原文分词序列输入到初始模型,通过初始模型对原文分词序列和原文分词位置进行迭代训练,获得序列标签模型;从而提高训练后的序列标签模型的纠错的准确率。
[0138]
进一步地,基于本发明中文文本纠错方法第一、二实施例,提出本发明中文文本纠错方法第三实施例。
[0139]
中文文本纠错方法的第三实施例与中文文本纠错方法的第一、二实施例的区别在于本实施例是对步骤a50,基于所述嵌入特征,获取所述序列标注的训练样本对应的样本操作标签张量和样本概率标记张量的细化,参照图8,该步骤具体包括:
[0140]
步骤f1,将所述嵌入特征输入到所述初始模型的模型层,并通过所述模型层的注意力机制组对所述嵌入特征进行上下文语义分析,获得融合嵌入特征;
[0141]
步骤f2,通过所述模型层的线性全连接组对所述融合嵌入特征进行线性全连接加权处理,获得中间特征;
[0142]
步骤f3,通过所述模型层的相加组和标准化组对所述中间特征进行处理,获得初始操作标签张量和初始概率标记张量;
[0143]
步骤f4,重复执行步骤f1到步骤f3,直到达到预设迭代次数或损失函数值不再减小为止,输出样本操作标签张量和样本概率标记张量。
[0144]
在本实施例中,将嵌入特征输入到初始模型的模型层,依次通过模型层的自注意机制组、线性全连接组、相加组以及标准化组对嵌入特征进行预设迭代次数的重复计算处理,获取序列标注的训练样本对应的样本操作标签张量和样本概率标记张量;从而提升序列标签模型纠错的稳定性。
[0145]
以下将对各个步骤进行详细说明:
[0146]
步骤f1,将所述嵌入特征输入到所述初始模型的模型层,并通过所述模型层的注意力机制组对所述嵌入特征进行上下文语义分析,获得融合嵌入特征;
[0147]
步骤f2,通过所述模型层的线性全连接组对所述融合嵌入特征进行线性全连接加权处理,获得中间特征;
[0148]
步骤f3,通过所述模型层的相加组和标准化组对所述中间特征进行处理获得初始操作标签张量和初始概率标记张量;
[0149]
步骤f4,重复执行步骤f1到步骤f3,直到达到预设迭代次数或损失函数值不再减小为止,输出样本操作标签张量和样本概率标记张量。
[0150]
在本实施例中,参照图6,图6为序列标签模型的训练流程示意图,将嵌入特征输入到初始模型的模型层,其中,模型层优选为基于bert的模型层,且模型层包括自注意机制(self-attention)组、线性全连接(linear)组、相加(add)组以及标准化(normalize)组。
[0151]
在初始模型的模型层中,嵌入特征依次通过自注意机制(self-attention)、线性全连接(linear)、相加(add)以及标准化(normalize)等操作,进行预设迭代次数的重复计算,直到达到预设迭代次数或损失函数值不再减小为止,得到初始模型的输出,初始模型的输出包括操作标签张量和概率标记张量;预设迭代次数优选为12次,获取序列标注的训练样本对应的样本操作标签张量和样本概率标记张量;从而提高纠错检测的稳定性。
[0152]
序列标签模型的训练过程具体为:在模型层的注意力机制组中,通过对嵌入特征进行上下文语义分析,获得融合嵌入特征;自注意机制(self-attention)用于学习序列标注的训练样本的上下文语义信息,得到融合上下文语义信息的融合嵌入特征。
[0153]
在模型层的线性全连接组中,通过对融合嵌入特征进行线性全连接加权处理,获得中间特征。
[0154]
在模型层的相加组和标准化组,对中间特征进行处理,获得序列标注的训练样本对应的初始操作标签张量和初始概率标记张量。
[0155]
在本实施例中,将嵌入特征输入到初始模型的模型层,依次通过模型层的自注意机制组、线性全连接组、相加组以及标准化组对嵌入特征进行预设迭代次数的重复计算处理,获取序列标注的训练样本对应的样本操作标签张量和样本概率标记张量;从而提升序列标签模型纠错的稳定性。
[0156]
进一步地,基于本发明中文文本纠错方法第一、二、三实施例,提出本发明中文文本纠错方法第四实施例。
[0157]
中文文本纠错方法的第四实施例与中文文本纠错方法的第一、二、三实施例的区别在于本实施例是对步骤s10,获取待纠错文本,并通过序列标签模型进行纠错,确定建议纠错文本的细化,参照图9,该步骤具体包括:
[0158]
步骤s11,根据预设正则表达式对所述待纠错文本进行粗切分,生成分割文本;
[0159]
步骤s12,若所述分割文本的文本长度小于预设文本长度,则对所述分割文本进行文本内容提取,生成短文本列表;
[0160]
步骤s13,根据预设词元表和预设分词算法对所述短文本列表进行分词,生成预处理后的文本;
[0161]
步骤s14,通过所述序列标签模型对所述预处理后的文本进行纠错,输出所述预处理后的文本对应的操作标签张量和概率标记张量;
[0162]
步骤s15,根据所述操作标签张量、所述概率标记张量以及预设错误容忍概率,生成具体操作列表;其中,所述具体操作包括保留、删除、添加以及替换;
[0163]
步骤s16,根据所述具体操作列表对所述预处理后的文本进行纠错处理,确定对应的建议纠错文本。
[0164]
在本实施例中,通过对待纠错文本进行预处理,生成待纠错文本对应的预处理后的文本;通过序列标签模型对预处理后的文本进行纠错处理,确定预处理后的文本对应的建议纠错文本;从而通过序列标签模型提高中文文本的纠错的准确性和纠错效率。
[0165]
以下将对各个步骤进行详细说明:
[0166]
步骤s11,根据预设正则表达式对所述待纠错文本进行粗切分,生成分割文本。
[0167]
在本实施例中,根据特定标点符号(如“,”,“。”,“.”,“?”等])以及空格对待纠错文本进行粗分割,生成分割文本,该分割文本包括(分隔符号,分隔符号起始位置),以助于后
续拼接纠正的长文本,并提供精准的字符级别定位报错信息;其中,预设正则表达式优选为特定标点符号以及空格。
[0168]
其中,分割文本的表达式为:[(分割文本,分割文本起始位置),(分割符号,分割符号起始位置)]。
[0169]
如,待纠错文本:床前明月光,疑是地上霜。举头望明月,低头思故乡。
[0170]
分割文本为:“床前明月光”,“疑是地上霜”,“举头望明月”,“低头思故乡”。
[0171]
进一步地,在一实施例中,步骤s11之后,所述中文文本纠错方法还包括:
[0172]
步骤d10,若存在所述分割文本的文本长度大于所述预设文本长度,则对所述分割文本进行硬分割,生成子分割文本,并对所述子分割文本执行文本内容提取及后续分词步骤。
[0173]
在本实施例中,将分割文本中的每一文本与预设文本长度进行比较,若存在分割文本的文本长度大于或等于预设文本长度时,对该分割文本进行硬分割,即将该分割文本硬分割成每一段为预设文本长度个字符的子分割文本,并用“|”作为分隔符号进行占位标记,以助于后续拼接纠错的长文本并提供精准的字符级定位报错信息。
[0174]
其中,预设文本长度为预先设定的每一段分割文本的长度为max_len(如,128或512或其他)个字符。
[0175]
对该子分割文本进行纯文本内容提取、分词以及后续处理步骤。
[0176]
步骤s12,若所述分割文本的文本长度小于预设文本长度,则对所述分割文本进行文本内容提取,生成短文本列表。
[0177]
在本实施例中,将分割文本中的每一文本与预设文本长度进行比较,在分割文本的文本小于预设文本长度时,对该分割文本进行纯文本内容的提取,即该步骤只收集纯分割文本,暂时忽略分隔符号及相关位置信息,得到“[分割文本1,分割文本2,分割文本3,
……
,分割文本n]”这样的短文本列表;其中,预设文本长度为预先设定的每一段分割文本的长度为max_len(如,128或512或其他)个字符。
[0178]
步骤s13,根据预设词元表和预设分词算法对所述短文本列表进行分词,生成预处理后的文本。
[0179]
在本实施例中,根据预设词元表和预设分词算法对短文本列表进行分词处理,即把输入的短文本列表切分成一个个子串,子串的粒度可以是词,也可以是字符,其中,每一短文本列表都得到“[词元1,词元2,词元3,
……
,词元n]”这样的预处理后的文本。
[0180]
其中,预设词元表为大小为21128的基础词元表;其中,预设词元表中的每一词元都有对应的id;如,词元“好”对应的id为1962。预设分词算法优选为wordpiece算法。
[0181]
如,短文本列表1为:“你好吗”。
[0182]
在词元表中,词元“好”的id为1962,词元“你”的id为280,词元“吗”的id为400。
[0183]
预处理后的文本为:“[280,1962,400]”。
[0184]
步骤s14,通过所述序列标签模型对所述预处理后的文本进行纠错,输出所述预处理后的文本对应的操作标签张量和概率标记张量。
[0185]
在本实施例中,根据序列标签模型对预处理后的文本进行纠错处理,生成预处理后的文本对应的操作标签张量和概率标记张量。
[0186]
其中,操作标签张量用于表示字符的真实标签,且该操作标签张量表达式为[批处
理大小,批中最大序列长度,16502],其中,16502为标签表的长度,里面记录了每一个标签操作对应的id。
[0187]
其中,概率标记张量用于表示字符是否有错的真实标记,且该概率标记张量表达式为[批处理大小,批中最大序列长度,4],其中,4代表的分别是{“correct”:0,“incorrect”:1,“@@unknown@@”:2,“@@padding@@”:3},即正确、错误、未知以及填充。
[0188]
步骤s15,根据所述操作标签张量、所述概率标记张量以及预设错误容忍概率,生成具体操作列表;其中,所述具体操作包括保留、删除、添加以及替换。
[0189]
在本实施例中,将概率标记张量与预设错误容忍概率进行对比,生成具体操作列表;具体的,若概率标记张量小于或等于预设错误容忍概率,则容忍概率标记张量对应的文本的错误,并认为该文本没错,不进行纠正;若概率标记张量大于预设错误容忍概率,则判定该概率标记张量对应的文本有错误,并对该文本进行纠正;从而降低误纠率;其中,预设错误容忍概率为预先设定的错误容忍概率。
[0190]
如,一个文本中词元的概率标记张量一为p1,预设错误容忍概率为p2,若p1《p2,则容忍该文本的错误,认为其没错,不进行纠正。
[0191]
其中,具体操作包括保留、删除、添加以及替换,其对应的标签为:“$replace”表示词元替换,“$append”表示词元添加,“$delete”表示词元删除。
[0192]
步骤s16,根据所述具体操作列表对所述预处理后的文本进行纠错处理,确定对应的建议纠错文本。
[0193]
在本实施例中,根据上述的具体操作列表对预处理后的文本进行修改,进而得到对应的建议纠错文本,也即得到序列标签模型的最终输出。
[0194]
在本实施例中,通过对待纠错文本进行预处理,生成待纠错文本对应的预处理后的文本;通过序列标签模型对预处理后的文本进行纠错处理,确定预处理后的文本对应的建议纠错文本;从而通过序列标签模型提高中文文本的纠错的准确性和纠错效率。
[0195]
进一步地,基于本发明中文文本纠错方法第一、二、三、四实施例,提出本发明中文文本纠错方法第五实施例。
[0196]
中文文本纠错方法的第五实施例与中文文本纠错方法的第一、二、三、四实施例的区别在于本实施例是对步骤s13,根据预设词元表和预设分词算法对所述短文本列表进行分词,生成预处理后的文本的细化,参照图10,该步骤具体包括:
[0197]
步骤b10,对所述短文本列表进行文本清洗,生成清洗后的短文本列表;
[0198]
步骤b20,对所述清洗后的短文本列表进行遍历和字符切分,生成切分列表;
[0199]
步骤b30,根据预设词元表和预设分词算法对所述切分列表进行分词,生成预处理后的文本。
[0200]
在本实施例中,通过对短文本列表进行文本清洗,生成清洗后的短文本列表;对清洗后的短文本列表进行遍历和字符切分,生成切分列表;根据预设词元表和预设分词算法对切分列表进行分词,生成预处理后的文本;从而提高中文文本纠错的效率。
[0201]
以下将对各个步骤进行详细说明:
[0202]
步骤b10,对所述短文本列表进行文本清洗,生成清洗后的短文本列表。
[0203]
在本实施例中,对短文本列表进行格式统一处理,统一转为unicode格式的短文本列表,并对unicode格式的短文本列表进行文本清洗(如,将短文本列表中的空格剔除),生
成清洗后的短文本列表。
[0204]
步骤b20,对所述清洗后的短文本列表进行遍历和字符切分,生成切分列表。
[0205]
在本实施例中,遍历清洗后的短文本列表中的每一个字符并切分出中文字符,得到用空格区分开中文字符的字符串text,接着对该字符串text进行按字符切分得到切分列表,若需对英文字符转小写即可遍历列表进行操作。
[0206]
需要注意的是,在遍历清洗后的短文本列表是否在预设词元表中时,若该清洗后的短文本列表不完全在预设词元表中,则对于未切分出的部分要加上“##”前缀,如“unaffable”会切分成“["un","##aff","##able"]”,其中“un”、“aff”及“able”均在预设词元表中,但“unaffable”并不在基础词元表中,因此需要对后续切分出的部分加上“##”前缀,以表示其在原文本中并非一个单独的词元存在。
[0207]
步骤b30,根据预设词元表和预设分词算法对所述切分列表进行分词,生成预处理文本。
[0208]
在本实施例中,根据预设的词元表和预设的分词算法对切分列表进行分词,即把切分列表切分成一个个子串,子串的粒度可以是词,也可以是字符,其中,每一切分列表都得到“[词元1,词元2,词元3,
……
,词元n]”这样的预处理后的文本。
[0209]
其中,预设词元表为大小为21128的基础词元表;其中,预设词元表中的每一词元都有对应的id。预设分词算法优选为wordpiece算法。
[0210]
需要注意的是,可以将几个“[unused]”的占位行分别修改为
““”

“””

“‘”

“’”

“…”
,“—”,因为这些符号在基础词汇表中并未存在,而文本中可能会出现这些符号。
[0211]
出现未知的项用“[unk]”表示。
[0212]
在本实施例中,通过对短文本列表进行文本清洗,生成清洗后的短文本列表;对清洗后的短文本列表进行遍历和字符切分,生成切分列表;根据预设词元表和预设分词算法对切分列表进行分词,生成预处理后的文本;从而提高中文文本纠错的效率。
[0213]
进一步地,基于本发明中文文本纠错方法第一、二、三、四、五实施例,提出本发明中文文本纠错方法第六实施例。
[0214]
中文文本纠错方法的第六实施例与中文文本纠错方法的第一、二、三、四、五实施例的区别在于本实施例是对步骤s20,基于待纠错文本,对所述建议纠错文本进行后处理,生成纠错后的文本的细化,参照图11,该步骤具体包括:
[0215]
步骤s21,将所述待纠错文本与所述建议纠错文本进行差异对比,确定正确分割文本;
[0216]
步骤s22,根据所述待纠错文本对所述正确分割文本进行切割位置和符号还原,生成纠错后的文本。
[0217]
本实施例通过将待纠错文本与建议纠错文本进行差异对比,并根据该差异对建议纠错文本进行还原,确定对应的正确分割文本;将待纠错文本与正确分割文本进行切割位置和符号还原,生成纠错后的文本;从而提高中文文本拼接还原的准确性。
[0218]
以下将对各个步骤进行详细说明:
[0219]
步骤s21,将所述待纠错文本与所述建议纠错文本进行差异对比,确定正确分割文本。
[0220]
在本实施例中,将待纠错文本与建议纠错文本进行差异对比,得到待纠错文本与
建议纠错文本对应的差异;并根据该差异对建议纠错文本进行修正,确定对应的正确分割文本。
[0221]
步骤s22,根据所述待纠错文本对所述正确分割文本进行切割位置和符号还原,生成纠错后的文本。
[0222]
在本实施例中,根据待纠错文本中的切割位置信息和字符替换信息,对正确分割文本进行还原,生成正确分割文本对应的纠错后的文本。
[0223]
在本实施例中,将待纠错文本与建议纠错文本进行差异对比,并根据该差异对建议纠错文本进行还原,确定对应的正确分割文本;将待纠错文本与正确分割文本进行切割位置和符号还原,生成纠错后的文本;从而提高中文文本拼接还原的准确性。
[0224]
本发明还提供一种中文文本纠错装置。参照图12,本发明中文文本纠错装置包括:
[0225]
获取模块10,用于获取待纠错文本,并通过序列标签模型进行纠错,确定建议纠错文本;
[0226]
后处理模块20,用于基于所述待纠错文本,对所述建议纠错文本进行后处理,生成纠错后的文本;
[0227]
比对模块30,用于将所述待纠错文本和所述纠错后的文本进行差异比对,生成文本报错提示。
[0228]
此外,本发明还提供一种介质,所述介质为计算机可读存储介质,其上存储有中文文本纠错程序,中文文本纠错程序被处理器执行时实现如上所述的中文文本纠错方法的步骤。
[0229]
其中,在所述处理器上运行的中文文本纠错程序被执行时所实现的方法可参照本发明中文文本纠错方法各个实施例,此处不再赘述。
[0230]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
[0231]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0232]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
[0233]
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书与附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
再多了解一些

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

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

相关文献