文本检错方法、装置、计算机设备和存储介质与流程

文档序号:23800950发布日期:2021-02-02 13:21阅读:93来源:国知局
文本检错方法、装置、计算机设备和存储介质与流程

[0001]
本申请涉及计算机技术领域,特别是涉及一种文本检错方法、装置、计算机设备和存储介质。


背景技术:

[0002]
中文文字中存在大量的形近字和音似字,例如通过拼音输入或者asr(automatic speech recognition,自动语音识别)语音转录得到的文本中经常会存在大量的音似字错误;而通过手写/五笔输入或者ocr识别得到的文本中经常会存在大量的形似字错误。例如“活动推荐”可能会被转录为“活动推建”,“一百项合约”可能会被识别为“一百顶合约”等。同时,由不同形近字或音似字组成的相似实体词在单独来看可能都是一个合理的实体词,只有在特定的语境中才能判断其是否是正确的。因此,对于文本进行检错是非常有必要的。


技术实现要素:

[0003]
基于此,有必要针对上述技术问题,提供一种文本检错方法、装置、计算机设备和存储介质。
[0004]
一种文本检错方法,所述方法包括:
[0005]
获取待识别图片;
[0006]
从所述待识别图片中识别字符,以及确定各所述字符的字符位置信息;
[0007]
根据各所述字符位置信息对各所述字符进行版面复原,得到待检测文本;
[0008]
将所述待检测文本转换为对应的文本向量;
[0009]
将所述文本向量输入通过训练确定的文本检错模型,获取所述文本检错模型输出的所述待检测文本的文本检错结果。
[0010]
一种文本检错装置,所述装置包括:
[0011]
图片获取模块,用于获取待识别图片;
[0012]
字符识别模块,用于从所述待识别图片中识别字符,以及确定各所述字符的字符位置信息;
[0013]
版面复原模块,用于根据各所述字符位置信息对各所述字符进行版面复原,得到待检测文本;
[0014]
向量转换模块,用于将所述待检测文本转换为对应的文本向量;
[0015]
文本检错模块,用于将所述文本向量输入通过训练确定的文本检错模型,获取所述文本检错模型输出的所述待检测文本的文本检错结果。
[0016]
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0017]
获取待识别图片;
[0018]
从所述待识别图片中识别字符,以及确定各所述字符的字符位置信息;
[0019]
根据各所述字符位置信息对各所述字符进行版面复原,得到待检测文本;
[0020]
将所述待检测文本转换为对应的文本向量;
[0021]
将所述文本向量输入通过训练确定的文本检错模型,获取所述文本检错模型输出的所述待检测文本的文本检错结果。
[0022]
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
[0023]
获取待识别图片;
[0024]
从所述待识别图片中识别字符,以及确定各所述字符的字符位置信息;
[0025]
根据各所述字符位置信息对各所述字符进行版面复原,得到待检测文本;
[0026]
将所述待检测文本转换为对应的文本向量;
[0027]
将所述文本向量输入通过训练确定的文本检错模型,获取所述文本检错模型输出的所述待检测文本的文本检错结果。
[0028]
上述文本检错方法、装置、计算机设备和存储介质,在获取到待识别图片之后,从其中识别字符,并确定各字符的字符位置,然后根据字符位置对字符识别的结果进行版面复原,得到待检测文本;对待检测文本进行向量化操作,得到对应的待检测的文本向量,将文本向量输入到训练好的文本检错模型中,获取模型输出的待检测文本的文本检错结果。上述方法在对图片进行字符识别之后,基于字符的位置对字符进行版面复原,得到待检测的文本,然后对待检测文本进行向量化,基于向量化结果和文本检错模型确定待检测文本的文本检错结果;经过版面复原得到的待检测文本更加符合应用场景,有利于提高文本检错的准确率。
附图说明
[0029]
图1为一个实施例中文本检错方法的应用环境图;
[0030]
图2为一个实施例中文本检错方法的流程示意图;
[0031]
图3为一个实施例中获取待检测文本的流程示意图;
[0032]
图4为一个具体实施例中crf对待检测文本输出的序列标签的示意图;
[0033]
图5为一个实施例中bert序列标注模型的训练过程;
[0034]
图6为一个具体实施例中bert模型的结构示意图;
[0035]
图7为另一个实施例中文本检错方法的流程示意图;
[0036]
图8为一个具体实施例中bert-crf模型的结构图;
[0037]
图9为一个实施例中文本检错装置的结构框图;
[0038]
图10为另一个实施例中文本检错装置的结构框图;
[0039]
图11为一个实施例中计算机设备的内部结构图。
具体实施方式
[0040]
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0041]
为了下述各实施例的描述清楚简洁,首先给出相关技术的简要介绍:
[0042]
人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控
制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
[0043]
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
[0044]
机器学习(machine learning,ml)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
[0045]
nlp(natural language processing,自然语言处理)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。
[0046]
asr(automatic speech recognition,语音识别技术),是将人类的语音中的词汇内容转换为计算机可读的输入,例如按键、二进制编码或者字符序列。
[0047]
云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
[0048]
作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为iaas(infrastructure as a service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
[0049]
按照逻辑功能划分,在iaas(infrastructure as a service,基础设施即服务)层上可以部署paas(platform as a service,平台即服务)层,paas层之上再部署saas(software as a service,软件即服务)层,也可以直接将saas部署在iaas上。paas为软件运行的平台,如数据库、web容器等。saas为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,saas和paas相对于iaas是上层。
[0050]
本申请提供的文本检错方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与终端104进行通信。终端104在获取到待识别图片之后,从其中识别字符,并确定各字符的字符位置,然后根据字符位置对字符识别的结果进行版面复原,得到待检测文本;对待检测文本进行向量化操作,得到对应的待检测的文本向量,将文本向量输入到训练好的文本检错模型中,获取模型输出的待检测文本的文本检错结果。在一些实施例中,待检测文本可以是从终端102获取的图片中提取得到。在另一些实施例中,待检测文本也可以直接从数据库中获取的文本。
[0051]
本申请的实施例中所涉及的终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。本申请的实施例中所涉及的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
[0052]
在一个实施例中,如图2所示,提供了一种文本检错方法,以该方法应用于图1中的服务器为例进行说明,包括步骤s210至步骤s240。
[0053]
步骤s210,获取待识别图片。
[0054]
其中,待识别图片是指需要进行字符识别的图片。
[0055]
步骤s220,从待识别图片中识别字符,以及确定各字符的字符位置信息。
[0056]
从待识别图片中识别字符是指识别待检测图片中包含的文字,并将识别结果作为输出结果输出;识别图片中的字符可以通过任意一种方式实现;如ocr是一种常用的图片转字符的方法,ocr(optical character recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;即,针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并通过识别软件将图像中的文字转换成文本格式,供文字处理软件进一步编辑加工的技术。在一个实施例中,通过ocr技术从待识别图片中识别字符,以及确定各字符的字符位置信息。在另一个实施例中,也可以通过图像识别技术从待识别图片中识别各字符以及各字符所在位置并输出。
[0057]
步骤s230,根据各字符位置信息对各字符进行版面复原,得到待检测文本。
[0058]
版面复原实际上是指将识别得到的字符按照其在待识别图片中的位置进行还原,进而可以确定各字符之间的关联关系,进而根据关联关系将各字符组合之后得到的结果作为待检测文本。
[0059]
在一个实施例中,根据各字符位置信息对各字符进行版面复原包括:结合待识别图片的版面信息,将属于同一目标的字符确定为同一待检测文本。在一个实施例中,版面信息包括图片中的表格线,分隔符等等;以表格线为例,结合待识别图片中识别出的表格线,将属于同一表格中的文字或字符组合为同一待检测文本。在其它实施例中,也可以根据其它方式结合版面信息将属于同一目标的字符确定为同一待检测文本。
[0060]
在一个实施例中,如图3所示,根据各字符位置信息对各字符进行版面复原,得到待检测文本,包括步骤s231和步骤s232。
[0061]
步骤s231,根据各字符位置信息确定两两字符之间的位置关系。
[0062]
在一个实施例中,字符位置信息包括各字符检测框的顶点在预设坐标系中的位置坐标;其中,预设坐标系可根据实际情况进行定义,例如可在待识别图片的固定位置(左上角或者左下角等)为原点定义预设坐标系。
[0063]
在从待识别图片中确定各字符的字符位置之后,将字符位置进行比对,可确定两两字符之间的位置关系;字符之间的位置关系包括字符与字符之间的距离,字符与字符是否处于同一行,字符与字符是否相邻,等等。在一个具体的实施例中,可根据字符的位置坐标确定字符边框,根据边框的位置确定两两字符之间的距离、是否相邻、是否处于同一行等
等位置关系;或者也可根据字符的位置坐标确定字符中心坐标,进而根据字符中心坐标确定两两字符之间的距离、是否相邻、是否处于同一行等等位置关系;其中,可将字符边框、字符中心之间的距离小于一定阈值时认为字符相邻。
[0064]
步骤s232,基于两两字符之间的位置关系,依次将相邻的字符组合得到待检测文本。
[0065]
本实施例中,结合上一步确定的两两字符的位置关系可得到相邻的字符,依次将相邻字符组合在一起得到待检测文本。
[0066]
在另一个实施例中,还可以结合对待识别图片进行识别的结果对各字符进行版面复原,例如结合识别结果中的线条等识别结果确定字符是否属于同一文本,将属于同一文本的字符依次组合得到待检测文本。
[0067]
本实施例中,结合字符的位置信息确定各字符之间的位置关系,进而依次将相邻的字符组合在一起得到待检测文本,在对文本进行检错时,可提高文本检错的准确率。
[0068]
例如在一个具体实施例中,在医学检测报告中,可能由于排版问题,属于同一项内容的检测结果被分割成位于不同行,此时如果根据字符判断是否相邻等方式将字符进行组合来得到待检测文本,很有可能将同一检测结果确定为多个待检测文本,而这样的待检测文本不利于文本检错;因此在本实施例中结合待识别图片中各字符的位置对字符进行版面复原,得到待检测文本,可以尽量将一句话或者一个词语作为同一个待检测文本。
[0069]
本实施例中,对待识别图片进行文字识别,提取出其中的文字并将其作为待检测文本,后续对待检测文本进行文本检错,以确定从待识别图片中识别得到的文本是否出现识别错误,若检测出文本出错可进行提示,如此可提高对待识别文本的图片识别的识别准确率。
[0070]
待检测文本是指需要进行文本检错的文本。在本实施例中,待检测文本是获取对图片进行文字识别得到的图片中的文字作为待检测文本。在一个实施例中,待检测文本中各字符为中文字符。
[0071]
步骤s240,将待检测文本转换为对应的文本向量。
[0072]
文本向量是将文本进行向量化得到的向量,在一个实施例中,将待检测文本转换为对应的文本向量。包括:对待检测文本进行文本向量化,得到待检测文本的字向量、片段向量以及位置向量。其中,待检测文本的字向量包括待检测文本中各字符分别对应的向量;片段向量是指待检测文本中各字符在待检测文本中所对应的片段向量;位置向量标识待检测文本中各字符在待检测文本中的顺序,例如字符处于待检测文本中的第几位。在一个具体实施例中,待检测文本的片段向量与待检测文本的字向量等同。
[0073]
在一个实施例中,将待检测文本进行文本向量化得到文本向量可通过embedding模型实现;其中,embedding是一个将离散变量转为连续向量表示的一个方式。
[0074]
步骤s250,将文本向量输入通过训练确定的文本检错模型,获取文本检错模型输出的待检测文本的文本检错结果。
[0075]
其中,文本检错模型是通过预先训练确定的,用于对输入的待检测文本进行文本的检错。
[0076]
在一个实施例中,文本检错模型包括bert序列标注模型;在本实施例中,将文本向量输入通过训练确定的文本检错模型,获取文本检错模型输出的待检测文本的文本检错结
果,包括:将文本向量输入通过训练确定的bert序列标注模型,获取bert序列标注模型输出的待检测文本的序列标注结果;根据序列标注结果确定待检测文本的文本检错结果。
[0077]
其中,bert(bidirectional encoder representations from transformers,来自变换器的双向编码器表征量)模型,是一种语言模型(语言模型指根据语言客观事实而进行的语言抽象数学建模,是一种对应关系)。序列标注的目的是根据输入的一组序列,输出另一组与输入对应的序列标注。
[0078]
本实施例中,序列标注模型是通过预先训练确定的,用于对输入的文本向量进行标注,输出文本向量对应的序列标注结果,也即待检测文本的序列标注结果。
[0079]
在一个实施例中,待检测文本的序列标注包括待检测文本中各字符是否为正确的字符的标注结果;在一个具体实施例中,通过crf实现序列标注,crf(conditional random fields,条件随机场),是给定一组输入序列条件下另一组输出序列的条件概率分布模型,crf接收一个输入序列如x=(x1,x2,

,x
n
),并且输出目标序列y=(y1,y2,

,y
n
);在检错任务中,crf的输入序列为一串文本,输出序列就是相应的是否错误点的标签序列。在其它实施例中,也可以通过其它方式实现序列标注。
[0080]
在得到模型输出的序列标注结果之后,根据序列标注结果可以确定待检测文本中是否出现有错误的字符,即文本检错结果;可以理解地,若序列标注结果中所有字符的标注结果均表示字符为正确的字符,那么确定待检测文本的文本检错结果为没有错误的字符;若序列标注结果中出现表示字符为错误字符的标注结果,则输出待检测文本的文本检测结果为出现错误字符,以及错误字符在待检测文本中的位置。例如在一个具体实施例中,待检测文本为“一百顶合约”,输出对应的序列标注结果为“ooeoo”,其中,o为表示字符正确的标识,e为表示字符错误的标识,如图4所示为一个具体实施例中,crf对待检测文本输出的序列标签的示意图;根据这一序列标注结果可以得到待检测文本的文本检错结果包括:待检测文本中第三个字符为错误字符。在其它实施例中,也可以通过其它方式实现根据序列标注结果确定待检测文本的文本检错结果。
[0081]
上述文本检错方法,在获取到待识别图片之后,从其中识别字符,并确定各字符的字符位置,然后根据字符位置对字符识别的结果进行版面复原,得到待检测文本;对待检测文本进行向量化操作,得到对应的待检测的文本向量,将文本向量输入到训练好的文本检错模型中,获取模型输出的待检测文本的文本检错结果。上述方法在对图片进行字符识别之后,基于字符的位置对字符进行版面复原,得到待检测的文本,然后对待检测文本进行向量化,基于向量化结果和文本检错模型确定待检测文本的文本检错结果;经过版面复原得到的待检测文本更加符合应用场景,有利于提高文本检错的准确率。
[0082]
进一步地,在一个实施例中,如图5所示,bert序列标注模型的训练过程包括步骤s510至步骤s530。
[0083]
步骤s510,获取样本文本以及样本文本对应的样本序列标签;其中,样本文本包含错误占比低于预设占比阈值的语句。
[0084]
在一个实施例中,获取样本文本以及样本文本对应的序列标签包括:收集已有语句,对各已有语句计算错误占比,在一个具体实施例中,计算错误占比包括计算各已有语句中出现的错误字符数量与对应语句中字符的总数量的比值,过滤掉错误占比大于预设占比阈值的已有语句,剩下的已有语句作为样本文本;对样本文本进行字符正确与错误的标注,
将一个样本文本中各字符的标注合并得到该样本文本对应的样本序列标签。其中,预设占比阈值可以根据实际情况进行设置。
[0085]
在一个具体实施例中,样本文本以及样本文本对应的样本序列标签如:
[0086][0087]
其中,样本序列标签的长度与样本文本的长度相同,由o和e组成。e(error)代表当前位置对应的字符是一个错误字符,o(other)代表当前位置的字符是正确的。
[0088]
步骤s520,将样本文本转换为对应的样本文本向量。
[0089]
对样本文本进行文本向量化,得到各样本文本对应的样本文本向量;在一个实施例中,样本文本向量包括字向量、片段向量以及位置向量。其中,样本文本的字向量包括样本文本中各字符分别对应的向量;片段向量是指样本文本中各字符在样本文本中所对应的片段向量;位置向量标识样本文本中各字符在样本文本中的顺序,例如字符处于样本文本中的第几位。在一个具体实施例中,样本文本的片段向量与样本文本的字向量等同。
[0090]
步骤s530,基于样本文本向量和样本标签序列对预训练模型进行训练,得到序列标注模型。
[0091]
其中,基于样本文本向量和样本标签序列对预训练模型进行训练可以通过任意一种可以实现的方式完成。训练结束后得到的模型记为本实施例中的序列标注模型。
[0092]
其中,预训练模型为基础模型,在预训练模型的基础上,基于样本文本向量和样本标签序列进行训练,可得到用于对输入的文本向量进行序列标注的模型,即序列标注模型。在一个实施例中,在基于样本文本向量和样本标签序列对预训练模型进行训练之前,还包括:获取预设模型;将预设模型中的softmax层替换为crf层得到预训练模型。
[0093]
在一个具体实施例中,序列标注模型采用的是bert模型。其中,bert是双向transformer(变换器)的encoder(编码器);模型的主要创新点在于pre-train方法上,即用了masked lm和next sentence prediction两种方法分别捕捉词语和句子级别的representation(表现),联合调节所有层中的双向transformer来预训练双向深度表示(embedding)。
[0094]
如图6所示为一个具体实施例中bert模型的结构示意图,其中的e1~en表示输入量,t1~tn表示输出结果。
[0095]
在一个实施例中,如图7所示,在获取文本检错模型输出的待检测文本的文本检错结果之后,还包括步骤s710至步骤s730。
[0096]
步骤s710,若根据文本检错结果确定待检测文本中包含错误字符,获取与待检测文本对应的正确语句候选文本。
[0097]
在上述实施例中已经确定待检测文本的文本检错结果中将会给出待检测文本中是否出现错误字符,在本实施例中,确定待检测文本中出现错误字符之后,将会通过一些方法获取待检测文本对应的有可能为正确文本的候选语句文本,记为正确语句候选文本。
[0098]
在一个实施例中,获取与待检测文本对应的正确语句候选文本可以通过预设语料库结合词频统计的方法实现,通过在预设语料库中进行匹配,例如可以在预设语料库中对错误字符进行形近字匹配、音近字匹配,得到错误字符对应的候选字符,进而得到正确语句候选文本。在另一个实施例中,利用n-gram模型(有时也称为n元模型)获得待检测文本对应的正确语句候选文本。在另一个实施例中,可以通过多种方式分别进行获取待检测文本对应的正确语句候选文本。在其它实施例中,也可以通过其它方式实现获取待检测文本对应的正确语句候选文本。
[0099]
步骤s720,从正确语句候选文本中筛选出待检测文本的正确文本。
[0100]
通过正确语句候选文本包括多条候选文本,需要从其中筛选出最有可能是正确文本的候选文本,因此,在本实施例中,通过对正确语句候选文本进行筛选,以得到正确的文本。
[0101]
在一个实施例中,从正确语句候选文本中筛选出待检测文本的正确文本包括:分别对各正确语句候选文本进行得分计算,将得分值最高的正确语句候选文本确定为正确文本。在其中的一个实施例中,对各正确语句候选文本计算得分可通过n-gram模型实现。在一个具体实施例中,将待检测文本输入训练好的n-gram模型,获得待检测文本对应的正确语句候选文本,以及各正确语句候选文本对应的得分值。其中,n-gram是一种基于统计语言模型的算法。它的基本思想是将文本里面的内容按照字节进行大小为n的滑动窗口操作,形成了长度是n的字节片段序列。
[0102]
步骤s730,用正确文本替换待检测文本,得到纠正后文本。
[0103]
在得到正确文本之后,用正确文本替换待检测文本进行输出,即得到经过字符纠错的文本,在本实施例中记为纠正后文本。
[0104]
在上述实施例中,在得到待检测文本对应的文本检错结果之后,还基于文本检错结果对出现错误的待检测文本进行字符纠错,最终可得到纠错后的正确文本。
[0105]
本申请还提供一种应用场景,该应用场景应用上述的文本检错方法。具体地,该文本检错方法在该应用场景的应用如下,在该应用场景中,待检测文本为从票据图片中通过ocr识别得到的文字文本:
[0106]

获取待检测文本,依据票据版面信息(上述待识别图片)及待检测文本各字符位置信息进行文本语句的组合和复原。
[0107]

利用标注好的错误文本与错误点标注序列数据来训练bert-crf模型。
[0108]
其中,bert-crf模型的训练包括:收集已获得文本中存在错误的语句,去除错误语句与正确语句差别太大的样本,例如错误占比大于50%的样本;获取对筛选出的错误语句进行标注得到的样本文本对应的样本标签序列;序列长度与错误语句长度相同,由o和e组成。
[0109]
在一个具体实施例中,crf对应的参数化形式为:
[0110][0111]
其中,z(x)为规范因子:
[0112][0113]
在linear-crf中,特征函数分为两类,第一类是定义在y节点上的节点特征函数,这类特征函数只和当前节点有关,记为:s
l
(y
i
,x,i),l=1,2,...l;
[0114]
其中,l是定义在该节点的节点特征函数的总个数,i是当前节点在序列的位置。
[0115]
第二类是定义在y上下文的局部特征函数,这类特征函数只和当前节点和上一个节点有关,记为:t
k
(y
i-1
,y
i
,x,i),k=1,2,...k;
[0116]
其中,k是定义在该节点的局部特征函数的总个数,i是当前节点在序列的位置。无论是节点特征函数还是局部特征函数,它们的取值只能是0或者1。即满足特征条件或者不满足特征条件。同时,可以为每个特征函数赋予一个权值,用以表达对这个特征函数的信任度。假设t
k
的权重系数是λ
k
,s
l
的权重系数是μ
l
,则linear-crf由所有的t
k
,λ
k
,s
l
,μ
l
共同决定。
[0117]
在bert预训练模型的基础上,利用原始文本与序列标签之间的对应关系,来fine-tune(微调)出标注模型。标注时,将原始的softmax层替换为crf层,对输入文本的进行序列标注,输出文本中每个字符对应的标签。如图8所示为一个具体实施例中bert-crf模型的结构图。
[0118]

将版面复原得到的待检测文本输入步骤

得到的检错模型进行错误点检测,输出待检测文本对应的标注序列。
[0119]
将待检测文本输入到系统中,然后通过已加载的embedding模型找到输入语句中每个文本对应的embedding向量,即待检测文本的文本向量,作为训练好的bert-crf模型的输入;加载训练好的bert-crf模型,针对输入的embedding向量,根据其网络结构,前向计算最终每个文本对应的权重,获得最终检错的序列标签。
[0120]

对检测到的错误点进行文本纠错,输出正确语句候选项;可通过n-gram模型实现。
[0121]

选取候选正确语句中得分最高的文本作为最终纠正后的文本输出。
[0122]

输出原始文本对应的正确文本。
[0123]
上述文本检错方法,可自定义文本领域,灵活高效,通过少量该领域标注样本的fine-tune预训练模型,可以快速获得针对该领域的有效的文本检错模型。结合了基于crf的文本转移信息,对复杂的文本错误类型有很好的效果,弥补了单纯文本共现概率的缺陷。由于采用了bert模型,结合了深层的语义信息探索,对远距离的文本语义依存有很好的抓取,通过语义提高了检错的准确率,使文本检错结果更加合理可靠。
[0124]
将上述文本检错方法应用于票据中识别得到的文字时,存在以下特点:不同行业的票据,不同类型的票据页面版式往往不同,从而使得ocr得到的错误文本类型多样,但绝大多数的票据在信息的表示上存在共性,主要体现相同的错误类型以及错误字符多次重复出现;上述方法以bert模型为基础结合crf技术,结合了基于crf的文本转移信息,对复杂的文本错误类型有很好的效果,弥补了单纯文本共现概率的缺陷;bert模型结合深层的语义信息探索,对远距离的文本语义依存有很好的抓取,通过语义提高了检错的准确率,使文本检错结果更加合理可靠。票据信息相关的错误点与票据版式(及空间位置)信息,以及票据
非文本信息(例如表格线,分隔符等)密切相关,上述方法在ocr识别得到文字之后,结合票据(待识别图片)的版面信息对识别的文字进行复原,将复原得到的文字作为待检测文本,可以得到更为完整的待检测文本,在后续通过bert-crf模型进行文本检错,可以挖掘得到更加丰富的文本信息,利用输入文本是一个整体的有序序列,从而更有效的识别出错误的文本。
[0125]
本申请还提供一种应用场景,该应用场景下通过对语音进行语音识别得到待检测文本,进而对待检测文本进行文本检错。不同场景和不同领域的文本错误类型相差较大,例如ocr识别的文本形近字错误较多,asr获得的文本音近字错误较多,本申请中的文本检错方法可根据不同场景的样本训练得到对应的模型,不同场景的模型有针对性的进行检错,可提高文本检错的准确性。
[0126]
应该理解的是,虽然图2-7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-7中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0127]
在一个实施例中,如图9所示,提供了一种文本检错装置,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:图片获取模块910、字符识别模块920、版面复原模块930、向量转换模块940和文本检错模块950,其中:
[0128]
图片获取模块910,用于获取待识别图片;
[0129]
字符识别模块920,用于从所述待识别图片中识别字符,以及确定各所述字符的字符位置信息;
[0130]
版面复原模块930,用于根据各所述字符位置信息对各所述字符进行版面复原,得到待检测文本;
[0131]
向量转换模块940,用于将待检测文本转换为对应的文本向量;
[0132]
文本检错模块950,用于将文本向量输入通过训练确定的文本检错模型,获取所述文本检错模型输出的所述待检测文本的文本检错结果。
[0133]
上述文本检错装置,在获取到待识别图片之后,从其中识别字符,并确定各字符的字符位置,然后根据字符位置对字符识别的结果进行版面复原,得到待检测文本;对待检测文本进行向量化操作,得到对应的待检测的文本向量,将文本向量输入到训练好的文本检错模型中,获取模型输出的待检测文本的文本检错结果。上述装置在对图片进行字符识别之后,基于字符的位置对字符进行版面复原,得到待检测的文本,然后对待检测文本进行向量化,基于向量化结果和文本检错模型确定待检测文本的文本检错结果;经过版面复原得到的待检测文本更加符合应用场景,有利于提高文本检错的准确率。
[0134]
在一个实施例中,如图10所示,上述文本检错装置还包括:
[0135]
候选文本获取模块1010,用于若根据文本检错结果确定待检测文本中包含错误字符,获取与待检测文本对应的正确语句候选文本。
[0136]
筛选模块1020,用于从正确语句候选文本中筛选出待检测文本的正确文本。
[0137]
文本替换模块1030,用于利用正确文本替换所述待检测文本,得到纠正后文本。
[0138]
在一个实施例中,文本检错模型包括bert序列标注模型;文本检错模块950,包括:序列标注单元,用于将文本向量输入通过训练确定的bert序列标注模型,获取所述bert序列标注模型输出的所述待检测文本的序列标注结果;上述文本检错模块具体用于根据所述序列标注结果确定所述待检测文本的文本检错结果。
[0139]
在一个实施例中,上述装置还包括模型训练模块,包括:样本获取单元,用于获取样本文本以及样本文本对应的样本序列标签;其中,样本文本包含错误占比低于预设占比阈值的语句;向量化单元,用于将样本文本转换为对应的样本文本向量;训练单元,用于基于样本文本向量和样本标签序列对预训练模型进行训练,得到bert序列标注模型。
[0140]
进一步地,在一个实施例中,上述装置还包括:预设模型获取单元,用于获取预设模型;替换单元,用于将预设模型中的softmax层替换为crf层得到预训练模型。
[0141]
关于文本检错装置的具体限定可以参见上文中对于文本检错方法的限定,在此不再赘述。上述文本检错装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0142]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、运营商网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种文本检错方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0143]
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0144]
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
[0145]
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
[0146]
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
[0147]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可
包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
[0148]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0149]
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1