掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本说明书实施例涉及计算机技术领域,特别涉及一种纠错方法、装置和计算设备。

背景技术

近年来,随着深度学习的提出,文字识别技术(例如OCR,Optical CharacterRecognition,光学字符识别)取得了显著成就,获得了广泛的应用。然而受限于各种因素,文字识别结果中通常会出现错误。需要对识别结果中的语句进行纠错。

在相关技术中,可以通过纠错算法对识别结果中的语句进行纠错。所述纠错算法可以包括基于错别字词典的纠错算法、基于编辑距离匹配的纠错算法和基于模型的纠错算法。

上述纠错算法的纠错效果均不够理想。

发明内容

本说明书实施例提供一种纠错方法、装置和计算设备,以提高语句的纠错效果。本说明书实施例的技术方案如下。

本说明书实施例的第一方面,提供了一种纠错方法,包括:

根据待纠错语句中字符的拼音特征,检测待纠错语句中各字符的第一概率,所述第一概率用于表示字符为错误字符的可能性;

根据第一概率,确定待纠错语句中各字符的第一特征;

根据待纠错语句中字符的字形特征,检测待纠错语句中各字符的第二概率,所述第二概率用于表示字符为错误字符的可能性;

根据第二概率,确定待纠错语句中各字符的第二特征;

将第一特征和第二特征进行融合,得到待纠错语句中各字符的融合特征;

根据融合特征,确定待纠错语句的纠错结果。

本说明书实施例的第一方面,提供了一种纠错装置,包括:

第一检测网络层,用于根据待纠错语句中字符的拼音特征,检测待纠错语句中各字符的第一概率,所述第一概率用于表示字符为错误字符的可能性;

第一掩码层,用于根据第一概率,确定待纠错语句中各字符的第一特征;

第二检测网络层,用于根据待纠错语句中字符的字形特征,检测待纠错语句中各字符的第二概率,所述第二概率用于表示字符为错误字符的可能性;

第二掩码层,用于根据第二概率,确定待纠错语句中各字符的第二特征;

融合层,用于将第一特征和第二特征进行融合,得到待纠错语句中各字符的融合特征;

纠错网络层,用于根据融合特征,确定待纠错语句的纠错结果。

本说明书实施例的第一方面,提供了一种计算设备,包括:

至少一个处理器;

存储有程序指令的存储器,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如第一方面所述方法的指令。

本说明书实施例提供的技术方案,一方面,可以检测待纠错语句中各个字符出现错误的第一概率和第二概率,使得错误检测能够覆盖待纠错语句中各个可能出错的字符;另一方面,可以从字形和字音两个角度综合进行纠错。因此,本说明书实施例可以提高纠错效果。

附图说明

为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本说明书实施例中纠错模型的结构示意图;

图2为本说明书实施例中纠错方法的流程示意图;

图3为本说明书实施例中纠错装置的结构示意图;

图4为本说明书实施例中计算设备的结构示意图。

具体实施方式

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

在上述相关技术中,可以基于BERT(BidirectionalEncoder Representationsfrom Transformer)模型进行纠错。但是一方面,在BERT模型中,往往使用随机的方式对待纠错语句中的字符进行掩码(mask),使得BERT模型没有足够的能力检测待纠错语句中的各个字符是否均存在错误(只有大约15%的错误字符被检测到),造成纠错效果不佳。另一方面,在BERT模型中,往往仅根据字符的单一特征进行文本纠错,造成纠错效果不佳。

发明人发现,汉字是典型的一种能够表表意的文字,因此汉字的拼音以及字形对于语句含义的表达都是非常关键的。因此,若能够根据字音、字形检测待纠错语句中各个字符出错的概率,进而根据各个字符出错的概率进行纠错处理,则有望提高纠错效果。

为此,本说明书实施例提供了一种纠错模型。

请参阅图1,其示出了本说明书实施例涉及的纠错模型的结构。其中,所述纠错模型可以用于文本纠错。所述文本可以包括一个或多个待纠错语句。所述待纠错语句可以包含一个或多个错误字符。通过所述纠错模型,可以对待纠错语句中的错误字符进行纠错,得到正确语句。例如,待纠错语句可以为“埃及有著名的金子塔”。通过所述纠错模型,可以对待纠错语句中的错误字符“子”进行纠错,得到正确语句“埃及有著名的金字塔”。

在一些实施例中,所述纠错模型可以包括第一检测网络层、第一掩码层(SoftMasking)、第二检测网络层、第二掩码层(Soft Masking)、融合层和纠错网络层。其中,所述第一检测网络层与所述第一掩码层相连接,所述第二检测网络层与所述第二掩码层相连接,所述第一掩码层和所述第二掩码层与所述融合层相连接,所述融合层与所述纠错网络层相连接。

