关于ocr:文本纠错提升OCR任务准确率的方法

3次阅读

共计 6754 个字符,预计需要花费 17 分钟才能阅读完成。

合合信息对于文本纠错:晋升 OCR 工作准确率的办法了解 

摘要:错字率是 OCR 工作中的重要指标,文本纠错须要机器具备人类程度相当的语言理解能力。随着人工智能利用的成熟,越来越多的纠错办法被提出。

近年来深度学习在 OCR 畛域获得了微小的胜利,但 OCR 利用中辨认谬误时有呈现。谬误的辨认后果不仅难以浏览和了解,同时也升高文本的信息价值。

在某些畛域,如医疗行业,辨认谬误可能带来微小的损失。因而如何升高 OCR 工作的错字率受到学术界和工业界的宽泛关注。合合信息通过本文来解说文本纠错技术帮忙更多人解决业务问题。通常文本纠错的流程能够分为谬误文本辨认、候选词生成和候选词排序三个步骤。

文本纠错办法可包含 基于 CTC 解码和应用模型两种形式,上面别离对这两种纠错形式进行介绍。

1.Beam Search

该办法是针对 CTC 解码时的一种优化办法,这是因为当应用贪婪算法进行 CTC 解码时疏忽了一个输入可能对应多种对齐后果,导致在理论利用中错字率会颇高,并且无奈与语言模型联合。因此通过 Beam Search 的办法咱们可能失去 top 最优的门路,后续也能够利用其余信息来进一步优化搜寻后果。

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 过程所导致的后果雷同而门路可能不同的问题,搜寻后果是针对具备雷同后果门路的排序,而不是繁多门路的排序。

1.2 Vanilla Beam S

对于输入是一个大小为 T × (C + 1) 的矩阵,进行解码时在每个工夫步 t,每个 beam-labeling 都会被 t + 1 时刻的所有可能的字符扩大,同时未被扩大前的 beam-labeling 也会被保留下来,这一搜寻过程能够示意为如图 3 所示的树状构造。为防止搜寻门路的指数增长,在每个工夫步仅保留 N 个最佳的 beam-labeling。如果在 t 时刻两个 beam-labeling 相等,则会把二者的概率进行求和,而后删除其中一个来合并二者的门路。在这一过程中能够应用 character-level LM 的先验信息对 beam-labeling 可能的扩大进行打分。也能够引入一个词典,当呈现词汇表外的单词(OOV)时,就能够删除相干的 beam,来保障解码后始终可能失去有意义的后果。

1.3 Word Beam Search[3]

VBS 工作在字符级别,不会从语义级别去判断解码的内容是否合乎规定,而 WBS 办法能够综合前后几个字符的信息来取得以后字符的精确信息,在可能将解码后的单词限度在词典里的同时,还容许单词之间领有任意数量的非单词字符,并且在解码中还能够应用 word-level LM 的先验信息,来晋升对 CTC 解码的准确性。在进行解码时,当 beam-labeling 被标记为单词状态时,应用依据词典事后形成的 prefix-tree,如图 4 所示,来束缚解码的后果始终在词典中,当 beam-labeling 转换为非单词状态时,则不用受 prefix-tree 的束缚进而可能实现非单词字符的解码,beam-labeling 状态的转换受将要扩大字符的影响,如果字符为词典字符(对英文来说词典字符能够定义为英文字母)则其状态为单词状态,字符为非词典字符则为非词典状态。通过 WBS 办法能够进一步升高解码时的错字率。

2. 基于深度模型的文本纠错

针对文本纠错,除了在解码时引入 Beam Search 和 LM 先验常识来升高错字率外,还能够通过深度学习的办法,应用经过训练的纠错模型来辨认和纠正文本中呈现的谬误。

2.1 基于 Seq2Seq 模型的纠错

在 Confusionset-guided Pointer Networks for Chinese Spelling Check[4]文中,提出了应用混同集和门控机制相结合的中文纠错模型,如图 5 所示。纠错模型应用的时 Encoder-Decoder 模式,编码器应用的是 BiLSTM,对中文文本按字符级别进行编码,解码器应用的是 LSTM,在解码器进行解码时,不仅接管上一个 token 的 embedding 的特征向量,还承受通过注意力机制将编码器的文本特色聚合成一个蕴含上下文信息的特征向量,从而达到基于语义信息的文本纠错。在解码器的每个工夫 t 所生成的特征向量,一方面通过线性变换投影到 vocabulary 的向量空间用于生成候选字符,另一方面也会通过一个 Softmax 层形成的门控机制,用于决定以后时刻解码器的输入后果是否间接复制原始的文本字符。此外当门控机制不抉择间接复制时,并且当要预测的字符呈现在事后设定好的混同集中的时候,解码器则会在混同集中抉择候选的字符,而不是在整个词典向量空间中抉择。

