APP下载

藏文音节拼写检查的CNN模型

2019-02-25色差甲贡保才让才让加

中文信息学报 2019年1期
关键词:藏文测试数据音节

色差甲,贡保才让,才让加

(1. 青海师范大学 藏文信息处理教育部重点实验室,青海 西宁810008;2. 青海师范大学 藏文信息处理与机器翻译省级重点实验室,青海 西宁 810008)

0 引言

藏文拼写检查是藏文自然语言处理及应用中一个基础性的工作,在许多领域有着广泛的使用价值。例如,应用于文字处理、文字识别、文本生成、文本校对、语料库建设[1-2]等。自动拼写检查即可以减轻人为劳力,也可以避免检查遗漏等现象。目前主流的方法是基于N-gram分析法、查字典法、词形距离法、相似键法以及骨架键法等[3]。

1 藏文音节的向量表示

设藏文音节的字丁(字符)数为m(1≤m≤7),则可以用矩阵R7*D(7行D列,R是实数域)来表示藏文音节,称之为藏文音节矩阵。藏文音节矩阵的每行表示该行所对应的藏文字丁向量,D是每个向量的维度。当藏文音节的字丁个数小于7时,在该音节矩阵中需要用一个特定的D维向量来填充,直到满足7行D列为止,以确保每个音节矩阵的结构一致。对大规模藏文语料的藏文字形结构分布统计显示[8],7个字丁的音节数占0.04%,2至4个字丁的音节数占80.74%。其余音节占19.22%,显然字丁个数较少的藏文音节使用率极高,且藏文是以基字为基础与其它字丁组合的拼音文字。所以,对藏文音节进行向量化表示时,先按音节的拼读顺序构成一个矩阵Rm*D,再根据m的大小在矩阵Rm*D的两边填充特殊向量直到满足7行D列。目的是为了藏文音节的每个字丁所对应的向量位于音节矩阵R7*D的中间部分。由于CNN模型对藏文音节矩阵进行卷积操作或池化操作时对矩阵中间部分的特征学习几率比两边更多。同样RNN和LSTM模型对藏文音节矩阵R7*D进行特征学习时,中间部分更有利于长期记忆。因此,只对矩阵Rm*D的两边填充特定向量直到满足藏文音节矩阵R7*D为止,这样更有利于模型学习字丁之间的搭配信息。图1~图3分别是字丁数为7、3和2的藏文音节矩阵的实例。

从以上的描述得知,音节矩阵是由每个字丁所对应的向量组成。字丁向量有两种获取方法:一是用服从标准正态分布或均匀分布等概率分布来随机生成一个D维向量,再通过梯度下降法优化该向量获取最优模型,该向量具备字丁之间的搭配信息;二是用Google开源的Word2Vector模型[9]来生成。Word2Vector模型原本适用于以词为单位的任务,且训练得到的结果可直接计算两个词之间的语义相关度。本文将Word2Vector从单词到单词,改为藏文字丁到字丁。训练得出的结果不但具有字丁之间搭配信息,也可以计算字丁之间的相似度。

图1 “”的向量表示

图2 “”的向量表示

图3 “”的向量表示

2 CNN模型及其构建

卷积神经网络(Convolutional Neural Networks,CNN[10])是一种包含多个卷积层的深度神经网络模型。通常一个卷积神经网络架构中必须至少包含两个可以通过训练产生的非线性卷积层,以及两个固定的子采样层和一个全连接层[9]。

藏文拼写检查的CNN模型有三个重要的网络层,分别是卷积层、池化层和全连接层。其中,卷积层具有特征学习的能力。需要多层的目的是一层卷积学习的特征往往是局部的,而多层卷积特征越多越趋向全局化;池化层具有防止过拟合作用和对特征进行聚合统计的作用。卷积层学到的特征向量维度大时容易出现过拟合现象,且特征向量中同一个特征多次使用时,可以用池化层来降维和防止过拟合现象;全连接层将经过深层学习后的结果映射到一个固定维度向量上,如需要处理任务时在二类分类时会映射到一个二维向量上,这是为后续处理提供方便。针对藏文音节拼写检查,本文构建了具有三层卷积层、三层池化层和一个全连接层的CNN模型。其中,输入值是7行D列的藏文音节矩阵。而输出值是二维向量,并设置成第一维的值大于第二维的值时,说明拼写错误。反之,拼写正确。该模型如图4所示。

图4 藏文音节拼写检查的CNN模型构架

在第i(i=1,2,3)层的卷积操作过程中始终使用一个固定的权重矩阵Wi来学习藏文字丁的搭配特征;在第j(j=1,2,3)的池化层操作中,使用一个固定的窗口Mj进行特征聚合,使特征向量的维度降低;其中,Wi的维度和Mj的大小可根据需要设定。

(1)

(2)

常用的权重更新方法常有:批量梯度下降法(Batch Gradient Descent,BGD)、随机梯度下降法(Stochastic Gradient Descent,SGD)和自适应梯度[11](Adaptive Gradient,AdaGrad)等多种方法。本文中采用AdaGrad,如式(3)所示。

(3)

(4)

3 数据预处理以及实验结果分析

3.1 数据预处理

