当前位置: 代码迷 >> 综合 >> 2021-07-23-CSC-Survey
  详细解决方案

2021-07-23-CSC-Survey

热度:76   发布时间:2023-09-11 17:42:38.0

中文文本纠错

@(自然语言处理)[纠错]

常见错误类型

在中文中,常见的错误类型大概有如下几类:

由于字音字形相似导致的错字形式:体脂称—>体脂秤 多字错误:iphonee —> iphone 少字错误:爱有天意 --> 假如爱有天意 顺序错误: 表达难以 --> 难以表达

纠错组成模块

纠错一般分两大模块:

错误检测:识别错误发生的位置 错误纠正:对疑似的错误词,根据字音字形等对错词进行候选词召回,并且根据语言模型等对纠错后的结果进行排序,选择最优结果。 2021-07-23-CSC-Survey

赛事

几届中文纠错评测,例如CGED与NLPCC

  • Chinese Spelling Check Evaluation at SIGHAN Bake-off 2013 [Wu et al., 2013][^1]
  • CLP-2014 Chinese Spelling Check Evaluation (Yu et al., 2014) 2021-07-23-CSC-Survey

数据集

1、Academia Sinica Balanced Corpus (ASBC for short hereafter, cf. Chen et al., 1996). 2、混淆词数据集[^A Hybrid Approach to Automatic Corpus Generation for Chinese Spelling Check]

[^A Hybrid Approach to Automatic Corpus Generation for Chinese Spelling Check]: Wang, D. , Song, Y. , Li, J. , Han, J. , & Zhang, H. . (2018). A Hybrid Approach to Automatic Corpus Generation for Chinese Spelling Check. Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing. https://aclanthology.org/D18-1273.pdf

3、Chinese Grammatical Error Diagnosis NLPTEA 2016 Shared Task: http://ir.itc.ntnu.edu.tw/lre/nlptea16cged.htm NLPTEA 2015 Shared Task: http://ir.itc.ntnu.edu.tw/lre/nlptea15cged.htm NLPTEA 2014 Shared Task: http://ir.itc.ntnu.edu.tw/lre/nlptea14cfl.htm

4、Chinese Spelling Check SIGHAN 2015 Bake-off: http://ir.itc.ntnu.edu.tw/lre/sighan8csc.html CLP 2014 Bake-off: http://ir.itc.ntnu.edu.tw/lre/clp14csc.html SIGHAN 2013 Bake-off: http://ir.itc.ntnu.edu.tw/lre/sighan7csc.html

http://nlp.ee.ncu.edu.tw/resource/csc.html

构造方法

1、对字进行增删、交换位置、混淆词替换 2、常见混淆集整理

视觉上和语音上的相似字是造成汉语文本错误的主要因素。通过定义适当的相似性度量,考虑扩展仓颉代码,我们可以在几分之一秒内识别视觉上相似的字符。根据汉语词汇中单个汉字的发音信息,我们可以计算出一个与给定汉字在语音上相似的汉字列表。我们收集了网络上出现的621个错误的中文词汇,并分析了这些错误的原因。其中83%的错误与语音相似性有关,48%的错误与所涉及的字符之间的视觉相似性有关。生成语音和视觉上相似的字符列表,我们的程序能够包含报告错误中超过90%的错误字符。[^2]

3、基于说文解字、四角码计算[^Using Confusion Sets and N-gram Statistics]

[^Using Confusion Sets and N-gram Statistics]: Lin C J, Chu W C. A Study on Chinese Spelling Check Using Confusion Sets and N-gram Statistics[J]. International Journal of Computational Linguistics & Chinese Language Processing, Volume 20, Number 1, June 2015-Special Issue on Chinese as a Foreign Language, 2015, 20(1).

编辑距离

编辑距离的经典应用就是用于拼写检错,如果用户输入的词语不在词典中,自动从词典中找出编辑距离小于某个数$n$的单词,让用户选择正确的那一个,$n$通常取到2或者3。

这个问题的难点在于,怎样才能快速在字典里找出最相近的单词?可以像 使用贝叶斯做英文拼写检查里是那样,通过单词自动修改一个单词,检查是否在词典里,这样有暴力破解的嫌疑,是否有更优雅的方案呢?

1973年,Burkhard和Keller提出的BK树有效地解决了这个问题。BK树^3的核心思想是:

令$d(x,y)$表示字符串x到y的Levenshtein距离,那么显然: $d(x,y) = 0$ 当且仅当 $x=y$ (Levenshtein距离为0 <==> 字符串相等) $d(x,y) = d(y,x)$ (从x变到y的最少步数就是从y变到x的最少步数) $d(x,y) + d(y,z) >= d(x,z)$ (从x变到z所需的步数不会超过x先变成y再变成z的步数)

最后这一个性质叫做三角形不等式。就好像一个三角形一样,两边之和必然大于第三边。

[^1]: Wu, S. , Liu, C. , & Lee, L. . (2014). Chinese Spelling Check Evaluation at SIGHAN Bake-off 2013. Sighan Workshop on Chinese Language Processing.

