基于预训练语言模型的语法错误纠正方法

2022-12-01 08:04韩明月王英林
上海交通大学学报 2022年11期
关键词:语法错误集上语料

韩明月, 王英林

(上海财经大学 信息管理与工程学院,上海 200433)

自数据集CoNLL13和CoNLL14[1-2]将语法错误纠正(GEC) 作为公开任务以来,语法错误自动纠正方法的相关研究工作大量涌现.GEC 任务的目标是对英语学习者所书写的文本进行语法错误的自动识别与纠正.GEC系统可以给予英语学习者快速有效的写作评估反馈,促进学生的自主学习,同时也可帮助教学者提高教学效率,避免教学资源浪费等问题.

传统的GEC方案针对特定的错误类型,比如介词错误、冠词错误、主谓一致错误等,将GEC看作文本分类或序列标注问题[3],在纠正动词形式错误、搭配有误等具有无限候选的语法错误类型时存在局限性.为同时纠正所有类型的语法错误,现有相关工作主要分为两个方向.一是将GEC看作标注问题[4-5],根据语法知识以及规则,人工构建一个囊括所有错误类型的标注体系,从而进行序列标注任务的学习.推断时所有词的标签可同时生成,因此该方法具有推断速度快的优势.二是将GEC任务看作“翻译”问题,翻译模型将源语言翻译成目标语言,GEC模型将英语学习者书写的文本看作“源语言”,将纠正无误的句子看作“目标语言”,从而通过序列到序列的生成方式处理所有类型的语法错误.本研究属于第二个方向,需要在大规模的平行语料上训练“翻译”(纠正)系统[6-9],这意味着GEC系统将耗费昂贵的标注成本以及较高的训练时间成本.在解决GEC任务低资源问题的方案中,较为常见的是通过增加噪声以及“回译”的方式人工合成平行语料[10-11],从而进行预训练来改善模型的最终表现.然而,合成的语法错误与实际相差较大,如随机插入、删除、替换某个词,且这些方案仍然依赖较长的训练时间.

从BERT[12]和RoBERTa[13]等预训练语言模型中获取语言特征,可以广泛应用于下游的自然语言处理相关任务,大幅度改善下游任务的表现.由于生成任务的自回归特性,GEC、文本摘要、机器翻译等自然语言生成任务在类似于BERT的预训练语言模型上微调后的改善幅度有限.所以GEC任务与语言模型结合的常见案例大多是利用语言模型对GEC系统输出进行语言分数排序,尚未充分利用自监督语言模型抽取的语言特征.对此,本文基于掩码式序列到序列的预训练语言生成模型(MASS)[14]来解决GEC问题,MASS以编码-解码为框架来重建原文本,适用于文本生成式的下游任务,利用MASS已提取的语言特征,在GEC的标注数据上微调模型,从而提出一种新的GEC系统(MASS-GEC),具体贡献如下:① 从生成式的语言模型中迁移学习来解决GEC问题,在公开数据集上达到较好表现;②为GEC任务提供新视角,即通过预训练生成式语言模型的运用来缓解GEC任务所面对的低资源问题,节省标注成本和训练时间成本;③通过后处理的方式,利用无监督的主谓一致纠正模型来增强GEC系统的表现,并对本系统的各个模块进行消融分析.

1 相关工作

1.1 GEC的低资源问题

近来的研究将GEC视为低资源的机器翻译任务,尽管有一些公开的标注语料,如NUCLE[15]、Lang-8[16]、FCE[17]、Write&Improve组合LOCNESS[18]等,但由于较高的标注成本以及训练翻译模型的语料规模要求,这些标注数据仍有限.已有研究利用不同的策略人工合成平行语料,从而解决GEC的低资源问题.合成语料主要有两种思路:① 参照机器翻译的相关工作,利用回译模型[19-20],促使模型学习到正确文本至语法错误文本的生成方式,应用在大规模正确的语料上,获取人工合成的平行语料;② 通过引入噪声[7]的方式扰动正确文本,从而获取人工合成的平行语料,如对正确文本随机增、删、替[7],或从拼写检查工具所得到的混淆词集来生成扰动等[11].利用以上方式人工合成的平行语料尽管可以改善GEC系统的表现,但是这些语法错误的分布仍与真实的语法错误分布存在较大差距,并且训练时间长.

