壹沓AI观察:如何基于NLP(BERT)提高OCR精度
光学字符识别(OCR)是一种从扫描的文档中提取数据的技术,目前广泛应用于各类对接传统政务、商务的机器人流程自动化领域,该技术准确性取决于输入图像的质量。壹沓科技认识到OCR在实际的应用中面临的一个重要挑战为:当字符级精度稍微下降时,字级精度下降显著。相关研究表明:当字符级精度达到98%时,OCR技术提取的错误单词将达到10-20%。正如下图所示。
▲Yalniz,Ismet和Manmatha,R.的一种用于自动OCR评估书的快速对齐方案
壹沓科技的认知智能平台CubeCognition正在使用NLP(Natural Language Processing)技术增强OCR的处理精度,可以很大程度解决上述问题。在面向数字机器人(CubeRobot)流程自动化研发和互联网大数据文本挖掘的企业服务和实践的过程中,我们除了借助传统的基于大文本统计词频模型的NLP技术外,也在探索利用最新深度学习成果的方法。本文将介绍国外Statestitle公司的经验,如何在实际场景的文档OCR过程中使用Spell Checker和BERT¹(预训练的NLP模型)来提高OCR的精度。
▲OCR-BERT 管道
BERT(Bidirectional Encoder Representions from Transformers)是Google开发的一种自然语言处理技术,并使用Wikipedia(2.5B个单词+ BookCorpus(800M个单词)对BERT模型进行了训练。该模型可用于各种NLP任务,包括句子预测,句子分类和遗漏单词预测。本文将通过PyTorch使用预训练的BERT模型来纠正OCR技术提取的错误单词。
▲Google BERT目前支持90多种语言
使用BERT提高OCR处理的准确
本文列举一个带有代码的示例。该示例使用python处理扫描的图像并使用OCR和BERT创建文本文档。
A.使用OCR技术处理扫描图像
▲带有错误的单词的OCR输出
B.处理文件并识别不可读的单词
SpellChecker 函数将拼写错误的单词识别出来,并且使用不常见的名称为其打上标记。本文使用nltk的‘词性’标签排除人名来识别该类单词。为了从BERT获得预测,每个不正确的单词都需要替换为[MASK]令牌。最后,将来自SpellChecker的建议替换单词存储在建议单词列表里。
壹沓科技在中文环境的实践中表明这个方式作用于中文的单字效果也是十分显著的。
▲单词不正确的文档被[MASK]替换
C.加载BERT模型并预测替换单词
BERT模型寻找[MASK]令牌,然后根据序列中其他未屏蔽单词提供的上下文,尝试预测被屏蔽单词的原始值。BERT还接受分段嵌入,分段嵌入指的是用于区分多个句子并协助单词预测的向量。例如 “Tom went to store. He bought two gallons of milk.”的段向量可以为 [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1]。
▲BERT 预测
D.使用SpellChecker的建议优化BERT预测
BERT预训练语言模型对于预测被屏蔽单词的多个可行替换非常有用,但是该模型不知道OCR发现的任何字符。我们可以通过SpellChecker的建议单词列表来弥补这种不足,该单词列表包含了OCR输出乱码。与仅依靠BERT相比,将BERT的基于上下文的建议与SpellChecker的基于单词的建议结合起来可以产生更好的预测。
▲最终输出,带有来自BERT和SpellChecker的正确单词的文本
总结
BERT语言模型很好地预测了被屏蔽单词的可行替换。在上面的示例中,当要求预测“conmer”的掩盖值时,模型建议使用“consumer”,“goverment”,“business”作为可行选择,尽管这些建议都有意义,但“consumer ”的输出概率最高。如果没有SpellChecker来增加BERT的结果,我们可能会对屏蔽单词进行错误分类。
本文使用的方法适用于单词而不是数字。如需处理数字的话要使用其它方法(诸如校验和之类的方法)。与单独使用SpellChecker相比,本文还建议使用特定的‘错误/建议’标识。
通过壹沓科技的项目实践,也可以得到类似的结果,在汉字的处理过程中,由于书面文件在字体、污渍、褶皱等原因,给识别精度也造成了一定的挑战,解决此类问题一方面可以采用类似本文提到的OCR后处理纠错的方案,另一方面也可以在OCR处理内部增强,OCR过程中会得到字块所对应汉字的的可选项,一般也是以图形识别的概率排序后输出,如果对于置信度低于一定阈值的字符,通过MASK的方法,同时让BERT根据上下文的关系来预测被掩盖的错误汉字,我们也会同步得到一些来自语义关系的可行选项概率排序表。也就是说前者是通过图像处理的原理得到的可行选项,后者是根据语义关系得到的可行选项,两类选项通过交叉对比,便可以得到更为准确的最终结果。
注:本文案例部分源自
https://www.statestitle.com/resource/using-nlp-bert-to-improve-ocr-accuracy/
作者:Ravi Ilango
关于壹沓科技
壹沓科技成立于2016年11月,聚焦于前沿技术在企业数字化中的应用,我们在自然语言处理-NLP、图像文字识-OCR、知识图谱-KG、大数据挖掘-Data Mining、机器人流程自动化-RPA和业务流程重构及管理-BPR&BPM等领域具备完整的自主研发能力,已获得软件知识产权数十个。
公司核心的业务包括数字机器人产品(矩阵数字机器人-Matrix Robot)和互联网大数据品牌管理(品牌方程-Formula DBM),已经为多个行业数百家企业及政府提供专业解决方案。
总部位于上海 ,在北京、深圳设有分公司, 已获得高新技术企业、双软及专精特新企业等专业认证 。核心团队来自于多家知名上市公司,在企业服务及互联网从业超过10年,拥有大数据、云服务及人工智能领域的丰富经验。
转载请在文章开头和结尾显眼处标注:作者、出处和链接。不按规范转载侵权必究。
未经授权严禁转载,授权事宜请联系作者本人,侵权必究。
本文禁止转载,侵权必究。
授权事宜请至数英微信公众号(ID: digitaling) 后台授权,侵权必究。
评论
评论
推荐评论
暂无评论哦,快来评论一下吧!
全部评论(0条)