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

一种文本纠正方法及装置

文献发布时间:2023-06-19 19:30:30


一种文本纠正方法及装置

技术领域

本发明涉及文本识别技术领域,尤其涉及一种文本纠正方法及装置。

背景技术

文本纠正是自然语言处理领域中的一个重要研究方向,该技术实现了对文本中的错误信息的检测与纠正,能够提高文本的准确度。文本纠正能够应用于多个领域,比如对手写文本中的错误进行纠正,对自动语音识别技术(Automatic Speech Recognition,ASR)识别得到的文本中的错误进行纠正,对光学字符识别技术(Optical CharacterRecognition,OCR)识别得到的文本中的错误进行纠正。

现有文本纠正方法都是模板匹配,判断识别结果是否符合模板格式,具体通过字符串长度、各字符类型等匹配方式判断,若多次模板匹配有误,则需要多次运行对应的文本识别模型重新对文本进行识别,上述文本纠正过程耗时过久,且在识别耗时要求高的场景上述文本纠正方法不适用,还导致文本纠正结果准确率低。

发明内容

本发明提供一种文本纠正方法及装置,用以解决上述问题。

本发明提供一种文本纠正方法,包括:

获取文本识别结果,所述文本识别结果为字符串;

基于预设的字符串模板,并利用一种或多种预设的文本纠正算法依次对所述字符串中每一字符进行纠正,获得与所述字符对应的一个或多个纠正结果;

根据所述纠正结果以及其对应的文本纠正算法获得每一所述字符对应的纠正成本,基于所述纠正成本从所有纠正结果中确定目标纠正结果。

根据本发明提供的一种文本纠正方法,所述预设的文本纠正算法为第一纠正算法、第二纠正算法或第三纠正算法中的一种或多种;所述预设的字符串模板包括模板字符串中每个位置的模板字符对应的数据类型信息;

相应地,所述基于预设的字符串模板,并利用一种或多种预设的文本纠正算法依次对所述字符串中每一字符进行纠正,获得与所述字符对应的一个或多个纠正结果,包括:

根据所述每个模板字符对应的数据类型信息以及当前字符对应的数据类型信息,利用第一纠正算法和/或第二纠正算法和/或第三纠正算法对当前字符进行纠正,获得第一纠正结果和/或第二纠正结果和/或第三纠正结果;

所述根据所述纠正结果以及其对应的文本纠正算法获得每一所述字符对应的纠正成本,基于所述纠正成本从所有纠正结果中确定目标纠正结果,包括:

根据历史字符纠正成本以及所述第一纠正算法和/或第二纠正算法和/或第三纠正算法所对应的算法成本值,计算得到当前字符对应的第一纠正成本和/或第二纠正成本和/或第三纠正成本;

根据所述第一纠正成本和/或第二纠正成本和/或第三纠正成本,从所述第一纠正结果和/或第二纠正结果和/或第三纠正结果中确定成本最低的纠正结果作为目标纠正结果。

根据本发明提供的一种文本纠正方法,所述第一纠正算法为字符替换算法;

相应地,根据预设的字符串模板,利用第一纠正算法对当前字符进行纠正,获得第一纠正结果,包括:

从所述预设的字符串模板和/或相近字符模板库中将与所述当前字符对应的模板字符作为当前模板字符;

利用所述字符替换算法将所述当前字符替换为当前模板字符,形成新的字符串作为第一纠正结果;

相应地,所述根据历史字符纠正成本以及所述第一纠正算法所对应的算法成本值,计算得到当前字符对应的第一纠正成本,包括:

获取所述字符替换算法对应的替换算法成本值;

获取上一模板字符与上一字符之间的历史纠正成本;

计算替换算法成本值以及所述上一模板字符与上一字符之间的历史纠正成本的和,将计算结果作为当前字符与当前模板字符之间的第一纠正成本。

根据本发明提供的一种文本纠正方法,所述数据类型信息至少包括固定字符类型;

相应地,从所述预设的字符串模板中将与所述当前字符对应的模板字符作为当前模板字符,包括:

在所述当前字符的数据类型与所述预设的字符串模板中的模板字符对应的数据类型不相同的情况下,判断模板字符对应的数据类型是否固定字符类型;

在模板字符对应的数据类型为固定字符类型的情况下,将固定字符类型的模板字符作为当前模板字符。

根据本发明提供的一种文本纠正方法,从所述相近字符模板库中将与所述当前字符对应的模板字符作为当前模板字符,包括:

在模板字符对应的数据类型不为固定字符类型的情况下,从所述相近字符模板库中获取与所述当前字符对应的相近模板字符作为当前模板字符。

根据本发明提供的一种文本纠正方法,所述第二纠正算法为字符删除算法;

相应地,根据预设的字符串模板,利用第二纠正算法对当前字符进行纠正,获得第二纠正结果,包括:

利用字符删除算法对所述当前字符进行删除,获得新的字符串作为第二纠正结果;

相应地,所述根据历史字符纠正成本以及所述第二纠正算法所对应的算法成本值,计算得到当前字符对应的第二纠正成本,包括:

获取所述字符删除算法对应的删除算法成本值;

获取上一字符与当前模板字符之间的历史纠正成本;

计算删除算法成本值以及所述上一字符与当前模板字符之间的历史纠正成本的和,将计算结果作为当前字符与当前模板字符之间的第二纠正成本。

根据本发明提供的一种文本纠正方法,所述第二纠正算法为字符插入算法;

相应地,根据预设的字符串模板,利用第三纠正算法对当前字符进行纠正,获得第三纠正结果,包括:

利用字符插入算法将当前模板字符插入至所述当前字符之前,获得新的字符串作为第三纠正结果;

相应地,所述根据历史字符纠正成本以及所述第三纠正算法所对应的算法成本值,计算得到当前字符对应的第三纠正成本,包括:

获取所述字符插入算法对应的插入算法成本值;

获取当前字符与上一模板字符之间的历史纠正成本;

计算插入算法成本值以及所述当前字符与上一模板字符之间的历史纠正成本的和,将计算结果作为当前字符与当前模板字符之间的第三纠正成本。

根据本发明提供的一种文本纠正方法,所述替换算法成本值包括第一替换算法成本值以及第二替换算法成本值;

在所述当前字符与所述当前模板字符所对应的数据类型相同的情况下,确定算法成本值为第一替换算法成本值;

在所述当前字符与所述当前模板字符所对应的数据类型不相同的情况下,确定算法成本值为第二替换算法成本值。

根据本发明提供的一种文本纠正方法,所述数据类型信息还包括数字类型以及字母类型。

本发明还提供一种文本纠正装置,包括:

识别结果获取模块,用于获取文本识别结果,所述文本识别结果为字符串;

纠正模块,用于基于预设的字符串模板,并利用一种或多种预设的文本纠正算法依次对所述字符串中每一字符进行纠正,获得与所述字符对应的一个或多个纠正结果;

目标纠正确定模块,用于根据所述纠正结果以及其对应的文本纠正算法获得每一所述字符对应的纠正成本,基于所述纠正成本从所有纠正结果中确定目标纠正结果。

本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现如上述任一种文本纠正方法。

本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述任一种文本纠正方法。

本发明提供的文本纠正方法及装置,通过基于预设的字符串模板,并利用一种或多种预设的文本纠正算法依次对所述字符串中每一字符进行纠正,获得与所述字符对应的一个或多个纠正结果;根据所述纠正结果以及其对应的文本纠正算法获得每一所述字符对应的纠正成本,基于所述纠正成本从所有纠正结果中确定目标纠正结果,从而能够自动纠正有错误的识别结果,加快纠正效率,提高识别准确率。

附图说明

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

图1是本发明实施例提供的文本纠正方法的流程示意图之一;

图2是本发明实施例提供的文本纠正方法的流程示意图之二;

图3为本发明实施例提供的文本纠正装置结构示意图;

图4为本发明实施例提供的一种电子设备的实体结构示意图。

具体实施方式

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

下面结合说明书附图对本发明提出的文本纠正方法及装置进行说明。

图1是本发明实施例提供的文本纠正方法的流程示意图之一;图2是本发明实施例提供的文本纠正方法的流程示意图之二;如图1以及图2所示,该文本纠正方法,包括:

S101,获取文本识别结果,所述文本识别结果为字符串。

在本步骤中,文本识别结果可以是利用神经网络模型对手写文本识别后获得结果,也可以是通过自动语音识别技术识别得到的文本结果,还可以是通过光学字符识别技术识别得到的文本结果。本发明对文本识别结果的获取方式不做限定。

S102,基于预设的字符串模板,并利用一种或多种预设的文本纠正算法依次对所述字符串中每一字符进行纠正,获得与所述字符对应的一个或多个纠正结果。

其中,所述预设的字符串模板包括模板字符串的长度信息以及模板字符串中每个位置的模板字符对应的数据类型信息;所述数据类型信息包括数字类型、字母类型、数字或字母类型以及固定字符类型。上述提到的数字类型、字母类型以及固定字符类型是指某一位置的模板字符对应的数据类型为单一的数字、字母或固定字符,而数字或字母类型则是指某一位置的模板字符对应的数据类型可以是数字也可以是字母,数据类型不唯一。

上述预设的字符串模板根据与文本识别结果对应的需求制定,举例来说,若文本识别结果为身份证号码的识别结果,则预设的字符串模板形式为“数字+数字+数字+数字+数字+数字+数字+数字+数字+数字+数字+数字+数字+数字+数字+数字+数字+数字/字母”,该字符串模板对应的长度信息为18。若文本识别结果为固定资产编号,该固定资产编号由数字和字母构成,如A公司0001,其中,固定字符A公司为公司代号(可以是文字、字母、数字等),0001对应某一固定资产的编码,与此对应的,字符串模板的长度为5,字符串模板中第1位为固定字符,后四位对应的数据类型为数字。

利用不同的纠正算法对同一字符进行纠正,获得不一样的纠正结果。以字符串模板为“固定字母A+数字+数字+数字”为例,假设文本识别结果为1A412,此时文本识别结果每个位置的数据类型与字符串模板中数据类型并不是完全对应。从“1A412”中的第一个字符“1”开始纠正,首先,第一个字符“1”为数字,而字符串模板中第一个为固定字符A,若对“1”采用替换算法,则将“1”替换为“A”,获得“AA412”。若采用删除算法,则将“1”删除,得到“A412”。若采用插入算法,则在第一个字符“1”之前插入固定字符“A”,获得“A1A412”。并根据不同纠正算法对应的算法成本值以及历史字符纠正成本计算每一纠正结果对应的纠正成本。

在对文本识别结果中的第一个字符与字符串模板中的第一个位置的字符进行数据类型比较且纠正之后,对文本识别结果中的第一个字符与字符串模板中的第二个位置的字符进行数据类型比较且纠正,以此循环往复,最终获得整个文本识别结果与整个字符串模板的纠正结果,并根据对应的纠正成本,从所有纠正结果中确定目标纠正结果。

需要说明的是,每个字符纠正之后所得到的新字符与字符串中另外的字符组成新的字符串,该新的字符串即为纠正结果。在对字符串中最后一个字符进行纠正且确定目标纠正结果之后,该目标纠正结果为最终输出的纠正文本结果。

另外,若文本识别结果中字符的数据类型与字符串模板中的模板字符的数据类型相同的情况下,不对字符进行纠正;在数据类型不同的情况下,利用不同的纠正算法并按照字符串模板中的每一模板字符对文本识别结果中的字符进行纠正。

S103,根据所述纠正结果以及其对应的文本纠正算法获得每一所述字符对应的纠正成本,基于所述纠正成本从所有纠正结果中确定目标纠正结果。

在本步骤中,纠正成本根据字符的位置信息以及文本纠正算法确定历史纠正成本以及纠正成本新增值。具体纠正成本计算在下文进行具体描述。

在获得所有纠正成本之后将纠正成本最小的纠正结果作为目标纠正结果,该纠正成本最小的纠正结果表明对预测得到的文本识别结果以最小的改动纠正到符合模板格式的结果,其对应的纠正准确率也是最高的。

