中文语法纠错工作旨在对文本中存在的拼写、语法等谬误进行自动检测和纠正,是自然语言解决畛域一项重要的工作。同时该工作在公文、新闻和教育等畛域都有着落地的利用价值。但因为中文具备的文法和句法规定比较复杂,基于深度学习的中文文本纠错在理论落地的场景中依然具备推理速度慢、纠错准确率低和假阳性低等毛病,因而中文文本纠错工作还具备十分大的钻研空间。
达观数据在 CCL2022 汉语学习者文本纠错评测较量的赛道一中文拼写查看(Chinese Spelling Check)工作中获得了冠军, 赛道二中文语法纠错(Chinese Grammatical Error Diagnosis)工作中取得了亚军。本文基于赛道二中文语法纠错工作的内容,对较量过程中采纳的一些办法进行分享,并介绍较量采纳的技术计划在达观智能校对零碎中的利用和落地。赛道一中文拼写查看的冠军计划会在后续的文章分享。
本次中文语法纠错工作是对给定的句子输入可能蕴含的谬误地位、谬误类型和修改答案,而最终的评测指标是假阳性、侦测层、辨认层、定位层和修改层这五个维度指标的综合后果。而且本次评测工作应用的数据是汉语学习者的写作内容,与母语写作者相比汉语学习者的数据自身就具备句子晦涩度欠佳、谬误复杂度较低等状况。因而,本次评测的难度在于对于汉语学习者的书写内容既要保障检错和纠错的准确率和召回率,还要保障正确句子不能进行批改操作以升高模型的假阳性。本文次要从数据和模型两方面来分享本次较量中采纳的模型和策略。
数据分析
本次评测中,官网提供了 CGED 的历年较量数据 (41,239 条) 和 Lang8 数据 (1212,457 条) 供模型训练,同时提供了 3767 条评测数据用以验证模型的成果和性能。为理解数据的谬误散布以及数据的品质,咱们首先对评测数据进行了剖析。CGED-21 验证集中的谬误散布状况如图 1 所示,由此能够看出数据集中占绝大多数的均为用词谬误,其次为缺失谬误,而乱序谬误的占比起码。
图 1 验证集谬误占比统计图
同时在数据测验的过程中还发现了 CGED 和 Lang8 数据集中存在的一些数据问题。
具体问题如下所示:
- 源句子与指标句子齐全不相干;
- 指标句子是对源句子的批注;
- 源句子中存在谬误编辑间隔较大的状况;
- 数据集中开端处存在多字的缺失谬误
对此,咱们也摘录了数据集中存在的一些问题的样例数据;
由样例数据可知,不论采纳哪种模型,数据中蕴含的这些谬误均会导致模型产生一些谬误的特色映射,从而影响模型的性能。因而在构建语法纠错模型之前首先须要对数据进行荡涤,去除品质较差的句子。在本次较量中,数据预处理是利用编辑间隔、字数差别和纠正字数等多个维度的评估来实现的。
表 1 数据中的谬误样例数据
纠错策略
本次评测工作中的语法错误能够分为拼写错误、语法错误和符号谬误。其中拼写错误包含形似音近谬误,而语法错误则次要包含用词谬误、缺失、乱序和冗余。这些谬误类型具备差异性和多样性,利用单个模型难以笼罩所有的谬误类型;因而,较量中采纳串行的多阶段中文语法纠错办法来解决中文文本中存在的各种谬误。
01 拼写纠错模型
对于拼写纠错工作,咱们是从数据和模型两个维度来进行解决的。数据方面,首先收集了不同起源的混同集词典并对其进行整合和裁减,而后基于混同集和微信新闻语料生成了蕴含不同错误模式的大规模语料来对模型进行训练。模型方面是利用 MDCSpell[2]来实现拼写纠错工作。进一步地,咱们发现检错和纠错模块能够间接应用 BERT 输入的语义特色信息,而不须要舍弃 CLS 和 SEP。而且这样还能保障两个模块的输入维度雷同更不便特色信息的交融。
图 2 拼写纠错模型结构图
此外,拼写纠错模型的定位是解决数据中存在的形似音近问题,而且整个流程还后接了语法纠错模型,所以拼写纠错模型只须要保障纠错的准确率高而误召回低。因而在推理阶段,拼写纠错模型还利用阈值对模型的输入进行判断以确定是否承受以后的纠错后果。
02 语法纠错模型
拼写纠错模型只能解决数据中存在的形似音近谬误,因而咱们基于序列到编辑的 Seq2Edit 模型来实现残余的谬误类型的纠正。Seq2Edit 是目前最优的语法纠错模型,它通过预训练模型取得输出句子的语义特色编码,而后通过全连贯层预测句子中对应的每个句子的编辑标签,该模型对应的解码空间为插入、删除、替换、放弃和挪动五种编辑操作。而且该模型还通过多任务的形式引入了检错模块,以便利用检错的输入信息加强模型的纠错成果。该语法纠错的模型构造和解码流程如下图所示:
图 3 语法纠错流程图
原始 Seq2Edit 模型是通过删除和插入两种操作来解决句子中的乱序谬误,然而因为模型的训练和推理阶段存在裸露偏差,故对于间断字符的缺失谬误,模型可能因短少上下文特色信息即便通过多个轮次也无奈进行纠正。例如下表中的乱序谬误,当对一侧进行删除操作之后,而短少了大量的上下文信息故模型无奈对另一侧的插入操作进行补齐。而且模型将乱序谬误看作冗余和缺失两种谬误的汇合也会导致模型对删除操作的置信度偏高。然而通过引入挪动编辑操作的办法可能较好地解决乱序的问题。
表 2 原始 Seq2Edit 模型对乱序谬误的纠错能力
在推理阶段,为了在输入的标签空间中搜寻出一条最优的解码门路,咱们利用部分门路解码办法对部分的挪动编辑操作确定一条和为 0 的相对路径,并通过自适应阈值的办法对不同编辑操作、不同的词性和词频确定不同的批改承受阈值,由此进步模型的纠正准确率并解决模型的适度纠正等问题。
03 模型集成
不同的模型学习到的语义特色信息存在一些差别,因而将多个差别较大而性能略差的模型正确的组合可能极大地晋升模型的性能。本次评测中,咱们对不同预训练模型训练的纠错模型进行加权集成以晋升模型的准确率。此次参加模型集成的有 Bert、MacBert 和 StructBert 这 3 个预训练模型训练的 6 个 Seq2Edit 模型。
04 数据加强榜单
在试验剖析的过程中,咱们发现模型对多字词的缺失和句子不同地位的谬误的纠错能力不同,并且以后的数据集未能笼罩绝大多数的谬误,因而存在 OOV 的问题。所以咱们利用数据生成的策略来解决因 OOV 导致的模型无奈对谬误进行纠正的问题。本次较量中,拼写纠错和语法纠错两个工作都用到了数据加强技术,且均应用微信公众号语料作为种子数据。对于数据加强,咱们基于字和词两个维度进行数据裁减,并保护了生僻词表、词频表、键盘布局相邻表、形近混同集和音近混同集以保障生成的句子合乎中文的语用频率和散布法则。
数据加强的流程如下所述:
(1)数据预处理:对句子进行预处理并掩码掉非中文字符、人名和地名等字符地位;
(2)采样设错地位:确定对句子进行设错操作的字符地位;
(3)采样设错类型:确定以后字符地位的设错类型;
(4)采样设错操作:针对步骤(3)中的设错类型确定设错的操作,一般来说不同的设错类型对应的设错操作也不尽相同,冗余操作的设错操作包含反复以后字词、随机插入和按键盘布局相邻表等形式插入;用词谬误的替换策略包含形似混同集、音似混同集和随机替换
针对拼写纠错工作形似字谬误:音似字谬误:词近似谬误的比例为 0.4:0.4:0.2;而语法纠错的比例是乱序谬误:缺失谬误:冗余谬误:用词谬误别离 0.05:0.1:0.15:07
05 其余策略
困惑度策略:困惑度能够用来评估句子的晦涩水平,因而较量中还通过困惑度对多个模型的输入进行评估并抉择困惑度最低的纠错句子作为最优解。
成语纠错:中文中的成语俗语是约定俗成的,因而咱们保护了成语俗语规定表,利用规定匹配到疑似成语谬误,并对批改前后的句子进行困惑度计算以确定是否承受对句子谬误的批改。
试验后果
在本次较量的过程中,咱们首先比照了基于 Seq2Seq 的模型和基于 Seq2Edit 模型的基准模型成果,而后抉择了 Seq2Edit 模型作为本次较量的根本框架。由该赛道的评测指标可知,本次较量不仅考查模型的纠错能力,还考查模型正确区分句子对错的能力;因而咱们训练了不同性能的多个模型并通过模型集成和困惑度来抉择最优后果;不同模型的模型成果比照如下表所示。由表中数据可知,基于 Seq2Seq 的模型的检错能力较好,但同时模型引入了较高的误召回,从而使得假阳性的指标偏高;而基于 Seq2Edit 的办法更可能衡量准确率和召回率,使得模型在评测数据上获得更好的后果。同时通过比照可知,利用拼写纠错模型事后纠正用词谬误,而后再对其余谬误进行纠错,可能晋升模型的成果。
表 3 不同模型的成果比照
技术落地计划
达观智能校对零碎依靠于自然语言解决和光学字符识别等技术,实现了不同格局的输出文本的主动校对。该零碎涵盖了内容纠错、格局纠错和行文规定纠错等针对不同利用场景下的纠错模块,其中内容纠错模块包含拼写纠错、语法纠错、领导人纠错、符号纠错和敏感词检测等多种校对模块。目前达观智能校对零碎已反对公文畛域、金融畛域和通用畛域的文本校对工作,并且可针对不同畛域的校对需要为客户提供定制化的解决方案。
达观智能校对零碎的如图 4 所示,其外围模块次要是文档解析和智能纠错。其中智能纠错模块基于预训练模型、序列标注、语言模型和常识蒸馏等技术一直晋升中文文本纠错的精度和速度。同时达观智能校对零碎也在一直摸索新的技术以更好地实现畛域迁徙和无痛解锁更多的利用场景。
图 4 达观智能校对零碎
总结瞻望
比照本次较量和理论纠错工作中的技术落地点可知中文语法纠错的相干钻研间隔工程落地还有肯定的差距。工程利用中的一些难点在于:
- 模型复杂度较高,
- 推理速度慢实在的纠错数据较为稀缺,尤其是母语者的谬误数据
- 纠错模型容易呈现适度纠正的状况,即模型的假阳性偏高
- 现有的模型往往无奈笼罩常识、知识型的谬误
参考:1. http://cuge.baai.ac.cn/#/ccl_… Chenxi Zhu, Ziqiang Ying, Boyu Zhang, and Feng Mao. 2022. MDCSpell: A Multi-task Detector-Corrector Framework for Chinese Spelling Correction. In Findings of the Association for Computational Linguistics: ACL 2022, pages 1244–1253, Dublin, Ireland. Association for Computational Linguistics.