中文书写错误检测混合序列模型
文章:Hao Wang, etc. Chinese Spelling Error Detection Using a Fusion Lattice LSTM. 2019
首先Spelling Error一般指的是英文的拼写错误,其实用在中文上不完全合适,因为中文是方块文字,错误有可能是拼音拼写导致的,也有可能拼写正确,但候选词选择错误,所以翻成输入错误会比较恰当。
摘要:在于过去的中文输入错误一般以字和词的信息,没有把拼音加入其中,文章提出一种端到端混合模型FL-LSTM-CRF(FL, Fusion Lattice)来处理该问题,并在标准集上取得最佳结果。
背景:现有的方法一般是先对句子进行切词,把单字的部分作为拼写错误检测对象,用语言模型高分词替换掉,主要的不足之处在于没有考虑读音。有方法,生成一个读音相近字的静态词典来处理发音特征,还有用翻译模型进行错误检测的,还有用主题模型的。
新方法:文章将字、词和拼音都加入到模型中。
1、字、拼音、词的向量表示
c, character,字
p, pinyin,拼音
e, embedding,嵌入(或向量)
w, word, 词
b, begin,词首
e, end, 词尾
以上只是one-hot到词向量的转换,作者在上一层还加了一层自限门
经过逐元素(element-wise)乘积得到文字和文字各自的向量
两个向量拼接到一起作为序列层的输入
网络的整体结构是这样的,与一般形式的LSTM相比,有两处不同,一个是门的计算式,一个是中间插入了词
门的计算和使用方式,其实是将GRU里的摇摆门放到了LSTM中,它是这样的结构:
3个门减少到2个,2个门,原始细胞值都由本元输入和上元输出决定
上面是只考虑了字和拼音的情况,现在要把词加进去,就是上面的蓝色部分,这部分本元值的计算是这样的
总的来说,如果把它看作LSTM的一个元素,则本元值的的上元值来自该词的首字元值,其余参数由词提供,这样,本字的元值则由之前的字元值和词元值加权得出。
CRF层是标准形式,不在此列出,只有两个标签,正确T和错误F。
典型case如下,其中“女孩|努孩""哪里|那里"在新模型中正确检出,老模型未检出
这是一篇12页的文章,发表在预印网站上,是否经过同行评议尚不知,但文章将词插入到LSTM的方式非常巧妙,但遗憾的是一股脑将整个结果给出来,并没有分析拼音和词在其中各起到多少作用,也没有分析对LSTM的改动是否十分必要。