[^2]: Liu, C. L. , Lai, M. H. , Tien, K. W. , Chuang, Y. H. , S.-H., W. U. , & Lee, C. Y. . (2011). Visually and phonologically similar characters in incorrect chinese words: analyses, identification, and applications. Acm Transactions on Asian Language Information Processing, 10(2), 1-39.

发展历史概述

依赖条件

纠错技术相对于词法分析,句法分析等受到的关注一直较小,一方面是因为文本出错的比例比较小,在一些重要场合,也有专门人员进行校验;另一方面本身问题也相对较难,其要求计算机对语言规则以及文本语义有深刻的理解。

我们把中文常见错误总结分为三类:

  • 用词错误,由于输入法等原因导致的选词错误,其主要表现为音近,形近等;
  • 文法/句法错误,该类错误主要是由于对语言不熟悉导致的如多字、少字、乱序等错误,其错误片段相对较大;
  • 知识类错误,该类错误可能由于对某些知识不熟悉导致的错误,要解决该类问题,通常得引入外部知识、常识等。

发展历程

  • 2000年以前,业界主要依靠长期积累的纠错规则和纠错词典来进行纠错,比如微软的文档编辑产品WORD即采用这种方法
  • 随着机器学习技术的发展,纠错问题受到了学术界和工业界越来越多的关注,其中有两大主流方法:
    • 一种解决思路是将语言错误归类,然后采用Maxent(最大熵模型)、SVM等分类方法对这些类别进行重点识别;
    • 另外一种思路是借鉴统计机器翻译(SMT)的思想,将语言纠错等价为机器翻译的过程,即错误文本翻译为正确文本,并随之出现了一系列的优化方法。

调研的必要性

近年来,随着新媒体行业的快速发展,中国自媒体从业人数逐年增长,至2017年有近260万。但是相对于传统媒体,其缺少人工校稿环节,编辑好的文章即刻发表,导致文章的错误比例较高。比如一些新媒体平台的正文错误率在2%以上,标题错误率在1%左右。同时,语音智能硬件产品的兴起,也暴露出语音识别技术的错误率高企问题,在某些场景语音识别中,错误率可能达到8%-10%,影响了后续的query理解及对话效果。因此研发优质的中文纠错技术,便成为了必须。

技术调研

整体上,将纠错流程,分解为错误检测、候选召回、纠错排序三个关键步骤。通过引入语言知识、上下文理解和知识计算的核心技术,提升不同类型错误的解决能力。最后,支持SMT based和NMT based两套Framework,形成完整的系统架构。

关键步骤(错误检测->候选召回->纠错排序)

2021-07-23-CSC-Survey

错误检测的目标是识别输入句子可能存在的问题,采用序列表示(Transformer/LSTM)+CRF的序列预测模型,这个模型的创新点主要包括:

  • 词法/句法分析等语言先验知识的充分应用;
  • 特征设计方面,除了DNN相关这种泛化能力比较强的特征,还结合了大量hard统计特征,既充分利用DNN模型的泛化能力,又对低频与OOV(Out of Vocabulary)有一定的区分;
  • 最后,根据字粒度和词粒度各自的特点,在模型中对其进行融合,解决词对齐的问题。 2021-07-23-CSC-Survey

候选召回指的是,识别出具体的错误点之后,需要进行错误纠正,为了达到更好的效果以及性能,需要结合历史错误行为,以及音形等特征召回纠错候选。主要可分为两部分工作:离线的候选挖掘,在线的候选预排序。离线候选挖掘利用大规模多来源的错误对齐语料,通过对齐模型,得到不同粒度的错误混淆矩阵。在线候选预排序主要是针对当前的错误点,对离线召回的大量纠错候选,结合语言模型以及错误混淆矩阵的特征,控制进入纠错排序阶段的候选集数量与质量。

核心技术(语言知识->上下文理解->知识计算)

采用翻译技术纠错

优点

将纠错当做翻译任务去做,可以对不同类型的错误形式:错词,少词,多词等进行纠错

缺点

模型没有对字音字形相似关系的学习,纠错后的结果不受约束,很容易出现过纠错和误纠问题

Soft-Masked BERT

Soft-Masked BERT:文本纠错与BERT的最新结合

  • 头条
  • ACL 2020

给定$n$个字或词构成的序列$X=(x_1, x_2,..., x_n)$,目标是把它转化为另一个相同长度的字序列$Y=(y_1,y_2,...,y_n)$, $X$中的错字用正确的字替换得到$Y$ 。该任务可看作序列标注问题,模型是映射函数$f:X\rightarrow Y$。

这篇文章中的纠错模型是由基于Bi-GRU序列二进制标注检测模型和基于BERT的序列多类标注纠正模型组成, 其中soft-masked embedding: $e_i’ = p_i \cdot e_{mask} + (1-p_i) \cdot e_i$ 可以实现将错字概率传递给后续纠正网络,使得纠正网络专注在预测正确字上。 2021-07-23-CSC-Survey

https://zhuanlan.zhihu.com/p/144995580

SpellGCN[^SpellGCN: Incorporating Phonological and Visual Similarities into Language Models for Chinese Spelling Check]