本实验从青海藏语网络广播电视台、中国藏语网通、中国西藏之声网、中国藏族广播网、康巴卫视网、新编藏文字典等网站和词典中采集了含有721 544个藏文音节(其中梵音藏文音节133 382个)的语料。使用TSRM算法[7]和人工校对法对所有音节进行拼写检查并分类,总计有708 780个拼写正确的音节和12 764个拼写错误的音节。其中,拼写错误和正确的藏文音节标签分别标注为0和1,该标签转换成向量(noe-hot vecter)时分别表示为(1,0)和(0,1),拼写正确和错误音节占98.23%和1.77%.显然,正确和错误比例(98.23∶1.77)差距太大,深度学习无法对错误音节特征进行学习。因此本实验随机组合生成了656 100个拼写错误音节以充实噪声数据。通过增加噪声数据(即拼写错误的音节),使真实数据与噪声数据的比例更加均匀。拼写正确和错误的音节总共有1 364 880个,95%作为训练数据和5%作为测试数据,训练数据和测试数据的分布信息如表1所示。

3.2 实验方法及结果分析

本实验使用了藏文音节规则算法(TSRM算法)、循环神经网络语言模型[12](RNN)、长短期记忆网络语言模型(LSTM)和CNN模型对藏文音节进行拼写检查。LSTM是在RNN的基础上改进的一个模型。本实验研究的对象为藏文音节的拼写检查,所以RNN和LSTM中使用的语言单位需要最小化,用藏文字丁来建立模型。上述的藏文音节矩阵可视为含有7个时刻的序列问题,其中第i行表示第i(1≤i≤7)时刻的信息,RNN和LSTM中使用的损失函数和梯度下降法与本文中构建的藏文音节拼写检查的CNN模型的损失函数一致。实验结果的评测指标选用了正确率、召回率和F值。训练过程分两步进行:

表1 训练和测试数据的分布信息

第一步,以未加入噪声数据的数据集进行训练,拼写正确与错误的比例为98.23∶1.77;

第二步,以加入60多万噪声数据的数据集进行训练,拼写正确与错误的比例为70∶65。

各个模型对未加入噪声数据和加入噪声数据的测试结果分别如表2和表3所示,同样各个深度学习模型对不同训练集训练时,在不同迭代时刻的目标损失值和测试数据的正确率分别为图5和图6所示。

表2 未加入噪声数据的测试结果(5%的测试数据)

表3 加入噪声数据的测试结果(5%的测试数据)

5%的测试语料中既包含符合藏文文法的音节和梵音藏文音节,又包含拼写错误的藏文音节和梵音藏文音节,并且错误和正确各占一半。表2中训练语料的规模为70万音节(即未加入噪声数据的语料),而且拼写正确的藏文音节个数占大多数。从表2可知,TSRM的结果最理想。因为TSRM不依赖于训练语料,只依赖于藏文文法。所以对符合藏文文法和拼写错误音节的正确率极高,但对梵音藏文音节则无法正确判断,都标记成0。由于70万音节的训练数据中拼写错误的音节很少,导致CNN模型训练时对错误音节的特征无法进行学习。所以该模型的正确率最低,且测试数据都标记成1(即标记成拼写正确),从正确率和召回率可见CNN模型出现了过拟合的现象。虽训练集中拼写正确和错误的比例为98.23∶1.77,但RNN和LSTM模型在测试数据上仍然都可获得89%左右的正确率,这也反映了该类模型在序列问题上有一定的泛化能力。图5是训练数据为70万音节上获得各个深度学习模型在不同迭代时刻记录的损失值(图5(a))和测试数据的正确率(图5(b))。

(a) 不同迭代时刻的损失值

(b) 不同迭代时刻的正确率图5 模型(70万训练集)的损失值和测试数据的正确率

图5(a)和(b)中Rank2Vector表示构建藏文音节矩阵时,每个字丁所对应的向量都是随机生成。首先,该音节矩阵在模型中可视为一个参数。其次,根据模型优化参数的同时进行优化该音节矩阵,最后得到该模型的一个最优的参数。即模型训练的同时每个字丁的向量也训练了。其中Word2Vector是预先在大规模的藏文语料中训练好的字丁向量可直接应用于模型,在训练模型时,该音节矩阵可视为参数进行训练,也可以视为常数,在本实验中可视为常数来进行训练。从图5(a)中可见每个深度学习模型在迭代次数到达50次左右时都开始逐渐收敛,且CNN模型的损失值大于RNN和LSTM模型的损失值。因此,导致测试数据的正确率不理想。从图5(b)中也可见CNN模型的正确率远远不如其他模型。针对这个问题本实验加入了656 100个噪声数据(拼写错误音节)使拼写正确和错误的比例更加平衡。加入噪声数据后的测试结果如表3所示。

表3中TSRM的结果没有变化,但另外三个深度学习的结果不仅有提升,尤其是CNN模型防止了过拟合现象并且在测试数据上正确率得到从50.00%提升到99.52%的最好结果。实验结果表明,CNN模型的训练集有了藏文拼写正确和错误音节且几乎各占一半(70∶65)。可以从藏文音节矩阵中学习到更多的特征或者是获取到相邻向量之间的关联,即字丁之间的搭配关系。图6是训练数据为130万音节上获得各个深度学习模型在不同迭代时刻记录的损失值(图6(a))和测试数据的正确率(图6(b))。

(a) 不同迭代时刻的损失值

(b) 不同迭代时刻的正确率图6 模型(130万训练集)的损失值和测试数据的正确率

4 总结与展望

猜你喜欢

藏文测试数据音节
敦煌本藏文算书九九表再探
r(re)音节单词的拼读规则
西藏大批珍贵藏文古籍实现“云阅读”
拼拼 读读 写写
黑水城和额济纳出土藏文文献简介
测试数据管理系统设计与实现
基于条件随机场的藏文人名识别研究
看音节说句子
基于自适应粒子群优化算法的测试数据扩增方法
空间co-location挖掘模式在学生体能测试数据中的应用