论文部分内容阅读
语法错误纠正,目标是利用计算机程序自动地纠正书面文本中存在的语法错误。目前,主流的方法将其看作一个单语翻译任务,纠错就是将“错误”句子翻译成“正确”句子的过程。本文分别从模型、训练算法、数据增强三个层面着手,研究升语法错误纠正性能的方法。(1)绝大部分语法错误发生在文本中某一局部,但也有一小部分语法错误跨越文本中的多个片段。我们使用当前神经机器翻译中最为先进的编码器-解码器模型——Transformer建模语法错误纠正,以兼顾文本中的局部上下文信息和长距离依赖关系。在两个标准数据集上的实验结果表明,Transformer显著地优于基于循环神经网络或卷积神经网络的模型。(2)典型的神经机器翻译面临着曝光偏差、损失评估失配等问题。此外,自动评价指标往往不能完全真实地反映模型的性能。我们出了一个面向语法错误纠正的对抗学习框架,在该框架中,包含一个判别器和一个生成器。给定错误句子,判别器负责区分某一纠正句子来自模型输出还是人工标注,而生成器的目标是生成“以假乱真”的纠正句子以欺骗判别器。通过让两者相互对抗,促使生成器生成与人类表达更为接近的纠正句子。我们借助强化学习中的策略梯度方法来克服由自然语言文本的离散特性带来的优化问题。实验结果表明,我们出的对抗学习框架能在句子层面升模型输出的纠正句子的流利度。(3)目前,语法错误纠正面临着较为严重的数据稀疏问题,这给机器翻译方法在该任务上的应用带来了直接的困难。我们基于back-translation数据增强方法合成伪”错误-纠正”平行句对。为了引入具有多样性的语法错误,我们首次出在back-translation阶段采用sampling解码构造伪句对,并对比了基于不同解码策略合成的伪句对给训练正向语法错误纠正模型带来的影响。进一步地,我们使用自创的对抗学习框架,升back-translation中反向语法错误生成模型的性能,从而构造出更高质量的伪句对,以帮助正向模型的训练。实验结果表明,我们的方法能合成有效的伪句对,从而升语法错误纠正的性能。