3、https://zhuanlan.zhihu.com/p/145825024?from_voters_page=true [^SpellGCN: Incorporating Phonological and Visual Similarities into Language Models for Chinese Spelling Check]: https://aclanthology.org/2020.acl-main.81.pdf

ConfusionSet +PtrNet -> CSC^Confusionset-guided Pointer Networks for Chinese Spelling Check

4、基于统计语言模型的文本纠错方法研究 https://www.cnblogs.com/baobaotql/p/13358035.html

规则类:哪些更适合规则类? 语言模型 混淆集

TODO

ACL2021 Global Attention Decoder for Chinese Spelling Error Correction Correcting Chinese Spelling Errors with Phonetic Pre-training Dynamic Connected Networks for Chinese Spelling Check https://github.com/gitabtion/SoftMaskedBert-PyTorch

https://github.com/gitabtion/BertBasedCorrectionModels

GEC

Encoder-Decoder Models Can Benefit from Pre-trained Masked Language Models in Grammatical Error Correction https://aclanthology.org/2020.acl-main.391.pdf

Do Grammatical Error Correction Models Realize Grammatical Generalization? https://arxiv.org/abs/2106.03031

互联网企业Papers

1、腾讯云:基于语言模型的拼写纠错:https://cloud.tencent.com/developer/article/1156792

2、平安寿险AI https://zhuanlan.zhihu.com/p/159101860

3、爱奇艺: https://blog.csdn.net/BGoodHabit/article/details/114589007#21_FASPell_20

模型 发表位置 创新点 总结
FASPell(爱奇艺) ACL2020 融合字音字形相似度分数,拟合最佳分割曲线
SpellGCN(阿里) 用GCN学习字音字形关系结构向量,让错词更倾向于纠错为混淆集中的字
Soft-Mask BERT(字节) 增加纠错检测模块,用错误检测概率控制纠错模块,减少过纠问题
SCFL(ebay) seq2seq
HeadFit(加利福尼亚) treeLSTM模型学习字形向量,取代固定的混淆集

业务中主要存在的问题

1、多数方案通过将字音字形信息融入到模型学习中,解决纠错问题主要因为字音字形相似等带来的错误 2、在输入连续出错等纠错问题上,还面临着很多的挑战

参考文献

[1]Lee L H, Yu L C, Chang L P. Guest Editoral: Special Issue on Chinese as a Foreign Language[J]. International Journal of Computational Linguistics & Chinese Language Processing, Volume 20, Number 1, June 2015-Special Issue on Chinese as a Foreign Language, 2015, 20(1).

[2]Yu J, Li Z. Chinese spelling error detection and correction based on language model, pronunciation, and shape[C]//Proceedings of The Third CIPS-SIGHAN Joint Conference on Chinese Language Processing. 2014: 220-223.

[3] Lv, Y.Y.; Deng, Y.I.; Liu, M.L.; Lu, Q.Y. Automatic error checking and correction of electronic medical records. Front. Artif. Intell. Appl. 2016, 281, 32–40. 无法下载,需要钱

[4] Liu X, Cheng K, Luo Y, et al. A hybrid Chinese spelling correction using language model and statistical machine translation with reranking[C]//Proceedings of the Seventh SIGHAN Workshop on Chinese Language Processing. 2013: 54-58.

[5]Chen K Y, Lee H S, Lee C H, et al. A study of language modeling for Chinese spelling check[C]//Proceedings of the Seventh SIGHAN Workshop on Chinese Language Processing. 2013: 79-83.

[6]Xie W, Huang P, Zhang X, et al. Chinese spelling check system based on n-gram model[C]//Proceedings of the Eighth SIGHAN Workshop on Chinese Language Processing. 2015: 128-136.

[7] Zhao J, Liu H, Bao Z, et al. N-gram Model for Chinese Grammatical Error Diagnosis[C]//Proceedings of the 4th Workshop on Natural Language Processing Techniques for Educational Applications (NLPTEA 2017). 2017: 39-44.

[8] Jui-Feng Yeh, Sheng-Feng Li, Mei-Rong Wu, Wen-Yi Chen, and Mao-Chuan Su. 2013. Chinese word spelling correction based on N-gram ranked inverted index list. In Proceedings of the 7th SIGHAN Workshop on Chinese Language Processing. 43–48.

[9] Zheng B, Che W, Guo J, et al. Chinese Grammatical Error Diagnosis with Long Short-Term Memory Networks[C]//Proceedings of the 3rd Workshop on Natural Language Processing Techniques for Educational Applications (NLPTEA2016). 2016: 49-56.

[10] Xie P. Alibaba at IJCNLP-2017 Task 1: Embedding Grammatical Features into LSTMs for Chinese Grammatical Error Diagnosis Task[J]. Proceedings of the IJCNLP 2017, Shared Tasks, 2017: 41-46.

[11] Wang, D. , Song, Y. , Li, J. , Han, J. , & Zhang, H. . (2018). A Hybrid Approach to Automatic Corpus Generation for Chinese Spelling Check. Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing.