一种基于拼音特征表征的中文纠错方法及系统与流程

文档序号:25483133发布日期:2021-06-15 21:43阅读:200来源:国知局
一种基于拼音特征表征的中文纠错方法及系统与流程

本发明涉及数据处理领域,尤其涉及一种基于拼音特征表征的中文纠错方法及系统。



背景技术:

中文汉字纠错一直是国内自然语言处理研究领域的热点。由于深度学习可以使得模型自动学习有效的语言知识,所以近年来在这个问题上,新提出的基于深度学习的方法总体上超过了基于传统机器学习的方法。现阶段,基于bert(即bidirectionalencoderrepresentationsfromtransformer)模型的方法在效果上达到了一个新的高度,该方法的优势在于其预训练阶段可以使语言模型学习到非常有效的语言知识。

将一个句子视作汉字字符序列,那么利用语言知识来纠正某个错别字其实就是建立句子中该错别字之外的其余字符序列与该错别字对应的正确汉字之间的映射关系。错别字之外的其余字符序列可以称为句子上下文信息,与该错别字对应的正确汉字可以称为预测目标。bert模型的“遮掩语言模型”机制就是利用句子上下文来对每个位置的汉字进行预测,如果预测结果和输入不一样,则该位置的汉字被视作错别字。但通过bert模型进行预测时,每次只能遮住15%的汉字,然后仅对这15%的汉字进行预测,所以每个句子至少需要预测7次才能输出整个预测结果,导致学习和预测效率较低。

对此,目前通过引入额外的特征加强bert模型的预测效果,如soft-maskedbert、spellgcn等。其中,soft-maskedbert通过添加detectionnetwork来给bert模型添加错别字位置信息,spellgcn则通过图嵌入给bert模型添加与输入汉字近音、近形、近义等汉字的信息。在实践当中,这些改进的模型都达到了比较好预测、纠错效果。

由于智能拼音输入法的普及,对于中文纠错而言,句子中的大部分错别字都和该错别字的拼音具有较强的关联性。但上述各种模型多注重汉字语义的增强或加工,均未关注正确汉字与错别字在拼音输入上的联系,因此,在针对和拼音强关联的错别字纠错问题上,上述模型仍然存在预测准确度不高的问题。



技术实现要素:

为解决上述技术问题,本发明提出了一种基于拼音特征表征的中文纠错方法及系统,其通过正确汉字和错别字之间以拼音作为媒介的映射关系来获得拼音模糊集,并基于混合注意力模块建立训练模型,以此提高错别字的学习效率和预测的准确度。

为实现上述目的,本发明提供如下技术方案:

一方面,提供了一种基于拼音特征表征的中文纠错方法,其包括如下步骤:

s1、构建汉字的拼音模糊集以及构造含有汉字错别字的中文语句训练样本;

s2、利用上述训练样本进行模型训练;

以及s3、提取目标中文语句中汉字的汉字字符嵌入序列和拼音字符嵌入序列,并输入到训练模型中,以得到目标中文语句中每个位置的汉字预测结果,最终获得纠错后的中文语句。

优选的,步骤s1中,每个汉字拼音对应的模糊集包括:该拼音声母对应的模糊声母与该拼音韵母对应的模糊韵母组合成的所有拼音;和/或,与该拼音发音相似,并且编辑距离小于2的拼音。

优选的,步骤s1中,含有汉字错别字的中文语句语料包含两种输入序列:汉字字符嵌入序列和拼音字符嵌入序列。

优选的,步骤s1中,构造含有汉字错别字的中文语句训练样本具体包括如下步骤:

s11、抽取一正确中文语句中的若干汉字及其对应的拼音;

s12、从抽取汉字拼音对应的拼音模糊集中依概率挑选出模糊拼音,然后从该模糊拼音

对应的汉字中依概率挑选出一个汉字,用于替换被抽取的汉字,以获得含有汉字错别字的中文语句;