在一些实施例中,所述第一检测网络层可以包括双向的GRU(Gated RecurrentUnit,门控循环单元)。所述第一检测网络层可以根据待纠错语句中字符的拼音特征、以及待纠错语句的上下文信息,检测待纠错语句中各字符的第一概率。所述第一概率用于表示字符为错误字符的可能性。所述第一概率的数值越小,表示字符为错误字符的可能性越大。

例如,所述第一检测网络层可以根据公式p

在实际应用中,所述第一检测网络层的输入可以包括待纠错语句中各字符的拼音特征,所述第一检测网络层的输出可以包括待纠错语句中各字符的第一概率。例如,所述第一检测网络层的输入可以包括待纠错语句中各字符的拼音特征构成的向量,所述第一检测网络层的输出可以包括待纠错语句中各字符的第一概率构成的向量。具体地,例如,所述第一检测网络层的输入可以包括向量[a

在一些实施例中,所述第一掩码层可以根据第一概率,将第一Masking特征(第一掩码特征)嵌入到字符的拼音特征。具体地,针对待纠错语句的每个字符,所述第一掩码层可以利用该字符的第一概率将第一掩码特征嵌入到该字符的拼音特征,得到该字符的第一特征。

例如,所述第一掩码层可以根据公式A

在实际应用中,所述第一掩码层的输入可以包括待纠错语句中各字符的拼音特征、以及待纠错语句中各字符的第一概率。所述第一掩码层的输出可以包括待纠错语句中各字符的第一特征。其中,所述第一掩码特征可以作为第一掩码层的模型参数,通过训练得到。例如,所述第一掩码层的输入可以包括待纠错语句中各字符的拼音特征构成的向量、以及待纠错语句中各字符的第一概率构成的向量。所述第一掩码层的输出可以包括待纠错语句中各字符的第一特征构成的向量。具体地,例如,所述第一掩码层的输入可以包括向量[a

在一些实施例中,所述第二检测网络层可以包括双向的GRU。所述第二检测网络层可以根据待纠错语句中字符的字形特征、以及待纠错语句的上下文信息,检测待纠错语句中各字符的第二概率。所述第二概率用于表示字符为错误字符的可能性。所述第二概率的数值越小,表示字符为错误字符的可能性越大。所述第二检测网络层获得第二概率的过程,可以与所述第一检测网络层获得第一概率的过程,对照解释,这里不再赘述。

在实际应用中,所述第二检测网络层的输入可以包括待纠错语句中各字符的字形特征,所述第二检测网络层的输出可以包括待纠错语句中各字符的第二概率。例如,所述第二检测网络层的输入可以包括待纠错语句中各字符的字形特征构成的向量,所述第二检测网络层的输出可以包括待纠错语句中各字符的第二概率构成的向量。具体地,例如,所述第二检测网络层的输入可以包括向量[b

在一些实施例中,所述第二掩码层可以根据第二概率,将第二Masking特征(第二掩码特征)嵌入到字符的字形特征。具体地,针对待纠错语句的每个字符,所述第二掩码层可以利用该字符的第二概率将第二掩码特征嵌入到该字符的字形特征,得到该字符的第二特征。

例如,所述第二掩码层可以根据公式B

在实际应用中,所述第二掩码层的输入可以包括待纠错语句中各字符的字形特征、待纠错语句中各字符的第二概率。所述第二掩码层的输出可以包括待纠错语句中各字符的第二特征。其中,所述第二掩码特征可以作为所述第二掩码层的模型参数,通过训练得到。例如,所述第二掩码层的输入可以包括待纠错语句中各字符的字形特征构成的向量、以及待纠错语句中各字符的第二概率构成的向量。所述第二掩码层的输出可以包括待纠错语句中各字符的第二特征构成的向量。具体地,例如,所述第二掩码层的输入可以包括向量[b

在一些实施例中,所述融合层可以根据融合系数,将待纠错语句中字符的第一特征和第二特征进行融合,得到待纠错语句中各字符的融合特征。

例如,所述融合层可以根据公式E

在实际应用中,所述融合层的输入可以包括待纠错语句中各字符的第一特征、以及待纠错语句中各字符的第二特征。所述融合层的输出可以包括待纠错语句中各字符的融合特征。其中,所述融合系数可以作为融合层的模型参数,通过训练得到。所述融合系数的取值范围可以为[0,0.5]。例如,所述融合层的输入可以包括待纠错语句中各字符的第一特征构成的向量、以及待纠错语句中各字符的第二特征构成的向量。所述融合层的输出可以包括待纠错语句中各字符的融合特征构成的向量。例如,所述融合层的输入可以包括向量[A

在一些实施例中,所述纠错网络层用于对待纠错语句中各字符的融合特征进行纠错;可以根据纠错后的融合特征,确定待纠错语句的纠错结果。具体地,所述纠错网络层可以为多分类模型。例如,所述纠错网络层可以包括BERT模型中的Transformer层。所述纠错网络层可以对待纠错语句中各字符的融合特征进行纠错。所述纠错网络的最后一层可以为Softmax函数。利用Softmax函数,根据纠错后的融合特征,所述纠错网络层可以确定待纠错语句中的正确字符。例如,所述纠错网络层可以从候选字符列表中选取概率最大的字符作为正确字符。

在实际应用中,所述纠错网络的输入可以包括待纠错语句中各字符的融合特征。所述纠错网络的输出可以包括纠错结果中的正确字符。例如,所述纠错网络的输入可以包括待纠错语句中各字符的融合特征构成的向量,所述纠错网络的输出可以包括正确字符构成的向量。具体地,例如,所述纠错网络的输入可以包括向量[E

以下介绍所述纠错模型的训练过程。

可以构建训练集和测试集。具体地,可以获得多个句子对;可以按照预设划分规则,将所述多个句子对划分为训练集和测试集。所述训练集和所述测试集可以包括一个或多个句子对。所述句子对可以包括正确语句、以及包含错误字符的错误语句。例如,所述句子对可以包括正确语句“埃及有著名的金字塔”、以及错误语句“埃及有著名的金子塔”。

在实际应用中,可以利用训练集训练所述纠错模型。所述纠错模型的训练可以以端到端的方式进行。在训练的过程中,所述纠错模型的模型参数可以包括第一检测网络层、第一掩码层、第二检测网络层、第二掩码层、融合层和纠错网络层的模型参数,因而所述纠错模型的损失函数可以根据第一检测网络层、第一掩码层、第二检测网络层、第二掩码层、融合层和纠错网络层获得。利用梯度下降法或者牛顿法对所述纠错模型的损失函数进行计算,可以获得第一检测网络层、第一掩码层、第二检测网络层、第二掩码层、融合层和纠错网络层的模型参数。例如,所述第一检测网络层和所述第二检测网络层的计算过程可以视为二分类问题,所述纠错网络层的计算过程可以视为多分类问题。相较于所述第一检测网络层和所述第二检测网络层,所述纠错网络层的训练过程更为复杂,因而可以将融合系数的初始值设置的尽可能大。具体地,例如,所述第一检测网络层(或者所述第二检测网络层)的优化目标可以为

在对纠错模型训练后,可以利用测试集获得所述纠错模型的评价指标。所述评价指标可以用于评价纠错模型的性能。若评价指标满足需求,可以结束训练过程。若评价指标不满足需求,可以继续对所述纠错模型进行训练。所述评价指标可以包括以下至少之一:平均绝对误差(MAE)、平均绝对百分比误差(MAPE)、均方根误差(RMSE)、纳什模型效率指数(NSE)。

本说明书实施例提供一种纠错方法。所述纠错方法可以基于所述纠错模型实现。所述纠错方法可以应用于任意计算设备,例如应用于单个服务器、由多个服务器构成的服务器集群、或者部署在云端的服务器等。请参阅图2,所述纠错方法可以包括以下步骤。

步骤S101:根据待纠错语句中字符的拼音特征,检测待纠错语句中各字符的第一概率,所述第一概率用于表示字符为错误字符的可能性。

步骤S103:根据第一概率,确定待纠错语句中各字符的第一特征。

步骤S105:根据待纠错语句中字符的笔画特征,检测待纠错语句中各字符的第二概率,所述第二概率用于表示字符为错误字符的可能性。

步骤S107:根据第二概率,确定待纠错语句中各字符的第二特征。

步骤S109:将第一特征和第二特征进行融合,得到待纠错语句中各字符的融合特征。

步骤S111:根据融合特征,确定待纠错语句的纠错结果。

在一些实施例中,所述待纠错语句中可以包含一个或多个错误字符。所述字符可以为表意文字的字符,例如可以为汉字字符。例如,待纠错语句可以为“埃及有著名的金子塔”。

在一些实施例中,所述拼音特征可以包括字符的拼音的编码(例如word-embedding)。所述字形特征可以包括字符的字形的编码(例如word-embedding)。这里可以采用任意方式对字符的拼音和字符的字形进行编码。以字符的字形为例,字符的字形的编码可以包括字形结构编码、四角编码和笔画数编码。所述字形结构编码可以用于表示字符的字形结构(例如独体字、左右结构、上下结构、左中右结构、上中下结构、右上包围结构等),所述四角编码可以用于表示字符的形态,所述笔画数编码可以用于表示字符的笔画数。

在一些实施例中,所述计算设备获得第一概率的过程可以参见第一检测网络层的有关介绍。所述计算设备获得第一特征的过程可以参见第一掩码层的有关介绍。所述计算设备获得第二概率的过程可以参见第二检测网络层的有关介绍。所述计算设备获得第二特征的过程可以参见第二掩码层的有关介绍。所述计算设备获得融合特征的过程可以参见融合层的有关介绍。所述计算设备获得纠错结果的过程可以参见纠错网络层的有关介绍。

本说明书实施例的纠错方法,一方面,由于待纠错语句中出现错误的字符具有随机性,使得待纠错语句中的各个字符都有一定的概率出现错误,因而所述计算设备可以对待纠错语句中的各个字符进行检测,识别各个字符出现错误的第一概率和第二概率。这样可以使错误检测覆盖待纠错语句中所有可能出错的字符,能够更准确地对待纠错语句中的错误字符进行定位,从而可以提高纠错的召回率,提高纠错效果。另一方面,可以从字形和字音两个角度综合考虑进行纠错,有利于更精确到检测到待纠缠语句中出现错误的字符,从而可以提高纠错效果。另一方面,可以实现端到端的进行文本纠错,克服传统的字典纠错缺陷。传统的字典纠错方法不具备通用性,针对不同的业务场景需要耗费大量的人力,手工收集数据,建立特定的纠错字典。而且为了提升纠错的准确度,需要不断扩充字典。如果采用模糊匹配的方式纠错,纠错的时间会呈线性增加,很难满足实时的业务需求。

以下介绍本说明书实施例的一个场景示例。

在银行内部的多个业务场景中(例如境内运管存款凭条识别、授权书签名识别、支票识别等),通常会涉及到对手写汉字进行OCR(Optical Character Recognition,光学字符识别)识别。由于形似汉字的存在,并且手写汉字缺乏固定的规范,经常出现将字符识别为其相近字形字符的情况。例如“天”、“大”、“夫”、“夭”。其中,“天”、“夫”和“夭”,笔画都是四画,但字音均不相同;“天”与“大”字形相近,但笔画不同。

因此需要对OCR的识别结果进行纠错处理。OCR的识别结果可以包括一个或多个待纠错语句。因此,可以根据待纠错语句中字符的拼音特征,检测待纠错语句中各字符的第一概率,所述第一概率用于表示字符为错误字符的可能性;可以根据第一概率,确定待纠错语句中各字符的第一特征;可以根据待纠错语句中字符的字形特征,检测待纠错语句中各字符的第二概率,所述第二概率用于表示字符为错误字符的可能性;可以根据第二概率,确定待纠错语句中各字符的第二特征;可以将第一特征和第二特征进行融合,得到待纠错语句中各字符的融合特征;可以根据融合特征,确定待纠错语句的纠错结果。这样一方面,可以对待纠错语句中的各个字符进行诊断,识别各个字符出现错误的第一概率和第二概率,使得错误检测覆盖待纠错语句中所有可能出错的字符,能够更准确地对待纠错语句中的错误字符进行定位,从而可以提高纠错的召回率,提高纠错效果。另一方面,可以从字形和字音两个角度综合考虑进行纠错,有利于更精确到检测到待纠缠语句中出现错误的字符,从而提高纠错效果。

请参阅图3。本说明书还提供纠错装置的一个实施例。所述纠错装置可以应用于任意计算设备,具体可以包括以下单元。

第一检测网络层201,用于根据待纠错语句中字符的拼音特征,检测待纠错语句中各字符的第一概率,所述第一概率用于表示字符为错误字符的可能性;

第一掩码层203,用于根据第一概率,确定待纠错语句中各字符的第一特征;

第二检测网络层205,用于根据待纠错语句中字符的字形特征,检测待纠错语句中各字符的第二概率,所述第二概率用于表示字符为错误字符的可能性;

第二掩码层207,用于根据第二概率,确定待纠错语句中各字符的第二特征;

融合层209,用于将第一特征和第二特征进行融合,得到待纠错语句中各字符的融合特征;

纠错网络层211,用于根据融合特征,确定待纠错语句的纠错结果。

请参阅图4。本说明书实施例还提供一种计算设备。

所述计算设备可以包括存储器和处理器。

在本实施例中,所述存储器包括但不限于动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)和静态随机存取存储器(Static Random Access Memory,SRAM)等。所述存储器可以用于存储计算机指令。

在本实施例中,所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。所述处理器可以用于执行所述计算机指令以实现图2所对应的实施例。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。尤其,对于单侧实施的方法实施例、装置实施例、和计算设备实施例而言,由于其基本相似于模型训练方法实施例,所以描述的比较简单,相关之处参见模型训练方法实施例的部分说明即可。

另外,可以理解的是,本领域技术人员在阅读本说明书文件之后,可以无需创造性劳动想到将本说明书列举的部分或全部实施例进行任意组合,这些组合也在本说明书公开和保护的范围内。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。

本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。

相关技术
  • 直播的音频纠错方法、装置、计算设备及存储介质
  • 纠错方法、装置和计算设备
技术分类

06120112739997