Pytorch学习记录-GEC语法纠错

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

学习计划

  1. GEC概念
  2. Alibaba at IJCNLP-2017 Task 1: Embedding Grammatical Features into LSTMs for Chinese Grammatical Error Diagnosis Task
    相关介绍:http://www.sohu.com/a/206342111_473283
    NLPTEA-2018 Task1 比赛第一名
  3. Chinese Grammatical Error Diagnosis using Statistical and Prior Knowledge driven Features with Probabilistic Ensemble Enhancement
    相关介绍:http://www.10tiao.com/html/617/201807/2650793125/1.html

英文语法纠错(最近三年)
流利说的两篇文章,用分类方法做语法纠错,不需要平行语料(错误-正确对子对),只做五类错误:主谓一致,名词单复数,介词错误,冠词错误,动词形式错误

  1. Deep Context Model for Grammatical Error Correction
  2. A Simple but Effective Classification Model for Grammatical ErrorjiyuCorrection
  3. Connecting the Dots: Towards Human-Level Grammatical Error Correction
  4. A Multilayer Convolutional Encoder-Decoder Neural Network for Grammatical Error Correction
  5. Reaching Human-level Performance in Automatic Grammatical Error Correction: An Empiricale Study
    https://blog.csdn.net/Y2c8YpZC15p/article/details/81125500?utm_source=blogxgwz1

混合SMT和NMT

  1. Near Human-Level Performance in Grammatical Error Correction with Hybrid Machine Translation
    基于分类的方法和基于翻译的方法比较:
  2. Grammatical Error Correction: Machine Translation and Classifiers
    conll2014 英文语法纠错综述(有各个小组的论文集合):
  3. The CoNLL-2014 Shared Task on Grammatical Error Correction

0. GEC概念

基于这篇文章https://www.zybuluo.com/xixibufu/note/1250559

0.1 GEC的三个阶段

GEC是(Grammatical Error Correction)的简写,整体包括三个阶段:

  • 基于规则
    没什么好说的,就是上规则,有些古老但是很有用。
  • 数据驱动的传统机器学习
    在数据驱动的方法成为GEC的主流后,人们利用机器学习技术(SVM、朴素贝叶斯),为不同错误类别设计单独的分类器。
    这类方法对冠词、介词等错误的纠正效果十分明显,但也存在一些问题。
    其仅利用了句子中局部的上下文信息、且只能独立地考虑不同的错误类别,对于一些交互式错误则无能为力。
  • 基于机器翻译
    到目前为止经历两个阶段,SMT(基于统计机器翻译)和NMT(神经机器翻译),原理很简单,使用类似机器翻译的方式,将有语法问题的“坏”句子翻译成“好”句子。
    • CoNLL2014剑桥大学基于统计机器翻译SMT
    • 基于SMT增加ReRank,通过提取语言学特征对候选句子进行重排序
    • NMT成为新的主流

0.2 结合NMT输出的GEC系统

  • encoder-decoder模型
    基于NMT自然还是要使用基于encoder-decoder模型的Seq2Seq。资料里面还是使用RNN作为核心网络。
    • 用一个神经网络(encoder)将输入句子F编码成一个固定长度的向量
    • 用另一个神经网络(decoder)基于该向量进行解码,输出纠正后的句子
  • attention机制
    加入attention机制后,可以解决RNN对长距离依赖的不敏感和“输入的表示”(就是第5个模型中的压紧处理)

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

0.3 重排序ReRank

就是在得到结果后进行一个重排序处理,beam search进行解码,保留得分最高的前K个候选句子,在解码得分的基础上引入若干特征,对这K个候选句子重新排序。

你可能感兴趣的:(Pytorch学习记录-GEC语法纠错)