Chinese Grammatical Error Diagnosis with Long Short-Term Memory Networks
此篇论文来自HIT刘挺组的在NLP-TEA-3中文语法检测任务的总结介绍。中文语法错误检测(CGED)检测四种类型的错误:多余的词(R)、丢失的词(M)、错误的词(S)、乱序的词(W)。
1.介绍
在这项工作中,作者将CGED任务视为序列标注问题,对目标句子中的每个字标识出错误类型(R、M、S、W)和错误位置(开始、中间)。传统的序列标注的方法是CRF,但是在中文错误检测中存在长期依赖的问题,比如下面的句子,知道遇到了“损害”,才能检测出“表示”存在错误。传统模型从有限内容窗口中提取特征,可能会难以处理这种情况。传统神经网络模型已经大量应用到NLP中,并且LSTM在NER等任务中取得了很不错的效果。这篇论文作者提出了基于LSTM模型的中文错误检测,并且为了整合CRF和LSTM模型的有点,通过Stack形式对模型做了整合。

2.任务介绍
NLP-TEA-3 中的CGED定义如下:给定一个中文句子,识别出四种语法错误,包括冗余词(R)、丢失词(M)、错误词(S)、乱序词(W),同时要给出错误的开始和结束位置。数据实例:

3 方法论述
将CGED任务视为序列标注问题,给一个中文句子x,模型给出对应的一个标注序列y。其中O表示正确,“B-X”表示错误类型X的开始位置,“I-X”表示错误X的中间位置,X代表上面的四种错误类型。
3.1 数据准备
因为任务涉及到制定边界,如果对句子进行分词,容易造成分词错误因为词语对齐错误,比如下图的情况。所以这里采用字级别的处理。

除此之外,另外一个问题是会存在不同错误类型相互叠加的情况,如下图的情况。一种处理方式是单独处理四种不同的错误,但是不同错误之间会存在相互影响的情况。为了保证尽可能多的错误,作者删掉了数量最少的重叠错误。

另外,任务中一个重要的特征是词性,将词性处理成如下的形式:

3.2 基于CRF的模型
模型定义如下:

其中Z(x)是归一化因子,\(f_{k}\)是特征函数,\(λ_{k}\)是对应的权重。x是输入的句子,y是对应的错误类型。特征模板如下所示,使用SGD进行训练、L2正则化。

3.3 LSTM模型
LSTM的介绍略,各个时刻不同门的计算公式如下:

使用隐层状态\(h_{t}\)来计算每个时候的输出结果。如下图所示,在每个位置,将字的embedding和bigram embedding作为输入特征。

字的embedding是随机初始化的,对于bigram的embedding计算,首先将句子根据bigram进行切分,然后使用word2vec进行训练。
3.4 模型堆叠
经过实验验证发现,基于LSTM的模型有着高的召回率,基于CRF的模型有着高的准确率,为了结合这两个模型的优点,使用stacking进行模型组合。将CRF模型的输出结果作为LSTM输入层的离散特征。
4 结果
4.1 数据和设置
完整的NLP-TEA-3中训练集和验证集包括16142个句子作为训练,剩下的4000句子作为验证。下图表示了训练集和验证集的分布情况。

另外使用Chinese Gigawords来获取预训练的bigram embedding,
4.2 实验结果
4.2.1 验证集上的结果

4.2.2 评测集上的结果
