赞
踩
语音识别(ASR AutomaticSpeechRecognition):谐音(眼镜->眼睛)、混淆音(流浪->牛郎)、方言
形近字:OCR|五笔|手写|拼音(伍拾元->伍抬元,高粱->高梁)
拼音全拼:shanghai->上海
拼音缩写:sh->上海
拼音错误:咳数(ke shu)—> ke sou
字词顺序颠倒
字词补全
语法错误
口语化:呃嗯啊
分析场景错误类型很重要,比如在某比赛中常见错误可以归为4类:多词、缺词、错词、词序
错误识别
生成纠正候选(召回率的保证):近音字、近形字
评价纠正候选(排序选择最可能的候选,当比原句优秀时才做纠错):计算句子概率
OCR纠错可利用的信息:
1、单个字符的置信度
2、笔画相似性
3、如为固定样式的票据、表格,可使用固定字段关键词表
4、语言模型
5、分词
6、领域词表
安装:pip3 install pycorrector
第一次import这个包,约需要4分钟自动下载模型
- import pycorrector
- corrected_sent, detail = pycorrector.correct('少先队员因该为老人让坐')
- print(corrected_sent, detail) # 少先队员应该为老人让座 [['因该', '应该', 4, 6], ['坐', '座', 10, 11]]
- idx_errors = pycorrector.detect('少先队员因该为老人让坐')
- print(idx_errors) # [['因该', 4, 6, 'word'], ['坐', 10, 11, 'char']]
利用原始CTC是贪心算法的特点,设计策略,使路径更合理。也可利用词汇的字典,约束搜索空间。包含
prefix Beam Search:
Vanilla Beam Search:前两种Beam search看起来差不多???都是取每个时间段的topN,用合并的概率,而不是单一路径的概率
Word Beam Search:基于词典树进行约束
合合信息对这些beam search方法的介绍如下,结论是“中文任务选择VBS而英文任务选择WBS较好。至于要不要引入LM的先验信息,可以视具体OCR任务决定”。实际中,beam search效果上限由ocr模型决定,比如我遇到的一个模型,最后输出的每个字符的概率基本都是0.99,也就是说错误字符的概率score都很高。
【技术新趋势】合合信息:文本纠错提升OCR任务准确率的方法_合合技术团队的博客-CSDN博客
根据汉字左上、右上、左下、右下的四个角的笔形,转化为4-5位的阿拉伯数字编码
缺陷:由于编码空间较小,有些差异性很大的汉字,拥有同样或类似的编码,如量、日编码均为6010。
有多种划分粒度,注意不同库的区别
对英文场景比较适用
文本为w1w2w3w4w5w6...wn的概率为:
由于上面的概率公式参数复杂,对其进行简化,做了一个假设:假设出现的概率只前面N-1个词相关
将P(wt|w1w2w3w4...wt-1)简化为P(wn|wt-n...wt-1)
阿里巴巴Alibaba at IJCNLP-2017 Task 1: Embedding Grammatical Features into LSTMs for Chinese Grammatical Error Diagnosis Task
Chinese Grammatical Error Diagnosis using Statistical and Prior Knowledge driven Features with Probabilistic Ensemble Enhancement
可以定位错误位置及类别,不能纠错。BIO标注,B表示错误的开始,I 表示错误的内部,O表示错误的外部,S代表用词错误这一语法错误类别。
本质上是把命名实体识别(Named Entity Recognition,NER)技术迁移过来了,学术上NER所涉及的命名实体一般包括3大类(实体类,时间类,数字类)和7小类(人名、地名、组织机构名、时间、日期、货币、百分比)。
标注需求:标注错误位置及类型
推荐阅读:中文语法纠错论文解读(一)_旺旺棒棒冰的博客-CSDN博客
标注需求:标注(错误句子-正确句子)样本对
问题:误纠率高
可看下文中对Confusionset-guided Pointer Networks for Chinese Spelling Check、Denoising Sequence-to-Sequence Modeling for Removing Spelling Mistakes的介绍
【技术新趋势】合合信息:文本纠错提升OCR任务准确率的方法_合合技术团队的博客-CSDN博客
利用mask位置的上下文来预测当前位置最合适的字,即在每个位置做N类预测。假设容错阈值参数为5,则在Top5中有原来的字,就认为该位置不是错字不纠错。
缺陷:缺乏约束条件,易误纠。如今天识别成金天,但bert不知道该纠成今天还是明天。缺字多字无法处理。
优化方法:
1、增加约束条件,缩小预测范围
2、使用类似领域的模型,在此基础上微调(迁移)
Soft-Masked BERT:文本纠错与BERT的最新结合 - 知乎
在soft-masked bert中,用一个BiLSTM模型用来判别文本中字符错误的概率,即用一个模型来决定哪里需要mask(哪里有错误)
encoder(基于波尔图进行错误检测+错误纠正,预测每个位置的topN)+decoder(基于笔画相似性和拼音相似性对候选进行排序)
为形成对垂直领域更强对拟合度,不采用bert的随机mask,而是人工mask。
用字符串表征一个字的笔画,如下图每一列分别描述了一个字的编码、字符、发音(声母韵母声调,包含汉语、粤语、日语、韩语、越南语,多音字用‘,’分开,当某个语言没有某个字的发音时用null占位)、笔画(字的结构+每一笔,是左右结构的意思)
具体相似性的计算见代码库中的脚本char_sim.py,大致流程为
1、计算lanugages或ids编码的编辑距离
2、归一化,编辑距离/两个字符最大的字符发音或笔画编码长度,这时计算的是差异性
3、相似性=1-差异性,对拼音相似性来说需要计算几种语音相似性的平均值
4、对发音和笔画相似性加权求和,得到整体相似性
这个方法擅长应对拼音、手写、ocr引入的具体某个字符错误,不能解决多字少字的问题(需要seq2seq)。
Chunk-based Chinese Spelling Check with Global Optimization
同时结合语音语义字形
nlp多种应用的汇总
4位或5位4角码、结构、发音、笔画 库
GitHub - contr4l/SimilarCharacter: 对常用的6700个汉字进行音、形比较,输出音近字、形近字的列表。 # 相近字
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。