另外,现有的纠正方法均为模板匹配,若不匹配,则文本识别模型重新识别,输出预测结果。而本方法则是通过删除、插入、替换等方法纠正大部分的文本识别结果,对于少部分无法纠正的文本识别结果,才会进行文本识别模型的重新识别,从而提升了文本识别结果的纠正效率。

字符串模板只限定了每个模板字符对应的数据类型,除了固定字符为确定的字符之后,其他类型的字符均不确定,还是以上述的字符串模板为“固定字母A+数字+数字+数字”为例,若识别结果为A41、A444等,其与字符串模板的数据类型能够匹配上,则此时无法纠正,即模板不匹配,文本识别模型需重新识别。

本发明实施例提供的文本纠正方法,通过基于预设的字符串模板,并利用一种或多种预设的文本纠正算法依次对所述字符串中每一字符进行纠正,获得与所述字符对应的一个或多个纠正结果;根据所述纠正结果以及其对应的文本纠正算法获得每一所述字符对应的纠正成本,基于所述纠正成本从所有纠正结果中确定目标纠正结果,从而能够自动纠正有错误的识别结果,加快纠正效率,提高识别准确率。

在本发明的一些实施例中,所述预设的文本纠正算法为第一纠正算法、第二纠正算法或第三纠正算法中的一种或多种。

所述预设的字符串模板包括模板字符串中每个位置的模板字符对应的数据类型信息。

相应地,所述基于预设的字符串模板,并利用一种或多种预设的文本纠正算法依次对所述字符串中每一字符进行纠正,获得与所述字符对应的一个或多个纠正结果,包括:

根据所述每个模板字符对应的数据类型信息以及当前字符对应的数据类型信息,利用第一纠正算法和/或第二纠正算法和/或第三纠正算法对当前字符进行纠正,获得第一纠正结果和/或第二纠正结果和/或第三纠正结果。即,在当前字符的数据类型与模板字符的数据类型不同的情况下,通过常规的字符纠正算法(比如,替换、删除、插入等)对字符串R中的当前字符(该当前字符为文本识别结果R中第i个位置的字符)进行纠正,从而获得与纠正算法对应的纠正结果。

所述根据所述纠正结果以及其对应的文本纠正算法获得每一所述字符对应的纠正成本,基于所述纠正成本从所有纠正结果中确定目标纠正结果,包括:

根据历史字符纠正成本以及所述第一纠正算法和/或第二纠正算法和/或第三纠正算法所对应的算法成本值,计算得到当前字符对应的第一纠正成本和/或第二纠正成本和/或第三纠正成本。

具体地,不同的文本纠正算法对应的纠正成本计算方式不同,以替换来说,由于是将“R中的第i个字符”替换为“M中的第j个字符”,因而需要获取C[i-1][j-1];而删除是仅涉及到R中的第i个字符,因而仅需要获取C[i-1][j]。

根据所述第一纠正成本和/或第二纠正成本和/或第三纠正成本,从所述第一纠正结果和/或第二纠正结果和/或第三纠正结果中确定成本最低的纠正结果作为目标纠正结果。

在获得多个纠正结果的情况下,将纠正成本最低的纠正结果作为目标纠正结果。在仅有一个纠正结果的情况下,直接将该纠正结果作为目标纠正结果。

在本发明的一些实施例中,所述第一纠正算法为字符替换算法。

相应地,根据预设的字符串模板,利用第一纠正算法对当前字符进行纠正,获得第一纠正结果,包括:

从所述预设的字符串模板和/或相近字符模板库中将与所述当前字符对应的模板字符作为当前模板字符。

利用所述字符替换算法将所述当前字符替换为当前模板字符,形成新的字符串作为第一纠正结果。比如说,若识别结果为AA12,则把A替换为邻近数字字符4,则纠正结果为A412。若识别结果为1412,则把首字符1替换为固定字母A,则纠正结果为A412。

相应地,所述根据历史字符纠正成本以及所述第一纠正算法所对应的算法成本值,计算得到当前字符对应的第一纠正成本,包括:

获取所述字符替换算法对应的替换算法成本值。

其中,所述替换算法成本值包括第一替换算法成本值以及第二替换算法成本值;

在所述当前字符以及所述当前模板字符所对应的数据类型相同的情况下,确定算法成本值为第一替换算法成本值。

