词句的纠错方法、装置、可读存储介质和计算机程序产品与流程



1.本技术涉及文字纠错技术领域,具体而言,涉及一种词句的纠错方法、装置、可读存储介质和计算机程序产品。


背景技术:



2.在相关技术中,由于输入法联想功能限制,以及输入人员的操作准确率,经常会导致输入的词句文本中包含错字、别字、多字或少字等错误,在一些严肃场景下,如医疗场景,这些错误可能会造成严重后果。
3.目前的文本自动纠错功能较为原始,一般依赖于将输入的文本与词库进行比对,将不在词库中的词句标记出来后,仍需人工进行核实修改,效率低且人工成本高。


技术实现要素:



4.本技术旨在至少解决现有技术或相关技术中存在的技术问题之一。
5.为此,本技术的第一方面提出一种词句的纠错方法。
6.本技术的第二方面提出一种词句的纠错装置。
7.本技术的第三方面提出另一种词句的纠错装置。
8.本技术的第四方面提出一种可读存储介质。
9.本技术的第五方面提出一种计算机程序产品。
10.有鉴于此,本技术的第一方面提供了一种词句的纠错方法,包括:
11.获取待纠错文本数据,其中,待纠错文本数据包括词句序列;
12.根据待纠错文本数据和目标纠错模型,确定词句序列对应的错误类型;
13.根据错误类型、待纠错文本数据和目标纠错模型,对词句序列进行对应的纠错处理。
14.本技术的第二方面提供了一种词句的纠错装置,包括:
15.获取模块,用于获取待纠错文本数据,其中,待纠错文本数据包括词句序列;
16.确定模块,用于根据待纠错文本数据和目标纠错模型,确定词句序列对应的错误类型;
17.处理模块,用于根据错误类型、待纠错文本数据和目标纠错模型,对词句序列进行对应的纠错处理。
18.本技术的第三方面提供了另一种词句的纠错装置,包括:
19.存储器,用于存储程序或指令;
20.处理器,用于执行程序或指令时实现如第一方面提供的词句的纠错方法的步骤。
21.本技术的第四方面提供了一种可读存储介质,其上存储有程序或指令,该程序或指令被处理器执行时实现如第一方面提供的词句的纠错方法的步骤。
22.本技术的第五方面提供了一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如第一方面提供的词句的纠错方法的步骤。
23.在本技术实施例中,待纠错文本数据,可以是用户输入的一段文字,也可以是一个文档,或文档中的部分语句或段落等。待纠错文本数据中包括至少一个词句序列,该词句序列中包括多个文字或词组,能够理解的是,一个词句序列可以是一个自然句,也可以是一个自然段落。
24.通过预先训练好的目标纠错模型,对待纠错文本数据进行处理。具体地,目标纠错模型是错误检测联合错误纠正的深度神经网络,将待纠错文本中的词句序列输入至目标纠错模型后,词句序列中的每个字符,经过嵌入层(embedding层)的处理后,得到多维向量,如512维的向量。再经过transformer的encoder层后,得到对应的512维的编码。
25.目标纠错模型还包括检测网络,检测网络可以是一个softmax的分类网络,代表对应词句序列各位置错误类型的概率分布。
26.因此,目标纠错模型能够自动输出表示词句序列中第i个文字的错误类型的概率分布,和在第i个文字存在拼写错误时,其对应的用于替换错误文字的正确文字在词表中的概率分布。
27.也就是说,目标纠错模型能够到词句序列中,出现错误的一个或多个文字,并对其进行纠错处理。
28.因此,通过目标纠错模型,对词句序列中的每一个文字的错误类型进行识别,并在识别出对应的错误类型之后,基于具体的错误类型,对错误文字进行自动的纠错处理。
29.能够理解的是,错误类型可以包括:无错误、多字错误、少字错误和错字错误,其中,如果识别到词句序列中的第i个文字无错误,则不需要进行任何处理。如果识别到词句序列中,第i个文字对应多字错误,举例来说,第(i-1)个文字和第i个文字均是“的”字,即出现了“的的”的情况,则可以对第i个文字进行删除处理。如果识别到词句序列中第i个文字和第(i+1)个文字之间出现了少字错误,则按照用于补充少字的正确文字在词表中的概率分布,在第i个文字和第(i+1)个文字之间补充正确的文字。如果识别到第i个文字为错误文字,则按照用于替换错误文字的正确文字在词表中的概率分布,将第i个文字替换为正确文字。
30.能够理解的是,在自动纠错完成后,系统保留纠错时的修改痕迹,如高亮纠错后的文字,或保留修订痕迹,并对比显示纠错前的文字和纠错后的文字,以供用户随时确认。
31.本技术实施例能够自动识别待纠错文本数据中可能存在的错误文字的错误类型,并基于识别出的错误类型,自动对文本错误进行纠错,该过程中无需人工审核,也不需要人工手动修改错误的文字,提高了文本纠错的效率,节约了人工成本。
附图说明
32.本技术的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
33.图1示出了根据本技术实施例的词句的纠错方法的流程图;
34.图2示出了根据本技术实施例的目标纠错模型的结构示意图;
35.图3示出了根据本技术实施例的词句的纠错装置的结构框图之一;
36.图4示出了根据本技术实施例的词句的纠错装置的结构框图之二。
具体实施方式
37.为了能够更清楚地理解本技术的上述目的、特征和优点,下面结合附图和具体实施方式对本技术进行进一步的详细描述。需要说明的是,在不冲突的情况下,本技术的实施例及实施例中的特征可以相互组合。
38.在下面的描述中阐述了很多具体细节以便于充分理解本技术,但是,本技术还可以采用其他不同于在此描述的其他方式来实施,因此,本技术的保护范围并不受下面公开的具体实施例的限制。
39.下面参照图1至图4描述根据本技术一些实施例所述词句的纠错方法、装置、可读存储介质和计算机程序产品。
40.如图1所示,在本技术的一个实施例中,提供了一种词句的纠错方法,图1示出了根据本技术实施例的词句的纠错方法的流程图,如图1所示,方法包括:
41.步骤102,获取待纠错文本数据;
42.其中,待纠错文本数据包括词句序列;
43.步骤104,根据待纠错文本数据和目标纠错模型,确定词句序列对应的错误类型;
44.其中,所述目标纠错模型用于识别错误文本的错误类型,并基于所述错误类型对所述错误文本进行纠错处理;
45.步骤106,根据错误类型、待纠错文本数据和目标纠错模型,对词句序列进行对应的纠错处理。
46.在本技术实施例中,待纠错文本数据,可以是用户输入的一段文字,也可以是一个文档,或文档中的部分语句或段落等。待纠错文本数据中包括至少一个词句序列,该词句序列中包括多个文字或词组,能够理解的是,一个词句序列可以是一个自然句,也可以是一个自然段落。
47.通过预先训练好的目标纠错模型,对待纠错文本数据进行处理。具体地,目标纠错模型是错误检测联合错误纠正的深度神经网络,将待纠错文本中的词句序列输入至目标纠错模型后,词句序列中的每个字符,经过嵌入层(embedding层)的处理后,得到多维向量,如512维的向量。再经过transformer的encoder层后,得到对应的512维的编码。
48.目标纠错模型还包括检测网络,检测网络可以是一个softmax的分类网络,代表对应词句序列各位置错误类型的概率分布。
49.因此,目标纠错模型能够自动输出表示词句序列中第i个文字的错误类型的概率分布,和在第i个文字存在拼写错误时,其对应的用于替换错误文字的正确文字在词表中的概率分布。
50.也就是说,目标纠错模型能够到词句序列中,出现错误的一个或多个文字,并对其进行纠错处理。
51.因此,通过目标纠错模型,对词句序列中的每一个文字的错误类型进行识别,并在识别出对应的错误类型之后,基于具体的错误类型,对错误文字进行自动的纠错处理。
52.能够理解的是,错误类型可以包括:无错误、多字错误、少字错误和错字错误,其中,如果识别到词句序列中的第i个文字无错误,则不需要进行任何处理。如果识别到词句序列中,第i个文字对应多字错误,举例来说,第(i-1)个文字和第i个文字均是“的”字,即出现了“的的”的情况,则可以对第i个文字进行删除处理。如果识别到词句序列中第i个文字
和第(i+1)个文字之间出现了少字错误,则按照用于补充少字的正确文字在词表中的概率分布,在第i个文字和第(i+1)个文字之间补充正确的文字。如果识别到第i个文字为错误文字,则按照用于替换错误文字的正确文字在词表中的概率分布,将第i个文字替换为正确文字。
53.能够理解的是,在自动纠错完成后,系统保留纠错时的修改痕迹,如高亮纠错后的文字,或保留修订痕迹,并对比显示纠错前的文字和纠错后的文字,以供用户随时确认。
54.本技术实施例能够自动识别待纠错文本数据中可能存在的错误文字的错误类型,并基于识别出的错误类型,自动对文本错误进行纠错,该过程中无需人工审核,也不需要人工手动修改错误的文字,提高了文本纠错的效率,节约了人工成本。
55.在本技术的一些实施例中,在根据待纠错文本数据和目标纠错模型,确定词句序列对应的错误类型之前,纠错方法还包括:生成目标训练集;通过目标训练集,对预设的神经网络模型进行训练,得到目标纠错模型。
56.在本技术实施例中,在通过目标纠错模型来识别文本中的错误,并进行自动纠错之前,需要对纠错模型进行训练,训练后的目标纠错模型具有自动够自动输出表示词句序列中第i个文字的错误类型的概率分布,和在第i个文字存在拼写错误时,其对应的用于替换错误文字的正确文字在词表中的概率分布的能力。
57.具体地,获取预设的神经网络模型,该神经网络模型可以是开源的网络模型。为了使神经网络模型具有自动识别错误和自动纠正错误的能力,需要通过训练集,对神经网络模型进行训练。
58.本技术通过生成目标训练集,并通过生成的目标训练集,对预设的神经网络模型进行训练,得到训练后的能够自动识别待纠错文本数据中可能存在的错误文字的错误类型的目标纠错模型,该目标纠错模型还可以基于识别出的错误类型,自动对文本错误进行纠错,提高了文本纠错的效率,节约了人工成本。
59.在上述任一实施例的基础上,生成目标训练集,包括:
60.获取预设语料集合,预设语料集合包括多个预设词句,预设词句包括多个文字;确定目标处理方式,其中,目标处理方式包括替换至少一个文字、在至少一个文字后添加文字和删除至少一个文字;根据目标处理方式,对多个文字中的至少一个文字进行处理,得到处理后的错误词句,其中,目标处理方式与错误类型相对应;根据错误词句生成目标训练集。
61.在本技术实施例中,为了使神经网络模型具有自动识别错误和自动纠正错误的能力,需要通过训练集,对神经网络模型进行训练。而训练集的丰富程度会直接影响训练效果。
62.为了保证训练效果,训练集中语料的内容需尽可能的复杂,训练集中语料的数量需要尽可能的多。而如果通过人工的方式,来将正确语句改成错误语句,从而形成为训练集中的语料,会增加人力成本的开销,同时增加耗时。
63.本技术实施例通过获取预设语料集合,并根据不同错误类型对应的不同目标处理方式,对预设语料中,预设词句内的至少一个文字进行处理,从而得到包含错误语料的错误词句,并根据处理后的错误语句,来形成目标训练集,也即自动对语料进行错误处理,从而避免人工处理语料增加的时间开销和人力成本的开销。
64.其中,替换至少一个文字,具体包括将一个“正确的字”替换为“错误的字”,如将“钥匙”处理为“月匙”。在至少一个文字后添加文字,具体为添加一个多余的字,如将“吃早饭”处理为“吃喝早饭”。删除至少一个文字,具体为将原本的多个文字中的一个或多个删除,如将“玉米熟了”处理为“玉熟了”。
65.能够理解的是,预设语料集合可以是获取到的任意公开文本,如网络上公开的文章段落,也可以是随机生成的文本,本技术实施例对此不作限制。
66.在上述任一实施例的基础上,确定目标处理方式,包括:生成随机数;根据随机数对应的数值区间,确定目标处理方式。
67.在本技术实施例中,由于正常文本中可能存在的错误类型有多种,因此在生成错误语句时,用于处理预设语句以得到错误语句的目标处理方式,也同样存在多种。
68.在生成目标训练集时,为了保证训练集中训练语料的丰富程度,需要尽可能的保证训练集中囊括了包括各种不同错误类型的错误语句,同时为了保证训练后的目标纠错模型能够针对各种错误类型均有良好的识别和纠错能力,因此需要保证每种错误类型的错误语句均有一定的数量。
69.对此,本技术通过生成随机数,并根据随机数所处的数值区间,来确定目标处理方式。
70.具体地,随机数可以是大于0且小于1的实数,将0至1这个实数区间划分为不同的数值区间范围,由于生成随机数时,生成的随机数落入不同数值区间的概率相等,因此生成的随机实数对应于每种目标处理方式的概率也是平均分布的,因此生成的随机数就相当于随机选取一种目标处理方式,从而保证了不同目标处理方式对应的不同错误类型均能够被包括到训练语料,也即目标训练集中,因此能够提高模型训练的训练效果,保证最终文字纠错的可靠性。
71.在上述任一实施例的基础上,在随机实数大于处于第一预设范围内的情况下,确定目标处理方式为替换至少一个文字;在随机实数处于第二预设范围的情况下,确定目标处理方式为在至少一个文字后添加文字;在随机实数处于第三预设范围的情况下,确定目标处理方式为删除至少一个文字。
72.在本技术实施例中,由于在实际的文字编辑工作过程中,不同种类的错误类型出现的概率不同,经试验研究得知,错字,也即将a字错误输入成了b字的错误类型,在实际中出现的情况较多,而多字或少字的错误的出现概率相对较小。
73.因此,本技术设置不同的预设范围,并将每个预设范围对应于一种处理方式,从而对预设词句进行处理。
74.示例性地,本技术将0至1的实数区间,划分为[0,0.5)、[0.5,0.7)和[0.7,1)的三个数值区间,其中,[0,0.5)为第一预设范围,[0.5,0.7)为第二预设范围,[0.7,1)为第三预设范围。
[0075]
具体地,[0,0.5)对应于错字的错误类型,因此当随机数落入该区间时,随机将预设语句中的至少一个字替换为其他文字。
[0076]
[0.5,0.7)对应于多字的错误类型,因此当随机数落入该区间时,随机在预设语句中的至少一个字添加一个文字,能够理解的是,添加的文字可以是与前一个文字相同的文字,也可以是不同的文字。
[0077]
[0.7,1)对应于少字的错误类型,因此当随机数落入该区间时,随机将预设语句中
的至少一个字删除。
[0078]
本技术通过根据不同错误类型实际存在的概率,划分不同的数值区间,使得生成的目标训练集中存在的错误类型的比例,与实际文字编辑工作中可能出现的错误类型的比例接近,从而提高了模型训练效果。
[0079]
在上述任一实施例的基础上,根据错误词句生成目标训练集,包括:
[0080]
确定错误词句的第一困惑度,和错误词句对应的预设词句的第二困惑度;在第一困惑度与第二困惑度的差,大于预设阈值的情况下,将错误词句确定为有效错误词句;通过有效错误词句生成目标训练集。
[0081]
在本技术实施例中,在通过目标处理方式,对预设语句进行处理,得到处理后的错误语句后,分别计算原始预设语句的第二困惑度,和处理后的错误词句的第一困惑度,并基于第一困惑度和第二困惑度的差,与预设阈值的比较结果,来判断错误语句是否有效。
[0082]
其中,当第一困惑度与第二困惑度的差值小于或等于预设阈值时,说明在通过目标处理方式对原始的预设语句进行处理后,处理后的语句仍然是正确的语句,如将“上学去”改成“上台去”之后,语句仍然是正确的。
[0083]
当第一困惑度与第二困惑度的差值大于预设阈值时,则说明处理后的语句是有效的错误语句,才是将其标记为有效错误语句,并通过有效错误语句生成目标训练集,能够保证通过目标训练集训练预设神经网络模型时的训练效果,提高最终训练得到目标纠错模型的文字纠错能力。
[0084]
在上述任一实施例的基础上,确定错误词句的第一困惑度,和错误词句对应的预设词句的第二困惑度,包括:
[0085]
通过以下公式计算第一困惑度和第二困惑度:
[0086][0087]
其中,ppl为困惑度,p(x1,x2,...x
t
)为词句,t为词句中文字的数量,p(x
t
|x
t-2
x
t-1
)为字符x
t-2
和x
t-1
已经出现的情况下,x
t
的出现概率。
[0088]
在本技术实施例中,通过上述公式分别计算第一困惑度和第二困惑度。
[0089]
具体地,设第一困惑度为ppl
error
,设第二困惑度为ppl0,预设阈值为δ,当满足ppl
error

