自然语言处理在自动语法纠错中的应用

栏目: 编程工具 · 发布时间: 5年前

内容简介:一、语法纠错(Grammatical Error Correction, GEC),是指自动纠正文本中存在的语法错误;具体来说,GEC 系统通过分析输入句子成分之间的依赖性和逻辑性,识别并纠正其中存在的语法错误。

自然语言处理在自动语法纠错中的应用

一、 GEC是什么

语法纠错(Grammatical Error Correction, GEC),是指自动纠正文本中存在的语法错误;具体来说,GEC 系统通过分析输入句子成分之间的依赖性和逻辑性,识别并纠正其中存在的语法错误。

英语学习者通常所犯的语法错误分成两大类:

  • 句法错误。句法错误主要是指破坏了语言内生的系统性规则,例如动词形式的变化规则中,情态动词所跟的动词必须使用动词原形;

  • 语用错误。语用错误通常是指违反了语言的使用习惯,例如 depend on sth.,这里 on 如果错用成 in,并没有违反句法规则,但却不符合人们的语言使用习惯,也属于语法错误。

二、GEC的难点有哪些

总结一下有4点:

  1. 错误类型多:在目前比较流行的 GEC 标注体系下  Christopher Bryant et al. [1],语法错误类型被划分成五十多种,如果按照语法教学体系,语法错误甚至可以被划分成上百种,在如此纷繁复杂的错误类型中,学习目标很难统一。

  2. 多重句法功能:仅以介词为例,介词引导的语言成分既可以作定语,也可以作表语,还可以做状语,在不同的用法中上下文的语境也不尽相同,从而为语法错误的判断带来干扰。

  3. 远距离依赖:以主谓一致为例,有时候用于判断谓语主谓一致性的主语距离谓语很远,远距离的主谓一致情况在训练语料中是稀疏的,而长距离信息的学习也恰好是机器学习的难点。

  4. 噪音:在 GEC 领域的训练数据中,由于标注的质量和标注者的偏见等问题,天然存在着相当多的噪音,如何克服这些噪音以获得学习的稳定性也是难点之一。

三、GEC的评估与解决方案

GEC 目前最常用的评估方式是基于 Max-Match 自然语言处理在自动语法纠错中的应用   的度量 Daniel Dahlmeier et al. [2],并综合准确率 P 和召回率 R 计算得到 自然语言处理在自动语法纠错中的应用 。举个栗子:

自然语言处理在自动语法纠错中的应用

现在,我们来看看 NLP 方法在 GEC 中是如何发展的。­­

自动语法纠错方法的演进史

自然语言处理在自动语法纠错中的应用

可以说,近些年 NLP 方法上的迭代,在 GEC 领域有很明显的体现,其中有几个重要的里程碑。

  1. 从 2013 年开始,随着连续两届影响力较大的 CoNLL GEC 竞赛的举办,GEC 领域开始得到研究者们的关注,研究趋势也从规则驱动(Rule-driven)的方法转向了数据驱动(Data-driven)的方法,比较典型的是基于传统机器学习分类方法的 GEC 方案,在该类方案中需要人工设计和抽取复杂的针对目标词语的上下文 NLP 特征。CoNLL 2013 GEC 竞赛的获胜方 Alla Rozovskaya et al. [3] 采用了改方案。但这类方案的弊端也很明显,GEC 系统需要针对每一种错误类型设计不同的特征,甚至设计不同的模型结构,这对实现一个较完备的 GEC 系统来说无论从工程效率还是性能上都提出了挑战。

  2. 针对上述弊端,基于统计机器翻译(SMT)的方案将 GEC 看成由错误句子到正确句子映射的翻译任务。在翻译任务的框架下,SMT 天然地可以使用一套架构同时纠正多种类型的错误,从 CoNLL 2014 GEC 竞赛崭露头角后,逐渐成为了 GEC 领域的主流方案。然而,SMT 的弊端在于仍然无法摆脱人工设计的特征,且受困于离散表示带来的数据稀疏问题以及翻译概率的局部性(难以胜任解决长依赖的问题)等缺点,因此研究者开始期待更好的端到端方案来解决 GEC 问题。

  3. 实际上,如何让基于神经机器翻译(NMT)的方案在 GEC 问题上发挥作用,研究者们是挣扎了一段时间的。经验来看,目前可以公开获取的 GEC 领域平行语料大小只有 100 万~200 万句对,而这也处于 SMT 和 NMT 难以分出胜负的数据量区间。这个瓶颈在 SMT 方案成为主流两年后的 2018 年被突破了。随着 2017 年 Facebook 和 Google 分别提出了基于卷积神经网络(CNN)Jonas Gehring et al. [4]  和基于 Transformer 的端到端翻译框架 Ashish Vaswani et al. [5],基于 NMT 的 GEC 方案在 2018 年获得了飞速的发展。我们将这种发展归结为两种思路的优化与融合:

    a)  模型结构的优化 无论是基于CNN抑或是Transformer,都是在“序列到序列”的框架下,增强序列建模的能力以及模型的并行计算能力,这一点在大部分需要序列建模的NLP任务上都得到了验证。在此基础上,又有研究者诸如Wei Zhao et al. [6] 对模型结构(加入Copynet机制)以及问题结构(多目标学习)进行调整以适应 GEC 的问题特性。

    b) 数据层面的优化。 总结现有的方案,又分为两点:

    i. 针对领域数据的自适应。GEC 的评测主要基于某些领域数据采集得到的测试集,而不同领域数据(目前普遍使用的 GEC 标准测试集同领域的训练集数量较少)中的语法错误分布、错误密度差异可以是很大的,因此如何利用不同领域的语法平行语料作迁移训练以获得更优的标准测试集结果是一条主流的优化思路。基于这种思路,Junczys-Dowmunt et al. [7] 提出了 Domain-Adaptation,Error-Adaptation以及Edit-MLE 等领域数据自适应策略。

    ii. 基于海量易获取数据的预训练。目前可见的趋势是在 GEC 翻译问题中使用海量易获取数据对模型参数或者只对解码器(decoder)参数进行初始化训练,从而获得更优的模型初始权重。我们认为这样的策略有两个好处:第一,让模型在精调(finetune)之前有一个适应 GEC 问题的初始权重,该预训练的结果使得模型具备了比较全的错误映射模式;第二,将模型的 decoder 天然地初始化为一个较好的语言模型,从而增强纠错效果与流畅度。在预训练之后,可以继续使用质量更好的语法平行语料对模型进行 finetune,从而得到一个不错的语法翻译模型。这类方案中,不同的研究者会采取不同的策略:Junczys-Dowmunt et al. [7] 通过训练一个decoder 相同架构的语言模型对 decoder 进行权重初始化;Wei Zhao et al. [6] 根据一定的规则在海量母语者语料上生成带噪声的平行语料来训练一个降噪自编码器(Denoising auto-encoder)以对模型的大部分参数进行初始化;JaredLichtarge et al. [8] 则是使用过滤后的海量维基百科编辑历史语料(也根据规则加入噪声)作为训练语料进行模型权重初始化。另外值得一提的是,finetune 实际上起到了抑制噪音并增强正确映射模式的作用,这和前述的预训练工作是互相补充的。理论上,用于 finetune 的语料越大,语法翻译模型的性能就会越好,Tao Ge et al. [9] 提出了一种合理扩充高质量语法平行语料的策略,并在此工作的基础上实现了第一个在测试集指标上超过人类水平的 GEC 系统。