在所述当前字符与所述当前模板字符所对应的数据类型不相同的情况下,确定算法成本值为第二替换算法成本值。

获取上一模板字符与上一字符之间的历史纠正成本。

计算替换算法成本值与所述上一模板字符与上一字符之间的历史纠正成本的和,将计算结果作为当前字符与当前模板字符之间的第一纠正成本。

具体地,将字符串R中的第i个字符替换为字符串模板M中的第j个模板字符。

假设字符替换算法对应的替换算法成本值的取值为0或1,当字符串R中的第i个字符与字符串模板M中的第j个模板字符对应的数据类型相同时,替换算法成本值为0;若数据类型不同,则替换算法成本值为1。

在确定替换算法成本值之后,获取上一模板字符与上一字符之间的历史纠正成本C[i-1][j-1],则当前字符与当前模板字符之间的第一纠正成本C1[i][j]=C[i-1][j-1]+const,该const为替换算法成本值,取值根据当前字符与当前模板字符的数据类型确定。

进一步地,在上述实施例的基础上,本发明提出两种替换方式,第一种为根据字符串模板进行替换。

具体地,所述数据类型信息至少包括固定字符类型,即字符串模板中存在固定字符。

相应地,从所述预设的字符串模板中将与所述当前字符对应的模板字符作为当前模板字符,包括:

在所述当前字符的数据类型与所述预设的字符串模板中的模板字符对应的数据类型不相同的情况下,判断模板字符对应的数据类型是否固定字符类型。

也就是对文本识别结果R中的第i个字符与字符串模板M中的第j个模板字符进行数据类型判断,若两者数据类型相同,则忽略第j个模板字符,将第i个字符与第j+1个模板字符进行数据类型判断。若第i个字符与第j个模板字符的数据类型不同,则进一步判断第j个模板字符的数据类型是否为固定字符类型。

在模板字符对应的数据类型为固定字符类型的情况下,将固定字符类型的模板字符作为当前模板字符。即,在第j个模板字符为固定字符时,将该第j个模板字符作为当前模板字符与第i个字符进行替换,从而获得对应的纠正结果。

第二种为根据预设的相近字符模板库进行替换。此处,预设的相近字符模板库根据实际需求构建,其包括了形式上相近的字符,比如说,数字0与字母O,数字4与字母A等等数据类型不同但在形式上相近的字符对。

具体地,从所述相近字符模板库中将与所述当前字符对应的模板字符作为当前模板字符,包括:

在模板字符对应的数据类型不为固定字符类型的情况下,从所述相近字符模板库中获取与所述当前字符对应的相近模板字符作为当前模板字符。比如说,第i个字符的数据类型为字母O,第j个字符的数据类型为数字,两者不同,则从相近字符模板库中获取与字母O对应的数字0,从而完成替换。

本发明实施例提供的文本纠正方法,通过多种替换方法来提升纠正结果的准确性。

在本发明的一些实施例中,所述第二纠正算法为字符删除算法。

相应地,根据预设的字符串模板,利用第二纠正算法对当前字符进行纠正,获得第二纠正结果,包括:

利用字符删除算法对所述当前字符进行删除,获得新的字符串作为第二纠正结果。

相应地,所述根据历史字符纠正成本以及所述第二纠正算法所对应的算法成本值,计算得到当前字符对应的第二纠正成本,包括:

获取所述字符删除算法对应的删除算法成本值。

获取上一字符与当前模板字符之间的历史纠正成本。

计算删除算法成本值与所述上一字符与当前模板字符之间的历史纠正成本的和,将计算结果作为当前字符与当前模板字符之间的第二纠正成本。

具体地,将字符串R中的第i个字符删除,其对应的删除算法成本值为1。

获取上一字符与当前模板字符之间的历史纠正成本C[i-1][j],计算当前字符与当前模板字符之间的第二纠正成本C2[i][j]=C[i-1][j]+1。

在本发明的一些实施例中,所述第二纠正算法为字符插入算法。

相应地,根据预设的字符串模板,利用第三纠正算法对当前字符进行纠正,获得第三纠正结果,包括:

