Pytorch学习记录-增加字符级SMT组件的GEC

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

5. Connecting the Dots: Towards Human-Level Grammatical Error Correction

新加坡国立大学2018年论文,基于一个SOTA的SMT,使用特定任务功能和调整,并进一步增强它与神经网络联合模型的建模能力。这篇论文开放了源码,可以看一下https://github.com/nusnlp/smtgec2017

  • 基于SMT系统的GEC的缺陷:在概括超出训练期间看到的模式方面很弱,并且在单词级别之下缺乏粒度。
  • 解决方案,合并一个字符级SMT组件,该组件针对原始基于SMT的系统无法纠正的拼写错误的单词。
  • 使用的评估数据集CoNLL-2014

5.1 介绍

这篇文章,将GEC作为一种机器翻译任务,就是将“坏”句子翻译成“好”句子。优势在于:

  • 通过足够多的平行数据,能够对任何语言进行训练。
  • 能够解决混合式的错误。
    传统词级别的SMT在概括超出训练数据中看到的模式时会很弱(是不是指迁移性)。在这里增加了一个字符级的SMT组件,能够纠正拼写错误。
    基于单词级SMT的GEC系统利用了任务特定功能,在添加神经网络联合模型(NNJM)后,性能会继续提高,如《Neural network translation models for grammatical error correction》中所述。 NNJM可以利用单词和短语的连续空间表示,并且可以从源句中捕获更大的上下文,这使得它们能够比传统语言模型做出更好的预测。使用正则化自适应训练方法对更高质量的训练数据集进一步改进NNJM,其具有更高的错误句子比率。此外,我们添加了一个字符级SMT组件来生成拼写错误的单词的候选更正。使用n-gram语言模型特征对这些候选校正进行重新校正以修剪非单词候选者并选择最适合上下文的候选者。

5.2 相关工作

在CoNLL2014之前,业内关注的都是少数几种错误类型。SMT解决了这个问题,因此成为了主流方案。
2016年是爆发的年份。

  • 基于短语的SMT
  • ReRank模式,使用集成学习,获取得分最高的几个结果
  • 通过对输出进行错误分析来比较SMT和分类器方法,并使用基于分类器的错误类型特定组件描述管道系统,上下文敏感拼写校正系统
  • 标点和样例矫正系统,使用特征、语言模型、tuning
  • 使用神经网络+字符级SMT组件

字符级的SMT一般被用在音译和机器翻译。之前被用于阿拉伯语的拼写矫正和预处理SMT系统的输入噪声。

5.3 SMT

5.4 神经网络联合模型与适应

基于Chollampatt 2016年的模型,研究者增加了神经网络联合模型(NNJM)特征来提高SMT组件。
Chollampatt搞了基于作家自然语言的SMT适应性GEC。

5.5 使用SMT进行拼写错误纠正

image.png

模型,我发现这几篇的模型都很简陋啊……
SMT组件等同于词级SMT中的单词,前者中的字符序列(即单词)等同于后者中的单词序列(即句子)。字符级SMT组件的输入是构成未知(拼写错误)单词的字符序列,输出是校正候选(单词)列表。
注意,未知单词是用于训练翻译模型的并行训练数据的源侧未见的单词。为了训练字符级SMT组件。
我们的字符级SMT使用M2度量在字符上进行调整,具有字符级编辑操作功能和5-gram字符LM。对于每个未知单词,字符级SMT生成100个候选项,然后根据上下文对其进行重新调整以选择最佳候选项。

这一篇读得很匆忙。

你可能感兴趣的:(Pytorch学习记录-增加字符级SMT组件的GEC)