CSC的问题主要是:模型 和 数据
Spelling error correction with soft-masked bert ACL-2020-字节
SpellGCN: Incorporating Phonological and Visual Similarities into Language Models for Chinese Spelling CheckACL-2020-阿里
Domain-shift Conditioning using Adaptable Filtering via Hierarchical Embeddings for Robust Chinese Spell Check
-这是国外大学对 CSC做的内容,他们认为中文拼写错误还有很多的问题,(1)由于字符数量众多,(2)错误的分布稀疏以及资源的匮乏,(3)无法充分覆盖异构域和移位错误域。
他们提出来一个可扩展的适应性过滤器,利用层次化字符嵌入来解决这些问题。
Chunk-based Chinese Spelling Check with Global OptimizationEMNLP-2020
来自阿里巴巴的一篇文章
中文拼写检查是一项具有挑战性的任务,因为中文具有多种特征,例如字符集大,没有单词边界和单词长度短。
一方面,大多数以前的著作仅考虑具有相似字符发音或形状的校正,而无法校正视觉和语音上无关的错别字。
另一方面,流水线式的体系结构被广泛采用来处理单个模块中的不同类型的拼写错误,这很难进行优化。
为了处理这些问题,在这项工作中:
1)我们将传统的混淆集与语义候选一起扩展,以涵盖不同类型的错误;
2)我们提出了一个基于块的框架来统一纠正单字符和多字符单词错误;
3)我们采用全局优化策略来启用句子级别的更正选择。
实验结果表明,该方法在三个基准数据集以及一个光学字符识别数据集上均达到了最新的性能。
Adaptable Filtering using Hierarchical Embeddings for Chinese Spell Check2020-预印本
Spelling Error Correction with BERT based on Character-Phonetic2020 IEEE 6th International Conference on Computer and Communications (ICCC)(很有意思的是,这篇论文的引用,很多都是CEGD上的-还有Speech Recognition Error Correction相关的文章的引用)
FASPell: A Fast, Adaptable, Simple, Powerful Chinese Spell Checker Based On DAE-Decoder ParadigmEMNLP-2019
:19年爱奇艺发的文章,通过DAE(denoising autoencoder) 去 fine tune BERT 的(mask language model)MLM获取候选结果,用于替代之前提到构建的confusion set。
在之前的方法中,我们需要自动构建 confusion pair set,还要给定不同来源数据权重。FASPell利用预训练模型使用DAE pre-train BERT,mask句子中每个位置的字符获取候选集,通过上下文置信度信息,和字符相似度构建了一个confidence-similarity decoder(CSD)去对句子中的每一个字符的候选集进行筛选。如果用过pycorrector[5]的话,该工具在检测到可能存在错误的字/词之后通过近音词。形近字枚举进行替换,再根据统计字典进行排序,按顺序找最优结果。
FASPell通过上下文的confidence score和字音的similarity score联合打分进行过滤,过滤条件:0.8 × confidence + 0.2 × similarity < 0.8 。
某些特定效果场景效果不错github上有源码有兴趣的同学可以去试试,我们简单的构建了一批数据,做了一些尝试,效果如下所示:
但是存在一个问题,如果连续的词出现出错,或者说同样是置信度很高的词语,纠错效果不好,就类似于第一篇文章说的“心里----心理”其confidence score同样很高。所以需要在构建数据集的时候需要下一些功夫。
Confusionset-guided pointer networks for Chinese spelling checkACL-2019
Chinese Spelling Error Detection Using a Fusion Lattice LSTM预印本-2019
Automatic Chinese Spelling Checking and Correction Based on Character-Based Pre-trained Contextual RepresentationsNLPCC-2019
北京大学(论文介绍:-把拼写错误分为两种,错误的词本身是存在的和不存在的-模型:1.添加词性标签和调整句子长度-2.BERT等模型做check(词向量+pos向量放在一起,用bi-LSTM,然后用CRF进行对错标注)-3.把错误的字masked了,然后用masked 语言模型来生成候选集合-然后用三个指标共同选出来替换的。-可以简单理解为-MLM的候选和混淆集的交集)
Chinese Spelling Check via Bidirectional LSTM-CRFITAIC-2019
A hybrid approach to automatic corpus generation for Chinese spelling checkEMNLP-2018
Chinese Spelling Check based on Neural Machine Translation2018, PACLIC
An Improved Graph Model for Chinese Spell Checking 》&&《A Hybrid Model for Chinese Spelling Check
:14年的一篇文章,实验用到的数据集是SIGHAN-2013[2],借鉴分词时构建DAG(Directed Acyclic Graph )的方法,因为错误句子可能会造成错误的分词结果,会导致多种分词情况,对所有切分结果的相似拼音的字/词加入到分词的DAG中,构成一个由相似词语组成的新的DAG模型。就像下面这个例子,misspelled: “假书抵万金”。其中有一个替换原则,定义一个相似词典,所有的替换按照字典相似的词进行替换。
根据新的有向无环图,去找最短路径Single Source Shortest Path(SSSP),用替换词之后最合理的分词结果,就是CSC正确的结果。但是这种方式存在两个小问题,如果说分词的时候如果是单个字,那么进行替换会变的没有意义,或者说,如果是分词之后,分出去的词也是分词词典中已有的词,就不好进行纠错,比方说“我/对/心[里 — 理]/研究/有兴趣”,也就是说如果出错的来源是一个置信度比较高的词语时不好进行纠错,区分“他”和“她”的不同就会相对困难。(这个问题确实很严重。
因此为解决这一问题,本文加入crf model进行预测,再加一些rule model。虽然这篇文章比较久远,但是这种 Hybrid Model 的方式确实值得借鉴。
HANSpeller++: A Unified Framework for Chinese Spelling Correction
:本文提出了一个HANSpeller框架进行检测和纠错,这个框架有两个主要的工作,首先对输入的句子生成可能的候选集,再对候选集进行排序,选择最好的结果作为新的句子。
在data processing阶段,将长句子根据标点切分为短句并且去掉非汉字内容,根据SIGHAN-2013,SIGHAN-2014作为外部数据构建confusion pair,用于生成候选方案之一。下一步 candidates generating 时根据句子中的字生成有限候选集,根据同音字,近音字,形近字,和一开始生成的confusion pair进行替换,因为候选集有限,只保留权重较高的替换词。替换priority weight计算公式如下(其中P©为其在c这个字符可能出错的概率,edit_dist 编辑距离,二者加权):
在候选结果rerank阶段,分为两次筛选和排序,初筛时用到的特征比较简单,n-gram probability,词典统计特征,编辑距离,和分词特征做逻辑回归分类预测。第二次筛选的时候用外部依赖数据,bing的搜索结果,英文翻译的结果,并且使用mi crosoft web n-gram服务计算翻译的n-gram概率。两次筛选后,保留最有可能的top5候选结果。其中一些通用的错误需要加入一些规则进行重新打分。之后用一些规则获取最终结果,比方说n-gram的概率做过滤器,不同的相似类型的候选集权重不同,confusion pair是根据大量标注数据抽取的因此权重高于同音同形等类别,之后再对长句所需要替换的个数进行约束。
这个纠错的方案特征相对比较丰富并且使用n-gram保留部分的语义信息做筛选。其相当于枚举出了所有种可能的替换方案,并且根据经过分类器进行初筛,二次筛选和规则排序选择最有可能正确的结果。
基于Spelling Error Correction with Soft-Masked BERT的connectedpaper
中文文本拼写检查错误纠正方案整理
中文(语音结果)的文本纠错综述 Chinese Spelling Check
中文输入纠错任务整理
2020 年 中英文拼写纠错开源框架梳理
中文文本纠错算法走到多远了?
pycorrector 实在是良心了。
pycorrector
–不得不承认,这些产品目前不够好,也应该不是当前的SOTA,不建议在科研过程中和这些内容对比。可能模型已经过时。
无错字中文智能校对软禁
JCJC错别字在线检测
写作猫-定位中文grammarly
高校推出的云查错
蓝太平洋错别字校验系统
智能错别字检测系统
黑马校对在线
https://github.com/hiyoung123/YoungCorrector:该作者贡献了soft-masked bert的开源代码,且实现了pycorrector的相关代码,并给出纠错基本摘要。
工业界纠错系统
错误类型:多词(Redundant)、缺词(Missing)、错词(Selection)和词序错误(Word Order)
系统性能的评估也由易到难分为3个level:detection level(识别句子有没有错误)、identification level(识别错误句子的具体错误类型)和position level(识别错误的位置和对应类型)
错误类型:拼写错误,比如 想着-想著、警惕-警悌 等:
评估分为两个维度:句子级别和字符级别,detection和correction。
在通过拼音、五笔和手写输入文本。
拼写错误,占错误总量的35%。这些错误主要发生在通过拼音、五笔和手写输入文本的场景。比如“眼镜蛇”-“眼睛蛇”、“缺铁性贫血”-“缺铁性盆血”等。
剩余的错误我们将其分类为语法和知识错误,语法错误包括多字少字乱序,如“地中海投保”-“投保地中海”。
知识关联错误如“福田平安金融中心”错写为“南山平安金融中心”。
Correcting chinese spelling errors with word lattice decoding
这个概念应该来自英文,word里就有 红色波浪线标出 可能是拼写的错误,而 绿色波浪线标出 可能是 语法的错误。
包含两个任务的数据集一
2004年-rule-based method
2010年-phrase-based statistical methods
2016年-机器学习方法
2016-LSTM-CRF
2017-BiLSTM-CRF
Improving Grammatical Error Correction with Data Augmentation by
Editing Latent Representation
2020年北大-万小军老师一个工作:
CYUT Team Chinese Grammatical Error Diagnosis
System Report in NLPTEA-2020 CGED Shared
Task.(科技部资助)
比赛:NLPTEA2020 CGED shared task
任务:中文语法错误诊断系统
数据集:NLPTEA2020 CGED shared task
方法:提出两个方法,第一个是CRF和BERT结合。第二个是CRF方法
Chinese Grammatical Errors Diagnosis System Based on BERT at NLPTEA-2020 CGED Shared Task
2020, NLPTEA
Integrating BERT and Score-based Feature Gates for Chinese Grammatical Error Diagnosis2020, NLPTEA
Weaken Grammatical Error Influence in Chinese Grammatical Error Correction2020, NLPCC
Combining ResNet and Transformer for Chinese Grammatical Error Diagnosis2020, NLPTEA
A Hybrid System for NLPTEA-2020 CGED Shared Task2020, NLPTEA
BERT Enhanced Neural Machine Translation and Sequence Tagging Model for Chinese Grammatical Error Diagnosis2020, NLPTEA
CYUT Team Chinese Grammatical Error Diagnosis System Report in NLPTEA-2020 CGED Shared Task2020, NLPTEA
Chinese Grammatical Error Detection Based on BERT Model2020, NLPTEA
A Two-Stage Model for Chinese Grammatical Error Correction2019, IEEE Access
Pinyin as a Feature of Neural Machine Translation for Chinese Speech Recognition Error Correction2019, CCL
Chinese Grammatical Error Correction Based on Convolutional Sequence to Sequence Model2019, IEEE Access
Detecting Simultaneously Chinese Grammar Errors Based on a BiLSTM-CRF Model2018, NLP-TEA@ACL
Contextualized Character Representation for Chinese Grammatical Error Diagnosis2018, NLP-TEA@ACL
Deep Context Model for Grammatical Error Correction流利说英语发表于2017年
CGED2020总结
医疗健康领域的短文本纠错
作者:
@Qarnet