s13、抽取含有错别字的中文语句中每个汉字的拼音,并将每个拼音均拆解成声母和韵母,所述含有汉字错别字的中文语句以及与其对应的每个汉字拼音的声母和韵母即构成一个该正确的中文语句的训练样本;

s14、重复步骤s11-s13,以获得与该正确的中文语句对应的若干训练样本,且若干训练样本中,该正确的中文语句中每个汉字都有对应的错别字。

优选的,步骤s2具体包括如下步骤:

s21、将上述含有汉字错别字的训练样本的汉字字符嵌入序列和拼音字符嵌入序列分别输入多头注意力模块,再分别根据公式(1)-(2)对应输出训练样本中含有汉字错别字的中文语句的汉字字符嵌入的隐状态序列矩阵z1和拼音字符嵌入的隐状态序列矩阵z2;

其中,wqwkwv分别为三个可学习的参数矩阵;qkv为三个矩阵,且公式(1)中,c+p=k=v,q=p,公式(2)中s+y+p=k=vq=p;dkk矩阵的列维数;

s22、根据公式(3)输出含有汉字错别字的中文语句的汉字隐状态序列矩阵z,所述隐状态序列矩阵z中的每一个行向量均与含有汉字错别字的中文语句中的一个位置的汉字的隐状态对应,该位置的汉字的隐状态含有该位置汉字的汉字上下文信息和拼音上下文信息;所述汉字上下文信息为该含有汉字错别字的中文语句中,除该位置汉字之外的其余汉字的汉字字符嵌入信息;所述拼音上下文信息为该含有汉字错别字的中文语句中,除该位置汉字之外的其余汉字的拼音字符嵌入信息;

其中,w为可学习的参数;

s23、将隐状态序列矩阵z导入深度学习模块,并输出结果,且将该输出结果作为新的qkv均保持不变;

s24、重复步骤s21-s23若干次,输出最终的隐状态序列矩阵;

s25、将最终的隐状态序列矩阵的每一行向量分别输入softmax函数,以计算出含有汉字错别字的中文语句中对应位置出现正确汉字的概率;

s26、将每个位置出现正确汉字的概率与正确中文语句中该位置汉字的one-hot输入向量做交叉熵,得出如公式(4)所示的损失函数j:

其中,b为批大小,nb是含有汉字错别字的训练样本的汉字字符序列长度,p为每个位置出现正确汉字的概率;

s27、计算出上述损失函数j后,对步骤s21-s26中所有可训练参数进行训练,直至模型收敛。

优选的,步骤s21中,输出该汉字的汉字字符嵌入序列的隐状态序列z1时,该汉字所处位置的注意力设为0,以将其进行遮掩。

优选的,步骤s21中,在输出拼音字符嵌入序列的隐状态序列z2时,无需遮掩任何位置的注意力。

优选的,步骤s23中,所述深度学习模块包括add&norm模块或全连接神经网络模块。

优选的,步骤s27中,采用随机梯度下降法对参数进行训练。

还提供一种用于实现上述中文纠错方法的中文纠错系统,其包括:

拼音模糊集构建单元,其用于存储每个汉字拼音对应的模糊集;

训练样本构造单元,其用于获得与正确的中文语句对应的若干训练样本,且若干训练样本中,该正确的中文语句中每个汉字都有对应的错别字;

样本训练单元,其存储有训练模型,用于对上述训练样本进行样本训练;

以及语句预测单元,其连接所述样本训练单元,其用于提取目标中文语句中汉字的汉字字符嵌入序列和拼音字符嵌入序列,并输入到所述训练模型中,以得到目标中文语句中每个位置的汉字预测结果,最终获得纠错后的中文语句。

本发明通过正确汉字和错别字之间以拼音作为媒介的映射关系来获得拼音模糊集,并基于混合注意力模块建立训练模型,减弱了汉字语义在上下文信息中的占比,增强了拼音特征在上下文信息中的占比,通过“弱汉字”+“强拼音”的机制凸显拼音特征在模型预测值的重要作用,以弥补常规预测模型中汉字语义表达能力不足的缺陷,以此提高汉字纠错的准确度和效率。

附图说明

图1为本发明中基于拼音特征表征的中文纠错方法的流程图;

图2为本发明中中文语句语料对应两种输入序列的结构示意图;

图3为本发明中中文纠错系统的结构示意图。

具体实施方式

为便于理解,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1:

本实施例提供了一种基于拼音特征表征的中文纠错方法,其包括如下步骤:

s1、构建汉字的拼音模糊集以及构造含有汉字错别字的中文语句训练样本;

其中,每个汉字拼音对应的模糊集包括:该拼音声母(initial)对应的模糊声母与该拼音韵母(final)对应的模糊韵母组合成的所有拼音;和/或,与该拼音发音相似,并且编辑距离小于2的拼音;其中,所述“模糊”是指由于前鼻音和后鼻音区分不清,和/或,平舌音和翘舌音区分不清,和/或,浊音和清音区分不清,和/或,边音和鼻音区分不清而造成的混淆;例如,“caichaica”、“banbangba”、“changchancancang”、“langnanglannanrang”等。

汉字的拼音具有一定规律,经过总结,每个汉字的拼音均可以拆成声母和韵母,且所有汉字的声母和韵母种类如表1所示。

表1汉字拼音声母、韵母种类

在此基础上,与拼音输入有关的汉字错别字类型也是有规律可循的,其具体类别如表2所示。

表2与拼音输入有关的汉字错别字类型

从上述表1-2可以看出,正确汉字与其错别字在拼音上有映射关联。通常情况下,这种关联主要和拼音输入法的使用者对某些拼音的混淆和误敲键盘有关;其中,对于拼音的混淆包括使用者对于某些汉字的前鼻音和后鼻音、平舌音和翘舌音、浊音和清音、边音和鼻音区分不清;对于键盘的误敲则包括多敲/少敲了一个拼音字母,如ang敲成an,shun敲成shu等,导致拼音的编辑距离发生变化;

由此,通过构建汉字拼音的模糊集可以将正确汉字与其对应错别字进行关联。

同时,如图2所示,每一含有汉字错别字的中文语句语料都包含两种输入序列:汉字字符嵌入序列(c)和拼音字符嵌入序列(s)和(y),其中s为声母对应嵌入,y为韵母对应嵌入,p作为位置嵌入记录该语句中每个汉字的位置信息;例如,“公司监视会成员和懂事会成员”中,每个汉字都对应包含汉字字符嵌入序列(c1、c2...c13)和拼音字符嵌入序列(s1、s2...s13)和(y1、y2...y13),p1、p2...p13记录该语句中每个汉字的位置信息,以将每个汉字的拼音字符与汉字字符进行对应。

进一步的,构造含有汉字错别字的中文语句训练样本具体包括如下步骤:

s11、抽取一正确中文语句中的若干汉字及其对应的拼音,其中,所抽取的汉字在整个中文语句中的比例可以为10-20%,优选15%;

s12、从抽取汉字拼音对应的拼音模糊集中依概率挑选出模糊拼音,然后从该模糊拼音对应的汉字中依概率挑选出一个汉字,用于替换被抽取的汉字,以获得含有汉字错别字的中文语句;

以“公司监事会成员和董事会成员”为例,分别抽取“监事会”中的“事”和“董”对应的拼音,分别为shi和dong,再从shi对应的拼音模糊集“shisi”和dong对应的拼音模糊集“dong”中对应挑选出模糊拼音“shi”和“dong”,再从与“shi”对应的汉字,如“施食十誓视...”中挑选出“视”,以替换“事”,以及从与“dong”对应的汉字,如“栋东洞懂...”中挑选出“懂”,以替换“董”,最终获得含有错别字的中文语句“公司监视会成员和懂事会成员”;

其中,“依概率”中的概率值可根据该拼音、汉字在语料中出现的频次而定,出现频次较强,则概率值越大,反之亦然,由于现在几乎都用基于拼音的输入法,该输入法排在前面的候选集频次均较强,如采用拼音输入法输入shi时,其靠前的候选集中可选的汉字有“是事时室市...”,从中选取对应的汉字来构建含有错别字的语句有利于增强训练效果;

s13、抽取含有错别字的中文语句中每个汉字的拼音,并将每个拼音均拆解成声母和韵母,所述含有汉字错别字的中文语句以及与其对应的每个汉字拼音的声母和韵母即构成一个该正确中文语句的训练样本;如“公司监视会成员和懂事会成员”中,每个汉字拼音对应的声母和韵母分别为:“gsjshhchyhdshhchy”和“ongiianiuienguaneongiuienguan”,“公司监视会成员和懂事会成员”以及与其对应的声母、韵母集合构成一训练样本;

s14、重复步骤s11-s13,以获得与该正确中文语句对应的若干训练样本,且若干训练样本中,该正确中文语句中每个汉字都有对应的错别字,如“公司监视会成员和懂事会成员”、“供司监事会成员和懂事会成员”、“公式监事会成员和董事惠成员”等等。

s2、利用上述训练样本进行模型训练,其具体包括如下步骤:

s21、将上述含有汉字错别字的训练样本的汉字字符嵌入序列(c)(与该汉字位置对应)和拼音字符嵌入序列(s)和(y)(分别与该汉字拼音的声母位置、韵母位置对应)分别输入transformer模型的多头注意力模块,再分别根据公式(1)-(2)对应输出训练样本中含有汉字错别字的中文语句的汉字字符嵌入的隐状态序列矩阵z1和拼音字符嵌入的隐序列矩阵z2;

其中,wqwkwv分别为三个可学习的参数矩阵;qkv为三个矩阵,等于输入的汉字字符嵌入序列和/或拼音字符嵌入序列(s)和(y),具体的:公式(1)中,c+p=k=v,q=p,公式(2)中s+y+p=k=vq=p;dkk矩阵的列维数,在本实施例中,dk=768/12,其中12为多头注意力模块中“头”的个数,由此,可对矩阵q、k、v作线性变换,以将三个矩阵纳入同一线性空间,同时提取有效信息,便于后续运算;

进一步的,在输出该汉字的汉字字符嵌入序列的隐状态序列z1时,该汉字所处位置的注意力设为0,以将其进行遮掩,由此,其既可以防止标签泄露,又可以去掉错别字的错误信息对上下文信息的错误引导;而在输出拼音字符嵌入序列的隐状态序列z2时,则无需遮掩任何位置的注意力,其原因在于错别字的拼音和正确汉字的拼音往往具有某种关联(处于同一个拼音模糊集当中),即所有拼音对于预测都具有正向的作用,其能够丰富上下文信息,取到缩小预测范围的作用;

s22、根据公式(3)输出含有汉字错别字的中文语句的汉字隐状态序列矩阵z,所述隐状态序列矩阵z中的每一个行向量均与含有汉字错别字的中文语句中的一个位置的汉字的隐状态对应,如“公司监视会成员和懂事会成员”中,第一行向量与“公”的隐状态对应,第二行向量与“司”的隐状态对应...,该位置的汉字的隐状态含有该位置汉字的汉字上下文信息和拼音上下文信息;所述汉字上下文信息为该含有汉字错别字的中文语句中,除该位置汉字之外的其余汉字的汉字字符嵌入信息;所述拼音上下文信息为该含有汉字错别字的中文语句中,除该位置汉字之外的其余汉字的拼音字符嵌入信息;

其中,w为可学习的参数,可根据实际情况确定;

s23、将隐状态序列z导入深度学习模块,如add&norm模块、全连接神经网络模块等,以进行深度学习,并输出结果,且将该输出结果作为新的向量qkv均保持不变;

s24、重复步骤s21-s23若干次,如12次,输出最终的隐状态序列矩阵;

s25、将最终的隐状态序列矩阵的每一行向量分别输入softmax函数,以计算出含有汉字错别字的中文语句中对应位置出现正确汉字的概率,此处所述对应位置为最终的隐状态序列矩阵行向量所在的行数;

s26、将每个位置出现对应正确汉字的概率与正确中文语句中该位置汉字的one-hot输入向量做交叉熵,得出如公式(4)所示的损失函数j:

其中,b为批大小(batchsize),nb是含有汉字错别字的训练样本的汉字字符嵌入序

列长度,p为每个位置出现正确汉字的概率;

s27、计算出上述损失函数j后,重复步骤s21-s26,以利用反向传播方法等对步骤s21-s26中所有可训练参数进行训练,直至模型进行收敛,其中,所述可训练参数包括:wqwkwvdkqkv、深度学习模块中的可学习参数等,训练方式可以采用随机梯度下降法等,所述模型包括步骤s21-s26中所涉及的算法全过程;

以及s3、待训练模型收敛后,则提取目标中文语句中汉字的汉字字符嵌入序列(c)和拼音字符嵌入序列(s)和(y),并输入到训练模型中,以得到目标中文语句中每个位置的汉字预测结果,最终获得纠错后的中文语句。

由此,本实施例通过正确汉字和错别字之间以拼音作为媒介的映射关系来获得拼音模糊集,并基于混合注意力模块建立训练模型,由此减弱汉字语义在上下文信息中的占比,增强拼音特征在上下文信息中的占比,通过“弱汉字”+“强拼音”的机制凸显拼音特征在模型预测值的重要作用,以弥补常规预测模型中汉字语义表达能力不足的缺陷,以此提高汉字纠错的准确度和效率。

实施例2:

本实施例提供了一种用于实现上述实施例1所述中文纠错方法的中文纠错系统,如图3所示,其包括:

拼音模糊集构建单元1,其用于存储每个汉字拼音对应的模糊集;

训练样本构造单元2,其用于获得与正确的中文语句对应的若干训练语料,且若干训练语料中,该正确的中文语句中每个汉字都有对应的错别字;具体的,所述训练样本构造单元2获取训练样本的方法参见实施例1的步骤s11-s14;

样本训练单元3,其存储有训练模型,用于对上述训练样本进行样本训练;具体的,所述样本训练单元3对上述训练语料进行样本训练的方法参见实施例1的步骤s2;

以及语句预测单元4,其连接所述样本训练单元3,其用于提取目标中文语句中汉字的汉字字符嵌入序列和拼音字符嵌入序列,并输入到所述训练模型中,以得到目标中文语句中每个位置的汉字预测结果,最终获得纠错后的中文语句。

综上所述,本发明本发明通过正确汉字和错别字之间以拼音作为媒介的映射关系来获得拼音模糊集,并基于混合注意力模块建立训练模型,减弱了汉字语义在上下文信息中的占比,增强了拼音特征在上下文信息中的占比,通过“弱汉字”+“强拼音”的机制凸显拼音特征在模型预测值的重要作用,以弥补常规预测模型中汉字语义表达能力不足的缺陷,以此提高汉字纠错的准确度和效率。

上述实施例1-2的技术特征可进行任意组合,且组合而成的技术方案均属于本发明的保护范围。且对于本领域技术人员而言,显然本发明实施例不限于上述示范性实施例的细节,而且在不背离本发明实施例的精神或基本特征的情况下,能够以其他的具体形式实现本发明实施例。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明实施例的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明实施例内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统、装置或终端权利要求中陈述的多个单元、模块或装置也可以由同一个单元、模块或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

最后应说明的是,以上实施方式仅用以说明本发明实施例的技术方案而非限制,尽管参照以上较佳实施方式对本发明实施例进行了详细说明,本领域的普通技术人员应当理解,可以对本发明实施例的技术方案进行修改或等同替换都不应脱离本发明实施例的技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1