2.2 FASPell[5]

尽管通过退出注意力机制 Seq2Seq 模型也能实现基于上下文信息的文本纠错,然而基于混同集进行候选词的结构,很容易在大量数据上过拟合,而且只利用混同集的办法也不够灵便,因为这一阈值是固定的导致字符之间的相似性没有被充分利用。

因此 FASPell 模型提出了基于预训练模型作为候选词生成器,并应用了置信度和类似度相结合的解码器实现不依赖混同集的中文纠错,模型构造如图 6 所示。首先是在 Bert 模型上进行训练(也就是文中说的自降噪编码器 DAE),训练时将谬误的 token 用 mask 代替,为了避免过拟合也会随机对正确的 token 应用 mask。

通过训练编码器生成的候选词后通过一个 Confidence-Similarity Decoder,简略来说就是利用字符的字形和拼音类似度,再联合训练集上给出的置信度散布找出基于二者之间正确和谬误字符的分界线。在测试时不再仅仅依据 Bert 模型所给出的置信度来筛选候选词,而是加上候选字符与原始字符的类似度信息独特决定最终的后果。

FASPell 尽管说该办法比 RNN 构造的纠错网络可能更快、更好的适用性、更加简略和更弱小,少了混同集但同时引入了字形类似度和拼音类似度,并且在解码时,决策边界的抉择也须要依据训练集进行调整,当训练集散布与理论应用时数据的散布不同时决策边界有可能也须要调整,能力获得较为理想的后果。

2.3 基于注意力机制的 Seq2Seq 纠错模型

针对英文的纠错在 Denoising Sequence-to-Sequence Modeling for Removing Spelling Mistakes[6]一文中应用 Bert 的注意力机制代替了 RNN 构造,模型构造如图 7 所示。其中编码器应用了 6 层多头注意力构造,解码器与编码器构造雷同,与 Seq2Seq 解码形式一样,按工夫程序生成纠错后的文本,为了实现这一过程,在解码时应用了 mask 机制,使得解码器在 t 时刻的只能看到 t 时刻之前的信息。

相比 RNN 构造的降噪模型,模型性能有所晋升,因为没有应用预训练模型须要较大的训练集进行训练,而且在文中并没有提及具体的试验细节,编码器的特色是怎么送入解码器中的,文中也没有具体提及。

2.4 Soft-Masked BERT[7]

文中指出因为 Bert 是基于 mask 进行训练的一种无监督模型,导致其只能拟合被 mask 局部的 token 散布,并不能辨认文本中的谬误,因此在纠错算法中个别须要额定的模块指出文本中的谬误,再将谬误的文本 mask 掉再送入 Bert 模型进而失去正确的文本。

而本文提出了一种 soft-masked 机制,送入 Bert 的文本不再被强制 mask 掉而是文本 token 的 embedding 和 MASK token 特色的加权和,如图 8 所示。具体做法是,应用一个 BiLSTM 模型用来判断文本中字符谬误的概率,记为 p,在将文本送入 Bert 中时会对没给 token 的特色示意 e i 与 MASK token 的特色 e mask 依照概率 p 进行加权,公式如下:e i’= p · e mask + (1 − p) · e i

在训练时将文本谬误检测模块和纠错模块放在一起训练,并通过超参数 λ 来均衡两个工作的损失,通过试验验证,λ=0.8 时整个文本纠错模型达到最优,阐明文本谬误检测工作比纠正工作要容易。

应用 soft-masked 机制,通过谬误概率 p 管制文本 token 进入纠错模型中的信息量的形式,防止了文本谬误检测时阈值的设计,毛病是该办法没有应用生成式的计划不太容易解决字符缺失的问题。

2.5 Chunk-Based[8]

鉴于大多数中文纠错模型都是针对具备类似字符形态或发音的文本纠错,对于没有字形类似和语音类似的错别字更正成果则个别,另一方面大部分纠错模型都是以 pipeline 的模式来实现的导致模型难以优化。针对以上毛病在 Chunk-based Chinese Spelling Check with Global Optimization 文中对纠错工作提出了改良,纠错流程如图 9 所示。

本文次要的奉献是扩大了混同集,以前的混同集次要是字形或发音类似的字符组成,而本中应用的混同集中也蕴含了语义相近的词组。另一方面是对于模型的优化办法,是基于句子级别的优化,以往模型只是针对个别字符输入后果的优化,很少思考整个语义上的最优后果。模型中的候选词是依据字形、语音和语义类似度生成的,其中语义类似度是由 FASPell 模型失去。具体做法是将文中定义的编辑间隔、字形类似度、语音类似度、语义级别错字率等特色通过加权求和的形式来生成候选词的 top K。在抉择候选词时,联合 Beam Search 办法思考了句子级别整体最优解的状况。在进行模型优化时应用了 Minimum Error Rate Training (MERT)[9]办法,从而实现了文中所说的针对多特色组合排序的联结优化。
Chunk-based 办法尽管能晋升纠错模型的体现,但仿佛看起来又回到了基于规定进行文本纠错的方向(增加了人为定义的编辑间隔,应用语义相近的词组对混同集进行了扩大),只不过以往基于规定的纠错办法都不可微,各个特色之间的权重设计往往须要依据教训设计,本文则通过一个线性层将这些特色进行了加权,而不须要人为设计最佳的权重参数。


小结

本文针对 OCR 的文本纠错工作进行了简略介绍,分为对针对 CTC 解码时的纠错和应用纠错模型两种形式。前者个别是应用 Beam Search 来搜寻最优的解码门路,并在搜寻过程中引入 LM,应用相干语言的先验信息来进一步升高解码时的错字率,这样做的益处是相比于应用纠错模型的办法,不用引入额定的训练参数,实现起来较为简单,只是受 OCR 模型的限度,存在着性能晋升的下限。

后者则是针对解码后的文本进行纠错,经验了从基于 Seq2Seq 模型应用生成形式进行文本纠错,到应用预训练模型进行文本纠错的转变,纠错能力也有了很大的晋升,显示了出微小的发展潜力。

计划抉择

对于文本纠错,合合信息的了解是:严格来说 Beam Search 只是对 CTC 解码的优化,存在着优化下限(Beam 长度为文本长度,找到全局最优解),只有当与基于统计 LM(n-gram)相结合时才有着肯定的纠错能力,但往往是基于统计信息针对字词的纠错,对于语法和语义的纠错则能力无限。

然而 Beam Search 作为一种优化算法,在 OCR 模型部署时并不会引入额定的参数,计算也不简单,能够说是针对 CTC 解码优化的必备算法。针对中文和英文的不同特点,中文工作抉择 VBS 而英文工作抉择 WBS 较好。至于要不要引入 LM 的先验信息,能够视具体 OCR 工作决定。当有必要应用纠错模型对 OCR 工作进行优化时,最为简略实现形式是 Soft-Masked BERT,不须要额定定义例如字形类似度、语音类似度等参数,并且对中英文都实用。

但和 Chunk-Based 模型、FASPell 模型一样模型主体应用的预训练模型(Bert),纠错形式并不是生成式,模型一个输出 token 对应着一个输入 token,因而难以解决文本缺字和多字的问题。如果 OCR 后果缺字或多字的问题比较严重,优化计划能够将 Bert 模型改成与翻译模型相似的,基于注意力机制的 Seq2Seq 纠错模型。如果想进一步晋升模型的纠错能力,Chunk-Based 模型是种不错的抉择,混同集的应用能够防止大部分常见的字形类似、拼音类似的谬误,只是混同集须要人工制作,编辑间隔也须要人为定义,算是一种基于规定和深度学习相结合的纠错形式。


参考文献:

[1] Hannun A Y ,  Maas A L ,  Jurafsky D , et al. First-Pass Large Vocabulary Continuous Speech Recognition using Bi-Directional Recurrent DNNs[J]. computer science, 2014.
[2] Hwang K ,  Sung W . Character-Level Incremental Speech Recognition with Recurrent Neural Networks[C]// IEEE. IEEE, 2016.
[3] Scheidl H ,  Fiel S ,  Sablatnig R . Word Beam Search: A Connectionist Temporal Classification Decoding Algorithm[C]// 2018 16th International Conference on Frontiers in Handwriting Recognition (ICFHR). 2018.
[4] Wang D ,  Yi T ,  Zhong L . Confusionset-guided Pointer Networks for Chinese Spelling Check[C]// Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics. 2019.
[5] Hong Y ,  Yu X ,  He N , et al. FASPell: A Fast, Adaptable, Simple, Powerful Chinese Spell Checker Based On DAE-Decoder Paradigm[C]// Proceedings of the 5th Workshop on Noisy User-generated Text (W-NUT 2019). 2019.
[6] Roy S . Denoising Sequence-to-Sequence Modeling for Removing Spelling Mistakes[C]// 2019 1st International Conference on Advances in Science, Engineering and Robotics Technology (ICASERT). 2019.
[7] Zhang S ,  Huang H ,  Liu J , et al. Spelling Error Correction with Soft-Masked BERT[J].  2020.
[8] Bao Z ,  Li C ,  Wang R . Chunk-based Chinese Spelling Check with Global Optimization[C]// Findings of the Association for Computational Linguistics: EMNLP 2020. 2020.
[9] Franz Josef Och. Minimum error rate training in statistical machine translation. In Proceedings of the 41st Annual Meeting of the Association for Computational Linguistics, pages 160–167, Sapporo, Japan. Association for Computational Linguistics.2003.  

正文完
 0