利用字符插入算法将当前模板字符插入至所述当前字符之前,获得新的字符串作为第三纠正结果。比如说,若文本识别结果为412,则把首字符4前面插入固定字母A,则纠正结果为A412。

相应地,所述根据历史字符纠正成本以及所述第三纠正算法所对应的算法成本值,计算得到当前字符对应的第三纠正成本,包括:

获取所述字符插入算法对应的插入算法成本值。

获取当前字符与上一模板字符之间的历史纠正成本。

计算插入算法成本值与所述当前字符与上一模板字符之间的历史纠正成本的和,将计算结果作为当前字符与当前模板字符之间的第三纠正成本。

具体地,在字符串R中的第i个字符的位置前面,插入字符串模板M中的第j个模板字符,其对应的插入算法成本值为1。

获取当前字符与上一模板字符之间的历史纠正成本C[i][j-1],计算当前字符与当前模板字符之间的第三纠正成本C3[i][j]=C[i][j-1]+1。

在本发明的一些实施例中,文本纠正方法包括如下步骤:

获取字符串的长度len(R)以及字符串模板的长度len(M),根据纠正方法以及历史纠正成本计算当前字符(即R中的第i个字符)与当前模板字符(即M中的第j个模板字符)之间的纠正成本C[i][j]:

上式中,C[i-1][j-1]+const为替换对应的纠正成本,C[i-1][j]+1为删除对应的纠正成本,C[i][j-1]+1为插入对应的纠正成本,从中选取最小值作为C[i][j],并根据C[i][j]记录对应的纠正结果S[i][j]。重复上述成本计算以及纠正结果确定过程直到C[len(R)-1][len(M)-1],以实现整个文本识别结果与整个字符串模板之间的纠正,记录每次纠正的结果,并根据纠正结果对应的成本从中确定出成本最小的作为最终的纠正结果。

下面对本发明提供的文本纠正装置进行描述,下文描述的文本纠正装置与上文描述的文本纠正方法可相互对应参照。

图3为本发明实施例提供的文本纠正装置结构示意图,如图3所示,该文本纠正装置包括识别结果获取模块301、纠正模块302以及目标纠正确定模块303。

识别结果获取模块301,用于获取文本识别结果,所述文本识别结果为字符串。

在本模块中,文本识别结果可以是利用神经网络模型对手写文本识别后获得结果,也可以是通过自动语音识别技术识别得到的文本结果,还可以是通过光学字符识别技术识别得到的文本结果。本发明对文本识别结果的获取方式不做限定。

纠正模块302,用于基于预设的字符串模板,并利用一种或多种预设的文本纠正算法依次对所述字符串中每一字符进行纠正,获得与所述字符对应的一个或多个纠正结果。

其中,所述预设的字符串模板包括模板字符串的长度信息以及模板字符串中每个位置的模板字符对应的数据类型信息;所述数据类型信息包括数字类型、字母类型、数字或字母类型以及固定字符类型。上述提到的数字类型、字母类型以及固定字符类型是指某一位置的模板字符对应的数据类型为单一的数字、字母或固定字符,而数字或字母类型则是指某一位置的模板字符对应的数据类型可以是数字也可以是字母,数据类型不唯一。

上述预设的字符串模板根据与文本识别结果对应的需求制定,举例来说,若文本识别结果为身份证号码的识别结果,则预设的字符串模板形式为“数字+数字+数字+数字+数字+数字+数字+数字+数字+数字+数字+数字+数字+数字+数字+数字+数字+数字/字母”,该字符串模板对应的长度信息为18。若文本识别结果为固定资产编号,该固定资产编号由数字和字母构成,如A公司0001,其中,固定字符A公司为公司代号(可以是文字、字母、数字等),0001对应某一固定资产的编码,与此对应的,字符串模板的长度为5,字符串模板中第1位为固定字符,后四位对应的数据类型为数字。

