基金项目:国家自然科学基金(U1703133); 新疆自治区重大科技专项(2016A03007-3); 中国科学院“西部之光”人才培养引进计划(2017-XBQNXZ-A-005)
通信作者:yangyt@ms.xjb.ac.cn
(1.中国科学院新疆理化技术研究所,新疆民族语音语言信息处理实验室,新疆 乌鲁木齐 830011; 2.中国科学院大学计算机科学与技术学院,北京 100049)
(1.Xinjiang Laboratory of Minority Speech and Language Information Processing,the Xinjiang Technical Institute of Physics & Chemistry,Chinese Academy of Science,Urumqi 830011,China; 2.School of Computer Science and Technology,University of the Chinese Academy of Sciences,Beijing 100049,China)
DOI: 10.6043/j.issn.0438-0479.201811022
拉丁化的维吾尔语在使用过程中具有文本不规范的特点,这种不规范是造成歧义等现象的最主要原因,严重制约着与维吾尔语相关的自然语言处理应用.由此提出了一种无监督的基于子词信息的文本规范化方法,该方法在词向量构建过程中将词的内部信息考虑进去.这种方法可以对罕见词进行向量表示,也可以将词内部的形态信息融入词的表示,丰富词向量的表达,进而用于改进无监督学习中规范化词候选集生成质量的不足.实验表明,相比于传统词向量构建方法,该方法在文本规范化任务中可以提高规范化词的召回率.
Latinized Uyghur language is characterized by nonstandard text in its use.This kind of non-standard type primarily causes the ambiguity,which seriously restricts the application of natural language processing related to Uyghur.This paper proposes a text normalization method based on subword information.The method takes the internal information of words into account in the process of constructing word vectors.In this way,rare words can be represented by the vector,and the morphological information inside the words can also be incorporated into the expression of the words to enrich the expression of the word vectors,which can be used to improve the quality of standardized word candidate set generation.Experimental results show that the proposed method can improve the recall rate of normalized words in text normalization tasks compared with traditional word vector construction methods.
随着社交媒体的普及,各社交平台每天都会在网络上产生海量的文本数据,例如当下的时事热点、产品的评价、舆论的监控、实时灾情报告等.这些文本数据所蕴含的信息对社会的诸多领域都有着极高的应用价值.要从这些文本中提取相应的信息,首先要进行分词、词性标注[1]、句法分析[2]等一系列自然语言处理操作,但是文本的不规范性所造成的数据稀疏严重影响了自然语言处理操作的有效性[3].在汉语、英语等广泛使用的社交媒体语言中,通过规则替换、噪声信道模型以及基于神经网络编码、解码等模型对不规范文本处理有较为深入的研究; 但在维吾尔语中,由于语料资源的匮乏以及维吾尔语词形变化的多样性,不规范文本处理的准确性还存在较大的差距.因此,研究如何更好地分析与处理维吾尔语的不规范文本信息是非常有意义和价值的[4].
维吾尔语是在中国境内广泛使用的社交媒体小语种,在形态结构上属于黏着性语言[5].维吾尔语的书写中采用阿拉伯字母、拉丁字母以及西里尔字母等形式,目前广泛使用的是基于阿拉伯字母的书写方式,然而在某些情况下,用户为了克服阿拉伯字母限制会使用基于拉丁字母的书写方式[6],简称拉丁维语.由于拉丁维语在早期发展过程中没有统一的标准,在基于阿拉伯字母的老维语与拉丁维语转换的过程中,有时会因为书写习惯的不同而产生不规则的情况.
一项关于维吾尔族民众使用拉丁字母情况的调查显示,170名受访者中有39.8%不使用拉丁字母,29.7%使用标准的拉丁字母,还有30.5%使用不规则的拉丁字母,例如“X”、“SH” 和“瘙塁”都可能作为老维语字母的转换[7].在老维语的32个字母中有15个存在2~4个可能的拉丁字母转换[7],这15个字母的转换方式如表1所示.这种不规则转换会产生严重的文本歧义现象(如表2所示),给后续自然语言处理操作的有效性带来很大的影响.因此,本研究主要针对拉丁维语中的不规则转换来进行文本规范化处理.
文本规范化任务主要分为有监督的方法、无监督的方法以及基于规则转换的方法.维吾尔语属于形态丰富的语言,词的词汇和语法变化均通过在实词词干上缀接各种附加成分实现[8],这种特性使得维吾尔语具有词汇量过大的特点,基于规则的方法很难在维吾
尔语上取得较好的效果.有监督的学习方法需要在大规模的标注语料上进行训练,对于维吾尔语这种小语种而言,很难获取到大规模的标注语料,因此语料规模限制了有监督的方法在维吾尔语上的应用.越来越多的研究者通过无监督的方法来进行文本规范化.无监督的方法要对词生成向量表示,然而常用的向量表示方法只是对每个词生成独立的向量表示,忽略了词的内部形态[9],因此这种表示方式对于词汇量巨大并且有很多罕见词的维吾尔语来说有很大的限制.
本研究针对维吾尔语在无监督学习中所产生的规范化词候选集质量的不足,引入了子词信息,并在Sridhar[10]的基础上进一步优化候选词生成的质量,用于维吾尔语的文本规范化,提出了一种基于子词信息的维吾尔语文本规范化的方法.该方法的改进主要体现在以下两个方面:
1)在文本规范化任务中,许多单词由于字母的错写、漏写、缩写以及词干和词缀的组合多样性会产生大量的罕见词,但是传统的词嵌入模型通过统计词的共现频率来得到相应的向量表示,许多罕见词由于共现频率小而得不到相应的向量表示.本文中提出的方法对罕见词进行字符串切分,通过字符串的向量组合获得罕见词的向量表示.
2)一般的词向量表示只是对每个词产生一个独立的向量,忽略了词内部的形态结构.本文中提出的方法通过表征隐藏在类别间的共享信息,对词之间的形态相似性有更好的表达.对于文本规范化任务来说,考虑词之间形态相似性的向量表示会有更好的效果.
文本规范化是语料预处理的一个关键步骤,一直以来都吸引了很多研究者的目光.随着噪声文本的指数增长,文本规范化已成为自然语言处理领域的研究热点.
Brill等[11]在2000年将噪声信道模型应用于文本规范化中,之后Toutanova等[12]对噪声信道模型进行扩展,将词的发音作为特征加入模型中.这种模型在特定范围内能够取得较好的文本规范化效果,但属于有监督的模型,需要大量的标注语料对模型进行训练.
由于之前的文本规范化方法都是基于词的一对一映射,对于文本规范化任务来说有很大的限制,因此产生了基于统计机器翻译的方法.文本规范化可以被看作是将不规范文本翻译成规范化文本的单语言机器翻译过程.借助于机器翻译方法中的词对齐概念,可以对非标准词与标准词关系中的一对多、多对一和多对多映射进行建模.Aw等[13]在2006年提出了基于词组的机器翻译方法; 由于更细粒度的对齐方式可以更好地捕捉到单词变形的共性,Pennell等[14]提出了基于字符的机器翻译方法; 随着神经网络技术的不断发展,Xie等[15]将基于注意力机制的字符级序列模型用于语言校正; Ikeda等[16]使用了一种神经网络编码、解码模型,在日语文本中通过3种不同的书写系统来实现噪声的正常化.然而与噪声信道模型类似,上述方式在训练阶段需要大量的训练数据,对于维吾尔语这种语料匮乏的小语种来说,很难大规模获取这种一一对应的训练语料.
由于语料规模的限制,很多研究者将目光转向无监督学习的方法上.Han等[17]提出利用训练语料的上下文信息产生非标准词与标准词相对应的词对,进而产生文本规范化词典,用于微博文本规范化; Hassan等[18]提出基于二分图的无监督随机游走算法,用于社交媒体上的文本规范化,该方法把两个词的上下文相关性当作两个词的相关性依据,从而用于归一化.Sridhar[10]将词的分布表示用于文本规范化,该方法利用特定词的噪声和规范形式在一个大的噪声文本集合中共享类似的上下文这一特性,通过单词的分布式表示捕获上下文相似的概念,并以完全不受监督的方式从这些表示中学习规范化词汇表,但是该方法在维吾尔语这种形态丰富的语言中,由于不能产生较好的规范化词候选集,所以对于文本规范化的准确性有较大的影响.
本文在Sridhar[10]的基础上进一步优化词表示的方法,将词的形态信息及字符级信息用于维吾尔语词的向量表示,以提高维吾尔语文本规范化的准确性.
本研究主要针对拉丁维语中的不规则转换来进行文本规范化处理.基于维吾尔语本身的特点,文本规范化模型主要分为以下两个步骤:首先对于含有不规则转换的语料生成词嵌入表示,在这一部分提出了基于子词信息的词表示方法,该方法通过计算子词单位信息来构建词法模型,使用字符级的n-元语法(n-gram)之和表示词,将词信息映射到向量空间模型; 然后对于含有不规则转换的词,通过词之间的余弦相似度选择与之最相近的词作为候选词.
词是承载语义的最基本单元,而最初的词独热(one-hot)表示仅仅将单词符号化,不包含任何语义信息.Harris[19]提出“上下文相似的词,其语义也相似”的分布假说,为将语义融入词表示中提供了理论基础.
Mikolov等[20]提出的word2vec工具能够基于海量文本库和无监督策略实现高效的词向量学习.如图1所示,连续词袋(CBOW)和跳字(Skip-gram)模型是word2vec工具中用于描述词间共现关系的统计模型,其中V表示词表(词的集合),wi表示文本序列中第i个词,m表示上下文词的范围.设计2个模型主要是希望用更高效的方法获取词向量.
图1 CBOW(a)和Skip-gram(b)模型结构图[20]
Fig.1 Structure diagrams[20] of CBOW(a)and Skip-gram(b)models
在word2vec工具中针对每个词会生成不同的向量表示,然而这种表示会忽视词的内部形态结构,因此本研究在这些模型的基础上将词的n-gram考虑进去.以拉丁化的维吾尔语单词médiyeliri(赞赏)为例,在实验中选择n的范围为3~6,将每个词切分成大小长度为n的子字符串,则它的n-gram有如下几种形式:
n=3 “<mé”, “méd”, “édi”, “diy”, “iye”, “yel”, “eli”, “lir”, “iri”, “ri>”;
n=4 “<méd”, “médi”, “édiy”, “diye”, “iyel”, “yeli”, “elir”, “liri”, “iri>”;
n=5 “<médi”, “médiy”, “édiye”, “diyel”, “iyeli”, “yelir”, “eliri”, “liri>”;
n=6 “<médiy”, “médiye”, “édiyel”, “diyeli”, “iyelir”, “yeliri”, “eliri>”.
同时还要将词本身考虑在内,即
<médiyeliri>,
其中,<表示前缀,>表示后缀.可以用这些范围内的n-gram向量叠加来表示médiyeliri这个词.
对于给定的语料库,设基于词表所获得的词w的字符级n-gram的规模大小为G,则给定一个词w,可以通过gw{g1,g2,…,gG}将词w表示为n-gram的字母组合,将每个n-gram的字符g生成一个向量表示zg; 其上下文c的向量表示为vc,可以通过对词 n-gram的向量与上下文向量的乘积进行求和来表示一个词.因此得到一个得分函数:
s(w,c)=∑g∈gwzTgvc.(1)
将得分函数应用于CBOW和Skip-gram模型词向量的生成(图2).为了限定模型的内存要求,使用散列函数将字符级的n-gram映射到1~K的整数中,采用Fowler-Noll-Vo散列函数来映射字符序列,并将K设置为2×106.每个词根据它在单词字典中的索引及其包含的哈希值的集合来获得相应的表示.
CBOW模型如图2(a)所示,使用一段文本的中间词作为目标词,在神经网络语言模型的基础上做了两方面的简化:1)不包含隐藏层,该模型从神经网络结构直接转化为对数线性结构,与logistic回归一致,对数线性结构比三层神经网络结构少了一个矩阵运算,大幅度地提升了模型的训练速度; 2)去除了上下文各词的词序信息,使用上下文各词词向量的平均值代替神经网络语言模型使用的上下文各词词向量的拼接[21].对于一段训练文本wi-(m-1)/2,…,wi,…,wi+(m-1)/2,则输入层为
x=1/(m-1)∑wj∈ce(wj),(2)
其中x为上下文词向量的表示,即为前文中的vc.
设目标词w和上下文c分别为
w=wi,(3)
c={wi-(m-1)/2,…,wi-1,wi+1,…,wi+(m-1)/2},(4)
CBOW模型的输入层为上下文的表示,则可根据上下文的表示直接对目标词进行预测:
P(w|c)=(exp(s(w,x)))/(∑w'∈Vexp(s(w',x))),(5)
其中w'为词表中的词.
对于整个语料而言,该模型的优化目标为最大化
∑(w,c∈D)log P(w|c),(6)
其中D表示训练词向量的语料.
Skip-gram模型如图2(b)所示,与CBOW模型一致,该模型中也没有包含隐藏层; 而与CBOW模型不同的是,该模型每次从w的c中选择一个词,将其词向量作为模型的输入x,即上下文的表示.由于模型需要遍历整个语料,任意一个窗口中的两个词wa和wb都需要计算P(wa|wb)+P(wb|wa),因此Skip-gram模型同样是通过上下文预测目标词[22],对于整个语料的优化目标为最大化
∑(w,c)∈D ∑wj∈clog P(w|wj),(7)
其中,
P(w|wj)=(exp(s(w,wj)))/(∑w'∈Vexp(s(w',wj))).(8)
在词向量的表示中,融入子词信息可以学习到词内部的形态知识,当两个词有相同的词缀时,其语义也具有一定的相似性.例如英语单词disagree和discover,从词层面上看是两个不同的词,但是如果用字符级的n-gram来表示,则有相同的前缀dis来表示否定的含义.对于维吾尔语这种形态丰富的语言来说,这种方式可以更好地表现出词的含义.
通过上述模型将词映射到向量空间,形成文本中文字和向量数据的映射关系,获取词向量和概率密度函数.词向量是多维实数向量,向量中包含了自然语言中的语义和语法关系,对于文本规范化任务来说向量的绝对长度并不重要,重要的是两个向量之间的角度.余弦距离更多是从方向上区分差异,而对绝对数值不敏感,词向量之间余弦距离的大小代表了词之间关系的远近.因此,本文中通过余弦相似度来衡量两个词之间的相似性,定义如下:
sim(ui,vi)=(∑Mi=1ui×vi)/((∑Mt=1(ui)2×∑Mi=1(vi)2)1/2),(9)
其中,ui,vi分别是两个词向量的第i维分量,M表示词向量的维度.
从www.okyan.com等维吾尔语网站上爬取文本信息作为训练数据,共收集了约2 GB的文本文件.这些文本文件都是基于阿拉伯字母的老维语,由于老维语和拉丁维语的转换具有相应的规范,通过这种规范将老维语转换为拉丁维语,获取到规范的拉丁维语训练数据.
一项关于在使用维吾尔语写作时如何使用拉丁字母的调查中,发现了一些关于拉丁字母不规则替换的规律[7],如表3所示.
由于大规模不规范文本的训练数据很难获取,因此参考表3中的规则,使用随机函数rand将当前时间作为随机数种子,随机选一个可替换字母替换源文本中的字母,人工生成拉丁字母不规则使用的训练文本.由于在替换表中存在替换字符长度不相等的情况,例如zh可能替换为j,对此在被替换的词后面添加字母w(字母w在标准字母表中不存在,不影响语义的表达),以确保源文本和目标文本的长度一致.
从维吾尔语新闻网站天山网上爬取一些文本信息作为测试数据.为了更好地评价基于词的子信息在不同类别文本上的效果,采用其中的5个短文本来进行文本规范化测试,每个文本信息平均包括566个词,具体信息如表4所示,其中OOV(out of vocabulary)词表示集外词,这些文本涵盖了新闻、文学、体育、文化等领域.采用训练数据的处理方式,可以得到与规范化文本相对应的噪声文本.
实验中有多个参数需要人工设置,其中word2vec工具中词向量的维数经实验发现与语料库的大小有关,在实验中将其设置为100,上下文窗口大小为5,最
低词频为5; 采用负采样技术来提升最后一层的效率,采样的阈值大小为5; 对于产生的规范化文本候选集,设定其大小为10.基于词的子信息的词向量参数设置与word2vec工具中一致.对于每个词的n-gram切分,选择n为3~6,即对每个词切分成长度为3~6的子字符串,每个词表示为这些子字符串的向量之和.该方法和基线系统共享相同的词表,因此在相同训练集中不同方法的结果是可以比较的.
对于每个不规范词,根据余弦相似度产生10个最相近的规范化候选词.为了提高规范化候选词生成质量,以召回率,即正确规范词数占所需规范总词数的百分比,作为衡量文本规范化准确性的指标.同时采用斯皮尔曼等级相关系数(Spearman's rank correlation coefficient,ρ)作为词汇相似度的评价指标,它是衡量两个变量依赖性的指标,利用单调方程评价两个统计变量的相关性[21].如果数据中没有重复值且当两个变量完全单调相关时,其值则为+1或-1; 对于样本容量为n的样本,ρ的计算公式如下:
ρ=(∑ni=1(Xi-X^-)(Yi-Y^-))/((∑ni=1(Xi-X^-)2∑ni=1(Yi-Y^-)2)1/2),(10)
其中,Xi表示两个词之间的余弦相似度分数,Yi表示人工标注的相似度分数.
用word2vec工具在训练语料中生成相应的词向量表达,但是由于word2vec工具并不能对OOV词进行向量表示,所以排除这些词后进行评测.首先对测试文本中的OOV词进行了统计,通过表4中的结果可以发现,在5个测试文本中平均约有9%的OOV词.
由于词向量生成过程中具有两种不同的上下文表示,所以对这两种表示方式分别做了实验对比.Skip-gram模型中两种词向量生成方式对于规范化词的召回率如图3所示.相对于word2vec工具,本研究提出的方法获得的平均召回率提高了3.5个百分点,但是在第4个测试文本中两种方法产生相同的召回率,这说明Skip-gram模型并不能保证在所有文本上都取得较好的结果.对于产生这种现象的原因从模型结构上进行了分析:该模型将窗口中的一个词作为上下文的表示,在小规模的语料上会取得较好的结果; 对于更大规模的语料,这种建模方式不能很好地体现出上下文之间的关系,在引入词的子信息的词向量表示时,则会限制词向量的表示.因此,该模型在文本规范化任务上并不能得到较好的提升.
进而在更复杂的上下文表示方式的CBOW模型上进行了实验,结果如图4所示.相对于word2vec工具,本研究提出的方法在所有测试文本上都取得了较好的结果,平均召回率提高了8个百分点.由于CBOW模型采用了更复杂的上下文表示,引入词的子信息能够进一步丰富词向量的表示,所以在大规模语料上所生成的词向量能更好地体现出上下文之间的关系.对于文本规范化任
务来说,通过词向量空间距离最近的词来生成规范化词的候选集,这种方法能够取得更高的召回率.
由于引入词的子信息可以获得罕见词的表示,所以对于word2vec工具中的OOV词也可以获得其相应的向量表示,进而构建规范化词的候选集.对OOV词的召回率进行了统计,结果如表5所示.
通过对OOV词的分析,发现引入词的子信息虽然可以对OOV词进行表示,但是并不能产生很好的效果,对这一现象进行了如下分析:
1)在测试文本中的OOV词是一些缩写或者合成词,通过词的子信息可以找到与之形态相似的词,例如标准文本为“orda-saraylarg∨a”(房屋群),噪声文本为“orda-saraylargha”,基于词的子信息找到与之相似的词为“soda-saraylarg∨a”,噪声文本字符串被正确恢复,但是由于组合的多样性,未正确恢复到规范化的形式,所以对于这种文本的恢复还需要改进.
2)由于计算方式的差别,这些OOV词没有出现在单词字典中,在计算词向量的方式上没有这些词的完整词向量表达,所以计算这些词时不能完整地表达出该词的含义,只能根据字符的n-gram来计算向量表达,由此导致在词恢复的过程中不能更好地利用上下文相似的属性.
为了能够更准确地评价词汇之间的相似度,人工标注了50组词汇的相似度系数,范围为0~5,相关性越高,分值越大.通过人工标注的相似度与词向量所产生的余弦相似度计算ρ值,结果表明在word2vec工具上ρ=0.48,而使用本文中的方法在该数据集上ρ=0.50,提高了0.02,说明引入子词信息在维吾尔语中能够更好地体现词之间的相似性.这可能是因为一部分维吾尔语单词是复合型词汇,很多单词共享相同的词根、词缀,词形相似时语义也有一定程度的相关性,所以引入子词信息能够更好地体现出这种相关性.
本研究针对维吾尔语文本规范化任务中候选词质量的不足,引入了词的子信息来丰富维吾尔语的词向量表达.该方法在词向量构建过程中将词进行字符串切分,获取词内部的字符串信息,可以进一步表示词之间的相似性.实验表明,在上下文表示更丰富的模型中引入子词信息可以在规范化词的召回率上提升8个百分点.该方法对于OOV词的处理还存在一定不足,接下来需要进一步完善,采用更合理的方式来构建相应的模型,以提高OOV词恢复的效果.