点击领取AI产品100元体验金,助力开发者高效工作解决文档难题:
摘要:错字率是OCR任务中的重要指标,文本纠错需要机器具备人类水平相当的语言理解能力。随着人工智能应用的成熟,越来越多的纠错方法被提出。
近年来深度学习在OCR领域取得了巨大的成功,但OCR应用中识别错误时有出现。错误的识别结果不仅难以阅读和理解,同时也降低文本的信息价值。在某些领域,如医疗行业,识别错误可能带来巨大的损失。因此如何降低OCR任务的错字率受到学术界和工业界的广泛关注。合合信息通过本文来讲解文本纠错技术帮助更多人解决业务问题。通常文本纠错的流程可以分为错误文本识别、候选词生成和候选词排序三个步骤。文本纠错方法可包括基于CTC解码和使用模型两种方式,下面分别对这两种纠错方式进行介绍。
1.Beam Search
该方法是针对CTC解码时的一种优化方法,这是由于当使用贪心算法进行CTC解码时忽略了一个输出可能对应多种对齐结果,导致在实际应用中错字率会颇高,并且无法与语言模型结合。因而通过Beam Search的方法我们能够得到top最优的路径,后续也可以利用其他信息来进一步优化搜索结果。

图 1: All paths corresponding to text “a”.
1.1 prefix Beam Search[1]
由于有许多不同的路径在many-to-one map的过程中是相同的,当使用Beam Search时只会选择Top N个路径,这就导致了很多有用的信息被舍弃了,如图1所示,生成“a”路径的概率为0.2·0.4+0.2·0.6+0.8·0.4=0.52,而生成blank的路径概率为0.8·0.6=0.48,当使用最佳路径的搜索方式会倾向于选择blank的路径,而不是整体概率更大的a路径。所以就有了Prefix Beam Search,其基本思想是,在每个t时刻,计算所有当前可能输出的规整字符串(即去除连续重复和blank的字符串)的概率。然后用Beam Search的方法,在每个时刻选取最好的N个路径,从而将每个时间点t上的搜索空间变为常数。在计算最优路径概率时,以t=3时刻,规整字符串为“a”为例,如图2所示。对于t+1时刻的可能情况有6种,可以看出在Prefix Beam Search中将规整后的字符串分为了以blank和非blank结尾的两种情况来计算t+1时刻的概率。通过Prefix Beam Search方法,解决了在many-to-one map过程所导致的结果相同而路径可能不同的问题,搜索结果是针对具有相同结果路径的排序,而不是单一路径的排序。

图 2: The effect of appending a character to paths ending with blank and non-blank.
1.2 Vanilla Beam Search[2]
对于输出是一个大小为 T × (C + 1) 的矩阵,进行解码时在每个时间步t,每个beam-labeling都会被t+1时刻的所有可能的字符扩展,同时未被扩展前的beam-labeling也会被保留下来,这一搜索过程可以表示为如图 3 所示的树状结构。为避免搜索路径的指数增长,在每个时间步仅保留N个最佳的beam-labeling。如果在t时刻两个beam-labeling相等,则会把二者的概率进行求和,然后删除其中一个来合并二者的路径。在这一过程中可以使用character-level LM的先验信息对beam-labeling可能的扩展进行打分。也可以引入一个词典,当出现词汇表外的单词(OOV)时,就可以删除相关的beam,来保证解码后始终能够得到有意义的

本文介绍了OCR文本纠错技术,包括基于CTC解码的优化方法,如BeamSearch、PrefixBeamSearch、VanillaBeamSearch和WordBeamSearch,以及基于深度学习的Seq2Seq模型和预训练模型(如BERT)的应用。这些方法通过错误文本识别、候选词生成和排序降低错字率,提升OCR质量。
最低0.47元/天 解锁文章
481

被折叠的 条评论
为什么被折叠?



