基于机器翻译输出的语法错误纠正

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

内容简介:英语,作为世界上使用范围最广的语言,成为众多非英语国家(地区)的人们争相学习的第二语言(English as a Second Language,ESL)。据统计,全世界有超过17.5亿人将英语作为一种实用工具,这其中,母语非英语的人已经占据多数,同时,ESL初学者的人数仍在持续增长。然而,学习一门新的语言并非易事,在ESL初学者书写的文本中,存在大量的语法错误,能否利用计算机自动地纠正这些错误,辅助ESL初学者的语言学习,成为一个现实的问题。简而言之,语法错误纠正(Grammatical Error C

NLP 神经机器翻译 语法错误纠正

介绍

背景

英语,作为世界上使用范围最广的语言,成为众多非英语国家(地区)的人们争相学习的第二语言(English as a Second Language,ESL)。据统计,全世界有超过17.5亿人将英语作为一种实用工具,这其中,母语非英语的人已经占据多数,同时,ESL初学者的人数仍在持续增长。然而,学习一门新的语言并非易事,在ESL初学者书写的文本中,存在大量的语法错误,能否利用计算机自动地纠正这些错误,辅助ESL初学者的语言学习,成为一个现实的问题。

任务定义

简而言之,语法错误纠正(Grammatical Error Correction,GEC),就是自动地纠正文本中存在的语法错误,下图给出了一个直观的例子。具体的,一个GEC系统,通过分析输入句子的上下文,识别并纠正其中存在的任何语法错误,最终输出一个无语法错误的句子,且保留原句的语义不变。当然,如果输入句子中不存在语法错误,GEC系统应直接返回原句。

基于机器翻译输出的语法错误纠正

GEC方法综述

近年来,GEC这一任务在方法上经历了由规则到统计的演变,大体可分为3个阶段,下面做一简单介绍。

基于规则的方法

这一类方法通过硬编码规则来进行纠错。世界上第一个GEC系统,Writer's Workbench(1982年),就完全基于字符串的匹配和替换。对于某些特定类别的错误,基于规则的方法易于实现且十分有效,因此,直到今天,该方法仍被广泛使用。然而,考虑到语言的复杂性,基于规则的方法并不适合作为GEC的通用方法。

数据驱动的传统机器学习方法

随着语料资源的不断累积,从20世纪90年代开始,数据驱动的方法成为GEC的主流,人们利用机器学习技术(SVM、朴素贝叶斯),为不同错误类别设计单独的分类器。这类方法对冠词、介词等错误的纠正效果十分明显,但也存在一些问题。其仅利用了句子中局部的上下文信息,且只能独立地考虑不同的错误类别,对于一些交互式错误则无能为力。下面给出一个例子。

假设原句为:

显然,句子中network需改为networks,plays需改为play。

而采用对多个分类器做pipeline组合的纠错方法,假设主谓不一致先于名词单复数纠正,则纠正后的句子为:

仍然存在主谓不一致错误。

基于机器翻译的方法

将语法错误纠正看成是把“坏”句子翻译成“好”句子的思想最早来源于Brockett等人(2006年)。这是一个天才的想法,但直到2014年,该方法才逐渐成为GEC的主流,并迅速发展、迭代。在CoNLL2014年(CoNLL是NLP领域的一个年度评测会议)的GEC评测中,剑桥大学提交的基于统计机器翻译(Statistical Machine Translation,SMT)的GEC系统一举夺冠。之后,许多改进的方法被陆续提出,其中一个方法,rerank,即提取语言学特征对SMT解码得到的若干候选句子进行重排序,对纠错性能提升十分明显,基本成为GEC的一个必备环节。而随着神经机器翻译(Neural machine translation,NMT)逐渐取代SMT,NMT被很自然地引入到GEC,成为state-of-the-art GEC系统的核心组件。

基于NMT输出的GEC系统

(a)encoder-decoder模型

假设

为输入句子, 为纠正后的句子。GEC系统通过建模 ,试图找出

,并将其作为纠正结果。

encoder-decoder模型的思想很简单,首先,用一个神经网络(encoder)将输入句子

编码成一个固定长度的向量,接着,用另一个神经网络(decoder)基于该向量进行解码,输出纠正后的句子。下图给出了RNN encoder-decoder模型的计算图。 基于机器翻译输出的语法错误纠正

典型的encoder和decoder网络均使用RNN,这里分别记为

。模型的具体计算公式如下,其中, 分别表示源端和目标端的词向量矩阵。

encoder网络从

开始计算,遍历输入句子,直到输出最终的隐状态向量 。因此,在理论上可以认为 编码了整个输入句子的信息。 而在解码阶段,将 每一个时间步计算得到的隐状态向量通过

函数,转换为词汇表上的概率分布向量,之后,利用搜索技术(如beam search)找出一个输出句子。

encoder-decoder模型看似简单,实则非常强大。其能够直接、有效地对

进行建模。以机器翻译为例,通过做模型集成、采用更加复杂的encoder(如双向RNN)对输入句子编码,仅用encoder-decoder模型也能取得与高度工程化的翻译系统很接近的性能。

(b)注意力机制(attention mechanism)

理论上,一个充分复杂的encoder-decoder模型,可以完美地解决像翻译、纠错这样的问题。但是,在实际应用时,受训练数据规模的限制,模型不能无限大,这使得encoder-decoder模型面临两个突出的问题。

(1)长距离依赖

输入句子和输出句子中的某些词存在长距离依赖,在反向传播时,这可能引发梯度问题,造成模型学习困难。

(2)输入的表示

这一问题相比于长距离依赖问题更加严重。想象有两个输入句子,第一个仅包含3个单词,第二个包含100个单词,而encoder居然无差别地将它们都编码成相同长度的向量(比如说50维)。这一做法显然存在问题,长度为100的句子中很多信息可能被忽略了。

注意力机制的提出就是为了解决这一问题。在encoder对输入句子编码时,我们保留每一个词对应的隐状态向量,而在decoder解码时,我们充分利用这些信息(隐状态向量),而不是仅仅依赖encoder输出的最后一个隐状态向量

。下图给出了注意力机制的计算图。

基于机器翻译输出的语法错误纠正 首先,使用双向RNN作为encoder编码输入句子,拼接同一位置两个方向的隐状态向量,得到词的上下文表示。

在解码时,为不同隐状态向量分配不同权重,加权组合得到当前时间步的上下文向量,和decoder当前输出的隐状态向量拼接在一起,通过

预测下一个词。

注意力机制使我们可以在解码过程中,动态地将更多的注意力(本质上是更大的权重)分配到输入句子中与当前时间步解码更相关的词上,从未提高纠错质量。

下图给出了在GEC中使用注意力机制的一个实例,可以看到大部分权重都集中在对角线上。

基于机器翻译输出的语法错误纠正

(c)重排序(rerank)

encoder-decoder模型加attention,这基本就是当前state-of-the-art GEC系统的核心,但为了进一步提高纠错性能,还有一个重要的实用步骤—重排序。典型的端到端Seq2Seq,直接将解码(如beam search)搜索得分最高的结果作为输出。但很多时候,由于encoder-decoder模型存在误差,解码时得分最高的结果并不一定是最好的,重 排序 对这一问题做了优化。具体做法很简单,比如说,使用beam search解码,保留得分最高的前k个候选句子,然后,在解码得分的基础上,引入若干特征(如输出句子在外部语言模型上的概率得分、与输入句子的编辑距离),对这k个候选句子重新排序,然后选择新的得分最高的句子作为最终输出。

结语

不可否认,目前GEC技术离实用还有一段距离。作为辅助语言学习的工具,GEC会更多地关注纠错的Precision,如何在保证Precision的情况下,提高纠错的Recall,将是今后GEC研究的一个重要方向。此外,目前GEC的平行语料相对较少,能否从low resource机器翻译研究中汲取营养,利用多模态数据、无监督方法来提高GEC的性能,也是一个值得关注的方向。

学习一门新的语言并不是一件简单的事情,技术为我们提供了丰富的资源来改善我们的学习体验。建立实用的自动语法纠错系统将深刻影响下一代的语言学习,这其中不仅蕴含着巨大商机,还极具教育意义。

参考文献

  1. A Multilayer Convolutional Encoder-Decoder Neural Network for Grammatical Error Correction, Shamil Chollampatt et al.
  2. Grammatical error correction in non-native English, Zheng Yuan.
  3. To err is Human, to Correct is Divine, Mariano Felice et al.
  4. Neural Machine Translation and Sequence-to-sequence Models: A Tutorial, Graham Neubig.
  5. Near Human-Level Performance in Grammatical Error Correction with Hybrid Machine Translation, Roman Grundkiewicz et al.

以上所述就是小编给大家介绍的《基于机器翻译输出的语法错误纠正》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

运营前线 2

运营前线 2

兰军 等著 / 机械工业出版社 / 2017-4 / 69.00

“运营前线”是一个系列,目前已经出版2部,与“产品前线”一样,该系列书也由资深的产品和运营专家兰军(Blues)领衔策划和写作,旨在梳理和总结国内一线互联网公司的运营方法和技巧,让所有产品人和运营人都有机会了解和学习这些大的互联网公司是如何做运营的。 这2部作品汇集了来自腾讯、阿里、百度、360、迅雷、YY、小米、爱奇艺、乐视等数十家大型互联网公司的一线运营专家的技巧和方法论。共包含9大运营......一起来看看 《运营前线 2》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

在线进制转换器
在线进制转换器

各进制数互转换器