Pytorch学习记录-接近人类水平的GEC(使用混合机器翻译模型)

五月第二周要结束了,接下来的三个月主要是文献阅读,准备8、9月的开题报告,技术类的文献集中在GEC和Text maching的应用方面,读完之后找demo复现,然后应用。
理论方面的论文也都是英文的

8. Near Human-Level Performance in Grammatical Error Correction with Hybrid Machine Translation

昨天一天没看论文,发现我文献阅读速度太慢了……
今天的论文是爱丁堡大学2018年的一篇文章。
作者将基于SMT和NMT模型的两个GEC整合在一起,搞出来一个混合系统(hybrid system),然后在CoNLL-2014和JFLEG中都获得了STOA(CoNLL-2014获得56.25、JFLEG获得61.50,微软的系统在这个模型之后出现,用它做过对比,在2018年是碾压的)。
模型保留了SMT输出的准确性,同时使用NMT来生成更为流畅的句子。

8.1 介绍

目前NMT在输出结果上仍弱于基于短语的SMT,但是NMT能够生成更加流畅的句子。


image.png

8.2 数据和预处理

主要训练数据集是NUCLE,使用Lang-8语料库英语句子作为增加的训练数据。
测试集使用CoNLL-2013和2014,JFLEG数据集

8.3 SMT系统

基于LSTM、基于短语的SMT系统。

  • Dense特征:使用词级别的Levenshtein距离(一种字符串编辑距离)和编辑操作计数
  • Sparse(稀疏)特征:在单词类上有基于单词前后上下文的矫正模式
  • 字符操作:使用字符级别特征,用于纠正拼写错误
  • 使用N-gram(n=5)模型和OSM(?)

8.4 NMT系统

NMT是基于attention机制和单层BiGRU的encoder-decoder模型,

8.5 整合SMT-NMT系统

使用Pipelining(流水线)和Rescoring(重新分析方法),以结合最好的SMT和NMT GEC系统。

8.5.1 SMT-NMT流水线

image.png

使用SMT纠正后的结果输入NMT。Pipelining能够提高测试集的recall分数。在表中可以看到没有使用RNN LM的NMT的P值得分低于SMT,这意味着两种方法都会产生互补的修正。

8.5.2 NMT重新分析法(Rescoring)

从一个系统到另一个系统获得的n-best列表的重新分类是GEC中常用的技术,其允许组合多个不同系统甚至不同方法。
在实验中,使用SMT系统生成1000 n-best列表,并从每个神经元件中添加单独的分数。在负日志空间中以概率的形式添加分数的NMT模型和RNN LM。重新评分的权重是从开发集上的Batch Mira算法的单次运行中获得的。
与流水线相反,重新安排以提高召回为代价提高了精度,对CoNLL数据更有效,最高可达54.95 M2。但是,重新评估的最佳结果低于该测试集上的流水线操作。似乎SMT系统无法在n-best列表中产生与NMT集合产生的那些多样化的校正。

8.5.3 拼写纠正和最后的结果

8.6 结果分析

image.png

这是最后的输出例子,从源句到SMT,到NMT,然后使用Pipelining和Rescoring进行处理,最后给出若干个备选项。

表5显示了来自JFLEG测试语料库的示例源句子的系统输出,其说明了统计和神经方法的互补性。 SMT和NMT系统产生不同的校正。rescoring能够产生唯一的校正(is change→has changed),但它无法从神经系统产生一些校正,例如,拼写错误(becom 和 dificullty)。另一方面,Pipelining可能无法改善SMT系统进行的局部校正(is changed)。这两种方法的组合产生输出。

你可能感兴趣的:(Pytorch学习记录-接近人类水平的GEC(使用混合机器翻译模型))