1.2 GEC与语言模型的结合

BERT[12]等预训练语言模型能从大规模的语料中进行学习,根据上下文提取文本深层次的语言特征,在诸多下游的自然语言理解任务中有较好的表现.相对于GEC,BERT与语法错误识别 (GED) 的结合更为普遍,GED可被直观地视为序列标注问题,从而直接作为BERT的下游任务.而GEC与预训练语言模型的结合,更注重于通过语言模型对GEC系统输出候选进行语言质量排序[8, 21-24].然而这些方式未充分利用到语言模型能从大规模语料中提取语言特征的能力.对此,以主框架是编码-解码结构的预训练生成式语言模型MASS为基础,利用迁移学习到的语言知识来解决GEC任务.

2 基于MASS的GEC系统

所提GEC系统以MASS在大量未标注的语料上通过特定语言学习目标进行训练后的参数为初始参数,在GEC标注数据集上微调模型.参照已有工作,为GEC系统增加了预处理技巧和后处理技巧,以改善系统的表现,系统的整体流程如图1所示.图中:si(i=1, 2, …,m)为模型的输入,即待纠错的词序列;ti(i=0, 1, …,n)为模型的输出,即纠正后的词序列;m,n分别为输入序列和输出序列的长度.

图1 基于 MASS 的GEC系统整体框架Fig.1 Overview of grammatical error correction system based on MASS

2.1 MASS模型

与只训练编码或解码的工作不同,Song等[14]提出的MASS预训练语言生成模型能够在大规模文本上同时训练编码和解码结构,兼具语言理解和语言生成能力,适用于低资源的文本序列生成任务.

给定原句x∈X,xu:v表示将句子x从位置u到位置v的部分遮盖住,其中 0

其中:θ为模型参数;P′为生成概率;t为当前生成词的位置索引.

MASS模型中的超参数k=v-u代表连续的遮盖长度.当k=1时,MASS模型等价于BERT[12]模型;当k=l,即所有连续的遮盖长度为句子长度时,MASS模型等价于GPT模型.由此也可推断MASS模型同时具有语言理解和生成能力,适用于本文GEC任务.因此提出MASS-GEC系统,充分利用MASS在大规模语料中所学习到的语言特征提取能力,来解决GEC任务.

2.2 拼写检查与领域适应

首先,若直接将可能包含语法错误的原始文本输入模型,则出现拼写错误的单词会被映射为“UNK”,丧失部分信息.如果利用拼写检查技术先对原始文本进行拼写检查则可以避免此类问题.因此,在输入模型之前,使用一个基于上下文感知的拼写错误纠正模型[25]对输入文本进行拼写检查;此外,评估的测试集CoNLL14与标注语料NUCLE领域匹配,参考文献[6],将NUCLE标注语料进行复制以增强MASS-GEC模型在CoNLL14数据集上的表现.

2.3 错误类型控制

后处理技巧被广泛应用于GEC模型,如移除一句话中超过一定数目的编辑以及对不同编辑进行组合选择语言模型上表现最好的编辑组合作为最终的编辑修正结果等.参照Choe等[25]的工作,将训练好的GEC模型在开发集上进行验证,分别记录不同错误类型的纠正效果,测试时,选择放弃该模型表现较差的错误类型.对于预测的文本,采用ERRANT (https:∥github.com/chrisjbryant/errant) 工具获得不同错误类型的纠正效果.

2.4 主谓一致纠正