四、流利说在GEC领域中的工作和产品应用

目前,我们融合规则系统、深度语境分类器以及NMT等多种GEC解决方案,打造了一款兼顾写作和语音评测场景的GEC系统。

自然语言处理在自动语法纠错中的应用

同时我们整合现有的 GEC 能力,参加了 BEA 2019 [10] 全球 GEC 竞赛,在全部三条赛道上均进入了前三。

自然语言处理在自动语法纠错中的应用

自然语言处理在自动语法纠错中的应用

自然语言处理在自动语法纠错中的应用

下面是我们的GEC能力在实际产品中的输出。

1.流利写作

自然语言处理在自动语法纠错中的应用

2.雅思流利说

自然语言处理在自动语法纠错中的应用  

3.翻译小丸子

自然语言处理在自动语法纠错中的应用

五、总结

GEC 作为教育和技术融合的经典 NLP 场景,让我们真正实现了从实际场景和需求出发做研究,并最终落地实际产品。我们会持续打磨 GEC 方面的技术能力,不断推动 GEC 社区的进步,同时带给用户更多令人耳目一新的评测体验。

参考文献

[1] AutomaticAnnotation and Evaluation of Error Types for Grammatical Error Correction, 2017

[2] BetterEvaluation for Grammatical Error Correction, 2012

[3] TheUniversity of Illinois System in the CoNLL-2013 Shared Task, 2013

[4] ConvolutionalSequence to Sequence Learning, 2017

[5] AttentionIs All You Need, 2017

[6] ImprovingGrammatical Error Correction via Pre-Training a Copy-Augmented Architecturewith Unlabeled Data, 2019

[7] ApproachingNeural Grammatical Error Correction as a Low-Resource Machine Translation Task,2018

[8] CorporaGeneration for Grammatical Error Correction, 2018

[9] FluencyBoost Learning and Inference for Neural Grammatical Error Correction, 2018

[10] BuildingEducational Applications 2019 Shared Task: Grammatical Error Correction, 2019

自然语言处理在自动语法纠错中的应用


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

CSS精粹

CSS精粹

Rachel Andrew / 曹明伦 / 人民邮电出版社 / 2007-10 / 39.00元

本书采用问答的形式,为CSS使用过程中一些有价值的经典问题提供了精彩的实践解决方案。本书内容包括文本样式、CSS图像、导航、表格数据、注册表和用户界面、浏览器和设置支持、CSS定位和布局以及未来相关技术。 本书的目标读者是每一个需要使作CSS的Web设计人员和开发人员。本书通过经典的问题和精彩的解答将理论融于实践,使每一个带着问题阅读本书的读者都能找到自己满意的答案。一起来看看 《CSS精粹》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

URL 编码/解码
URL 编码/解码

URL 编码/解码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具