OCR文本纠错思路

文字错误类别:多字 少字 形近字

当前方案

文本纠错思路

简单:

一、构建自定义词典,提高分词正确率。不在词典中,也不是停用词,分成单字的数据极有可能是错字(少部分可能是新词)。错字与前后的词语组成错词 (分词工具:cutword

二、利用字形相似度获取错词的字形最相似词语 参考: https://github.com/tiantian91091317/OCR-Corrector(FASPell采用字符串编辑距离进行计算 )

难点:

  • 字形相似度计算还不够准

  • 错字与前后的词语组成的错词可能不准确

  • 需要不断维护词典

解决的问题

提高检错率

jieba有HMM新词算法,错词无法单独分出来

cutword 词典的一些词 对于 特定领域 可能是错词,需要删除

提高组词正确率

百度 lac 词法分析工具

python 复制代码
# baidu lac

from LAC import LAC

# 装载LAC模型
lac = LAC(mode='lac')

# 单个样本输入,输入为Unicode编码的字符串


text = u"含固书馆学、档案学"

lac_result = lac.run(text)
lac_result
# [['含', '固书馆学', '、', '档案学'], ['v', 'n', 'w', 'n']]

对于部分文本效果不错,但是还有部分文本实体识别粒度太大,比如:

paddlenlp

taskflow.md

容易出现实体识别不出的情况,弃用

python 复制代码
# 批量样本输入, 输入为多个句子组成的list,平均速率更快
texts = [u"LAC是个优秀的分词工具", u"百度是一家高科技公司"]
lac_result = lac.run(texts)


# paddle nlp Taskflow 
from pprint import pprint
from paddlenlp import Taskflow

schema = ['专业名称', '地点', '人名','学校名称','班级名称'] # Define the schema for entity extraction
ie = Taskflow('information_extraction', schema=schema)
sentence = '中外合作办学,新西兰尼尔森马尔佰勤理工学院合作办学'
sentence = '日语、俄语、德语、法语、西班牙语,人校后可参与选拨项目:涉外法治双主学位项目、国际新闻全英文实验班:各语种均有机会进人自标语言国著名高校进行交流学习'
pprint(ie(sentence))

初始思路

目标:通过正确数据对错误数据进行检测与纠正

错字检测+修正:

检测错字:

参考:
kenLM统计语言模型构建与应用
kenlm

  • 将正确数据分词构建词典
    kenlm计算一个句子中连续的n个单词的概率来评估句子结构合法性,kenlm检测错字有两种方法,1.使用招生计划的数据做语料训练模型,让模型对句子合法性打分 2.使用pycorrector kenlm模型,检测错字
    纠正错字:
    参考 https://github.com/shibing624/pycorrector
    检测到的错字在一个词语中,该词任一字都可能是错字。
  • 根据语义编辑距离,找到该错字所在词语与字典中的词最相似的词,如果相似度超出阈值,则替代该词(需要增加形近字字典)
  • 利用正确数据训练一个自然语言处理模型(类bert),不将错字掩盖,预测正确的字,预测字与错字相似度超出阈值,并在词典中,则修正

kenlm

kemlm检错原理:利用 2-gram 、3-gram 语言模型找到错误位置;

利用形近字字表生成候选句(对应上文的使P(O|I)最大的n个 Input);

利用语言困惑度找到得分最低的候选句(对应上文的使P(I)最大的Input)。

使用pycorrector项目加入专有名词字典后(数量大概有几万),检索速度太太太慢。并且训练kenlm模型正确数据不够。所以放弃kenlm.

bert

待正确数据更多后,再训练bert模型

相关推荐
小保CPP2 小时前
OpenCV C++基于极值区域滤波算法的场景文本检测(OCR)
c++·人工智能·opencv·算法·计算机视觉·ocr
白驹_过隙2 小时前
【大模型OCR落地终极排坑:OvisOCR2+vLLM从报错到批量稳定部署全过程】
人工智能·ocr·vllm
蓝创工坊Blue Foundry1 天前
PaddleOCR 本地部署教程:小模型 OCR 如何完成字段提取到 Excel
pdf·自动化·ocr·excel·paddlepaddle·paddle
蓝创工坊Blue Foundry2 天前
个人藏书太多怎么整理?用 OCR 字段提取汇总成电子书目
pdf·ocr·excel·文心一言·paddlepaddle·paddle
小保CPP2 天前
OpenCV C++校正AI模型检测到的文本(OCR)
c++·人工智能·opencv·计算机视觉·ocr
开开心心就好2 天前
Word双击预览图片插件弥补Word功能缺失
人工智能·python·智能手机·ocr·电脑·word·音视频
蓝创工坊Blue Foundry2 天前
扫描件批量转 Excel:先确认要整表还原还是字段汇总
python·pdf·ocr·excel
审小匠OpenCPAi3 天前
审计票据与财报 PDF 怎么识别?通用 OCR、表格结构识别与多模态大模型的精度对比
pdf·ocr·审计
小保CPP3 天前
OpenCV C++基于AI模型的场景文本识别(OCR)
c++·人工智能·opencv·计算机视觉·ocr
蓝创工坊Blue Foundry3 天前
批量提取图片中的数字:怎样整理成一张可核对的 Excel
python·ai·ocr·excel·paddlepaddle