主谓一致错误、介词错误等特定类型的语法错误频繁出现在英语学习者的写作文本中,并且很容易通过人工合成的方式生成质量较高且较为符合实际情况的语法错误,不需要任何标注成本.因此,对MASS-GEC系统的纠正输出进行主谓一致纠正.

在合成标注数据时,以0.3的概率随机将一个词性为“VBZ”或“VBP”的动词改为与其相反的动词单复数形式,每个单词的标签代表对应位置单词的主谓一致识别结果,标签集合为{0,1,2},其中“0”代表该位置的单词没有主谓一致错误,“1”代表该位置的动词应该被改成第三人称单数形式,“2”代表该位置的动词应该被改成复数形式.由此,将主谓一致纠正看成序列标注问题,使用BERT与BILSTM的组合框架,在Europaral-v6.en数据集(约28万条数据)上训练3轮,将预测标签根据一定的语法规则转换成纠正后的结果.这里使用的词性标注工具和词干化工具均来自NLTK (http: ∥www.nltk.org/)语料库.在CoNLL14测试集上,修正除主谓一致外的其他错误后,评估所提出的主谓一致纠正模型结果为F0.5=65.4,F0.5是常用于强调查准率的分类系统的评估指标,此结果优于当前GEC模型的最佳表现(可看作所有语法错误类型的平均表现),一定程度上证明了通过主谓一致纠正后处理来改善GEC系统表现的可能性.

3 GEC实验

3.1 数据集

在两个公开的GEC任务上测试MASS-GEC模型表现,分别是:

(1) CoNLL14[2].该任务针对于英语学习者的写作文本进行语法错误的识别与纠正,相较于只处理5种语法错误的CoNLL13任务,CoNLL14涵盖了28种语法错误类型,增加了任务的复杂性.评价指标是GEC系统提出的纠正编辑与黄金编辑的匹配情况,模型表现用F0.5来衡量,这意味着对GEC系统的评估更侧重于查准率.

(2) JFLEG[26].在GEC的任务中,JFLEG更关注语言的流利程度.评估标准是GLEU,类似于机器翻译中的BLEU,是基于系统输出纠正结果与参考纠正结果n元语法重叠度的评估指标.

对于GEC任务,使用的标注数据集及数据量为NUCLE (5.72万条)、 Lang-8 (104万条)和FCE (3.32万条).参考文献[6],将NUCLE数据集复制10倍,放入训练集中以进行领域适应,最后去除未进行任何语法错误修改的样本.最终使用的训练集大小约为82.6 万条数据,分别使用JFLEG-dev和CoNLL13作为两个测试任务的开发集,以进行模型以及超参数的选择.

3.2 训练过程及参数设置

训练中使用预训练的生成式语言模型MASS (https:∥github.com/microsoft/MASS) 作为基准模型,代码使用fairseq的序列到序列框架 (https:∥github.com/facebookresearch/fairseq)执行,词向量和隐藏层维度均为768,编码模块和解码模块均为6层12头的注意力,词典和BERT保持一致.使用Adam算法优化模型,预热步数为 4 000,批量处理的单位为64,学习率为 0.000 5,每个实验训练10轮,选择在开发集上表现效果最好的1轮模型作为最终的模型.

4 实验结果及分析

4.1 GEC结果

实验结果显示,最终确定的模型结果来自第1轮或者第2轮,这说明在MASS强大的语言特征提取的前提下,只需要在GEC数据集上微调即可得到较为满意的GEC模型.实验中使用MASS提供的预训练模型的小参数量版本和大参数量版本进行微调,分别命名为MASS-GEC1和MASS-GEC2.将MASS-GEC1系统表现与已有工作进行对比,结果如表1所示.特别地,额外使用由Bryant等[18]于2019年提出的W&I标注数据集来进行训练的GEC系统[5, 26-27]在CoNLL14数据集上表现为当前最佳,为了与已有工作公平对比,本文没有增加该标注数据集进行训练.由表1可知,MASS-GEC1在GEC任务中表现不错.作为单个模型,MASS-GEC1在CoNLL14数据集上F0.5值达到57.5,远远高于2014年公开任务提交系统中的最佳表现.当前表现最好的单个模型是由Zhao等[7]于2019年提出的Copy-Transformer,考虑到GEC是一个特殊的“翻译问题”,即目标序列中的词和源序列中的词在很大程度上重复,该模型在预测每个位置时,结合复制概率以及序列到序列模型的预测分布来确定最终的预测结果.相较于Copy-Transformer MASS-GEC1在F0.5指标上低2.3%.然而,本文没有使用大规模人工合成语料 (约 3 000 万条) 进行预训练,因此拥有一定的训练时长优势.