ppl0>δ时,确定当前的错误语句为有效错误语句。
[0090]
在上述任一实施例的基础上,通过目标训练集,对预设的神经网络模型进行训练,得到目标纠错模型,包括:
[0091]
通过目标训练集和预设的目标损失函数,对神经网络模型进行训练,直至目标损失函数的损失值小于预设损失值。
[0092]
在本技术实施例中,在对预设的神经网络模型进行训练时,记录神经网络模型的输出,即神经网络模型输出的错误类型和正确替换汉字的概率分布,记为纠错词句信息。将该纠错词句信息,和纠错词句信息对应的原始词句信息输入至目标损失函数,该目标损失函数的损失值,用于指示纠错词句信息和原始词句信息之间的差距。
[0093]
其中,对原始词句进行目标处理后,得到包含错误的错误词句,该错误词句即神经网络模型的输入,因此纠错词句和原始词句之间的差距能够反映出神经网络模型的纠错效果,当纠错词句与原始词句越接近时,损失值越小。
[0094]
当损失函数的损失值小于预设损失值时,说明神经网络模型输出的纠错词句与原始词句足够接近,纠错效果符合要求,此时确定目标纠错模型训练完成。
[0095]
通过训练完成后的目标纠错模型,能够实现自动对文本中的错误进行识别和纠正,提高文本纠错的效率。
[0096]
在上述任一实施例的基础上,目标损失函数包括预测的错误类型分布和真实的错误类型的交叉熵损失函数和预测的正确文字分布和真实的正确文字的交叉熵损失函数。
[0097]
在本技术实施例中,目标损失函数为:
[0098]
loss=l
detect
+al
correct

