作者|徐景阳,单位:中国移动智能家居运营中心实验室简介中文文本纠错是检测和纠正中文文本拼写错误的任务,是自然语言处理的重要应用领域之一。中文文本纠错的应用场景很多,比如搜索引擎、问答/对话系统、输入法等前端模块,或者作为OCR、ASR检测的后置模块,或者在公文写作场景中,协助公文处理的审校、校对和纠错质量对后续处理非常重要。Part01中文错别字有哪些类型?我们将常见的中文错别字归纳为三类:拼写错误、输入法、音标转换软件导致的词/词错误等,主要表现在同音字的错误使用,以及近义词等,也是方向纠错领域的当前研究;语法错误,这类错误主要是由于疏忽或对语言不熟悉造成的,如漏词、冗余、乱序等,而且错误片段相对较大,目前有一些针对简单语法错误的研究;语义错误,此类错误可能是由于不了解某些知识或缺乏组织语言的能力等引起的。解决此类问题通常需要引入外部知识、常识等。目前研究相对较少涉及这部分。表1总体处理难度:拼写错误<语法错误<语义错误。Part02智能文本纠错框架文本纠错的常见思路有两种:一种是多模型流水线法,另一种是端到端法。2.1多模型流水线方法将纠错任务分解为三个关键步骤:错误检测→候选召回→打分排序,如图1所示。每个模型解决一个特定的具体问题,然后通过流水线连接得到最后结果。这种方式的优点是便于对每一步进行重点突破和优化,但也有明显的缺点,一步一步会传递错误。也一定是不正确的。图1错误检测模块错误检测模块的主要目标是错误识别,识别和定位文本中错误的词/词位置,如果存在错误则向后传递。候选召回在候选召回阶段,将错误检测模块识别出的错误点与历史错误信息、附近的声音、形状等特征相结合,形成纠错候选集。纠错模块纠错模块主要解决候选集的排序问题。由于纠错的正确结果是唯一的,因此该模块的任务是将正确的结果排在第一位。2.2End-to-end方法这种方法是直接对从原来的“错误句子”到修正后的“正确句子”的处理过程进行建模。一般来说,这个过程类似于机器翻译任务,如图2所示,将错误的句子翻译成正确的句子,一般使用seq2seq类深度学习模型。这种方法的优点是避免了人工特征提取,减少了人工工作量。缺点是无法控制具体问题点优化对整个过程的影响。图2h表示隐藏层,c表示encoder和decoder之间的状态向量Part03智能文本纠错的几种方案3.1多模型流水线法错误检测模块(1)基于规则:例如提取拼音在ngramlevel,建立实体词和拼音的映射词汇表,将抽取的拼音映射到实体词,比较是否与原词一致。(2)基于语言模型:利用bert模型的MLM任务,将当前词替换为掩码符号,然后进行预测。如果真正的词不在topk中,就是错误的。候选召回(1)基于规则:近音候选词召回、语音编辑距离召回。(2)基于语言模型:利用语言模型计算错词可能的topk正确答案。纠错模块(1)粗排序:通过构造特征对候选词进行粗分。特征主要包括:语料库频率比、编辑距离等。(2)精细排序:利用机器学习模型对候选进行打分,特征工程也进行了更精细的处理。3.2端到端方法(1)FASPell,爱奇艺在EMNLP2019上发布的基于词的中文纠错方法。(2)Soft-MaskedBERT,ACL2020发表的中文纠错方法。(3)MLM-phoneticsMLM-phonetics,在soft-maskedBERT的基础上优化。(4)DynamicConnectedNetworks,HarbinInstituteofTechnology&XunfeiinACL2021发表的方法。(5)Transformer-NMT,网易有道NLPCC2018冠军项目。(6)ErnieCSC,百度在ACL2021上提出了一种基于Softmask策略结合拼音特征的纠错方案。(7)MacBert4csc,MacBERT模型改变网络结构的中文文本纠错模型。图3文本纠错和错误检测阶段的标记Part04Futuredirectionsandchallenges最后总结了文本纠错任务的一些挑战和未来方向:目前的两种方案,pipeline机制会导致错误逐步放大,同时,链条越长,需要的时间就越长。端到端解决方案目前缺乏足够的标注语料,不便于扩展和领域迁移。对于文本纠错,可以探索使用知识图谱来改进整个纠错任务,或者探索将实体词融入模型。此外,该领域需要积累大量高质量的标注样本和混淆集资源。
