CN111079412A - 文本纠错方法及装置 - Google Patents
文本纠错方法及装置 Download PDFInfo
- Publication number
- CN111079412A CN111079412A CN201811215941.1A CN201811215941A CN111079412A CN 111079412 A CN111079412 A CN 111079412A CN 201811215941 A CN201811215941 A CN 201811215941A CN 111079412 A CN111079412 A CN 111079412A
- Authority
- CN
- China
- Prior art keywords
- text
- candidate
- word
- error correction
- words
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012937 correction Methods 0.000 title claims abstract description 228
- 238000000034 method Methods 0.000 title claims abstract description 139
- 239000011159 matrix material Substances 0.000 claims description 50
- 230000011218 segmentation Effects 0.000 claims description 41
- 230000006870 function Effects 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 12
- 230000007704 transition Effects 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 7
- 238000009499 grossing Methods 0.000 claims description 5
- 210000002105 tongue Anatomy 0.000 claims description 5
- 238000012545 processing Methods 0.000 abstract description 13
- 230000000694 effects Effects 0.000 abstract description 5
- 230000000875 corresponding effect Effects 0.000 description 41
- 238000010586 diagram Methods 0.000 description 9
- 238000012217 deletion Methods 0.000 description 6
- 230000037430 deletion Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 230000007423 decrease Effects 0.000 description 4
- 230000007774 longterm Effects 0.000 description 4
- 238000011160 research Methods 0.000 description 4
- 239000000243 solution Substances 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 3
- 239000012895 dilution Substances 0.000 description 2
- 238000010790 dilution Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 208000035126 Facies Diseases 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
Images
Landscapes
- Machine Translation (AREA)
Abstract
本发明涉及文本处理技术领域,提供一种文本纠错方法及装置。其中,文本纠错方法包括:确定可用于替换待纠错文本中的疑似错字的候选词组的集合;分别利用候选词组的集合中的每个候选词组替换待纠错文本中的疑似错字,获得与每个候选词组对应的候选纠错文本;计算每个候选纠错文本的合理程度,将合理程度最高的候选纠错文本确定为对疑似错字进行纠错后的文本。在该方法的纠错过程中,纠错后的文本是根据候选纠错文本的合理程度从多个候选纠错文本中选择的,因此有极大的概率就是正确的纠错结果,从而显著提高了文本纠错的效果。
Description
技术领域
本发明涉及文本处理技术领域,具体而言,涉及一种文本纠错方法及装置。
背景技术
在客服数据分析、智能客服开发等许多场景中,都需要对用户和人工客服的对话文本进行语义理解、意图分类等操作。但是,由于日常使用的手写、拼音等输入方式难免出现错别字,真实的客服对话数据中往往存在较多的错误,这给后续的语义、意图理解带来了极大的困难。为了减少文本中的错别字以提高后续处理的质量,在确定可能出现错误的文本位置之后,需要对这些疑似错误进行纠正,在现有技术中还没有效果较好的文本纠错方法。
发明内容
有鉴于此,本发明实施例提供一种文本纠错方法及装置,以改善文本纠错的效果。
为实现上述目的,本发明提供如下技术方案:
第一方面,本发明实施例提供一种文本纠错方法,包括:
确定可用于替换待纠错文本中的疑似错字的候选词组的集合;
分别利用候选词组的集合中的每个候选词组替换待纠错文本中的疑似错字,获得与每个候选词组对应的候选纠错文本;
计算每个候选纠错文本的合理程度,将合理程度最高的候选纠错文本确定为对疑似错字进行纠错后的文本,其中,候选纠错文本的合理程度表示将候选纠错文本确定为纠错后的文本的合理性。
对疑似错字进行纠错,也可以看作是利用候选词组对疑似错字进行替换的过程,上述方法首先确定候选词组的集合,然后用该集合中的每个候选词组替换待纠错文本中的疑似错字,每替换一次就得到一个候选纠错文本,最后根据候选纠错文本的合理程度选择最优的候选纠错文本作为纠错结果。在这一纠错过程中,纠错后的文本是根据候选纠错文本的合理程度从多个候选纠错文本中选择的,因此具有较高的合理性,即有极大的概率就是正确的纠错结果,从而显著提高了文本纠错的效果。
在第一方面的一种可能的实现方式中,确定可用于替换疑似错字的候选词组的集合,包括:
遍历基于语料库文本统计出的字典中的每个字,计算每个字与疑似错字的相似度;
将对应的相似度满足预设条件的字确定为一个候选词组并添加至候选词组的集合中。
发明人经长期研究发现,引起错字的原因除了少数随机性的笔误之外,更主要的原因是错字与正确字之间在某方面具有一定相似性,因此容易引起混淆。可以根据这种相似性的大小来确定候选词组,以获得价值较高的候选词组。
在第一方面的一种可能的实现方式中,预设条件包括:相似度超过预设程度,或相似度为遍历结束后计算出的所有相似度中最大的K个之一,其中,K为不超过字典中的总字数的正整数。
在第一方面的一种可能的实现方式中,相似度包括以下至少一种:字典中的字与疑似错字的在拼音上的相似度,字典中的字与疑似错字分别按照九宫格拼音输入法进行输入时在输入方式上的相似度,以及字典中的字与疑似错字分别按照五笔字型输入法进行输入时在输入方式上的相似度。
字与字之间的相似性,以上是三种典型的情况。第一种是拼音上的相似,同音字或者音近字在输入时可能混淆;第二种是采用九宫格拼音输入法时输入方式上的相似,由于九宫格拼音输入法只有九个按键,因此在输入时按键重复使用率较高,即使两个拼音完全不同的字也容易出现误输入;第三种是采用五笔字型输入法时输入方式上的相似,对于五笔字型编码接近的字,容易发生混淆。
在第一方面的一种可能的实现方式中,计算字典中的字与疑似错字的在拼音上的相似度,包括:
根据字典中的字与疑似错字在声母上的差异,计算字典中的字与疑似错字在声母上的相似度;
根据字典中的字与疑似错字在韵母上的差异,计算字典中的字与疑似错字在韵母上的相似度;
根据在声母上的相似度以及在韵母上的相似度计算在拼音上的相似度。
在第一方面的一种可能的实现方式中,在声母上的差异包括声母之间平翘舌的差异,在韵母上的差异包括韵母之间前后鼻音的差异。
在第一方面的一种可能的实现方式中,计算字典中的字与疑似错字分别按照九宫格拼音输入法进行输入时在输入方式上的相似度,包括:
分别确定字典中的字以及疑似错字按照九宫格拼音输入法进行输入时的按键序列;
根据两个按键序列的差异以及两个按键序列的长度的差异计算在输入方式上的相似度。
在第一方面的一种可能的实现方式中,根据两个按键序列是否相同以及两个按键序列的长度差异计算在输入方式上的相似度,包括:
根据两个按键序列的差异、两个按键序列的长度差异以及字典中的字与疑似错字的在声母上和/或在韵母上的差异计算九宫格拼音的相似度。
在计算字典中的字与疑似错字分别按照九宫格拼音输入法进行输入时在输入方式上的相似度时,也可以同时考虑字典中的字与疑似错字在拼音上的差异,因为九宫格拼音输入法实际上也属于根据拼音进行输入的范畴。
在第一方面的一种可能的实现方式中,计算字典中的字与疑似错字分别按照五笔字型输入法进行输入时在输入方式上的相似度,包括:
分别确定字典中的字以及疑似错字按照五笔字型输入法进行输入时的五笔字型编码;
将两个五笔字型编码的莱文斯坦比确定为在输入方式上的相似度。
在第一方面的一种可能的实现方式中,确定可用于替换疑似错字的候选词组的集合,包括:
遍历基于语料库文本统计出的字典中的每个字,将每个字置于疑似错字之前与疑似错字构成初步候选词组,以及置于疑似错字之后与疑似错字构成初步候选词组;
若初步候选词组属于基于语料库文本统计出的词典中的词,将初步候选词组确定为一个候选词组并添加至候选词组的集合中。
发明人经长期研究发现,漏字也是引起错字的常见原因之一,通过在疑似错字前后增加字构成候选词组,获得的候选词组可用于对漏字情况的纠错。当然,增加操作可能产生大量的候选词组,验证这些候选词组的计算量较大,因此在实施时可以将增加操作的结果作为初步候选词组,初步候选词组是字典中的字与疑似错字随机组合产生的,其中可能有大量无意义的词组,用这些词组替换疑似错字意义不大,可以利用词典对初步候选词组进行过滤,筛选出其中有意义的词组,以减少候选纠错过程的运算量。
在第一方面的一种可能的实现方式中,确定可用于替换疑似错字的候选词组的集合,包括:
将空词组确定为一个候选词组并添加至候选词组的集合中。
发明人经长期研究发现,将疑似错字直接删除也是有效的纠错手段之一,后续步骤中采用空词组替换疑似错字时,相当于将该疑似错字删除。
在第一方面的一种可能的实现方式中,在遍历基于语料库文本统计出的字典中的每个字之前,方法还包括:
在原始语料库文本中的每个句子的开头位置添加起始标识,在原始语料库文本中的每个句子的结尾位置添加结束标识,以及将原始语料库文本中的每个句子中的标点符号、阿拉伯数字、字母以及特殊字符替换为特殊标识后获得语料库文本,其中,起始标识、结束标识以及特殊标识视为语料库文本中三个合法的汉字。
以上为预处理步骤,处理后的语料库文本可以视为纯汉字的文本,便于统一进行处理,简化处理逻辑。
在第一方面的一种可能的实现方式中,计算每个候选纠错文本出现的合理程度,包括:
对候选纠错文本进行分词;
根据候选纠错文本的分词结果,利用bigram模型计算候选纠错文本出现的概率;
根据候选纠错文本出现的概率计算候选纠错文本的合理程度。
在第一方面的一种可能的实现方式中,根据候选纠错文本出现的概率计算候选纠错文本的合理程度,包括:
将候选纠错文本出现的概率与概率调整项的乘积确定为候选纠错文本的合理程度,其中,概率调整项用于表示除候选纠错文本出现的概率以外的对候选纠错文本的合理程度的影响因素。
候选纠错文本的合理程度可以直接实现为候选纠错文本的概率,但发明人长期研究发现,除概率之外还有一些其他因素可能影响候选纠错文本的合理程度,将这些因素表示为概率调整项,在计算候选纠错文本的合理程度时,以概率为基础,考虑其他因素适当调整,获得的候选纠错文本的合理程度能够更有效地评估将每个候选纠错文本作为纠错结果的合理性。
在第一方面的一种可能的实现方式中,概率调整项包括字长惩罚c_penalty,字长惩罚通过如下公式计算:
c_penalty=1-min(f(abs(character_length-len(sentence))*4,1)
其中,character_length为候选纠错文本的总字数,len(sentence)为待纠错文本的总字数,abs为绝对值函数,min为最小值函数,f为伽马分布的密度函数。
通常而言,当候选纠错文本较短时,其出现的概率也越大,为避免纠错结果趋向于更短的候选纠错文本,可以加入字长惩罚,使较短的候选纠错文本,其合理程度相较于概率适当增大。
在第一方面的一种可能的实现方式中,概率调整项包括词长惩罚w_penalty,词长惩罚通过如下公式计算:
w_penalty=1-min(f(abs(word_length-len(cutted_sentence))*4,1)
其中,word_length为候选纠错文本分分词后的总词数,len(cutted_sentence)为待纠错文本分词后的总词数,abs为绝对值函数,min为最小值函数,f为伽马分布的密度函数。
通常而言,当候选纠错文本较短时,其出现的概率也越大,为避免纠错结果趋向于更短的候选纠错文本,可以加入词长惩罚,使较短的候选纠错文本,其合理程度相较于概率适当增大。
在第一方面的一种可能的实现方式中,概率调整项包括与候选纠错文本对应的候选词组的权重,候选词组的权重为与候选词组的获得方式对应的预设数值。
由于错字的产生有不同的方式,且不同的方式产生错字的概率是不同的,例如,因为拼音混淆导致错字的概率高于因漏字导致错字的概率,因此,对于候选词组不同的获得方式(每种方式用于纠正一种原因导致的错字),其对应的候选纠错文本作为最终纠错结果的概率理应不同,可以为候选词组不同的获得方式分别指定一个的权重以体现这种差异,使得计算出的候选纠错文本的合理程度更具实际意义。
在第一方面的一种可能的实现方式中,若候选纠错文本的总字数小于预设字数,将候选纠错文本对应的候选词组的权重重新设置为预设的极小值。
若候选纠错文本太短,这样的纠错通常可认为是不当的,将候选纠错文本对应的候选词组的权重重新设置为预设的极小值,有利于避免这样的候选纠错文本被选为最终的纠错结果。
在第一方面的一种可能的实现方式中,候选纠错文本还包括待纠错文本本身,计算待纠错文本出现的合理程度,包括:
对待纠错文本进行分词;
根据待纠错文本的分词结果,利用bigram模型计算待纠错文本出现的概率;
将待纠错文本出现的概率与预设权重的乘积确定为待纠错文本出现的合理程度。
发明人经长期研究发现,现有方法选择出的疑似错字在很多时候并不是真正的错字,因此很多时候,不进行任何纠错反而才是正确的选择,所以将原始的待纠错文本也作为候选纠错文本,并为其分配一个较大的合理程度,使其有较大可能性被选择为最终的纠错结果。
在第一方面的一种可能的实现方式中,根据候选纠错文本的分词结果,利用bigram模型计算候选纠错文本出现的概率,包括:
根据候选纠错文本的分词结果确定构成候选纠错文本的词序列;
利用基于语料库文本计算出的词的共现频率矩阵确定词序列中相邻词之间的转移概率,其中,词的共现频率矩阵的第i行第j列的元素表示在语料库文本中,第j列对应的词至第i行对应的词的转移概率,第j列对应的词以及第i行对应的词均为语料库文本分词后产生的词,i以及j均为正整数;
根据相邻词之间的转移概率,利用bigram模型计算候选纠错文本出现的概率。
在第一方面的一种可能的实现方式中,在利用基于语料库文本统计出的词的共现频率矩阵确定词序列中相邻词之间的转移概率之前,方法还包括:
对语料库文本进行分词;
根据语料库文本的分词结果统计获得词的共现频次矩阵,其中,词的共现频次矩阵的第i行第j列的元素表示在语料库文本中,第i行对应的词在第j列对应的词之后出现的频次,第j列对应的词以及第i行对应的词均为语料库文本分词后产生的词;
根据词的共现频次矩阵计算词的共现频率矩阵,其中,词的共现频率矩阵的第i行第j列的元素为词的共现频次矩阵的第i行第j列的元素与第j列的元素之和的比值。
在第一方面的一种可能的实现方式中,在根据词的共现频次矩阵计算词的共现频率矩阵之前,方法还包括:
对词的共现频次矩阵进行拉普拉斯平滑处理。
由于语料库不可能覆盖所有的字词,因此词的共现频次矩阵中部分元素可能为0,这将导致词的共现频率矩阵中对应的元素也为0,进而导致候选纠错文本计算出的概率为0,两个概率同时为0的候选纠错文本难以比较优劣。通过拉普拉斯平滑处理可以消去矩阵中的非零元素,使得后续的纠错逻辑得以正常执行。
第二方面,本发明实施例提供一种文本纠错装置,包括:
候选词组确定模块,用于确定可用于替换待纠错文本中的疑似错字的候选词组的集合;
候选纠错文本生成模块,用于分别利用候选词组的集合中的每个候选词组替换待纠错文本中的疑似错字,获得与每个候选词组对应的候选纠错文本;
候选纠错文本选择模块,用于每个候选纠错文本的合理程度,将合理程度最高的候选纠错文本确定为对疑似错字进行纠错后的文本。
第三方面,本发明实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器读取并运行时,执行第一方面或第一方面的任意一种可能的实现方式提供的方法的步骤。
第四方面,本发明实施例提供一种电子设备,包括存储器、处理器以及总线,处理器和存储器通过总线完成相互间的通信,存储器中存储有计算机程序指令,计算机程序指令被处理器读取并运行时,执行第一方面或第一方面的任意一种可能的实现方式提供的方法的步骤。
为使本发明的上述目的、技术方案和有益效果能更明显易懂,下文特举实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了一种可应用于本发明实施例中的电子设备的结构框图;
图2示出了本发明实施例提供的一种文本纠错方法的流程图;
图3示出了本发明实施例提供的获得候选词组的方式的示意图;
图4示出了本发明实施例提供的概率调整方式的示意图;
图5示出了本发明实施例提供的一种文本纠错装置的功能模块图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于将一个实体或者操作与另一个实体或操作区分开来,而不能理解为指示或暗示相对重要性,也不能理解为要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
图1示出了一种可应用于本发明实施例中的电子设备100的结构框图。参照图1,电子设备100具体包括处理器101,存储器102,总线103和通信接口104,处理器101、存储器102和通信接口104通过总线103连接。
存储器102可用于存储软件程序,如本发明实施例提供的文本纠错方法对应的程序指令,处理器101可以通过执行存储在存储器102内的软件程序,从而实现本发明实施例提供的文本纠错方法的步骤。在后文中阐述文本纠错方法的步骤时,均以这些步骤由处理器101执行的情况为例,即步骤的执行主体均为处理器101。
存储器102可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(ReadOnly Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。处理器101以及其他可能的组件对存储器102的访问可在存储控制器的控制下进行。
处理器101可以是一种集成电路芯片,具有信号的处理能力。其可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、微控制单元(Micro ControllerUnit,MCU)、网络处理器(Network Processor,NP)或者其他常规处理器;还可以是专用处理器,包括数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、现场可编程门阵列(Field Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。
通过至少一个通信接口104(可以是有线或者无线)实现电子设备100与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线103可以是ISA总线、PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图1中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
可以理解,图1所示的结构仅为示意,电子设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。于本发明实施例中,电子设备100可以是,但不限于台式机、笔记本电脑、智能手机、智能穿戴设备、车载设备等,也不限于实体设备,例如可以是虚拟机、虚拟服务器等。
图2示出了本发明实施例提供的一种文本纠错方法的流程图。参照图2,该方法包括:
步骤S20:确定可用于替换待纠错文本中的疑似错字的候选词组的集合。
待纠错文本中已经预先标记好了疑似错字的位置,具体的标记方法不作限定,可以采用现有的错字检测算法甚至人工标记。对疑似错字进行纠错,也可以看作是一个替换过程,即用正确的字或此替换疑似错字的过程。当然,在自动纠错方法中,通常并不知道正确的字或词是什么,只能选择若干可能的字或词进行纠错尝试。将这样的字或词称为候选词组,一个候选词组即一个可用于替换待纠错文本中的疑似错字的字或词。
在步骤S20中,并不限定确定候选词组的具体方式,例如,可以根据错字产生的原因确定候选词组,比如,两个同音字在采用拼音输入法进行输入时会出现在同一个候选框中,用户在选择时很可能不慎选错,基于该原因,可以将疑似错字的同音字作为候选词组,这样如果疑似错字确实是因为同音误输入产生的错字,用这些候选词组之一替换疑似错字后将会得到正确的纠错结果。当然,导致错字产生的原因有很多,所以候选词组通常为多个,这些候选词组构成一个集合。
步骤S21:分别利用候选词组的集合中的每个候选词组替换待纠错文本中的疑似错字,获得与每个候选词组对应的候选纠错文本。
步骤S21即尝试纠错的过程,每个候选纠错文本就是一种候选的纠错结果。
步骤S22:计算每个候选纠错文本的合理程度,将合理程度最高的候选纠错文本确定为对疑似错字进行纠错后的文本。
步骤S21通常会得到多个纠错结果,但对于文本纠错任务,一般需要给出一个明确的纠错结果,因此在步骤S22中会根据每个候选纠错文本的合理程度从中筛选出合理程度最高的候选纠错文本作为纠错后的文本,即最终的纠错结果。其中,某个候选纠错文本的合理程度表示将该候选纠错文本确定为纠错后的文本的合理性,一个候选纠错文本的合理程度越高,表明将该候选纠错文本作为最终的纠错结果越合理,对于一个正确的纠错逻辑而言,应当使得候选纠错文本的合理程度与将候选纠错文本正确纠错的概率正相关。
对于待纠错文本中包括多个疑似错字的,每个疑似错字都可以按照步骤S20至步骤S22进行处理,为简便起见,后文中阐述纠错过程时都以其中的一个疑似错字为例。
在上述文本纠错方法中,纠错后的文本是根据候选纠错文本的合理程度从多个候选纠错文本中选择的,因此具有较高的合理性,即有极大的概率就是正确的纠错结果,从而显著提高文本纠错的准确度,纠错后的文本质量较高,用于各类文本处理任务中可以获得较好的效果。
为阐述后面的内容,首先介绍语料库、字典以及词典的概念。预料库是大量文本的集合。语料库中的文本可以选择和待纠错文本同属一个应用场景下的文本,例如,待纠错文本是某个顾客和某个客服的聊天记录,则预料库可以选择一段时间内多个顾客与多个客服之间的全部聊天记录。
遍历语料库中的文本,对每个出现的字进行编号(同一个字多次出现只编号一次),即可统计出该语料库对应的字典,后文中一律简称字典。对语料库中的文本,利用分词工具(如jieba分词)进行分词后,遍历分词结果,对每个出现的词进行编号(同一个词多次出现只编号一次),即可统计出该语料库对应的词典,后文中一律简称词典。字典以及词典可以在确定候选词组的过程中使用,因此统计字典、词典的步骤可以在步骤S20之前执行。
在某些实现方式中,在统计字典以及词典之前,还可以先对语料库中的文本进行预处理。不妨将未经过预处理的语料库文本称为原始语料库文本。预处理过程如下:
在原始语料库文本中的每个句子的开头位置添加起始标识;
在原始语料库文本中的每个句子的结尾位置添加结束标识;
将原始语料库文本中的每个句子中的标点符号、阿拉伯数字、字母以及特殊字符替换为特殊标识,其中,多个上述字符连续出现的,可以替换为一个特殊标识。
执行完上述三个步骤后,预处理完成,获得可用于统计字典以及词典的语料库文本,在统计时,起始标识、结束标识以及特殊标识均视为语料库文本中三个合法的汉字,无需单独处理,大大简化了处理逻辑。需要指出的是,待纠错文本同样可以进行预处理,方式和上面的相同。
发明人经长期研究发现,引起错字的原因除了少数随机性的笔误之外,更主要的原因是错字与正确字之间在某方面具有一定相似性(例如字音、字形等),因此容易引起混淆。可以根据这种相似性的大小来确定候选词组,可以理解的,若疑似错字确实是因为这种相似混淆而产生的错字,那么根据这种相似性确定的候选词组就可能获得正确的纠错结果。
在本发明的一个实施例中,步骤S20中的候选词组可以采用如下方式确定:
首先遍历字典中的每个字,计算每个字与疑似错字的相似度,这里并不限定是哪方面的相似度,例如字音、字形等方面的相似度均可。
然后将对应的相似度满足预设条件的字确定为一个候选词组并添加至候选词组的集合中。这里所称的预设条件,常见的有两种:第一是相似度超过预设程度,需要指出的是,这里所称的预设程度是指一个范围,因此超过预设程度是指超出该范围,并不一定是大于某个阈值,也可能是小于某个阈值。第二是相似度为遍历字典后计算出的所有相似度中最大的K个之一,其中,K为不超过字典中的总字数的正整数。这两个条件,前者是绝对意义上的相似度较高,后者是相对意义上的相似度较高,可以根据需求选择其中一个使用。
下面介绍字与字之间相似的三种典型情况:
第一种是拼音上的相似,同音字或者音近字在输入时可能混淆。例如“相”和“想”,拼音都是xiang,在电脑上用拼音输入法输入输入很可能误选。
第二种是采用九宫格拼音输入法时输入方式上的相似,九宫格拼音输入法常用于屏幕较小的移动设备上(如手机),由于该拼音输入法只有九个按键,因此在输入时按键重复使用率较高,即使两个拼音完全不同的字也容易出现误输入。例如,如“展”和“现”,尽管“zhan”和“xian”的声母和韵母都不相同,但使用九宫格拼音上输入时按键都为“9426”(按键编号为1-9),因此“发现”很有可能被误输入为“发展”。
第三种是采用五笔字型输入法时输入方式上的相似,对于五笔字型编码接近的字,容易发生误输入。如“胞”的五笔字形编码为eqn,“雹”的五笔字形编码为fqn,二者只相差一个字母,并且f和e在键盘上比较接近,容易出现错误。
当然,实际中字与字之间相似关系还有很多,以上仅仅为常见的情况,例如,两个字的字形相似,在采用手写输入时也有可能发生混淆。
下面具体介绍针对上述三种典型的情况如何计算字典中的字与疑似错字之间的相似度。
第一种情况,计算字典中的字与疑似错字的在拼音上的相似度,该相似度可以通过两个字拼音之间的差异来衡量。由于字的拼音包括声母和韵母,因此可以将两个字的声母和韵母分别进行对比:首先根据字典中的字与疑似错字在声母上的差异,计算二者在声母上的相似度,然后根据字典中的字与疑似错字在韵母上的差异,计算二者在韵母上的相似度,最后根据在声母上的相似度以及在韵母上的相似度计算在拼音上的相似度。
作为一种可选的方式,在计算两个字声母上的差异时,可以考虑两个声母是否相同、两个声母之间平翘舌的差异等因素,在计算两个字韵母上的差异时,可以考虑两个韵母是否相同、两个韵母之间前后鼻音的差异等因素。
在一种实现方式中,可以将字典中的字与疑似错字的在拼音上的相似度定义为两个字的拼音距离,拼音距离可以通过如下规则定义:初始时拼音距离为0;若两个字声母完全相同,拼音距离保持不变;若一个字声母为z、c、s,另一个字声母对应为zh、ch、sh(平翘舌差异),拼音距离加0.2;若两个字声母为其他情况,拼音距离加1.5;若两个字韵母完全相同,拼音距离保持不变;若一个字韵母为an、en、in,另一个字韵母对应为ang、eng、ing(前后鼻音差异),拼音距离加0.6;若两个字韵母为其他情况,拼音距离加1.5。根据上述规则,两个字的拼音距离可能是0、0.2、0.4、0.6、0.8、1.5、1.7、2.1、3。在选择候选词组时,可以选择拼音距离小于1的字作为拼音上相似的候选词组。可以理解的,以上仅仅是计算拼音相似度的一种可能的、而不是唯一的方式。
第二种情况,计算字典中的字与疑似错字分别按照九宫格拼音输入法进行输入时在输入方式上的相似度,该相似度可以通过两个字分别按照九宫格拼音输入法进行输入时在输入方式上的差异来衡量。
首先分别确定字典中的字以及疑似错字按照九宫格拼音输入法进行输入时的按键序列,其中按键可以按1-9编号,得到一个数字序列。然后根据两个按键序列的差异以及两个按键序列的长度的差异计算二者在输入方式上的相似度。
作为一种可选的方式,在计算字典中的字与疑似错字分别按照九宫格拼音输入法进行输入时在输入方式上的相似度时,也可以同时考虑字典中的字与疑似错字在拼音上的差异,因为九宫格拼音输入法实际上也属于根据拼音进行输入的范畴,如果用户对字的拼音理解不准确,同样有可能错误输入。具体而言,在计算采用九宫格拼音输入法时的相似度时,除了根据字典中的字与疑似错字的按键序列的差异、按键序列的长度差异以外,还可以根据二者的在声母上和/或在韵母上的差异进行计算。
在一种实现方式中,可以将字典中的字与疑似错字分别按照九宫格拼音输入法进行输入时在输入方式上的相似度定义为两个字的九宫格拼音距离,九宫格拼音距离可以通过如下规则定义:初始时九宫格拼音距离为0;若两个字的按键序列完全相同,九宫格拼音距离保持不变;若两个字的按键序列的长度差1,且两个字在声母上的差异为平翘舌差异,九宫格拼音距离加0.5;若疑似错字对应的按键序列的长度大于字典中的字对应的按键序列的长度,九宫格拼音距离加2;其余情况九宫格拼音距离加1。根据上述规则,两个字的九宫格拼音距离可能是0、0.5、1、2。在选择候选词组时,可以选择九宫格拼音距离小于1的字作为采用九宫格拼音输入法时相似的候选词组。可以理解的,以上仅仅是计算九宫格拼音输入法时的相似度的一种可能的、而不是唯一的方式。
第三种情况,计算字典中的字与疑似错字分别按照五笔字型输入法进行输入时在输入方式上的相似度,该相似度可以通过两个字分别按照五笔字型输入法进行输入时在输入方式上的差异来衡量。
首先分别确定字典中的字以及疑似错字按照五笔字型输入法进行输入时的五笔字型编码,然后计算两个五笔字型编码的莱文斯坦比并将计算结果作为要计算的相似度。其中,莱文斯坦比r=(sum-ldist)/sum,sum两个五笔字型编码的长度之和,ldist为类编辑距离。在选择候选词组时,可以选择计算出的所有莱文斯坦比中最大的50个莱文斯坦比对应的字典中的字作为采用五笔字型输入法时相似的候选词组。可以理解的,以上仅仅是计算五笔字型输入法时的相似度的一种可能的、而不是唯一的方式。
发明人经长期研究发现,漏字也是引起错字的常见原因之一,通过在疑似错字前后增加字构成候选词组,可以理解的,若疑似错字确实是因为漏字而产生的错字,那么根据增加操作产生的候选词组就可能获得正确的纠错结果。
在本发明的一个实施例中,步骤S20中的候选词组可以采用如下方式确定:
首先遍历基于语料库文本统计出的字典中的每个字,将每个字置于疑似错字之前与疑似错字构成一个初步候选词组(该词组包括两个字),以及置于疑似错字之后与疑似错字构成另一个初步候选词组;
对于获得的任一初步候选词组,若该词组属于词典中的词,将其确定为一个候选词组并添加至候选词组的集合中,否则将其忽略掉。
实际上,在某些实现方式中,直接将初步候选词组加入到候选词组集合中也是可以的。但通常初步候选词组数量较多,并且初步候选词组是字典中的字与疑似错字随机组合产生的,其中可能有大量无意义的词组,用这些词组替换疑似错字意义不大,利用词典对初步候选词组进行过滤,筛选出其中有意义的词组,不仅可以减少后续步骤中的运算量,而且获得正确纠错结果的可能性也更高。
发明人经长期研究发现,在一些情况下将疑似错字直接删除也是有效的纠错手段之一,例如用户可能不慎多写了一个字,该字并不能和前后的字构成有意义的词。
在本发明的一个实施例中,步骤S20中的候选词组还可以包括空词组,空词组中不包含任何字词,但会占用一个候选词组。在步骤S21中用候选词组替换待纠错文本中的疑似错字时,空词组对疑似错字的替换等效于将疑似错字删除,构成与上述发现对应的一种纠错方案。同时,将删除操作等效于空词组的替换,也使得方法在处理逻辑上更为简单。
图3概括了以上阐述的三类确定候选词组的方式,分别是:根据字典中的字与疑似错字的相似度的方式(具体可以包括拼音、九宫格输入法、五笔字型输入法等)、在疑似错字前后增加字典中的字的方式以及将疑似错字删除的方式。
在上述实施例的基础上,进一步的,步骤S22中计算候选文本的合理程度,可以采用如下的方式:
首先利用分词工具对候选纠错文本进行分词;
然后根据候选纠错文本的分词结果,利用bigram模型计算候选纠错文本出现的概率。在bigram模型中,每个词的出现的概率只和它的前一个词有关,从而候选纠错文本的概率p(sentence)可以表示为:
其中,l为候选纠错文本分词后的总词数,分词结果是一个词序列,其中词的顺序和候选纠错文本中词的顺序一致,wordi表示分词结果中除最后一个词之外的任意一个词,wordi+1表示该词在分词结果中的下一个词,p(wordi+1|wordi)为从wordi到wordi+1的转移概率。
获得候选纠错文本出现的概率后,可以根据候选纠错文本出现的概率计算候选纠错文本的合理程度,作为一种最直接的方式,可以直接将候选纠错文本出现的概率作为其合理程度,当然在其他实施方式中,计算合理程度时也可以综合考虑候选纠错文本出现的概率与其他因素。
为获得计算候选纠错文本出现的概率所需要的转移概率。可以在统计字典、词典的同时,首先统计获得词的共现频次矩阵。在一种实现方式中,词的共现频次矩阵的每行对应词典中的一个词(总行数和词典的总词数相同),每列也对应词典中的一个词(总列数和词典的总词数相同),其中第i行第j列(i、j均为正整数)的元素表示在语料库文本中,第i行对应的词在第j列对应的词之后(两个词之间无间隔)出现的频次。遍历语料库文本,统计每两个相邻词出现的次数即可以获得该频次。
获得词的共现频次矩阵后,可以进一步计算出词的共现频率矩阵。词的共现频率矩阵的第i行第j列的元素表示在语料库文本中,第j列对应的词至第i行对应的词的转移概率(也就是第i行对应的词在第j列对应的词之后出现的概率)。根据上述定义,词的共现频率矩阵的第i行第j列的元素,可以通过计算词的共现频次矩阵的第i行第j列的元素与词的共现频次矩阵的第j列的元素之和的比值获得,其中,词的共现频次矩阵的第j列的元素之和表示第j列对应的词在语料库文本中出现的总频次。
获得词的共现频率矩阵后,计算两个词之间的转移概率,直接读取矩阵中对应的元素就可以了。
需要指出,直接根据统计得到的词的共现频次矩阵中可能存在一些为0的元素,因为每个元素对应的词的组合并在语料库文本中不一定实际出现过。这将导致词的共现频率矩阵中对应的元素也为0(根据上面的计算词的共现频率矩阵的方法),进而导致计算出的候选纠错文本出现的概率为0,以候选纠错文本的合理程度直接定义为概率的情况为例,这将导致多个候选纠错文本的合理程度均为0,从而难以从中选择最合理的候选纠错文本。为解决这一问题,在一种实现方式中,可以对直接统计出的词的共现频次矩阵进行拉普拉斯平滑处理以消去矩阵中的非零元素,具体的做法可以是将矩阵的每个元素都加上1,平滑处理后,后续的纠错逻辑可以正常执行。
发明人长期研究发现,除概率之外还有一些其他因素可能影响候选纠错文本的合理程度,将这些因素表示为概率调整项(概率调整项可以是一个或多个)。在计算候选纠错文本的合理程度时,以概率为基础,考虑其他因素适当调整,获得的候选纠错文本的合理程度能够更有效地评估将每个候选纠错文本作为纠错结果的合理性。
基于上述发现,在本发明的一个实施例中,可以将候选纠错文本的合理程度定义为候选纠错文本出现的概率与概率调整项乘积
在一种实现方式中,概率调整项包括字长惩罚,字长惩罚c_penalty通过如下公式计算:
c_penalty=1-min(f(abs(character_length-len(sentence))*4,1)
其中,character_length为候选纠错文本的总字数,len(sentence)为待纠错文本的总字数,abs为绝对值函数,min为最小值函数,f为伽马分布的密度函数,其定义为其中x大于0,α和β均等于2。
通常而言,当候选纠错文本较短时,其出现的概率也越大,例如当采用空词组替换疑似错字后,候选纠错文本将比待纠错文本更短。如果直接将出现概率作为候选纠错文本的合理程度,那么较短的候选纠错文本将占有优势,但实际上对于纠错而言,纠错后文本的长短与纠错结果的正确性关系不大。加入字长惩罚后,对于较短的候选纠错文本,其合理程度相较于概率将适当增大,以尽量消除文本长短对评估纠错结果的影响。
在一种实现方式中,概率调整项包括词长惩罚w_penalty,词长惩罚通过如下公式计算:
w_penalty=1-min(f(abs(word_length-len(cutted_sentence))*4,1)
其中,word_length为候选纠错文本分分词后的总词数,len(cutted_sentence)为待纠错文本分词后的总词数,abs为绝对值函数,min为最小值函数,f为伽马分布的密度函数。
词长惩罚和字长惩罚的作用是类似的,只是词长惩罚在考虑文本长度时以此为单位,字长惩罚在考虑文本长度时以字为单位。
在一种实现方式中,概率调整项包括与候选纠错文本对应的候选词组的权重,该权重可以是一个预设的数值,权重的取值由候选词组的获得方式决定。
由于错字的产生有不同的原因,不同的原因产生错字的概率是不同的,例如,因为拼音混淆导致错字的概率高于因漏字导致错字的概率,从而,采用与出现概率较高的错字成因对应的纠错方式能够正确纠错的概率也会比其他纠错方式更高一些。根据之前的阐述,每种获得候选词组的方式通常对应一种原因产生的错字,替换后获得的候选纠错文本也是为了纠正该原因导致的错字,因此可以为每种获得候选词组的方式指定一个可能与其他方式不同的权重,并将该权重作为概率调整项,这样在获得的合理程度中就能够体现出不同的纠错方式对概率的影响。
例如,通过增加或删除操作获得候选词组的,其权重指定为0.1;通过字音相关的操作(如拼音相似、采用九宫格拼音输入法的输入方式相似)获得候选词组的,其权重指定为7;通过字形相关操作(如采用五笔字型输入法的输入方式相似)获得候选词组的,其权重指定为4。如果一个候选词组同时被不同的方式选出,还可以将不同的方式的权重相加作为该候选词组对应的权重,如一个候选词组同时被字音相关操作和字形相关操作选出,该候选词组的权重可以设置为11。可以理解的,上述权重仅为示例,实际中也可以采用其他值。
进一步的,如果候选纠错文本太短(如只有一两个字),根据经验这样纠错通常是不当的,对于这种情况,可以将候选纠错文本对应的候选词组的权重重新设置为一个预设的极小值,如0.0001等,以使其对应的合理程度显著降低,几乎不会被作为最终的纠错结果。可以将这种权重调整操作称为短句保护。
例如,删除操作会导致候选纠错文本相对于待纠错文本变短,当删除后候选纠错文本只剩一个字时(文本预处理过的,是指除起始和结束标识以外的字数),认为候选纠错文本过短,将空词组对应的权重调整为预设的极小值。
作为总结的,如果同时采用了上面几种概率调整项,候选纠错文本的合理程度reasonability的计算方式如下:
reasonability=p(sentence)*w_penalty*c_penalry*weight
其中,p(sentence)为候选纠错文本出现的概率,w_penalty为词长惩罚,c_penalty为字长惩罚,weight为候选词权重。
发明人经长期研究发现,现有方法选择出的疑似错字在很多时候并不是真正的错字,因此很多时候,不进行任何纠错反而才是正确的选择,所以可以将原始的待纠错文本也作为一种候选纠错文本,并为其分配一个较大的合理程度,使其有较大可能性被选择为最终的纠错结果。具体做法如下:
首先利用分词工具对待纠错文本进行分词,然后根据待纠错文本的分词结果,利用bigram模型计算待纠错文本出现的概率,最后将待纠错文本出现的概率与某个预设权重的乘积确定为待纠错文本出现的合理程度。用公式表示就是:
reasonability=p(sentence)*RAW_SENTENCE_PROTECT_WEIGHT
其中,RAW_SENTENCE_PROTECT_WEIGHT就是上述预设权重,其取值通常为大于1的数,如10。RAW_SENTENCE_PROTECT_WEIGHT也可以看作是近针对原始待纠错文本的概率调整项。可以将这种对原始待纠错文本的保护措施称为原句保护。
图4概括了以上阐述的五种调整候选纠错文本的出现概率的方式,分别是:字长惩罚、词长惩罚、候选词组权重、短句保护以及原句保护。可以理解的,根据具体需求,设置其他概率调整项也是可以的。
下面通过一个具体的例子阐述一下本发明实施例提供的文本纠错方法的过程,注意在具体实施时可以只实施该例子中的部分步骤。语料库:三个月的顾客与客服对话数据。假设其中有一句话:“为什么我的服务分降低了?”
待纠错文本:“冲淡奖的时候为什么不派单?”,标记的疑似错字为“淡”。
开始纠错前的准备阶段:
(1)对语料库文本和待纠错文本中进行预处理,其中,起始标识为S,结束标识为E,特殊标识为P。
“为什么我的服务分降低了?”→“S为什么我的服务分降低了PE”“冲淡奖的时候为什么不派单?”→“S冲淡奖的时候为什么不派单PE”
(2)对语料库文本和待纠错文本进行分词。
“S为什么我的服务分降低了PE→[“S”,“为什么”,“我的”,“服务分”,“降低了”,“P”,“E”]
“S冲淡奖的时候为什么不派单PE”→[“S”,“冲淡”,“奖”,“的时候”,“为什么”,“不”,“派单”,“P”,“E”]
(3)遍历语料库文本,统计获得字典:{“服”:1,“务”:2,“分”:3,“S”:4,“P”:5,“为”:6,“乘”:7,…}
(4)遍历语料库文本的分词结果,获得词典:{“服务分”:1,“为什么”:2,“S”:3,“E”:4,…}
(5)遍历语料库文本的分词结果,获得到词的共现频次矩阵,如矩阵的第1行第2列代表“为什么”在“服务分”后出现的次数。
(6)词的共现频次矩阵中可能出现某个元素为0的情况,如“乘客”一词可能不会在“句子”一词后出现。为避免该问题,矩阵的每个元素都加1。
(7)根据词的共现频次矩阵计算词的共现频率矩阵。
候选词组生成阶段:
(1)增加删除操作:增加操作后可得{“服淡”,“淡服”,“务淡”,“清淡”,…},过滤掉其中不在词典中的词组,如“服淡”等。删除操作后得到的空词组。
(2)拼音相似:“淡”字的拼音为“dan”。对于字典中的字“单”、“当”和“灯”,拼音分别为“dan”、“dang”和“deng”。比较声母,都为“d”,距离为0;比较韵母,“an”和“an”相同,计为0,“an”和“ang”为前后鼻音的区别,计为0.6;“an”和“eng”不同,计为1.5。因此,“淡”和“单”的拼音距离为0+0=0,“淡”和“当”的拼音距离为0+0.6=0.6,“淡”和“灯”的拼音距离为0+1.5=1.5。选取所有拼音距离小于1的字为根据拼音相似选出的候选词组。
(3)九宫格输入方式相似:“淡”字的按键序列为“326”。对于字典中的字“单”、“当”和“灯”,按键序列分别为“326”、“3264”和“3364”。“淡”和“单”的数字序列完全相同,九宫格拼音距离计为0;其余两个字序列不同,但疑似错误字长度更小,距离计为1。选取所有九宫格拼音距离小于1的字为根据九宫格输入方式相似选出的候选词组。
(4)五笔字型输入方式相似:“淡”字五笔字型编码为“iooy”。对于字典中的字“单”、“当”和“灯”,五笔字形编码分别为“ujfi”、“ivf”和“osh”。计算字典中的字与疑似错字的相似度时采用莱文斯坦比,有很多现有工具可以计算。选取所有的莱文斯坦比中最大的前50个莱文斯坦比对应的字为根据五笔字型输入方式相似选出的候选词组。
纠错结果生成阶段:
待纠错文本概率:p(“S冲淡奖的时候为什么不派单PE”)。
考虑候选词组“单”,替换后候选纠错文本的概率:p(“S冲单奖的时候为什么不派单PE”)。
原句保护:合理程度=p(“S冲淡奖的时候为什么不派单PE”)*10。词长惩罚、字长惩罚:按照公式计算后二者均为1。
候选词组权重:“单”字通过拼音相似的方式选出,权重为7。
短句保护:因候选纠错文本除“S”和“E”之外不只一个字,因此不需要考虑。
合理程度=p(“S冲单奖的时候为什么不派单PE”)*1*1*7。
经过以上操作,可以求出每个候选词组替换疑似错误字后获得候选纠错文本的合理程度,取其中合理程度最高者即为最终的纠错结果。例如,在上面的例子中,最优候选词组为“单”,纠错后的文本为“冲单奖的时候为什么不派单?”
本发明实施例还提供一种文本纠错装置300,如图5所示。参照图5,该装置包括:
候选词组确定模块310,用于确定可用于替换待纠错文本中的疑似错字的候选词组的集合;
候选纠错文本生成模块320,用于分别利用所述候选词组的集合中的每个候选词组替换所述待纠错文本中的所述疑似错字,获得与每个候选词组对应的候选纠错文本;
候选纠错文本选择模块330,用于每个候选纠错文本的合理程度,将合理程度最高的候选纠错文本确定为对所述疑似错字进行纠错后的文本。
本发明实施例提供文本纠错装置300,其实现原理及产生的技术效果在前述方法实施例中已经介绍,为简要描述,装置实施例部分未提及之处,可参考方法施例中相应内容。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器读取并运行时,执行本发明实施例提供的文本纠错方法的步骤。该计算机可读存储介质可以是,但不限于图1示出的存储器102。
本发明实施例还提供一种电子设备,包括处理器、存储器以及总线,处理器和存储器通过总线完成相互间的通信,存储器中存储有计算机程序指令,计算机程序指令被处理器读取并运行时,执行本发明实施例提供的文本纠错方法的步骤。该电子设备可以是,但不限于图1示出的电子设备100。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得计算机设备执行本发明各个实施例所述方法的全部或部分步骤。前述的计算机设备包括:个人计算机、服务器、移动设备、智能穿戴设备、网络设备、虚拟设备等各种具有执行程序代码能力的设备,前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟、磁带或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (25)
1.一种文本纠错方法,其特征在于,包括:
确定可用于替换待纠错文本中的疑似错字的候选词组的集合;
分别利用所述候选词组的集合中的每个候选词组替换所述待纠错文本中的所述疑似错字,获得与每个候选词组对应的候选纠错文本;
计算每个候选纠错文本的合理程度,将合理程度最高的候选纠错文本确定为对所述疑似错字进行纠错后的文本,其中,所述候选纠错文本的合理程度表示将所述候选纠错文本确定为所述纠错后的文本的合理性。
2.根据权利要求1所述的文本纠错方法,其特征在于,所述确定可用于替换所述疑似错字的候选词组的集合,包括:
遍历基于语料库文本统计出的字典中的每个字,计算每个字与所述疑似错字的相似度;
将对应的所述相似度满足预设条件的字确定为一个候选词组并添加至所述候选词组的集合中。
3.根据权利要求2所述的文本纠错方法,其特征在于,所述预设条件包括:所述相似度超过预设程度,或所述相似度为遍历结束后计算出的所有相似度中最大的K个之一,其中,K为不超过所述字典中的总字数的正整数。
4.根据权利要求2所述的文本纠错方法,其特征在于,所述相似度包括以下至少一种:所述字典中的字与所述疑似错字的在拼音上的相似度,所述字典中的字与所述疑似错字分别按照九宫格拼音输入法进行输入时在输入方式上的相似度,以及所述字典中的字与所述疑似错字分别按照五笔字型输入法进行输入时在输入方式上的相似度。
5.根据权利要求4所述的文本纠错方法,其特征在于,计算所述字典中的字与所述疑似错字的在拼音上的相似度,包括:
根据所述字典中的字与所述疑似错字在声母上的差异,计算所述字典中的字与所述疑似错字在声母上的相似度;
根据所述字典中的字与所述疑似错字在韵母上的差异,计算所述字典中的字与所述疑似错字在韵母上的相似度;
根据所述在声母上的相似度以及所述在韵母上的相似度计算所述在拼音上的相似度。
6.根据权利要求5所述的文本纠错方法,其特征在于,所述在声母上的差异包括声母之间平翘舌的差异,所述在韵母上的差异包括韵母之间前后鼻音的差异。
7.根据权利要求4所述的文本纠错方法,其特征在于,计算所述字典中的字与所述疑似错字分别按照九宫格拼音输入法进行输入时在输入方式上的相似度,包括:
分别确定所述字典中的字以及所述疑似错字按照九宫格拼音输入法进行输入时的按键序列;
根据两个按键序列的差异以及两个按键序列的长度的差异计算所述在输入方式上的相似度。
8.根据权利要求7所述的文本纠错方法,其特征在于,所述根据两个按键序列是否相同以及两个按键序列的长度差异计算所述在输入方式上的相似度,包括:
根据两个按键序列的差异、两个按键序列的长度差异以及所述字典中的字与所述疑似错字的在声母上和/或在韵母上的差异计算所述九宫格拼音的相似度。
9.根据权利要求4所述的文本纠错方法,其特征在于,计算所述字典中的字与所述疑似错字分别按照五笔字型输入法进行输入时在输入方式上的相似度,包括:
分别确定所述字典中的字以及所述疑似错字按照五笔字型输入法进行输入时的五笔字型编码;
将两个五笔字型编码的莱文斯坦比确定为所述在输入方式上的相似度。
10.根据权利要求1所述的文本纠错方法,其特征在于,所述确定可用于替换所述疑似错字的候选词组的集合,包括:
遍历基于语料库文本统计出的字典中的每个字,将每个字置于所述疑似错字之前与所述疑似错字构成初步候选词组,以及置于所述疑似错字之后与所述疑似错字构成初步候选词组;
若所述初步候选词组属于基于所述语料库文本统计出的词典中的词,将所述初步候选词组确定为一个候选词组并添加至所述候选词组的集合中。
11.根据权利要求1所述的文本纠错方法,其特征在于,所述确定可用于替换所述疑似错字的候选词组的集合,包括:
将空词组确定为一个候选词组并添加至所述候选词组的集合中。
12.根据权利要求2-10中任一项所述的文本纠错方法,其特征在于,在所述遍历基于语料库文本统计出的字典中的每个字之前,所述方法还包括:
在原始语料库文本中的每个句子的开头位置添加起始标识,在所述原始语料库文本中的每个句子的结尾位置添加结束标识,以及将所述原始语料库文本中的每个句子中的标点符号、阿拉伯数字、字母以及特殊字符替换为特殊标识后获得所述语料库文本,其中,所述起始标识、所述结束标识以及所述特殊标识视为所述语料库文本中三个合法的汉字。
13.根据权利要求1所述的文本纠错方法,其特征在于,所述计算每个候选纠错文本出现的合理程度,包括:
对所述候选纠错文本进行分词;
根据所述候选纠错文本的分词结果,利用bigram模型计算所述候选纠错文本出现的概率;
根据所述候选纠错文本出现的概率计算所述候选纠错文本的合理程度。
14.根据权利要求13所述的文本纠错方法,其特征在于,所述根据所述候选纠错文本出现的概率计算所述候选纠错文本的合理程度,包括:
将所述候选纠错文本出现的概率与概率调整项的乘积确定为所述候选纠错文本的合理程度,其中,所述概率调整项用于表示除所述候选纠错文本出现的概率以外的对所述候选纠错文本的合理程度的影响因素。
15.根据权利要求14所述的文本纠错方法,其特征在于,所述概率调整项包括字长惩罚c_penalty,所述字长惩罚通过如下公式计算:
c_penalty=1-min(f(abs(character_length-len(sentence))*4,1)
其中,character_length为所述候选纠错文本的总字数,len(sentence)为所述待纠错文本的总字数,abs为绝对值函数,min为最小值函数,f为伽马分布的密度函数。
16.根据权利要求14所述的文本纠错方法,其特征在于,所述概率调整项包括词长惩罚w_penalty,所述词长惩罚通过如下公式计算:
w_penalty=1-min(f(abs(word_length-len(cutted_sentence))*4,1)
其中,word_length为所述候选纠错文本分分词后的总词数,len(cutted_sentence)为所述待纠错文本分词后的总词数,abs为绝对值函数,min为最小值函数,f为伽马分布的密度函数。
17.根据权利要求14所述的文本纠错方法,其特征在于,所述概率调整项包括与所述候选纠错文本对应的所述候选词组的权重,所述候选词组的权重为与所述候选词组的获得方式对应的预设数值。
18.根据权利要求17所述的文本纠错方法,其特征在于,若所述候选纠错文本的总字数小于预设字数,将所述候选纠错文本对应的所述候选词组的权重重新设置为预设的极小值。
19.根据权利要求1所述的文本纠错方法,其特征在于,所述候选纠错文本还包括所述待纠错文本本身,计算所述待纠错文本出现的合理程度,包括:
对所述待纠错文本进行分词;
根据所述待纠错文本的分词结果,利用bigram模型计算所述待纠错文本出现的概率;
将所述待纠错文本出现的概率与预设权重的乘积确定为所述待纠错文本出现的合理程度。
20.根据权利要求13-18中任一项所述的文本纠错方法,其特征在于,所述根据所述候选纠错文本的分词结果,利用bigram模型计算所述候选纠错文本出现的概率,包括:
根据所述候选纠错文本的分词结果确定构成所述候选纠错文本的词序列;
利用基于语料库文本计算出的词的共现频率矩阵确定所述词序列中相邻词之间的转移概率,其中,所述词的共现频率矩阵的第i行第j列的元素表示在所述语料库文本中,第j列对应的词至第i行对应的词的转移概率,第j列对应的词以及第i行对应的词均为所述语料库文本分词后产生的词,i以及j均为正整数;
根据所述相邻词之间的转移概率,利用bigram模型计算所述候选纠错文本出现的概率。
21.根据权利要求20所述的文本纠错方法,其特征在于,在所述利用基于所述语料库文本统计出的词的共现频率矩阵确定所述词序列中相邻词之间的转移概率之前,所述方法还包括:
对所述语料库文本进行分词;
根据所述语料库文本的分词结果统计获得词的共现频次矩阵,其中,所述词的共现频次矩阵的第i行第j列的元素表示在所述语料库文本中,第i行对应的词在第j列对应的词之后出现的频次,第j列对应的词以及第i行对应的词均为所述语料库文本分词后产生的词;
根据所述词的共现频次矩阵计算所述词的共现频率矩阵,其中,所述词的共现频率矩阵的第i行第j列的元素为所述词的共现频次矩阵的第i行第j列的元素与第j列的元素之和的比值。
22.根据权利要求21所述的文本纠错方法,其特征在于,在所述根据所述词的共现频次矩阵计算所述词的共现频率矩阵之前,所述方法还包括:
对所述词的共现频次矩阵进行拉普拉斯平滑处理。
23.一种文本纠错装置,其特征在于,包括:
候选词组确定模块,用于确定可用于替换待纠错文本中的疑似错字的候选词组的集合;
候选纠错文本生成模块,用于分别利用所述候选词组的集合中的每个候选词组替换所述待纠错文本中的所述疑似错字,获得与每个候选词组对应的候选纠错文本;
候选纠错文本选择模块,用于每个候选纠错文本的合理程度,将合理程度最高的候选纠错文本确定为对所述疑似错字进行纠错后的文本。
24.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行权利要求1-22中任一项所述的方法的步骤。
25.一种电子设备,其特征在于,包括处理器、存储器以及总线,所述处理器和所述存储器通过所述总线完成相互间的通信,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行权利要求1-22中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811215941.1A CN111079412B (zh) | 2018-10-18 | 2018-10-18 | 文本纠错方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811215941.1A CN111079412B (zh) | 2018-10-18 | 2018-10-18 | 文本纠错方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111079412A true CN111079412A (zh) | 2020-04-28 |
CN111079412B CN111079412B (zh) | 2024-01-23 |
Family
ID=70309174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811215941.1A Active CN111079412B (zh) | 2018-10-18 | 2018-10-18 | 文本纠错方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111079412B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111553143A (zh) * | 2020-04-30 | 2020-08-18 | 河北省讯飞人工智能研究院 | 文本纠错方法、相关设备及可读存储介质 |
CN111639566A (zh) * | 2020-05-19 | 2020-09-08 | 浙江大华技术股份有限公司 | 一种提取表单信息的方法及装置 |
CN112000767A (zh) * | 2020-07-31 | 2020-11-27 | 深思考人工智能科技(上海)有限公司 | 一种基于文本的信息抽取方法和电子设备 |
CN112016304A (zh) * | 2020-09-03 | 2020-12-01 | 平安科技(深圳)有限公司 | 文本纠错方法、装置、电子设备及存储介质 |
CN112507104A (zh) * | 2020-12-18 | 2021-03-16 | 北京百度网讯科技有限公司 | 对话系统获取方法、装置、存储介质及计算机程序产品 |
CN112528663A (zh) * | 2020-12-18 | 2021-03-19 | 中国南方电网有限责任公司 | 一种电网领域调度场景下的文本纠错方法及系统 |
CN112560493A (zh) * | 2020-12-17 | 2021-03-26 | 金蝶软件(中国)有限公司 | 命名实体纠错方法、装置、计算机设备和存储介质 |
CN112580324A (zh) * | 2020-12-24 | 2021-03-30 | 北京百度网讯科技有限公司 | 文本纠错方法、装置、电子设备以及存储介质 |
CN112800752A (zh) * | 2020-12-31 | 2021-05-14 | 科大讯飞股份有限公司 | 纠错方法、装置、设备以及存储介质 |
CN112836497A (zh) * | 2021-01-29 | 2021-05-25 | 上海寻梦信息技术有限公司 | 地址纠正方法、装置、电子设备及存储介质 |
CN113033185A (zh) * | 2021-05-28 | 2021-06-25 | 中国电子技术标准化研究院 | 标准文本纠错方法、装置、电子设备和存储介质 |
CN113536776A (zh) * | 2021-06-22 | 2021-10-22 | 深圳价值在线信息科技股份有限公司 | 混淆语句的生成方法、终端设备及计算机可读存储介质 |
WO2021258853A1 (zh) * | 2020-06-24 | 2021-12-30 | 平安科技(深圳)有限公司 | 词汇纠错方法、装置、计算机设备及存储介质 |
CN113919327A (zh) * | 2020-07-07 | 2022-01-11 | 阿里巴巴集团控股有限公司 | 文本纠错方法、设备以及计算机可读介质 |
CN115659958A (zh) * | 2022-12-27 | 2023-01-31 | 中南大学 | 一种中文拼写错误检查方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140104175A1 (en) * | 2012-10-16 | 2014-04-17 | Google Inc. | Feature-based autocorrection |
CN106598939A (zh) * | 2016-10-21 | 2017-04-26 | 北京三快在线科技有限公司 | 一种文本纠错方法及装置、服务器、存储介质 |
CN107122346A (zh) * | 2016-12-28 | 2017-09-01 | 平安科技(深圳)有限公司 | 一种输入语句的纠错方法及装置 |
-
2018
- 2018-10-18 CN CN201811215941.1A patent/CN111079412B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140104175A1 (en) * | 2012-10-16 | 2014-04-17 | Google Inc. | Feature-based autocorrection |
CN106598939A (zh) * | 2016-10-21 | 2017-04-26 | 北京三快在线科技有限公司 | 一种文本纠错方法及装置、服务器、存储介质 |
CN107122346A (zh) * | 2016-12-28 | 2017-09-01 | 平安科技(深圳)有限公司 | 一种输入语句的纠错方法及装置 |
Non-Patent Citations (1)
Title |
---|
TANGOWL: "中文(语音结果)的文本纠错综述Chinese Spelling Check", pages 1 - 4, Retrieved from the Internet <URL:https://blog.csdn.net/lipengcn/article/details/82556569> * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111553143A (zh) * | 2020-04-30 | 2020-08-18 | 河北省讯飞人工智能研究院 | 文本纠错方法、相关设备及可读存储介质 |
CN111639566A (zh) * | 2020-05-19 | 2020-09-08 | 浙江大华技术股份有限公司 | 一种提取表单信息的方法及装置 |
WO2021258853A1 (zh) * | 2020-06-24 | 2021-12-30 | 平安科技(深圳)有限公司 | 词汇纠错方法、装置、计算机设备及存储介质 |
CN113919327A (zh) * | 2020-07-07 | 2022-01-11 | 阿里巴巴集团控股有限公司 | 文本纠错方法、设备以及计算机可读介质 |
CN112000767A (zh) * | 2020-07-31 | 2020-11-27 | 深思考人工智能科技(上海)有限公司 | 一种基于文本的信息抽取方法和电子设备 |
CN112016304A (zh) * | 2020-09-03 | 2020-12-01 | 平安科技(深圳)有限公司 | 文本纠错方法、装置、电子设备及存储介质 |
WO2021189803A1 (zh) * | 2020-09-03 | 2021-09-30 | 平安科技(深圳)有限公司 | 文本纠错方法、装置、电子设备及存储介质 |
CN112560493A (zh) * | 2020-12-17 | 2021-03-26 | 金蝶软件(中国)有限公司 | 命名实体纠错方法、装置、计算机设备和存储介质 |
CN112560493B (zh) * | 2020-12-17 | 2024-04-30 | 金蝶软件(中国)有限公司 | 命名实体纠错方法、装置、计算机设备和存储介质 |
CN112507104A (zh) * | 2020-12-18 | 2021-03-16 | 北京百度网讯科技有限公司 | 对话系统获取方法、装置、存储介质及计算机程序产品 |
CN112528663A (zh) * | 2020-12-18 | 2021-03-19 | 中国南方电网有限责任公司 | 一种电网领域调度场景下的文本纠错方法及系统 |
CN112528663B (zh) * | 2020-12-18 | 2024-02-20 | 中国南方电网有限责任公司 | 一种电网领域调度场景下的文本纠错方法及系统 |
CN112580324A (zh) * | 2020-12-24 | 2021-03-30 | 北京百度网讯科技有限公司 | 文本纠错方法、装置、电子设备以及存储介质 |
CN112580324B (zh) * | 2020-12-24 | 2023-07-25 | 北京百度网讯科技有限公司 | 文本纠错方法、装置、电子设备以及存储介质 |
CN112800752A (zh) * | 2020-12-31 | 2021-05-14 | 科大讯飞股份有限公司 | 纠错方法、装置、设备以及存储介质 |
CN112800752B (zh) * | 2020-12-31 | 2023-12-01 | 科大讯飞股份有限公司 | 纠错方法、装置、设备以及存储介质 |
CN112836497A (zh) * | 2021-01-29 | 2021-05-25 | 上海寻梦信息技术有限公司 | 地址纠正方法、装置、电子设备及存储介质 |
CN113033185A (zh) * | 2021-05-28 | 2021-06-25 | 中国电子技术标准化研究院 | 标准文本纠错方法、装置、电子设备和存储介质 |
CN113536776A (zh) * | 2021-06-22 | 2021-10-22 | 深圳价值在线信息科技股份有限公司 | 混淆语句的生成方法、终端设备及计算机可读存储介质 |
CN115659958A (zh) * | 2022-12-27 | 2023-01-31 | 中南大学 | 一种中文拼写错误检查方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111079412B (zh) | 2024-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111079412A (zh) | 文本纠错方法及装置 | |
CN109960724B (zh) | 一种基于tf-idf的文本摘要方法 | |
WO2019184217A1 (zh) | 热点事件分类方法、装置及存储介质 | |
CN107391486B (zh) | 一种基于统计信息和序列标注的领域新词识别方法 | |
CN110222182B (zh) | 一种语句分类方法及相关设备 | |
US8380488B1 (en) | Identifying a property of a document | |
CN108108426B (zh) | 自然语言提问的理解方法、装置及电子设备 | |
JP5379138B2 (ja) | 領域辞書の作成 | |
EP3591539A1 (en) | Parsing unstructured information for conversion into structured data | |
Layton et al. | Recentred local profiles for authorship attribution | |
CN110083832B (zh) | 文章转载关系的识别方法、装置、设备及可读存储介质 | |
TWI567569B (zh) | Natural language processing systems, natural language processing methods, and natural language processing programs | |
CN111274785A (zh) | 一种文本纠错方法、装置、设备及介质 | |
CN109086274B (zh) | 基于约束模型的英文社交媒体短文本时间表达式识别方法 | |
CN110837730A (zh) | 一种未知实体词汇的确定方法及装置 | |
CN106815593B (zh) | 中文文本相似度的确定方法和装置 | |
CN108511036A (zh) | 一种中文症状标注的方法及系统 | |
JP2011008784A (ja) | ローマ字変換を用いる日本語自動推薦システムおよび方法 | |
US20210174017A1 (en) | Method and device for verifying the author of a short message | |
CN115994544A (zh) | 平行语料筛选方法、平行语料筛选设备和可读存储介质 | |
CN114416977A (zh) | 文本难度分级评估方法及装置、设备和存储介质 | |
CN115169328A (zh) | 一种高准确性的中文拼写检查方法、系统及介质 | |
CN112183117B (zh) | 一种翻译评价的方法、装置、存储介质及电子设备 | |
CN108154382B (zh) | 评价装置、评价方法及存储介质 | |
CN113326365A (zh) | 回复语句生成方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |