一种错别字检测方法、装置及设备与流程

文档序号:23993595发布日期:2021-02-20 14:38阅读:92来源:国知局
一种错别字检测方法、装置及设备与流程

[0001]
本申请涉及数据处理领域,具体涉及一种错别字检测方法、装置及设备。


背景技术:

[0002]
在文本生成的过程中,可能存在着由于撰写错误所导致的错别字。错别字是在特定语境中或者是特定词汇中使用错误的字符,错别字具有对应的正确的字符。在对文本进行处理的过程中,为了从文本中获取较为准确的信息,需要确保文本的正确性。错别字会影响到文本的结构以及文本所表示的信息,在文本处理之前需要对文本中的错别字进行检测,以便对文本中的错别字进行修正。
[0003]
目前,在通过神经网络模型对错别字进行检测的方法中,错别字检测的准确性较低。


技术实现要素:

[0004]
有鉴于此,本申请实施例提供一种错别字检测方法、装置及设备,能够提高错别字检测的准确性。
[0005]
为解决上述问题,本申请实施例提供的技术方案如下:
[0006]
一种错别字检测方法,所述方法包括:
[0007]
获取待检测分句;
[0008]
将所述待检测分句输入错别字检测模型,得到所述错别字检测模型输出的各个原始字符对应的预测字符;所述错别字检测模型用于利用正向排序的所述待检测分句中第1个到第m个原始字符得到所述第m个原始字符对应的第一预测结果,利用反向排序的所述待检测分句中第n个到第m个原始字符得到所述第m个原始字符对应的第二预测结果,根据所述第m个原始字符对应的第一预测结果以及第二预测结果得到所述待检测分句中第m个原始字符对应的预测字符;其中,n为所述待检测分句的字符数量,m的取值分别为1到n的整数;
[0009]
将所述待检测分句中与对应的预测字符不一致的原始字符确定为错别字。
[0010]
在一种可能的实现方式中,所述错别字检测模型具体用于:
[0011]
提取所述待检测分句中各个原始字符的字特征;
[0012]
利用正向排序的所述待检测分句中第1个到第m个原始字符的字特征,得到所述第m个原始字符对应的各个预测标签的第一概率值;
[0013]
利用反向排序的所述待检测分句中第n个到第m个原始字符的字特征,得到所述第m个原始字符对应的各个预测标签的第二概率值;
[0014]
将所述第m个原始字符对应的各个预测标签的第一概率值以及第二概率值进行融合,得到所述第m个原始字符对应的各个预测标签的第一总概率值;
[0015]
将所述第一总概率值最大的预测标签确定为所述待检测分句中第m个原始字符对应的预测字符。
[0016]
在一种可能的实现方式中,所述错别字检测模型具体用于:
[0017]
提取所述待检测分句中各个原始字符的字特征;
[0018]
利用正向排序的所述待检测分句中第1个到第m个原始字符的字特征,得到所述第m个原始字符对应的各个预测标签的第一概率值;
[0019]
将所述第m个原始字符对应的各个预测标签的第一概率值乘以所述第m个原始字符对应的第一正向置信度得到所述第m个原始字符对应的各个预测标签的第三概率值;所述第一正向置信度取值为m/n;
[0020]
利用反向排序的所述待检测分句中第n个到第m个原始字符的字特征,得到所述第m个原始字符对应的各个预测标签的第二概率值;
[0021]
将所述第m个原始字符对应的各个预测标签的第二概率值乘以所述第m个原始字符对应的第一反向置信度得到所述第m个原始字符对应的各个预测标签的第四概率值;所述第一反向置信度取值为(n-m+1)/n;
[0022]
将所述第m个原始字符对应的各个预测标签的第三概率值以及第四概率值进行融合,得到所述第m个原始字符对应的各个预测标签的第二总概率值;
[0023]
将所述第二总概率值最大的预测标签确定为所述待检测分句中第m个原始字符对应的预测字符。
[0024]
在一种可能的实现方式中,所述错别字检测模型的训练过程包括:
[0025]
获取训练分句,其中,正向排序的所述训练分句中第1个到第i个字符对应的标签为所述第i个字符,反向排序的所述训练分句中第k个到第i个字符对应的标签为所述第i个字符;k为所述训练分句的字符数量,i的取值分别为1到k的整数;
[0026]
将所述训练分句输入待训练错别字检测模型,以使所述待训练错别字检测模型利用正向排序的所述训练分句中第1个到第i个字符的字特征以及所述训练分句中第1个到第i个字符对应的标签,得到所述第i个字符对应的第一损失值,将所述训练分句中第1个到第k个字符的第一损失值相加得到正向损失值;利用反向排序的所述训练分句中第k个到第i个字符的字特征以及所述训练分句中第k个到第i个字符对应的标签,得到所述第i个字符对应的第二损失值,将所述训练分句中第1个到第k个字符的第二损失值相加得到反向损失值,将所述正向损失值以及所述反向损失值相加得到第一总损失值;
[0027]
根据所述第一总损失值对所述待训练错别字检测模型进行调整,返回执行所述获取训练分句以及后续步骤,直到达到预设条件生成错别字检测模型。
[0028]
在一种可能的实现方式中,所述错别字检测模型的训练过程包括:
[0029]
获取训练分句,其中,正向排序的所述训练分句中第1个到第i个字符对应的标签为所述第i个字符,反向排序的所述训练分句中第k个到第i个字符对应的标签为所述第i个字符;k为所述训练分句的字符数量,i的取值分别为1到k的整数;
[0030]
将所述训练分句输入待训练错别字检测模型,以使所述待训练错别字检测模型利用正向排序的所述训练分句中第1个到第i个字符的字特征以及所述训练分句中第1个到第i个字符对应的标签,得到所述第i个字符对应的第一损失值,将所述第i个字符对应的第一损失值乘以所述第i个字符对应的第二正向置信度得到所述第i个原始字符对应的第三损失值,将所述训练分句中第1个到第k个字符的第三损失值相加得到正向损失值;利用反向排序的所述训练分句中第k个到第i个字符的字特征以及所述训练分句中第k个到第i个字
符对应的标签,得到所述第i个字符对应的第二损失值,将所述第i个字符对应的第二损失值乘以所述第i个字符对应的第二反向置信度得到所述第i个原始字符对应的第四损失值,将所述训练分句中第1个到第k个字符的第四损失值相加得到反向损失值,将所述正向损失值以及所述反向损失值相加得到第二总损失值;所述第二正向置信度取值为i/k;所述第二反向置信度取值为(k-i+1)/k;
[0031]
根据所述第二总损失值对所述待训练错别字检测模型进行调整,返回执行所述获取训练分句以及后续步骤,直到达到预设条件生成错别字检测模型。
[0032]
在一种可能的实现方式中,所述方法还包括:
[0033]
对所述待检测分句进行实体识别,识别所述待检测分句包括的特定术语;
[0034]
将所述待检测分句中的特定术语替换为第一预设字符。
[0035]
在一种可能的实现方式中,所述方法还包括:
[0036]
利用正则表达式对所述待检测分句中的特定字符进行识别;
[0037]
将所述待检测分句中的特定字符替换为第二预设字符。
[0038]
一种错别字检测装置,所述装置包括:
[0039]
获取单元,用于获取待检测分句;
[0040]
预测单元,用于将所述待检测分句输入错别字检测模型,得到所述错别字检测模型输出的各个原始字符对应的预测字符;所述错别字检测模型用于利用正向排序的所述待检测分句中第1个到第m个原始字符得到所述第m个原始字符对应的第一预测结果,利用反向排序的所述待检测分句中第n个到第m个原始字符得到所述第m个原始字符对应的第二预测结果,根据所述第m个原始字符对应的第一预测结果以及第二预测结果得到所述待检测分句中第m个原始字符对应的预测字符;其中,n为所述待检测分句的字符数量,m的取值分别为1到n的整数;
[0041]
确定单元,用于将所述待检测分句中与对应的预测字符不一致的原始字符确定为错别字。
[0042]
一种错别字检测设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述的错别字检测方法。
[0043]
一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行上述的错别字检测方法。
[0044]
由此可见,本申请实施例具有如下有益效果:
[0045]
本申请实施例提供的错别字检测方法,先获取待检测分句,将待检测分句输入到错别字检测模型中,得到错别字检测模型输出的待检测分句中各个原始字符对应的预测字符,将待检测分句中与预测字符不一致的原始字符确定为错别字。其中,错别字检测模型是用于利用正向排序的待检测分句中的第1个到第m个原始字符得到第m个原始字符对应的第一预测结果,利用反向排序的待检测分句中第n个到第m个原始字符得到第m个原始字符对应的第二预测结果;根据第m个原始字符对应的第一预测结果以及第二预测结果得到待检测分句中第m个原始字符对应的预测字符;n为待检测分句的字符数量,m的取值分别为1到n的整数。通过正向排序和反向排序得到对应的预测结果,能够分别从文本正序和文本反序两个方面确定原始字符对应的预测字符。通过将得到的两种预测结果进行融合得到原始字
符对应的预测字符,能够提高原始字符对应的预测字符的准确性,进而提高错别字检测的准确性。
附图说明
[0046]
图1为本申请实施例提供的错别字修正的示意图;
[0047]
图2为本申请实施例提供的一种错别字检测方法的流程图;
[0048]
图3为本申请实施例提供的一种错别字检测模型的示意图;
[0049]
图4为本申请实施例提供的计算损失值的示意图;
[0050]
图5为本申请实施例提供的一种错别字检测的示意图;
[0051]
图6为本申请实施例提供的一种错别字检测装置的结构示意图。
具体实施方式
[0052]
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请实施例作进一步详细的说明。
[0053]
为了便于理解和解释本申请实施例提供的技术方案,下面将先对本申请的背景技术进行说明。
[0054]
发明人在对传统的错别字检测方法进行研究后发现,在传统的利用神经网络模型进行错别字检测的方法中,训练得到的错别字检测模型的准确性较低,不能准确地对文本中的错别字进行检测。以医学领域为例,在医学领域中,常常会使用病历文本进行疾病研究,而病历文本中可能存在着错别字。例如,参见图1,该图为本申请实施例提供的错别字修正的示意图。病历文本“患儿发烧且咳搜”中具有错别字“搜”,在对病历文本“患儿发烧且咳搜”进行分析之前,需要进行错别字的检测,并将错别字进行修正。而训练得到的错别字检测模型的准确度不高,在对病历文本进行检测时,不能较为准确地检测得到病历文本中的错别字,难以满足对病历文本中的错别字进行检测的需要。
[0055]
基于此,本申请实施例提供一种错别字检测方法,先获取待检测分句,将待检测分句输入到错别字检测模型中,得到错别字检测模型输出的待检测分句中各个原始字符对应的预测字符,将待检测分句中与预测字符不一致的原始字符确定为错别字。其中,错别字检测模型是用于利用正向排序的待检测分句中的第1个到第m个原始字符得到第m个原始字符对应的第一预测结果,利用反向排序的待检测分句中第n个到第m个原始字符得到第m个原始字符对应的第二预测结果;根据第m个原始字符对应的第一预测结果以及第二预测结果得到待检测分句中第m个原始字符对应的预测字符;n为待检测分句的字符数量,m的取值分别为1到n的整数。
[0056]
为了便于理解本申请,下面结合附图对本申请实施例提供的一种错别字检测方法进行说明。
[0057]
参见图2所示,该图为本申请实施例提供的一种错别字检测方法的流程图,该方法包括步骤s201-s203:
[0058]
s201:获取待检测分句。
[0059]
在进行错别字检测时,先获取需要进行错别字检测的待检测分句。
[0060]
待检测分句可以是将待检测的文本进行划分后得到的。在一种可能的实现方式
中,可以按照标点符号,比如逗号和句号,对待检测的文本进行划分。例如,将“患儿发烧且咳搜,口服止咳药7天。”按照逗号和句号进行划分得到“患儿发烧且咳搜”以及“口服止咳药7天”两个待检测分句。
[0061]
s202:将待检测分句输入错别字检测模型,得到错别字检测模型输出的各个原始字符对应的预测字符;错别字检测模型用于利用正向排序的待检测分句中第1个到第m个原始字符得到第m个原始字符对应的第一预测结果,利用反向排序的待检测分句中第n个到第m个原始字符得到第m个原始字符对应的第二预测结果,根据第m个原始字符对应的第一预测结果以及第二预测结果得到待检测分句中第m个原始字符对应的预测字符;其中,n为待检测分句的字符数量,m的取值分别为1到n的整数。
[0062]
将待检测分句输入至错别字检测模型中,错别字检测模型利用正向排序的待检测分句和反向排序的待检测分句对原始字符对应的字符进行预测。具体的,利用正向排序的待检测分句中的第1个到第m个原始字符对第m个原始字符进行预测,得到第一预测结果。利用反向排序的待检测分句中的第n个原始字符到第m个原始字符进行预测,得到第二预测结果。其中,原始字符为待检测分句中的字符,n为待检测分句中的字符数量,m为1到n的整数。以待检测分句“患儿发烧且咳搜”为例,当m为3时,针对“发”这个原始字符,利用正向排序的“患儿发”的原始字符对“发”进行预测,得到第一预测结果。利用反向排序的“搜咳且烧发”的原始字符对“发”进行预测,得到第二预测结果。
[0063]
第一预测结果和第二预测结果可以用于表示第m个原始字符可能对应的字符。在得到第一预测结果和第二预测结果之后,融合第一预测结果和第二预测结果,根据第一预测结果和第二预测结果共同确定待检测分句中第m个原始字符对应的预测字符。预测字符是错别字检测模型得到的在待检测分句中正确的字符,利用预测字符可以确定原始字符是否为错别字。
[0064]
本申请实施例还提供了两种错别字检测模型,具体请参见下文。
[0065]
s203:将待检测分句中与对应的预测字符不一致的原始字符确定为错别字。
[0066]
在得到待检测分句中的原始字符对应的预测字符之后,将原始字符与对应的预测字符进行比较,将与预测字符不一致的原始字符确定为错别字。
[0067]
以上述待检测分句为例,原始字符“搜”对应的预测字符为“嗽”,预测字符与原始字符不对应,则将原始字符“搜”确定为错别字。
[0068]
基于上述s201-s203的内容可知,本申请实施例提供的错别字检测方法中,通过错别字检测模型利用正向排序和反向排序的待检测分句对原始字符进行预测,可以利用原始字符前后的原始字符进行对原始字符的预测,根据得到的两种预测结果确定原始字符对应的预测字符,使得得到的预测字符更加准确,防止对待检测分句中部分原始字符预测的遗漏,提高了错别字检测的精确性。
[0069]
在一种可能的实现方式中,第一预测结果和第二预测结果可以是原始字符对应的预测标签的概率值。本申请实施例提供一种错别字检测模型,该错别字检测模型具体用于执行以下五个步骤:
[0070]
a1:提取待检测分句中各个原始字符的字特征。
[0071]
对待检测分句中的各个原始字符提取字特征,其中,原始字符为待检测分句中的字符,通过提取的原始字符的字特征进行预测标签的概率值的计算。
[0072]
本申请实施例中不限定提取待检测分句中的原始字符的字特征的方法,在一种可能的实现方式中,可以采用bert提取待检测分句中的原始字符的字特征。例如,参见图3,该图为本申请实施例提供的一种错别字检测模型的示意图,以待检测分句“患儿发烧且咳搜”为例,先利用bert对待检测分句中的各个原始字符进行字特征的提取,得到h1、h2、h3、h4、h5、h6和h7。
[0073]
a2:利用正向排序的待检测分句中第1个到第m个原始字符的字特征,得到第m个原始字符对应的各个预测标签的第一概率值。
[0074]
利用正向排序的待检测分句中的第1个到第m个原始字符的字特征,得到第m个原始字符对应的各个预测标签的第一概率值。其中,第m个原始字符对应的预测标签可以为第m个原始字符可能对应的字符。预测标签可以是从大量的训练分句中的标签得到的。在训练分句中,正向排序的第1个到第i个字符对应的标签,为第i个字符;反向排序的第k个到第i个字符对应的标签,为第i个字符。各个预测标签的第一概率值表示原始字符为该预测标签的概率值。
[0075]
在一种可能的实现方式中,可以将原始字符的字特征输入至对应的lstm(long short-term memory,长短期记忆网络)中得到原始字符的预测标签的概率值,其中,lstm可以分为前向lstm以及反向lstm。参见图3,以m为7为例,将第1个原始字符到第7个原始字符,也就是“患儿发烧且咳搜”对应的字特征h1至h7输入至前向lstm中,得到原始字符“搜”对应的各个预测标签的第一概率值。
[0076]
a3:利用反向排序的待检测分句中第n个到第m个原始字符的字特征,得到第m个原始字符对应的各个预测标签的第二概率值。
[0077]
利用反向排序的待检测分句中的第n个到第m个原始字符的字特征,得到第m个原始字符对应的各个预测标签的第二概率值。各个预测标签的第二概率值表示原始字符为该预测标签的概率值。
[0078]
需要说明的是,通过正向排序的原始字符的字特征得到的第m个原始字符的预测标签,可以与反向排序的原始字符的字特征得到的第m个原始字符的预测标签不同。
[0079]
类似的,可以通过反向lstm得到原始字符的预测标签的概率值,将第n个到第m个原始字符的字特征输入至反向lstm中,得到输出的第m个原始字符对应的各个预测标签的第二概率值。
[0080]
本申请实施例不限定a2和a3的执行顺序,可以同时通过正向排序的原始字符的字特征得到第一概率值,通过反向排序的原始字符的特征值得到第二概率值。
[0081]
a4:将第m个原始字符对应的各个预测标签的第一概率值以及第二概率值进行融合,得到第m个原始字符对应的各个预测标签的第一总概率值。
[0082]
将得到的第m个原始字符对应的各个预测标签的第一概率值和第二概率值进行融合。具体可以将各个预测标签的第一概率值与第二概率值进行加权求和,得到各个预测标签对应的第一总概率值。
[0083]
a5:将第一总概率值最大的预测标签确定为待检测分句中第m个原始字符对应的预测字符。
[0084]
从第m个原始字符的预测标签中选择第一总概率值最大的预测标签作为待检测分句中第m个原始字符对应的预测字符。确定的预测字符是原始字符所对应的正确的字符,将
预测字符与原始字符进行比较可以确定原始字符是否是错别字。参见图3所示,根据第一总概率值确定的“搜”对应的预测字符是“嗽”。
[0085]
基于上述内容可知,通过将各个预测标签的第一概率值和第二概率值相加得到各个预测标签的第一总概率值,可以依据第一总概率值,从正向排序和反向排序两个方面确定最为准确的预测标签作为预测字符。由此可以提高确定预测字符的准确度,使得对于待检测分句的错别字检测更为准确。
[0086]
进一步的,本申请实施例还提供了错别字检测模型的训练过程,具体包括以下三个步骤:
[0087]
b1:获取训练分句,其中,正向排序的训练分句中第1个到第i个字符对应的标签为第i个字符,反向排序的训练分句中第k个到第i个字符对应的标签为第i个字符;k为训练分句的字符数量,i的取值分别为1到k的整数。
[0088]
获取用于错别字检测模型训练的训练分句。训练分句可以为正确的文本分句,通过训练分句可以使得错别字检测模型学习到正确的行文逻辑以及文本结构。
[0089]
为了更好的训练错别字检测模型,确定训练分句的标签,第i个字符为正向排序的训练分句中第1个到第i个字符对应的标签,以及反向排序的训练分句中第k个到第i个字符对应的标签。其中,k为训练分句中的字符的数量,i为1至k的整数。
[0090]
b2:将训练分句输入待训练错别字检测模型,以使待训练错别字检测模型利用正向排序的训练分句中第1个到第i个字符的字特征以及训练分句中第1个到第i个字符对应的标签,得到第i个字符对应的第一损失值,将训练分句中第1个到第k个字符的第一损失值相加得到正向损失值;利用反向排序的训练分句中第k个到第i个字符的字特征以及训练分句中第k个到第i个字符对应的标签,得到第i个字符对应的第二损失值,将训练分句中第1个到第k个字符的第二损失值相加得到反向损失值,将正向损失值以及反向损失值相加得到第一总损失值。
[0091]
将训练分句输入至待训练错别字检测模型中。待训练错别字检测模型利用正向排序的训练分句的第1个到第i个字符的字特征,以及训练分句中第1个到第i个字符对应的标签,也就是第i个字符,得到第i个字符对应的第一损失值。第一损失值可以是根据损失函数计算得到的,损失函数可以为softmax函数。
[0092]
将全部字符对应的第一损失值进行相加,得到正向损失值。类似的,待训练错别字检测模型利用反向排序的训练分句的第k个字符到第i个字符的字特征,以及训练分句中第k个到第i个字符对应的标签,也就是第i个字符,得到第i个字符对应的第二损失值。再将训练分句中的全部字符的第二损失值进行相加,得到反向损失值。
[0093]
以训练文本“患儿发热且咳嗽”为例,参见图4,该图为本申请实施例提供的计算损失值的示意图。当i取值为1时,待训练错别字检测模型利用正向排序的训练分句的第1个字符“患”的字特征,以及第1个字符对应的标签,即“患”,计算得到第1个字符“患”对应的第一损失值fl1。当i取值为2时,待训练错别字检测模型利用正向排序的训练分句的第1个字符到第2个字符的字特征,即“患”和“儿”对应的字特征,以及第1个字符到第2个字符对应的标签“儿”,计算得到第2个字符“儿”对应的第一损失值fl2。以此类推,得到分别与“患”、“儿”、“发”、“热”、“且”、“咳”、“嗽”对应的第一损失值“fl1”、“fl2”、“fl3”、“fl4”、“fl5”、“fl6”、“fl7”。将全部字符所对应的第一损失值相加,也就是计算fl1+fl2+fl3+fl4+fl5+fl6+fl7,
得到正向损失值fl。
[0094]
计算训练文本中每个字符对应的第二损失值。例如,当i取值为1时,利用反向排序的训练分句的第7个字符到第1个字符的字特征,即“嗽”、“咳”、“且”、“热”、“发”、“儿”、“患”对应的字特征,以及训练分句中第7个到第1个字符对应的标签“患”,得到第1个字符“患”对应的第二损失值bl7。当i取值为2时,利用反向排序的训练分句的第7个字符到第1个字符的字特征,即“嗽”、“咳”、“且”、“热”、“发”、“儿”对应的字特征,以及训练分句中第7个到第2个字符对应的标签“儿”,得到第2个字符对应的第二损失值bl6。以此类推,得到分别与“患”、“儿”、“发”、“热”、“且”、“咳”、“嗽”对应的第二损失值“bl7”、“bl6”、“bl5”、“bl4”、“bl3”、“bl2”、“bl1”。将全部字符所对应的第二损失值相加,计算bl1+bl2+bl3+bl4+bl5+bl6+bl7,得到反向损失值bl。
[0095]
将正向损失值与反向损失值相加,得到总体的损失值,即第一总损失值。参见图4,计算正向损失值fl与反向损失值bl的和,得到第一总损失值all_loss。第一总损失值可以用于反映待训练错别字检测模型总体的损失,利用第一总损失值可以进行错别字检测模型的优化。
[0096]
b3:根据第一总损失值对待训练错别字检测模型进行调整,返回执行获取训练分句以及后续步骤,直到达到预设条件生成错别字检测模型。
[0097]
得到的第一总损失值可以反映待训练错别字检测模型的性能,利用第一总损失值对待训练错别字检测模型进行调整,调整方法可以为bp神经网络的反向传播过程。返回继续执行获取训练分句以及后续计算第一损失值、正向损失值、第二损失值、反向损失值以及第一总损失值的步骤。再判断是否符合预设条件,如果符合预设条件,则生成错别字检测模型;如果不符合预设条件,则利用得到的第一总损失值对待训练错别字检测模型进行调整,并返回继续执行获取训练分句以及后续计算第一损失值、正向损失值、第二损失值、反向损失值以及第一总损失值的步骤,直到达到预设条件生成训练好的错别字检测模型。
[0098]
本申请实施例不限定具体的预设条件,预设条件可以为用于表征较为准确的错别字检测模型的性能的条件。例如,预设条件可以为第一总损失值小于或者等于预设阈值,预设阈值可以为较小的损失值。
[0099]
在本申请实施例中,通过获取训练分句,进行待训练错别字检测模型的训练。在计算第一总损失值时,每个原始字符均可以作为标签,如此可以解决将错别字作为负样本时导致的正负样本不平衡的问题,提高了训练得到的错别字检测模型的准确程度。
[0100]
根据上述的错别字检测模型可知,通过正向排序和反向排序可以利用原始字符前后的其他原始字符确定该原始字符的预测字符。在当待检测分句的全部原始字符数量较少,或者是原始字符位于待检测分句的起始位置或者是结束位置时,原始字符前后的其他原始字符的数量较少时,会影响到预测结果的可信程度。
[0101]
基于上述问题,本申请实施例还提供了一种错别字检测模型,用于执行以下七个步骤:
[0102]
c1:提取待检测分句中各个原始字符的字特征。
[0103]
对待检测分句中的各个原始字符的字特征进行提取,以便利用原始字符的字特征进行预测标签的概率值计算。
[0104]
本申请实施例不限定提取原始字符的字特征的方法,例如,可以使用bert对原始
字符进行字特征的提取。
[0105]
c2:利用正向排序的待检测分句中第1个到第m个原始字符的字特征,得到第m个原始字符对应的各个预测标签的第一概率值。
[0106]
利用正向排序的待检测分句中的第1个到第m个原始字符对第m个原始字符进行预测,利用正向排序的待检测分句中的第1个到第m个原始字符的字特征得到第m个原始字符对应的各个预测标签的第一概率值。各个预测标签的第一概率值可以表示第m个原始字符为该预测标签的概率值。
[0107]
在一种可能的实现方式中,可以通过前向lstm得到第m个原始字符对应的预测标签的第一概率值。
[0108]
c3:将第m个原始字符对应的各个预测标签的第一概率值乘以第m个原始字符对应的第一正向置信度得到第m个原始字符对应的各个预测标签的第三概率值;第一正向置信度取值为m/n。
[0109]
用于确定预测标签的原始字符的字特征的数量越少时,得到的原始字符的预测标签的可信度较低;用于确定预测标签的原始字符的字特征数量越多时,得到的原始字符的预测标签的可信度较高。例如,当m为1时,利用正向排序的第1个原始字符的字特征,确定的第1个原始字符对应的各个预测标签的第一概率值可信度较低。当m为10时,利用正向排序的第1个原始字符至第10个原始字符的字特征,确定的第10个原始字符对应的各个预测标签的第一概率值可信度相对较高。
[0110]
为了衡量第一概率值的可信度,确定第m个原始字符对应的第一正向置信度。第m个原始字符对应的第一正向置信度的取值为m/n,其中,m为待检测分句中原始字符正向排序的排序个数,n为待检测分句中的原始字符的个数。例如,当待检测分句中具有7个原始字符,也就是n为7时,则第4个原始字符对应的第一正向置信度的取值为4/7。
[0111]
将第m个原始字符对应的各个预测标签的第一概率值与第m个原始字符的第一正向置信度相乘,得到第m个原始字符对应的各个预测标签的第三概率值。
[0112]
c4:利用反向排序的待检测分句中第n个到第m个原始字符的字特征,得到第m个原始字符对应的各个预测标签的第二概率值。
[0113]
利用反向排序的待检测分句中的第n个到第m个原始字符,对第m个原始字符进行预测。利用反向排序的待检测分句中的第n个到第m个原始字符的字特征得到第m个原始字符对应的各个预测标签的第二概率值。各个预测标签的第二概率值可以表示第m个原始字符为该预测标签的概率值。
[0114]
在一种可能的实现方式中,可以通过反向lstm得到第m个原始字符对应的各个预测标签的第二概率值。
[0115]
c5:将第m个原始字符对应的各个预测标签的第二概率值乘以第m个原始字符对应的第一反向置信度得到第m个原始字符对应的各个预测标签的第四概率值;第一反向置信度取值为(n-m+1)/n。
[0116]
为了衡量第二概率值的可信程度,确定第m个原始字符的第一反向置信度。第m个原始字符的第一反向置信度的取值为(n-m+1)/n,其中,m为待检测分句中原始字符正向排序的排序个数,n-m+1为原始字符在待检测分句中的反向排序的排序个数,n为待检测分句中的原始字符的个数。例如,当待检测分句中的原始字符的个数为7个,也就是n为7时,第3
个原始字符的第一反向置信度为5/7。
[0117]
计算第m个原始字符对应的各个预测标签的第二概率值与第m个原始字符对应的第一反向置信度的乘积,得到第m个原始字符对应的各个预测标签的第四概率值。
[0118]
c6:将第m个原始字符对应的各个预测标签的第三概率值以及第四概率值进行融合,得到第m个原始字符对应的各个预测标签的第二总概率值。
[0119]
将第m个原始字符对应的各个预测标签的第三概率值以及第四概率值进行融合,得到对应的各个预测标签的第二总概率值。
[0120]
在一种可能的实现方式中,将第m个原始字符对应的各个预测标签的第三概率值和第四概率值进行融合,可以是计算各个预测标签的第三概率值与第四概率值的和,得到第二总概率值。
[0121]
c7:将第二总概率值最大的预测标签确定为待检测分句中第m个原始字符对应的预测字符。
[0122]
从各个预测标签中选取第二总概率值最大的预测标签作为待检测分句中第m个原始字符对应的预测字符。
[0123]
在本申请实施例中,通过在得到第一概率值和第二概率值之后,将第一概率值与第一正向置信度相乘,得到第三概率值。将第二概率值与第一反向置信度相乘,得到第四概率值。利用第三概率值与第四概率值得到更为准确的第二总概率值,根据第二总概率值确定的预测字符更为准确,提高了错别字检测模型的对于错别字检测的准确程度。
[0124]
进一步的,本申请实施例还提供了错别字检测模型的训练过程,包括以下三个步骤:
[0125]
d1:获取训练分句,其中,正向排序的训练分句中第1个到第i个字符对应的标签为第i个字符,反向排序的训练分句中第k个到第i个字符对应的标签为第i个字符;k为训练分句的字符数量,i的取值分别为1到k的整数。
[0126]
获取训练分句,其中,训练分句可以是正确的文本分句。例如,在医学领域中,训练分句可以是正确的病历文本分句。通过使用正确的文本分句,可以使得错别字检测模型可以学习到正确的行文逻辑和文本结构。
[0127]
训练分句中具有对应的标签,将训练分句中的正确的字符作为对应的标签。将第i个字符作为正向排序的训练分句中第1个到第i个字符对应的标签;将第i个字符作为反向排序的训练分句中第k个到第i个字符对应的标签。其中,k为训练分句中的字符的数量,i的取值分别为1到k的整数。
[0128]
d2:将训练分句输入待训练错别字检测模型,以使待训练错别字检测模型利用正向排序的训练分句中第1个到第i个字符的字特征以及训练分句中第1个到第i个字符对应的标签,得到第i个字符对应的第一损失值,将第i个字符对应的第一损失值乘以第i个字符对应的第二正向置信度得到第i个原始字符对应的第三损失值,将训练分句中第1个到第k个字符的第三损失值相加得到正向损失值;利用反向排序的训练分句中第k个到第i个字符的字特征以及训练分句中第k个到第i个字符对应的标签,得到第i个字符对应的第二损失值,将第i个字符对应的第二损失值乘以第i个字符对应的第二反向置信度得到第i个原始字符对应的第四损失值,将训练分句中第1个到第k个字符的第四损失值相加得到反向损失值,将正向损失值以及反向损失值相加得到第二总损失值;第二正向置信度取值为i/k;第
二反向置信度取值为(k-i+1)/k。
[0129]
将训练分句输入至待训练错别字检测模型中,得到待训练错别字检测模型输出的第二总损失值。待训练错别字检测模型利用正向排序的训练分句中的第1个到第i个字符的字特征,以及第1个到第i个字符对应的标签,也就是第i个字符,得到第一损失值。在一种可能的实现方式中,第一损失值可以是通过损失函数计算得到的,损失函数可以为softmax函数。
[0130]
在得到第一损失值后,将第一损失值与第i个字符对应的第二正向置信度相乘,得到第三损失值。第二正向置信度的取值为i/k。其中,i为字符在训练分句中正向排序的排序个数,k为训练分句中字符的个数。例如,当训练分句中的字符的个数为7个,也就是k为7时,第4个字符的第二正向置信度为4/7。
[0131]
将训练分句中的各个字符对应的第三损失值相加,得到正向损失值。
[0132]
类似的,待检测错别字模型利用反向排序的训练分句中的第k个到第i个字符的字特征,以及训练分句中第k个到第i个字符对应的标签,也就是第i个字符,得到第二损失值。第二损失值可以是通过损失函数计算得到的,损失函数可以为softmax函数。
[0133]
将第二损失值与第i个字符对应的第二反向置信度相乘,得到第四损失值。第二反向置信度的取值为(k-i+1)/k。其中,i为字符在训练分句中正向排序的排序个数,k-i+1为字符在训练分句中反向排序的排序个数,k为训练分句中字符的个数。例如,当训练分句中的字符的个数为7个,也就是k为7时,第3个字符的第二反向置信度为5/7。将训练分句中的各个字符对应的第四损失值相加,得到反向损失值。
[0134]
将得到的正向损失值与反向损失值进行相加,得到第二总损失值。
[0135]
d3:根据第二总损失值对待训练错别字检测模型进行调整,返回执行获取训练分句以及后续步骤,直到达到预设条件生成错别字检测模型。
[0136]
根据第二总损失值对待训练错别字检测模型进行调整,调整方法可以为bp神经网络的反向传播过程。
[0137]
当达到预设条件时,生成错别字检测模型;若未达到预设条件时,返回执行获取训练分句以及后续生成各个损失值的步骤。
[0138]
在本申请实施例中,通过在训练待训练错别字检测模型时加入置信度的计算,可以使得训练得到的待训练错别字检测模型更加准确,提高错别字检测模型对错别字的检测的准确程度。
[0139]
在部分待检测分句中,还可能具有可以被其他词汇或者字符替代的词汇或者字符,这类词汇或者字符可能具有多个相同含义的词汇或者字符,并不是唯一的。例如,对于同一个外语的译词可以为多个,比如,aspirin可以译为阿司匹林或者阿西匹林。而在错别字检测时,容易将此类词汇或者字符错误地判断为是错别字。
[0140]
基于上述问题,本申请实施例提供的错别字检测方法中还可以包括以下步骤:
[0141]
对待检测分句进行实体识别,识别待检测分句包括的特定术语;
[0142]
将待检测分句中的特定术语替换为第一预设字符。
[0143]
将具有多种正确的表达方式的词汇或者字符作为特定术语,利用实体识别来识别待检测分句中的特定术语。本申请实施例不限定实体识别所采取的实体识别模型,可以为由bert和双向长短期记忆网络构成。
[0144]
为了防止特定术语对错别字检测造成干扰,将识别到的待检测分句包括的特定术语替换为第一预设字符。第一预设字符可以是常用的运算符号或者是外文字符等特殊字符。
[0145]
在本申请实施例中,通过对待检测分句中的特定术语进行识别和替换,可以防止具有多种正确表达的词汇或者字符对错别字检测造成干扰,从而提高了对待检测分句的错别字检测的准确性。
[0146]
此外,待检测分句中的数字和外文单词也是不需要进行错别字检测的。对应的,本申请实施例还提供一种错别字检测方法,可以包括以下步骤:
[0147]
利用正则表达式对待检测分句中的特定字符进行识别;
[0148]
将待检测分句中的特定字符替换为第二预设字符。
[0149]
利用正则表达式对待检测分句中的特定字符进行识别,特定字符可以包括数字、外文单词等与错别字检测无关的字符。将识别到的特定字符替换为第二预设字符。第二预设字符可以是常用的运算符号或者是外文字符等特殊字符。
[0150]
基于上述内容可知,通过对待检测分句中的特定字符进行识别以及替换,可以防止数字或者外文对于错别字检测的影响,提高错别字检测模型对于待检测分句中错别字的检测的准确性。
[0151]
在一种可能的场景中,待检测分句中可能同时具有特定术语和特定字符。本申请实施例不限定识别特定术语和识别特定字符的先后顺序。在一种可能的实现方式中,可以先对特定术语进行识别和替换,再对特定字符进行识别和替换。参见图5,该图为本申请实施例提供的一种错别字检测的示意图。待检测分句为“患着口服阿司匹林30天”,先对待检测分句进行实体识别,识别得到特定术语“阿司匹林”,将“阿司匹林”替换为第一预设字符“@”。将得到的“患着口服@30天”通过正则表达式进行特定字符的识别和替换。通过正则表达式识别得到特定字符“30”,将特定字符“30”替换为第二预设字符
“×”
,得到“患着口服@
×
天”。将得到的待检测分句“患着口服@
×
天”输入到错别字检测模型中,提取“患着口服@
×
天”中各个原始字符的字特征,在通过正向排序的待检测分句得到各个原始字符对应的第一预测结果。再通过反向排序的待检测分句得到各个原始字符对应的第二预测结果。根据第一预测结果和第二预测结果可以得到待检测分句中各个原始字符对应的预测字符“患者口服@
×
天”。再将待检测分句中的原始字符与预测字符进行比较,确定“着”是错别字。
[0152]
基于上述方法实施例提供的错别字检测方法,本申请实施例还提供了一种错别字检测装置,下面将结合附图对该错别字检测装置进行说明。
[0153]
参见图6,该图为本申请实施例提供的一种错别字检测装置的结构示意图。如图6所示,该错别字检测装置包括:
[0154]
获取单元601,用于获取待检测分句;
[0155]
预测单元602,用于将所述待检测分句输入错别字检测模型,得到所述错别字检测模型输出的各个原始字符对应的预测字符;所述错别字检测模型用于利用正向排序的所述待检测分句中第1个到第m个原始字符得到所述第m个原始字符对应的第一预测结果,利用反向排序的所述待检测分句中第n个到第m个原始字符得到所述第m个原始字符对应的第二预测结果,根据所述第m个原始字符对应的第一预测结果以及第二预测结果得到所述待检测分句中第m个原始字符对应的预测字符;其中,n为所述待检测分句的字符数量,m的取值
分别为1到n的整数;
[0156]
确定单元603,用于将所述待检测分句中与对应的预测字符不一致的原始字符确定为错别字。
[0157]
在一种可能的实现方式中,所述错别字检测模型具体用于:
[0158]
提取所述待检测分句中各个原始字符的字特征;
[0159]
利用正向排序的所述待检测分句中第1个到第m个原始字符的字特征,得到所述第m个原始字符对应的各个预测标签的第一概率值;
[0160]
利用反向排序的所述待检测分句中第n个到第m个原始字符的字特征,得到所述第m个原始字符对应的各个预测标签的第二概率值;
[0161]
将所述第m个原始字符对应的各个预测标签的第一概率值以及第二概率值进行融合,得到所述第m个原始字符对应的各个预测标签的第一总概率值;
[0162]
将所述第一总概率值最大的预测标签确定为所述待检测分句中第m个原始字符对应的预测字符。
[0163]
在一种可能的实现方式中,所述错别字检测模型具体用于:
[0164]
提取所述待检测分句中各个原始字符的字特征;
[0165]
利用正向排序的所述待检测分句中第1个到第m个原始字符的字特征,得到所述第m个原始字符对应的各个预测标签的第一概率值;
[0166]
将所述第m个原始字符对应的各个预测标签的第一概率值乘以所述第m个原始字符对应的第一正向置信度得到所述第m个原始字符对应的各个预测标签的第三概率值;所述第一正向置信度取值为m/n;
[0167]
利用反向排序的所述待检测分句中第n个到第m个原始字符的字特征,得到所述第m个原始字符对应的各个预测标签的第二概率值;
[0168]
将所述第m个原始字符对应的各个预测标签的第二概率值乘以所述第m个原始字符对应的第一反向置信度得到所述第m个原始字符对应的各个预测标签的第四概率值;所述第一反向置信度取值为(n-m+1)/n;
[0169]
将所述第m个原始字符对应的各个预测标签的第三概率值以及第四概率值进行融合,得到所述第m个原始字符对应的各个预测标签的第二总概率值;
[0170]
将所述第二总概率值最大的预测标签确定为所述待检测分句中第m个原始字符对应的预测字符。
[0171]
在一种可能的实现方式中,所述错别字检测模型的训练过程包括:
[0172]
获取训练分句,其中,正向排序的所述训练分句中第1个到第i个字符对应的标签为所述第i个字符,反向排序的所述训练分句中第k个到第i个字符对应的标签为所述第i个字符;k为所述训练分句的字符数量,i的取值分别为1到k的整数;
[0173]
将所述训练分句输入待训练错别字检测模型,以使所述待训练错别字检测模型利用正向排序的所述训练分句中第1个到第i个字符的字特征以及所述训练分句中第1个到第i个字符对应的标签,得到所述第i个字符对应的第一损失值,将所述训练分句中第1个到第k个字符的第一损失值相加得到正向损失值;利用反向排序的所述训练分句中第k个到第i个字符的字特征以及所述训练分句中第k个到第i个字符对应的标签,得到所述第i个字符对应的第二损失值,将所述训练分句中第1个到第k个字符的第二损失值相加得到反向损失
值,将所述正向损失值以及所述反向损失值相加得到第一总损失值;
[0174]
根据所述第一总损失值对所述待训练错别字检测模型进行调整,返回执行所述获取训练分句以及后续步骤,直到达到预设条件生成错别字检测模型。
[0175]
在一种可能的实现方式中,所述错别字检测模型的训练过程包括:
[0176]
获取训练分句,其中,正向排序的所述训练分句中第1个到第i个字符对应的标签为所述第i个字符,反向排序的所述训练分句中第k个到第i个字符对应的标签为所述第i个字符;k为所述训练分句的字符数量,i的取值分别为1到k的整数;
[0177]
将所述训练分句输入待训练错别字检测模型,以使所述待训练错别字检测模型利用正向排序的所述训练分句中第1个到第i个字符的字特征以及所述训练分句中第1个到第i个字符对应的标签,得到所述第i个字符对应的第一损失值,将所述第i个字符对应的第一损失值乘以所述第i个字符对应的第二正向置信度得到所述第i个原始字符对应的第三损失值,将所述训练分句中第1个到第k个字符的第三损失值相加得到正向损失值;利用反向排序的所述训练分句中第k个到第i个字符的字特征以及所述训练分句中第k个到第i个字符对应的标签,得到所述第i个字符对应的第二损失值,将所述第i个字符对应的第二损失值乘以所述第i个字符对应的第二反向置信度得到所述第i个原始字符对应的第四损失值,将所述训练分句中第1个到第k个字符的第四损失值相加得到反向损失值,将所述正向损失值以及所述反向损失值相加得到第二总损失值;所述第二正向置信度取值为i/k;所述第二反向置信度取值为(k-i+1)/k;
[0178]
根据所述第二总损失值对所述待训练错别字检测模型进行调整,返回执行所述获取训练分句以及后续步骤,直到达到预设条件生成错别字检测模型。
[0179]
在一种可能的实现方式中,所述装置还包括:
[0180]
第一识别单元,用于对所述待检测分句进行实体识别,识别所述待检测分句包括的特定术语;
[0181]
第一替换单元,用于将所述待检测分句中的特定术语替换为第一预设字符。
[0182]
在一种可能的实现方式中,所述装置还包括:
[0183]
第二识别单元,用于利用正则表达式对所述待检测分句中的特定字符进行识别;
[0184]
第二替换单元,用于将所述待检测分句中的特定字符替换为第二预设字符。
[0185]
另外,本申请实施例还提供了一种错别字检测设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述实施例所述的错别字检测方法。
[0186]
另外,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如上述实施例所述的错别字检测方法。
[0187]
本申请实施例先获取待检测分句,将待检测分句输入到错别字检测模型中,得到错别字检测模型输出的待检测分句中各个原始字符对应的预测字符,将待检测分句中与预测字符不一致的原始字符确定为错别字。其中,错别字检测模型是用于利用正向排序的待检测分句中的第1个到第m个原始字符得到第m个原始字符对应的第一预测结果,利用反向排序的待检测分句中第n个到第m个原始字符得到第m个原始字符对应的第二预测结果;根据第m个原始字符对应的第一预测结果以及第二预测结果得到待检测分句中第m个原始字
符对应的预测字符;n为待检测分句的字符数量,m的取值分别为1到n的整数。通过正向排序和反向排序得到对应的预测结果,能够分别从文本正序和文本反序两个方面确定原始字符对应的预测字符。通过将得到的两种预测结果进行融合得到原始字符对应的预测字符,能够提高原始字符对应的预测字符的准确性,进而提高错别字检测的准确性。
[0188]
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0189]
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
[0190]
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0191]
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
[0192]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1