[0099]
其中,loss为损失值,l
detect
为预测的错误类型分布和真实的错误类型的交叉熵损失函数,a为常数,l
correct
为预测的正确文字分布和真实的正确文字的交叉熵损失函数。
[0100]
目标损失函数包括两个部分,分别为l
detect
和l
correct
。其中,l
detect
表示预测的错误类型分布,和真实错误类型的交叉熵损失函数,当预测的错误类型越接近真实值时,l
detect
的损失值越小。l
correct
表示预测的正确汉字分布,和真实的正确汉字的交叉熵损失函数。a为常数,具体可以经验设置,在一些实施方式中,a=0.1。
[0101]
当损失函数的两个部分均收敛时,说明神经网络模型的错误类型预测效果和纠错效果均满足需求,此时确定目标纠错模型训练完成。
[0102]
在上述任一实施例的基础上,满足:
[0103][0104][0105]
其中,n为目标训练集的样本数,ti为目标训练集中第i个样本的长度,class为错误类型的数量,vocab为词表大小,为目标训练集中第i个样本的第j个字符的错误类型,为目标训练集中第i个样本的第j个字符出现σ类错误的概率,为目标训练集中第i个样本的第j个字符对应的正确文字,为目标训练集中第i个样本的第j个字符被词表中第β个文字替换的概率。
[0106]
在本技术实施例中,损失函数包括l
detect
,l
detect
表示预测的错误类型分布,和真实错误类型的交叉熵损失函数,具体地,满足:
[0107][0108]
损失函数还包括l
correct
,l
correct
表示预测的正确汉字分布,和真实的正确汉字的交叉熵损失函数,具体地,满足:
[0109][0110]
在上述损失函数中,n为目标训练集的样本数,ti为目标训练集中第i个样本的长度;
[0111]
class为错误类型的数量,具体地,赋值0为没有错误,赋值1为错字错误,赋值2为多字错误,赋值3为少字错误,共4种;
[0112]
vocab为词表大小,为目标训练集中第i个样本的第j个字符的错误类型,用整数0、1、2、3标记,分别与class的4种赋值对应;
[0113]
为目标训练集中第i个样本的第j个字符出现σ类错误的概率,为目标训练集中第i个样本的第j个字符对应的正确文字,为目标训练集中第i个样本的第j个字符被词表中第β个文字替换的概率。
[0114]
在上述任一实施例的基础上,待纠错文本数据还包括词句序列对应的拼音字符序列;
[0115]
根据待纠错文本数据和目标纠错模型,确定词句序列对应的错误类型,包括:将词句序列和拼音字符序列输入至目标纠错模型,得到输出序列,其中,输出序列包括词句序列中任一文字的错误类型的概率分布的序列,和任一文字的错误类型为拼写错误的情况下,任一文字对应的正确文字在词表中的概率分布。
[0116]
在本技术实施例中个,待纠错文本数据包括词句序列和对应的拼音字符序列,其中,拼音字符序列即是输入词句序列时,用户输入的拼音字符构成的序列。
[0117]
举例来说,词句序列为:“今晚去吃饭”,则对应的拼音字符为“jin wan qu chi fan”。
[0118]
将词句序列和拼音字符序列输入至目标纠错模型,目标纠错模型能够输出对应的输出序列,根据输出序列即可确定出对应的错误类型。
[0119]
具体地,图2示出了根据本技术实施例的目标纠错模型的结构示意图,如图2所示,模型的输入文本序列为:x=(x1,x2,

x
t
);
[0120]
对应的拼音序列为:p=(p1,p2,

p
t
);
[0121]
将序列x和序列p输入至目标纠错模型,得到对应的输出序列,具体地,输出序列包括:
[0122]
y=(y1,y2,
…yt
)和v=(v1,v2,
…vt
);
[0123]
其中,序列y中,y
t
表示第t个字的错误类型的概率分布,序列v中,v
t
当第t个字为错字时,用于纠正错字的正确字在词表终端概率分布。
[0124]
因此根据输出序列,具体根据序列y和序列v即可确定对应的错误类型,以及当出现错字时的纠正文字。
[0125]
如图2所示,待纠错文本中,文字包括“巨腓韧带”,对应的拼音字符为“ju fei ren dai”,分别将文字“巨腓韧带”和拼音“ju fei ren dai”输入至目标纠错模型的embedding网络中,得到对应的文本序列x=(x1,x2,x3,x4)和拼音序列p=(p1,p2,p3,p4)。
[0126]
其中,x1对应文字巨,x2对应文字腓,x3对应文字韧,x4对应文字带。p1对应拼音ju,p2对应拼音fei,p3对应拼音ren,p4对应拼音dai。
[0127]
拼音序列p经过embedding网络后,与经过encodr网络的文本序列x拼接在一起,通过softmax的分类网络,也即检测网络,输出大分别代表对应文本序列中,各序列位置的错误类型的概率分布,从而得到对应的错误类型。
[0128]
然后,再通过纠错网络,根据错误类型的概率分布,以及用于替换的正确文字的概
率分布,对原始的文本序列进行纠错处理,并输出正确的文字“距腓韧带”。
[0129]
在本技术的一些实施例中,提供了一种词句的纠错装置,图3示出了根据本技术实施例的词句的纠错装置的结构框图之一,如图3所示,词句的纠错装置300包括:
[0130]
获取模块302,用于获取待纠错文本数据,其中,待纠错文本数据包括词句序列;
[0131]
确定模块304,用于根据待纠错文本数据和目标纠错模型,确定词句序列对应的错误类型,其中,所述目标纠错模型用于识别错误文本的错误类型,并基于所述错误类型对所述错误文本进行纠错处理;
[0132]
处理模块306,用于根据错误类型、待纠错文本数据和目标纠错模型,对词句序列进行对应的纠错处理。
[0133]
在本技术实施例中,待纠错文本数据,可以是用户输入的一段文字,也可以是一个文档,或文档中的部分语句或段落等。待纠错文本数据中包括至少一个词句序列,该词句序列中包括多个文字或词组,能够理解的是,一个词句序列可以是一个自然句,也可以是一个自然段落。
[0134]
通过预先训练好的目标纠错模型,对待纠错文本数据进行处理。具体地,目标纠错模型是错误检测联合错误纠正的深度神经网络,将待纠错文本中的词句序列输入至目标纠错模型后,词句序列中的每个字符,经过嵌入层(embedding层)的处理后,得到多维向量,如512维的向量。再经过transformer的encoder层后,得到对应的512维的编码。
[0135]
目标纠错模型还包括检测网络,检测网络可以是一个softmax的分类网络,代表对应词句序列各位置错误类型的概率分布。
[0136]
因此,目标纠错模型能够自动输出表示词句序列中第i个文字的错误类型的概率分布,和在第i个文字存在拼写错误时,其对应的用于替换错误文字的正确文字在词表中的概率分布。
[0137]
也就是说,目标纠错模型能够到词句序列中,出现错误的一个或多个文字,并对其进行纠错处理。
[0138]
因此,通过目标纠错模型,对词句序列中的每一个文字的错误类型进行识别,并在识别出对应的错误类型之后,基于具体的错误类型,对错误文字进行自动的纠错处理。
[0139]
能够理解的是,错误类型可以包括:无错误、多字错误、少字错误和错字错误,其中,如果识别到词句序列中的第i个文字无错误,则不需要进行任何处理。如果识别到词句序列中,第i个文字对应多字错误,举例来说,第(i-1)个文字和第i个文字均是“的”字,即出现了“的的”的情况,则可以对第i个文字进行删除处理。如果识别到词句序列中第i个文字和第(i+1)个文字之间出现了少字错误,则按照用于补充少字的正确文字在词表中的概率分布,在第i个文字和第(i+1)个文字之间补充正确的文字。如果识别到第i个文字为错误文字,则按照用于替换错误文字的正确文字在词表中的概率分布,将第i个文字替换为正确文字。
[0140]
能够理解的是,在自动纠错完成后,系统保留纠错时的修改痕迹,如高亮纠错后的文字,或保留修订痕迹,并对比显示纠错前的文字和纠错后的文字,以供用户随时确认。
[0141]
本技术实施例能够自动识别待纠错文本数据中可能存在的错误文字的错误类型,并基于识别出的错误类型,自动对文本错误进行纠错,该过程中无需人工审核,也不需要人工手动修改错误的文字,提高了文本纠错的效率,节约了人工成本。
[0142]
在上述任一实施例的基础上,词句的纠错装置还包括:
[0143]
生成模块,用于生成目标训练集;
[0144]
训练模块,用于通过目标训练集,对预设的神经网络模型进行训练,得到目标纠错模型。
[0145]
在本技术实施例中,在通过目标纠错模型来识别文本中的错误,并进行自动纠错之前,需要对纠错模型进行训练,训练后的目标纠错模型具有自动够自动输出表示词句序列中第i个文字的错误类型的概率分布,和在第i个文字存在拼写错误时,其对应的用于替换错误文字的正确文字在词表中的概率分布的能力。
[0146]
具体地,获取预设的神经网络模型,该神经网络模型可以是开源的网络模型。为了使神经网络模型具有自动识别错误和自动纠正错误的能力,需要通过训练集,对神经网络模型进行训练。
[0147]
本技术通过生成目标训练集,并通过生成的目标训练集,对预设的神经网络模型进行训练,得到训练后的能够自动识别待纠错文本数据中可能存在的错误文字的错误类型的目标纠错模型,该目标纠错模型还可以基于识别出的错误类型,自动对文本错误进行纠错,提高了文本纠错的效率,节约了人工成本。
[0148]
在上述任一实施例的基础上,获取模块,还用于获取预设语料集合,预设语料集合包括多个预设词句,预设词句包括多个文字;
[0149]
确定模块,还用于确定目标处理方式,其中,目标处理方式包括替换至少一个文字、在至少一个文字后添加文字和删除至少一个文字;
[0150]
处理模块,还用于根据目标处理方式,对多个文字中的至少一个文字进行处理,得到处理后的错误词句,其中,目标处理方式与错误类型相对应;
[0151]
生成模块,还用于根据错误词句生成目标训练集。
[0152]
在本技术实施例中,为了使神经网络模型具有自动识别错误和自动纠正错误的能力,需要通过训练集,对神经网络模型进行训练。而训练集的丰富程度会直接影响训练效果。
[0153]
为了保证训练效果,训练集中语料的内容需尽可能的复杂,训练集中语料的数量需要尽可能的多。而如果通过人工的方式,来将正确语句改成错误语句,从而形成为训练集中的语料,会增加人力成本的开销,同时增加耗时。
[0154]
本技术实施例通过获取预设语料集合,并根据不同错误类型对应的不同目标处理方式,对预设语料中,预设词句内的至少一个文字进行处理,从而得到包含错误语料的错误词句,并根据处理后的错误语句,来形成目标训练集,也即自动对语料进行错误处理,从而避免人工处理语料增加的时间开销和人力成本的开销。
[0155]
其中,替换至少一个文字,具体包括将一个“正确的字”替换为“错误的字”,如将“钥匙”处理为“月匙”。在至少一个文字后添加文字,具体为添加一个多余的字,如将“吃早饭”处理为“吃喝早饭”。删除至少一个文字,具体为将原本的多个文字中的一个或多个删除,如将“玉米熟了”处理为“玉熟了”。
[0156]
能够理解的是,预设语料集合可以是获取到的任意公开文本,如网络上公开的文章段落,也可以是随机生成的文本,本技术实施例对此不作限制。
[0157]
在上述任一实施例的基础上,词句的纠错装置还包括:
[0158]
生成模块,还用于生成随机数;
[0159]
确定模块,还用于根据随机数对应的数值区间,确定目标处理方式。
[0160]
在本技术实施例中,由于正常文本中可能存在的错误类型有多种,因此在生成错误语句时,用于处理预设语句以得到错误语句的目标处理方式,也同样存在多种。
[0161]
在生成目标训练集时,为了保证训练集中训练语料的丰富程度,需要尽可能的保证训练集中囊括了包括各种不同错误类型的错误语句,同时为了保证训练后的目标纠错模型能够针对各种错误类型均有良好的识别和纠错能力,因此需要保证每种错误类型的错误语句均有一定的数量。
[0162]
对此,本技术通过生成随机数,并根据随机数所处的数值区间,来确定目标处理方式。
[0163]
具体地,随机数可以是大于0且小于1的实数,将0至1这个实数区间划分为不同的数值区间范围,由于生成随机数时,生成的随机数落入不同数值区间的概率相等,因此生成的随机实数对应于每种目标处理方式的概率也是平均分布的,因此生成的随机数就相当于随机选取一种目标处理方式,从而保证了不同目标处理方式对应的不同错误类型均能够被包括到训练语料,也即目标训练集中,因此能够提高模型训练的训练效果,保证最终文字纠错的可靠性。
[0164]
在上述任一实施例的基础上,确定模块,具体用于:
[0165]
在随机实数大于处于第一预设范围内的情况下,确定目标处理方式为替换至少一个文字;在随机实数处于第二预设范围的情况下,确定目标处理方式为在至少一个文字后添加文字;在随机实数处于第三预设范围的情况下,确定目标处理方式为删除至少一个文字。
[0166]
在本技术实施例中,由于在实际的文字编辑工作过程中,不同种类的错误类型出现的概率不同,经试验研究得知,错字,也即将a字错误输入成了b字的错误类型,在实际中出现的情况较多,而多字或少字的错误的出现概率相对较小。
[0167]
因此,本技术设置不同的预设范围,并将每个预设范围对应于一种处理方式,从而对预设词句进行处理。
[0168]
示例性地,本技术将0至1的实数区间,划分为[0,0.5)、[0.5,0.7)和[0.7,1)的三个数值区间,其中,[0,0.5)为第一预设范围,[0.5,0.7)为第二预设范围,[0.7,1)为第三预设范围。
[0169]
具体地,[0,0.5)对应于错字的错误类型,因此当随机数落入该区间时,随机将预设语句中的至少一个字替换为其他文字。
[0170]
[0.5,0.7)对应于多字的错误类型,因此当随机数落入该区间时,随机在预设语句中的至少一个字添加一个文字,能够理解的是,添加的文字可以是与前一个文字相同的文字,也可以是不同的文字。
[0171]
[0.7,1)对应于少字的错误类型,因此当随机数落入该区间时,随机将预设语句中的至少一个字删除。
[0172]
本技术通过根据不同错误类型实际存在的概率,划分不同的数值区间,使得生成的目标训练集中存在的错误类型的比例,与实际文字编辑工作中可能出现的错误类型的比例接近,从而提高了模型训练效果。
[0173]
在上述任一实施例的基础上,确定模块,还用于确定错误词句的第一困惑度,和错误词句对应的预设词句的第二困惑度;在第一困惑度与第二困惑度的差,大于预设阈值的情况下,将错误词句确定为有效错误词句;
[0174]
生成模块,还用于通过有效错误词句生成目标训练集。
[0175]
在本技术实施例中,在通过目标处理方式,对预设语句进行处理,得到处理后的错误语句后,分别计算原始预设语句的第二困惑度,和处理后的错误词句的第一困惑度,并基于第一困惑度和第二困惑度的差,与预设阈值的比较结果,来判断错误语句是否有效。
[0176]
其中,当第一困惑度与第二困惑度的差值小于或等于预设阈值时,说明在通过目标处理方式对原始的预设语句进行处理后,处理后的语句仍然是正确的语句,如将“上学去”改成“上台去”之后,语句仍然是正确的。
[0177]
当第一困惑度与第二困惑度的差值大于预设阈值时,则说明处理后的语句是有效的错误语句,才是将其标记为有效错误语句,并通过有效错误语句生成目标训练集,能够保证通过目标训练集训练预设神经网络模型时的训练效果,提高最终训练得到目标纠错模型的文字纠错能力。
[0178]
在上述任一实施例的基础上,确定模块,具体用于:
[0179]
通过以下公式计算第一困惑度和第二困惑度:
[0180][0181]
其中,ppl为困惑度,p(x1,x2,...x
t
)为词句,t为词句中文字的数量,p(x
t
|x
t-2
x
t-1
)为字符x
t-2
和x
t-1
已经出现的情况下,x
t
的出现概率。
[0182]
在本技术实施例中,通过上述公式分别计算第一困惑度和第二困惑度。
[0183]
具体地,设第一困惑度为ppl
error
,设第二困惑度为ppl0,预设阈值为δ,当满足ppl
error

