罗延根,李 晓,蒋同海,杨雅婷,周 喜,王 磊
(1.中国科学院新疆理化技术研究所,乌鲁木齐 830011;2.中国科学院新疆民族语音语言信息处理重点实验室,乌鲁木齐 830011; 3.中国科学院大学,北京 100049)
词汇归一化是将看起来不完全一致的多个词条归纳成一个等价类,是众多自然语言处理方面前处理的一个重要步骤。大部分自然语言处理的工作都要求在一个限定的词汇表上进行处理,这样能够降低模型的复杂度。例如机器翻译、命名实体抽取、信息检索等研究,它们处理的数据都是经过归一化之后的“干净”语料。
近年来,随着互联网的发展,社交媒体上的文本也呈爆炸式增长,但是社交媒体上用户产生的文本并不是很正规的文本,它包含很多不合语法的句子、不正规拼写的单词等。对于这种文本进行自然语言处理的相关工作就显得特别困难,因为有太多的未登录词。在对用户产生的文本进行处理之前,词汇归一化就显得特别重要。
本文提出将含有非正式维吾尔语用语的社交媒体语料与正规维吾尔语用语的新闻语料结合起来用于获取一个词的低维向量空间,将正规用语的语料中的词汇当作候选词,对于向量空间中的集外词(OOV),首先找到向量空间中的k近邻,再对k近邻的正规词进行相似度筛选,最后选出一个n-best的候选词汇集。对于非正规语料句子中的集外词(非正规词),从候选词汇集中选出一个最优的对应的词,类似于机器翻译的解码过程,采用贪心解码器,评估指标为综合字符串相似度以及语言模型的一个评分。
维吾尔语在形态结构上属于粘着语类型,作为粘着语类型的语言,词的词汇变化和各种语法变化都是通过在实词词干上缀接各种附加成分的方式来表现的,习惯于词干加上后缀去表达不同的含义,例如人称、数量、词态及语气等。维吾尔语由阿拉伯字母组成,字母的错写、漏写、缩写以及词干词缀组合的多样性也导致了维吾尔语中词汇量过大的现象,从而造成严重的数据稀疏性。在大词汇量的基础上衍生出来的非正规词的数量更是庞大,因此,日常用语(非新闻等官方用语)的机器翻译所面临的集外词(Out of Vocabulary,OOV)数量更多,导致目前维汉机器翻译的结果中有很多UNK(遇到OOV,一般的处理方法是在译文中用UNK表示),所以对于维吾尔语口语用语的词项归一化很有必要[1-2]。
词汇归一化作为语料预处理的一个关键步骤,一直以来吸引了很多研究者的目光。最早的也是最简单的可以用于词汇归一化的方法便是噪声信道模型[3],对于非正规语料T与之对应的正规语料S,这个模型包含2个部分:语言模型P(S)和一个归一化模型P(T|S)。如果将非正规用语的文本当作语言T,它对应的正规文本作为S,根据P(S|T)=P(T|S)×P(S)/P(T),P(T)是固定的,那么通过求解argmaxP(T|S)×P(S)来求解对应的S,从而求到argmaxP(S|T),S便是T归一化后的结果。文献[4]将噪声信道模型运用到归一化中,之后对噪声信道模型进行扩展[5],将词的发音作为特征加入模型中。但是这种模型都是有监督的模型,需要大量的标注语料对模型进行训练。文献[6]对噪声信道模型进行无监督训练扩展。
另一个比较主流的词归一化方法是基于统计机器翻译的方法。文献[7]提出一个编码/解码为字符级别的短语统计机器翻译系统,使用非正规书写的英语为源语言,对应的正规书写的英语为目标语言,通过大量语料训练出来的这个翻译系统能很好地处理归一化问题。跟噪声信道模型类似,训练阶段需要大量的训练数据,但是一一对应的非正规和正规的语料是很难大规模获取的,对于维吾尔语这种语料匮乏的小语种难度更大。
近年来,类似于基于上下文的图的无监督的随机游走[8]算法用于社交媒体上的文本的归一化,之后研究热点已经转向无监督的方法。文献[9]把2个词的上下文的相关性当作2个词的相关性的依据,从而用来做归一化。文献[10]使用类似于文献[9]的方法,利用深度神经网络和word2vec进行未登录词与词典内的正规词进行相似度比较,最后使用语言模型来筛选。本文提出的方法与文献[10]方法类似,将其提出的方法引入到维吾尔语的归一化中,但是考虑由于一句话中可能包含多个非规则化的词语,一次归一化过程并不能完全将非正规词归一化,从而在文献[10]方法的基础上引入bootstrapping[11]重采样策略[12-13],每一遍归一化之后,重新采样,迭代直到非规则化的词替换次数未达到某个阈值停止;而且本文方法只是用于词,由于维吾尔语的短语划分不稳定,短语级别的归一化将作为以后的研究方向。
本文使用贪心解码器以及引入bootstrapping策略得到维吾尔语无监督词汇归一化模型,模型如图1所示。首先是对网络爬取的非正规用语语料进行初步的数据预处理,预处理操作只是最简单的筛选,将一半以上单词都是非正规词的句子剔除,这主要是为了保证解码过程的正确性;然后将正规用语语料和非正规用语语料放在一起,训练出词向量,再根据从正规用语的语料中抽取的正规用语词典,在向量空间中找到每个非正规词的k近邻当作候选表,之后使用贪心解码器对非规则化文本中每个句子依据语言模型和字符串相似度选择非规则化词的最优解,遍历完了将替换之后的非正规用语文本跟正规用语文本一起重新训练词向量,一直递归执行直到满足退出条件。
核心算法流程的伪代码为:
输入正规用语语料库StdS={s1,s2,…,sn},非正规用语语料库UStd={s1,s2,…,sn},评分阈值threhold
matchpair = {}
while匹配量大于阈值 do
UStd句子进行清洗
StdS与UStd一起训练出word2vec模型model
StdS训练出语言模型langModel
StdS抽取生成正规词字典NormalDict,UStd抽取生成非正规词字典UnNormalDict
for each word in UnNormalDict do
根据model找出cosine相似度最大的topn的candidates
for each line in UStd do
根据langModel计算line的困惑度perp1
计算line将word替换为candi之后句子的困惑度perp2
根据ratio和字符串相似度的综合评分score重排序candidates
for each word in UnNormalDict do
从其candidates里面找到符合条件的匹配,加入到matchpair中
依据matchpair替换UStd中匹配到的非正规词迭代
end
对词进行向量化表示一直是热点,从最初的空间向量模型,到浅层语义分析(Latent Semantic Analysis)、PCA等,但这些向量都是基于词共现来实现,并不能把握住语义信息。百度提出神经网络搭建二元语言模型的方法[14],文献[15]提出了基于神经网络的语言模型之后,后续涌现出一批使用神经网络生成词向量的方法,比较具有代表性的有google提出的word2vec[16]和glove[17]。使用神经网络训练出来的词向量,考虑到了上下文信息,所以对词意的表现力比之前的向量表示更加强[18]。对于词汇的归一化便可以考虑使用词向量作为一个特征,因为那些拼错了或者不同形式的词,它们的上下文还是比较相似的。
传统的将词向量化的方法都是将词用一个one-hot的向量表示,但是这种方法遇到的问题就是数据的稀疏,而且向量除了表示词以外,并没有将词的上下文、语义上表达出来。词的分布式表示提出之后,由于这种向量能很好地表达出词之间的相似性,很快为研究者所青睐。通过训练将每个词映射成K维实数向量(K一般为模型中的超参数),通过词之间的距离(比如 cosine 相似度、欧氏距离等)来判断它们之间的语义相似度。
词的分布式表示是神经网络语言模型的代产物,神经网络语言思路与n-gram模型类似,使用wt-n+1,wt-n+2,…,wt-1来预测wt,C(w)是词w对应的词向量,神经网络语言模型使用一套唯一的词向量,存在矩阵C中,C的大小为|V|×m,|V|是词表大小,m是向量的维度,从词w到C(w)就是从矩阵C中取出对应的那一行。此模型如图2所示,是一个三层的神经网络,网络的第1层是将窗口中的词对应的词向量C(wt-n+1),…,C(wt-2),C(wt-1)拼接起来,形成一个(n-1)m的向量,记为输入x。
网络的第2层就是对输入进行一个非线性变换:
h=tanh(d+Hx)
(1)
网络的输出层一共有|V|个节点,每个节点yi表示下一个词为i的未归一化log概率。最后使用softmax将输出值归一化成概率。
y=b+Wx+Utanh(d+Hx)
(2)
此模型的目标函数如式(3)所示,通过最大化下一个词的概率的训练过程,矩阵C作为参数的一部分进行梯度下降调优,最后这个矩阵便是词向量。这样训练出来的词向量具有很好的语义表示能力。
(3)
实验采用的是Word2Vec工具生成的词向量。Word2Vec有2种方式:CBOW和skip-gram,采用skip-gram、skip-gram的目的是使用一个词来预测窗口内的其他词,最大化其他词的概率。
由于通过word2vec可以将单词投射到低维向量空间,本文采用2个词的向量的cosine距离作为2个词的相似度,用于候选词的初级筛选,如图3所示。
图3 word2vec的2种方式
2个维度为D的向量e和f的cosine距离定义如下:
(4)
在非正规词聚类之后,每个非正规词都有一个候选正规词表,从这个词表中选出该词意思最近的正规词作为此非正规词的归一化目标。对于包含非正规词的句子,从候选词表中选择最优解可以类比为一个简易的机器翻译的解码过程,只需要针对非正规词进行部分解码即可。
采用一个比较简单的贪心策略的解码器进行候选词的筛选,贪心策略的评分价值采用句子的语言模型困惑度评分变化率以及非正规词与其候选词的字符串相似度的综合考虑。选取得分超过阈值的词。评分如式(5)所示,pp_ratio是语言模型困惑度变化率,lexicalsimilarity是2个词的词汇字符串相似度,λ1、λ2分别是模型的2个超参数,在实验中使用手工调优得到,手动调参策略是固定一个threshold,将λ1、λ2均以0.5为初值,学习率为0.03,以正则化之后测试集的BLEU值作为评价指标,从而选取较优的比例;threshold的选取则是在λ1、λ2选取之后手动进行调整,策略与λ1、λ2调参类似。
score(word)=λ1pp_ratio+λ2lexicalsimilarity
(5)
语言模型的目的是建立一个能够描述给定词序列在语言中出现的概率的分布,使用一个采用Kneser-Nye平滑的n=5的n-gram语言模型对句子进行困惑度打分。困惑度评分如式(6)所示。
(6)
对于候选词的困惑度pp_ratio打分为用此候选词替换对应的非正规词之后的句子的困惑度变化率,计算方式如式(7)所示。
(7)
对于字符串的相似度最常被采用的是编辑距离,编辑距离又叫Levenstein距离,是指2个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。一般来说,编辑距离越小,2个串的相似度越大。
但是编辑距离并不能特别适合这种场景,因为一般非正规书写的单词包括很大一部分是对单词进行大面积的缩写。采用文献[6]所提出来的词汇相似度值,2个单词S1、S2的词汇字符串相似度如式(8)所示,是2个字符串的最长公共子串率与编辑距离之除,这个相似度很好地适用于缩写的情况。
(8)
2个单词的最长公共子串率如式(9)所示,是2个字符串的最长公共子串与它们的最长长度之除。
(9)
解码算法的伪代码如下:
输入非正规用语语料库UStd={s1,s2,…,sn},评分阈值threshold
matchpairs={}
for sentence in UStd do:
计算sentence的语言模型评分pp1
for 非正规词UFword in sentence do:
计算候选集中一个正规词FWord替换后的句子语言模型评分PP2
计算score(FWord)
if max(score(FWord)) > threshold do:
将UFword替换为FWord继续当前句子解码
else do:
进行下一句子解码
end
解码器使用的都是基于很多噪声的语料训练出来的向量空间以及上下文信息,会导致一些非正规词对应的正规词不能聚类到top-k的候选集中,从而不能在解码中匹配出来。为了解决这个问题,引入了bootstrapping方法。bootstrapping是统计学中的重采样,本文应用bootstrapping是带更新的重采样,在所有句子解码完成后,将匹配到的非正规词归一化为其对应的正规词,将修改过的语料与正规语料一起,再重采样,进行递归来对之前归一化过程中未能归一化的词进行进一步的归一化。重采样的策略采用.632自助法,对于包含d个样本的数据集,有放回地抽样d次,产生d个样本的数据集,每次递归之后采取的重采样操作一样。
本文主要研究对象为维吾尔语口语中非正规词,首先实验验证词归一化模型的准确性,然后将归一化的结果运用于维汉机器翻译中验证本文方法对机器翻译系统的作用的有效性,作为对比对象,引入了文献[10]提出的方法。
由于尚未有通用的维吾尔语词归一化方法,采用人工判定方式,使用的语料资源为:0.2 MB的新闻维汉双语语料作为正规语料,0.2 MB的网络文本作为非正规语料;使用的词向量是word2vec,窗口大小为8,最小出现次数为10而训练生成的200维的向量,语言模型为使用kenlm[19]对此正规语料训练的N=5的N-gram语言模型。
使用本文方法能成功归一化1 812次非正规词,对归一化成功的词进行准确度、召回度和F1值评价,结果如表1所示。
表1 归一化词正确性分析 %
从实验结果可以看出,本文方法与文献[10]方法均能够在此场景中有效地进行词的归一化。本文方法在递归的进行中,准确度逐步增加,并且在递归3次之后就优于文献[10]方法,这说明本文方法引入的bootstrapping策略能有效地提高归一化的准确性。在召回率上,本文方法随着递归的进行,召回率逐步降低,主要是由于前序递归中为正确归一化的词引入的噪声,最后召回率低于文献[10]方法,但总体F1值也与文献[10]方法相当。
把本文提出的非正规词归一化方法应用于实际的机器翻译系统中,来验证该方法的有效性。
归一化模块的实验设置:使用的语料资源为0.2 MB的新闻维汉双语语料作为正规语料,0.2 MB的网络文本作为非正规语料,使用的词向量是word2vec生成的窗口大小为8的200维的向量,语言模型为使用此正规语料训练的N=5的N-gram语言模型,超参数λ1、λ2经过多次实验,采用0.43、0.57效果最优。
机器翻译实验设置:采用维汉新闻语料和未正规化的口语语料作为实验对象,训练集采用CWMT2015的维汉新闻语料,由于尚未有公开的维汉双语口语语料集,实验采用爬取以及标注的网页论坛语料作为测试集,语料样本规模如表2所示。
表2 机器翻译语料
实验的基线系统为moses3.0[20]训练的基于短语的统计机器翻译系统[21],该系统基于最小错误率训练方法优化翻译系统权重,最后采用BLEU值作为评价指标。本文设置如下3个翻译实验:
1)基线:利用新闻语料训练的统计翻译模型直接对测试集进行翻译。
2)文献[10]方法:对测试集使用文献[10]方法进行归一化之后利用基线进行翻译。
3)本文方法:采用本文提出的归一化方法进行归一化之后利用基线进行翻译,递归i表示本文方法进行重采样递归i次之后进行归一化的结果。
实验结果如表3所示,利用本文方法进行归一化之后的文档的翻译结果的BLEU值有了显著的提升。在递归2次之后,本文方法的结果略优于进行一次解码的文献[10]提出的方法。
表3 机器翻译实验结果
图4 包含非正规词的句子实例
图5 归一化之后的句子实例
本文方法的效果随着递归的进行,BLEU值逐步趋于收敛,这是由于本文方法每轮递归中未正确归一化的词所引入的噪声导致后续的递归过程中能进行正确归一化的词数量减少所导致的。
本文提出了一种无监督的维吾尔语口语中非正规词的归一化方法,将该方法运用于维汉机器翻译的待翻译句子的前编辑归一化之后,相比于基线系统,使用不同领域训练的统计机器翻译系统,在测试集上BLEU值提升了0.7。此外本文方法也是对文献[10]方法的一种改进,引入了bootstrapping方法并且采用了另一个解码器以及不同的打分机制,实验结果也证明本文方法有一定的改进,在准确度上有了2.4个百分点的提高,由于引入重采样策略,召回率降低了5个百分点,在机器翻译上,本文方法也较之在BLEU值上提高了0.2。
由于本文未能引入更多的维吾尔语的语言学特性,因此后续将在解码器中加入部分语言学方面的规则,进一步提高归一化的召回率。
[1] 年 梅,张兰芳.维吾尔文网络查询扩展词的构建研究[J].计算机工程,2015,41(4):187-189,194.
[2] MI Chenggang,YANG Yating,ZHOU Xi,et al.A Phrase Table Filtering Model Based on Binary Classification for Uyghur-Chinese Machine Translation[J].Journal of Computers,2014,9(12):2780-2786.
[3] SHANNON C E.Communication Theory of Secrecy Systems[J].Bell System Technical Journal,1949,28(4):656-715.
[4] BRILL E,MOORE R C.An Improved Error Model for Noisy Channel Spelling Correction[C]//Proceedings of the 38th Annual Meeting on Association for Computational Linguistics.[S.l.]:Association for Computational Linguistics,2000:286-293.
[5] TOUTANOVA K,MOORE R C.Pronunciation Modeling for Improved Spelling Correction[C]//Pro-ceedings of the 40th Annual Meeting on Association for Computational Linguistics.[S.l.]:Association for Computational Linguistics,2002:144-151.
[6] COOK P,STEVENSON S.An Unsupervised Model for Text Message Normalization[C]//Proceedings of Workshop on Computational Approaches to Linguistic Creativity.[S.l.]:Association for Computational Linguistics,2009:71-78.
[7] AW A T,ZHANG Min,XIAO Juan,et al.A Phrase-based Statistical Model for SMS Text Normalization[C]//Proceedings of COLING/ACL on Main Conference Poster Sessions.[S.l.]:Association for Computational Linguis-tics,2006:33-40.
[8] HASSAN H,MENEZES A.Social Text Normalization Using Contextual Graph Random Walks[C]//Proceedings of the 51st Annual Meeting Computational Linguistics Meeting.[S.l.]:Association for Computational Linguis-tics,2013:1577-1586.
[9] HAN Bo,COOK P,BALDWIN T.Automatically Con-structing a Normalisation Dictionary for Microblogs[C]//Proceedings of Joint Conference on Empirical Methods in Natural Language Processing and Computational Natural Language Learning.[S.l.]:Association for Computational Linguistics,2012:421-432.
[10] SRIDHAR V K R.Unsupervised Text Normalization Using Distributed Representations of Words and Phrases[C]// Proceedings of Workshop on Vector Space Modeling for Natural Language Processing.New York,USA:ACM Press,2015:8-16
[11] MOONEY C Z,DUVAL R D,DUVAL R.Bootstrapping:A Nonparametric Approach to Statistical Inference[J].Technometrics,1993,36 (4):435-436
[12] 罗 军,高 琦,王 翊.基于Bootstrapping的本体标注方法[J].计算机工程,2010,36(23):85-87.
[13] 何婷婷,徐 超,李 晶,等.基于种子自扩展的命名实体关系抽取方法[J].计算机工程,2006,32(21):183-184.
[14] XU W,RUDNICKY A I.Can Artificial Neural Networks Learn Language Models?[D].Pittsburgh,USA:Carnegie Mellon University,2000.
[15] BENGIO Y,DUCHARME R,VINCENT P,et al.A Neural Probabilistic Language Model[J].Journal of Machine Learning Research,2003,3(2):1137-1155.
[16] MIKOLOV T,KARAFIT M,BURGET L,et al.Recurrent Neural Network Based Language Model[C]//Proceedings of Conference of the International Speech Communication Association.Berlin,Germany:Springer,2010:1045-1048.
[17] PENNINGTON J,SOCHER R,MANNING C D.Glove:Global Vectors for Word Representation[C]//Proceedings of Conference on Empirical Methods in Natural Language Processing.Berlin,Germany:Springer,2014:1532-1543.
[18] 张为泰.基于词向量模型特征空间优化的同义词扩展研究与应用[D].北京:北京邮电大学,2014.
[19] HEAFIELD K.KEN L M:Faster and Smaller Language Model Queries[C]//Proceedings of the 6th Workshop on Statistical Machine Translation.[S.l.]:Association for Computational Linguistics,2011:187-197.
[20] KOEHN P,HOANG H,BIRCH A,et al.Moses:Open Source Toolkit for Statistical Machine Translation[C]//Proceedings of the 45th Annual Meeting of the ACL on Interactive Poster and Demonstration Sessions.[S.l.]:Association for Computational Linguistics,2007:177-180.
[21] CHIANG D.Hierarchical Phrase-based Translation[M].[S.l.]:Association for Computational Linguistics,2007.