表1 不同的GEC系统结果对比Tab.1 Comparison of results of different grammatical error correction systems

MASS-GEC2在JFLEG测试集上的GLEU指标达到59.1,在未使用合成语料预训练的单个GEC模型上实现了效果的提升.值得注意的是,不同规模的MASS模型在两个任务上的表现有差别,MASS-GEC2模型在JFLEG上表现优于MASS-GEC1,而在CoNLL14数据集上则相反,这可能是JFLEG任务更注重流利程度,更大的模型框架可以捕捉更深层次的语义,因此更适用于JFLEG任务.

4.2 消融实验结果分析

消融实验结果如表2所示,表中:P为查准率;R为查全率.表中带“-”的模型含义是在前一行的基础上去掉本行的模块,最后一行的结果代表拼写检查在两个数据集上的表现.使用标注语料在MASS模型上微调之后,模型在CoNLL14上的F0.5=55.1,在JFLEG上的GLEU 为57.7.如果使用错误类型控制,移除在开发集上纠正效果较差的错误类型,则F0.5能提升2.4%,而GLEU提升不明显.主谓一致纠正后处理在两个任务上的改善作用均不明显,这可能是由于当前的GEC已然具有较好的主谓一致纠正能力,或者主谓一致纠正处理影响了原来GEC系统正确的纠正预测.

表2 MASS-GEC系统的消融实验结果Tab.2 Results of ablation experiment on MASS-GEC

4.3 不同规模的领域调整结果分析

NUCLE标注语料与CoNLL14任务的领域相匹配,参考文献[6],对训练数据集进行调整,将NUCLE语料复制k(k∈{1,5,10,15,20}) 倍,观察模型的表现,结果如图2所示.GEC系统在k=10 时表现最佳,当k继续增大时,模型表现变差,推测当k>10 时,模型对NUCLE语料存在过拟合.因此,在实验部分令超参数k=10.

图2 不同领域适应规模下MASS-GEC系统的表现Fig.2 Performance of MASS-GEC system with regard to different domain adaption sizes

5 结语

将GEC看作低资源的文本生成任务,基于预训练语言模型MASS提出MASS-GEC系统,在公开数据集上达到较好的效果.研究结果为GEC任务提供新的视角,即在不进行大规模合成语料预训练的情况下,通过生成式语言模型的运用来缓解GEC任务所面对的低资源问题.此外,通过后处理的方式,用错误类型控制以及无监督的主谓一致纠正模型来增强GEC系统的表现,并对本系统的各个模块进行消融分析.未来将着眼于GEC的解释维度,考虑结合反事实自动生成模型,为主谓一致等特定类型的语法错误提供系统生成的解释,有利于进一步提升英语学习者的自主学习效率.

猜你喜欢
语法错误集上语料
基于归一化点向互信息的低资源平行语料过滤方法*
GCD封闭集上的幂矩阵行列式间的整除性
R语言在统计学教学中的运用
汉语负迁移对英语写作的影响及启示
高中英语写作中的语法错误分析
师如明灯,清凉温润
《苗防备览》中的湘西语料
国内外语用学实证研究比较:语料类型与收集方法
几道导数题引发的解题思考
异种语料融合方法: 基于统计的中文词法分析应用