ppl0>δ时,确定当前的错误语句为有效错误语句。
[0184]
在上述任一实施例的基础上,词句的纠错装置还包括:
[0185]
训练模块,用于通过目标训练集和预设的目标损失函数,对神经网络模型进行训练,直至目标损失函数的损失值小于预设损失值。
[0186]
在本技术实施例中,在对预设的神经网络模型进行训练时,记录神经网络模型的输出,即神经网络模型输出的错误类型和正确替换汉字的概率分布,记为纠错词句信息。将该纠错词句信息,和纠错词句信息对应的原始词句信息输入至目标损失函数,该目标损失函数的损失值,用于指示纠错词句信息和原始词句信息之间的差距。
[0187]
其中,对原始词句进行目标处理后,得到包含错误的错误词句,该错误词句即神经网络模型的输入,因此纠错词句和原始词句之间的差距能够反映出神经网络模型的纠错效果,当纠错词句与原始词句越接近时,损失值越小。
[0188]
当损失函数的损失值小于预设损失值时,说明神经网络模型输出的纠错词句与原始词句足够接近,纠错效果符合要求,此时确定目标纠错模型训练完成。
[0189]
通过训练完成后的目标纠错模型,能够实现自动对文本中的错误进行识别和纠正,提高文本纠错的效率。
[0190]
在上述任一实施例的基础上,目标损失函数包括预测的错误类型分布和真实的错误类型的交叉熵损失函数和预测的正确文字分布和真实的正确文字的交叉熵损失函数。
[0191]
在本技术实施例中,目标损失函数为:
[0192]
loss=l
detect
+al
correct

[0193]
其中,loss为损失值,l
detect
为预测的错误类型分布和真实的错误类型的交叉熵损失函数,a为常数,l
correct
为预测的正确文字分布和真实的正确文字的交叉熵损失函数。
[0194]
目标损失函数包括两个部分,分别为l
detect
和l
correct
。其中,l
detect
表示预测的错误类型分布,和真实错误类型的交叉熵损失函数,当预测的错误类型越接近真实值时,l
detect
的损失值越小。l
correct
表示预测的正确汉字分布,和真实的正确汉字的交叉熵损失函数。a为常数,具体可以经验设置,在一些实施方式中,a=0.1。
[0195]
当损失函数的两个部分均收敛时,说明神经网络模型的错误类型预测效果和纠错效果均满足需求,此时确定目标纠错模型训练完成。
[0196]
在上述任一实施例的基础上,满足:
[0197][0198][0199]
其中,n为目标训练集的样本数,ti为目标训练集中第i个样本的长度,class为错误类型的数量,vocab为词表大小,为目标训练集中第i个样本的第j个字符的错误类型,为目标训练集中第i个样本的第j个字符出现σ类错误的概率,为目标训练集中第i个样本的第j个字符对应的正确文字,为目标训练集中第i个样本的第j个字符被词表中第β个文字替换的概率。
[0200]
在本技术实施例中,损失函数包括l
detect
,l
detect
表示预测的错误类型分布,和真实错误类型的交叉熵损失函数,具体地,满足:
[0201][0202]
损失函数还包括l
correct
,l
correct
表示预测的正确汉字分布,和真实的正确汉字的交叉熵损失函数,具体地,满足:
[0203][0204]
在上述损失函数中,n为目标训练集的样本数,ti为目标训练集中第i个样本的长度;
[0205]
class为错误类型的数量,具体地,赋值0为没有错误,赋值1为错字错误,赋值2为多字错误,赋值3为少字错误,共4种;
[0206]
vocab为词表大小,为目标训练集中第i个样本的第j个字符的错误类型,用整数0、1、2、3标记,分别与class的4种赋值对应;
[0207]
为目标训练集中第i个样本的第j个字符出现σ类错误的概率,为目标训练
集中第i个样本的第j个字符对应的正确文字,为目标训练集中第i个样本的第j个字符被词表中第β个文字替换的概率。
[0208]
在上述任一实施例的基础上,待纠错文本数据还包括词句序列对应的拼音字符序列;
[0209]
词句的纠错装置还包括:
[0210]
输入模块,用于将词句序列和拼音字符序列输入至目标纠错模型,得到输出序列,其中,输出序列包括词句序列中任一文字的错误类型的概率分布的序列,和任一文字的错误类型为拼写错误的情况下,任一文字对应的正确文字在词表中的概率分布。
[0211]
在本技术实施例中个,待纠错文本数据包括词句序列和对应的拼音字符序列,其中,拼音字符序列即是输入词句序列时,用户输入的拼音字符构成的序列。
[0212]
举例来说,词句序列为:“今晚去吃饭”,则对应的拼音字符为“jin wan qu chi fan”。
[0213]
将词句序列和拼音字符序列输入至目标纠错模型,目标纠错模型能够输出对应的输出序列,根据输出序列即可确定出对应的错误类型。
[0214]
模型的输入文本序列为:x=(x1,x2,

x
t
);
[0215]
对应的拼音序列为:p=(p1,p2,

p
t
);
[0216]
将序列x和序列p输入至目标纠错模型,得到对应的输出序列,具体地,输出序列包括:
[0217]
y=(y1,y2,
…yt
)和v=(v1,v2,
…vt
);
[0218]
其中,序列y中,y
t
表示第t个字的错误类型的概率分布,序列v中,v
t
当第t个字为错字时,用于纠正错字的正确字在词表终端概率分布。
[0219]
因此根据输出序列,具体根据序列y和序列v即可确定对应的错误类型,以及当出现错字时的纠正文字。
[0220]
在本技术的一些实施例中,提供了一种词句的纠错装置,图4示出了根据本技术实施例的词句的纠错装置的结构框图之二,如图4所示,词句的纠错装置400包括:
[0221]
存储器402,用于存储程序或指令;处理器404,用于执行程序或指令时实现如上述任一实施例中提供的词句的纠错方法的步骤,因此,该词句的纠错装置也包括如上述任一实施例中提供的词句的纠错方法的全部有益效果,为避免重复,在此不再赘述。
[0222]
在本技术的一些实施例中,提供了一种可读存储介质,其上存储有程序或指令,该程序或指令被处理器执行时实现如上述任一实施例中提供的词句的纠错方法的步骤,因此,该可读存储介质也包括如上述任一实施例中提供的词句的纠错方法的全部有益效果,为避免重复,在此不再赘述。
[0223]
在本技术的一些实施例中,提供了一种计算机程序产品,该计算机程序产品被存储在存储介质中,该计算机程序产被至少一个处理器执行以实现如上述任一实施例中提供的词句的纠错方法的步骤,因此,该计算机程序产品也包括如上述任一实施例中提供的词句的纠错方法的全部有益效果,为避免重复,在此不再赘述。
[0224]
在本技术的一些实施例中,面提供了一种电子设备,包括如上述任一实施例中提供的词句的纠错装置;和/或如上述任一实施例中提供的可读存储介质,因此,该电子设备
也包括如上述任一实施例中提供的词句的纠错装置和/或如上述任一实施例中提供的可读存储介质的全部有益效果,为避免重复,在此不再赘述。
[0225]
本技术的描述中,术语“多个”则指两个或两个以上,除非另有明确的限定,术语“上”、“下”等指示的方位或位置关系为基于附图所述的方位或位置关系,仅是为了便于描述本技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本技术的限制;术语“连接”、“安装”、“固定”等均应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本技术中的具体含义。
[0226]
在本技术的描述中,术语“一个实施例”、“一些实施例”、“具体实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包含于本技术的至少一个实施例或示例中。在本技术中,对上述术语的示意性表述不一定指的是相同的实施例或实例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0227]
以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。

技术特征:


1.一种词句的纠错方法,其特征在于,包括:获取待纠错文本数据,其中,所述待纠错文本数据包括词句序列;根据所述待纠错文本数据和目标纠错模型,确定所述词句序列对应的错误类型,其中,所述目标纠错模型用于识别错误文本的错误类型,并基于所述错误类型对所述错误文本进行纠错处理;根据所述错误类型、所述待纠错文本数据和所述目标纠错模型,对所述词句序列进行对应的纠错处理。2.根据权利要求1所述的纠错方法,其特征在于,在所述根据所述待纠错文本数据和目标纠错模型,确定所述词句序列对应的错误类型之前,所述纠错方法还包括:生成目标训练集;通过所述目标训练集,对预设的神经网络模型进行训练,得到所述目标纠错模型。3.根据权利要求2所述的纠错方法,其特征在于,所述生成目标训练集,包括:获取预设语料集合,所述预设语料集合包括多个预设词句,所述预设词句包括多个文字;确定目标处理方式,其中,所述目标处理方式包括替换所述至少一个文字、在所述至少一个文字后添加文字和删除所述至少一个文字中的至少一种;根据所述目标处理方式,对所述多个文字中的至少一个文字进行处理,得到处理后的错误词句,其中,所述错误词句的错误类型与所述目标处理方式相对应;根据所述错误词句生成所述目标训练集。4.根据权利要求3所述的纠错方法,其特征在于,所述确定目标处理方式,包括:生成随机数;根据所述随机数对应的数值区间,确定所述目标处理方式。5.根据权利要求4所述的纠错方法,其特征在于,在所述随机实数大于处于第一预设范围内的情况下,确定所述目标处理方式为替换所述至少一个文字;在所述随机实数处于第二预设范围的情况下,确定所述目标处理方式为在所述至少一个文字后添加文字;在所述随机实数处于第三预设范围的情况下,确定所述目标处理方式为删除所述至少一个文字。6.根据权利要求3至5中任一项所述的纠错方法,其特征在于,所述根据所述错误词句生成所述目标训练集,包括:确定所述错误词句的第一困惑度,和所述错误词句对应的预设词句的第二困惑度;在所述第一困惑度与所述第二困惑度的差,大于预设阈值的情况下,将所述错误词句确定为有效错误词句;通过所述有效错误词句生成所述目标训练集。7.根据权利要求2所述的纠错方法,其特征在于,所述通过所述目标训练集,对预设的神经网络模型进行训练,得到所述目标纠错模型,包括:通过所述目标训练集和预设的目标损失函数,对所述神经网络模型进行训练,直至所述目标损失函数的损失值小于预设损失值。
8.根据权利要求7所述的纠错方法,其特征在于,所述目标损失函数包括预测的错误类型分布和真实的错误类型的交叉熵损失函数和预测的正确文字分布和真实的正确文字的交叉熵损失函数。9.根据权利要求1至5中任一项所述的纠错方法,其特征在于,所述待纠错文本数据还包括所述词句序列对应的拼音字符序列;根据所述待纠错文本数据和目标纠错模型,确定所述词句序列对应的错误类型,包括:将所述词句序列和所述拼音字符序列输入至所述目标纠错模型,得到输出序列,其中,所述输出序列包括所述词句序列中任一文字的错误类型的概率分布的序列,和所述任一文字的错误类型为拼写错误的情况下,所述任一文字对应的正确文字在词表中的概率分布。10.一种词句的纠错装置,其特征在于,包括:获取模块,用于获取待纠错文本数据,其中,所述待纠错文本数据包括词句序列;确定模块,用于根据所述待纠错文本数据和目标纠错模型,确定所述词句序列对应的错误类型;处理模块,用于根据所述错误类型、所述待纠错文本数据和所述目标纠错模型,对所述词句序列进行对应的纠错处理。11.一种词句的纠错装置,其特征在于,包括:存储器,用于存储程序或指令;处理器,用于执行所述程序或指令时实现如权利要求1至9中任一项所述的纠错方法的步骤。12.一种可读存储介质,其上存储有程序或指令,其特征在于,所述程序或指令被处理器执行时实现如权利要求1至9中任一项所述的纠错方法的步骤。13.一种计算机程序产品,其特征在于,所述计算机程序产品被存储在存储介质中,所述计算机程序产被至少一个处理器执行以实现如权利要求1至9中任一项所述的纠错方法的步骤。

技术总结


本申请提供了一种词句的纠错方法、装置、可读存储介质和计算机程序产品。词句的纠错方法,包括:获取待纠错文本数据,其中,待纠错文本数据包括词句序列;根据待纠错文本数据和目标纠错模型,确定词句序列对应的错误类型,其中,目标纠错模型用于识别错误文本的错误类型,并基于错误类型对错误文本进行纠错处理;根据错误类型、待纠错文本数据和目标纠错模型,对词句序列进行对应的纠错处理。对词句序列进行对应的纠错处理。对词句序列进行对应的纠错处理。


技术研发人员:

刘烨 陈戈 高峰

受保护的技术使用者:

美的集团股份有限公司

技术研发日:

2022.09.02

技术公布日:

2022/11/18

本文发布于:2024-09-20 15:20:16,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/1893.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:词句   错误   文字   目标
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议