利用不同的纠正算法对同一字符进行纠正,获得不一样的纠正结果。以字符串模板为“固定字母A+数字+数字+数字”为例,假设文本识别结果为1A412,此时文本识别结果每个位置的数据类型与字符串模板中数据类型并不是完全对应。从“1A412”中的第一个字符“1”开始纠正,首先,第一个字符“1”为数字,而字符串模板中第一个为固定字符A,若对“1”采用替换算法,则将“1”替换为“A”,获得“AA412”。若采用删除算法,则将“1”删除,得到“A412”。若采用插入算法,则在第一个字符“1”之前插入固定字符“A”,获得“A1A412”。并根据不同纠正算法对应的算法成本值以及历史字符纠正成本计算每一纠正结果对应的纠正成本。

在对文本识别结果中的第一个字符与字符串模板中的第一个位置的字符进行数据类型比较且纠正之后,对文本识别结果中的第一个字符与字符串模板中的第二个位置的字符进行数据类型比较且纠正,以此循环往复,最终获得整个文本识别结果与整个字符串模板的纠正结果,并根据对应的纠正成本,从所有纠正结果中确定目标纠正结果。

需要说明的是,每个字符纠正之后所得到的新字符与字符串中另外的字符组成新的字符串,该新的字符串即为纠正结果。在对字符串中最后一个字符进行纠正且确定目标纠正结果之后,该目标纠正结果为最终输出的纠正文本结果。

另外,若文本识别结果中字符的数据类型与字符串模板中的模板字符的数据类型相同的情况下,不对字符进行纠正;在数据类型不同的情况下,利用不同的纠正算法并按照字符串模板中的每一模板字符对文本识别结果中的字符进行纠正。

目标纠正确定模块303,用于根据所述纠正结果以及其对应的文本纠正算法获得每一所述字符对应的纠正成本,基于所述纠正成本从所有纠正结果中确定目标纠正结果。

在本模块中,纠正成本根据字符的位置信息以及文本纠正算法确定历史纠正成本以及纠正成本新增值。具体纠正成本计算在下文进行具体描述。

在获得所有纠正成本之后将纠正成本最小的纠正结果作为目标纠正结果,该纠正成本最小的纠正结果表明对预测得到的文本识别结果以最小的改动纠正到符合模板格式的结果,其对应的纠正准确率也是最高的。

另外,现有的纠正方法均为模板匹配,若不匹配,则文本识别模型重新识别,输出预测结果。而本方法则是通过删除、插入、替换等方法纠正大部分的文本识别结果,对于少部分无法纠正的文本识别结果,才会进行文本识别模型的重新识别,从而提升了文本识别结果的纠正效率。

字符串模板只限定了每个模板字符对应的数据类型,除了固定字符为确定的字符之后,其他类型的字符均不确定,还是以上述的字符串模板为“固定字母A+数字+数字+数字”为例,若识别结果为A41、A444等,其与字符串模板的数据类型能够匹配上,则此时无法纠正,即模板不匹配,文本识别模型需重新识别。

本发明实施例提供的文本纠正装置,通过基于预设的字符串模板,并利用一种或多种预设的文本纠正算法依次对所述字符串中每一字符进行纠正,获得与所述字符对应的一个或多个纠正结果;根据所述纠正结果以及其对应的文本纠正算法获得每一所述字符对应的纠正成本,基于所述纠正成本从所有纠正结果中确定目标纠正结果,从而能够自动纠正有错误的识别结果,加快纠正效率,提高识别准确率。

图4为本发明实施例提供的一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行文本纠正方法,所述文本纠正方法,包括:获取文本识别结果,所述文本识别结果为字符串;基于预设的字符串模板,并利用一种或多种预设的文本纠正算法依次对所述字符串中每一字符进行纠正,获得与所述字符对应的一个或多个纠正结果;根据所述纠正结果以及其对应的文本纠正算法获得每一所述字符对应的纠正成本,基于所述纠正成本从所有纠正结果中确定目标纠正结果。

此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行文本纠正方法,所述文本纠正方法,包括:获取文本识别结果,所述文本识别结果为字符串;基于预设的字符串模板,并利用一种或多种预设的文本纠正算法依次对所述字符串中每一字符进行纠正,获得与所述字符对应的一个或多个纠正结果;根据所述纠正结果以及其对应的文本纠正算法获得每一所述字符对应的纠正成本,基于所述纠正成本从所有纠正结果中确定目标纠正结果。

以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

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

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术分类

06120115933926