第40卷第4期自动化学报Vol.40,No.4 2014年4月ACTA AUTOMATICA SINICA April,2014
基于级联重排序的汉语音字转换
李鑫鑫1,2王轩1,2姚霖1,3关键1,3
摘要N元语言模型是解决汉字音字转换问题最常用的方法.但在解析过程中,每一个新词的确定只依赖于前面的邻近词,缺乏长距离词之间的句法和语法约束.我们引入词性标注和依存句法等子模型等来加强这种约束关系,并采用两个重排序方法来利用这些子模型提供的信息:1)线性重排序方法,采用最小错误学习方法来得到各个子模型的权重,然后产生候选词序列的概率;2)采用平均感知器方法对候选词序列进行重排序,能够利用词性、依存关系等复杂特征.实验结果显示,两种方法都能有效地提高词N元语言模型的性能.而将这两种方法进行级联,即首先采用线性重排序方法,然后把产生的概率作为感知器重排序方法的初始概率时性能取得最优.
关键词汉语音字转换,重排序,最小错误学习,感知器方法
引用格式李鑫鑫,王轩,姚霖,关键.基于级联重排序的汉语音字转换.自动化学报,2014,40(4):624−634
DOI10.3724/SP.J.1004.2014.00624
Chinese Pinyin-to-character Conversion Based on Cascaded Reranking
LI Xin-Xin1,2WANG Xuan1,2YAO Lin1,3GUAN Jian1,3
Abstract The word n-gram language model is the most common approach for Chinese pinyin-to-character conver-sion.It is simple,efficient,and widely used in practice.However,in the decoding phase of the word n-gram model,the determination of a word only depends on its previous words,which lacks long distance grammatical or syntactic con-straints.In this paper,we propose two reranking approaches to solve this problem.The linear reranking approach uses minimum error learning method to combine different sub-models,which includes word and character n-gram language models,part-of-speech tagging model and dependency model.The averaged perceptron reranking approach reranks the candidates generated by word n-gram model by employing features extracted from word sequence,part-of-speech tags, and dependency tree.Experimental results on“Lancaster Corpus of Mandarin Chinese”and“People s Daily”show that both reranking approaches can efficiently utilize information of syntactic structures,and outperform the word n-gram model.The perceptron reranking approach which takes the probability output of linear reranking approach as initial weight achieves the best performance.
Key words Chinese pinyin-to-character conversion,reranking approach,minimum error learning,averaged perceptron Citation Li Xin-Xin,Wang Xuan,Yao Lin,Guan Jian.Chinese pinyin-to-ch
aracter conversion based on cascaded reranking.Acta Automatica Sinica,2014,40(4):624−634
汉语音字转换问题是中文信息处理中的重要问题之一,是汉语智能输入技术、语音识别等任务的基础.但是目前这个任务仍然具有一定的挑战性.对
收稿日期2013-04-22录用日期2013-09-22
Manuscript received April22,2013;accepted September22, 2013
国家科技部重大科技专项(2011ZX03002-004-01),深圳市基础研究重点项目(JC201104210032A,JC201005260112A)资助Supported by Key Science and Technology Projects of the Min-istry of National Science and Technology(2011ZX03002-004-01) and Shenzhen Basic Research Key Project(JC201104210032A, JC201005260112A)
本文责任编委党建武
Recommended by Associate Editor DANG Jian-Wu
1.哈尔滨工业大学深圳研究生院计算机应用研究中心深圳518055
2.深圳互联网多媒体应用技术工程实验室深圳518055
3.移动互联网应用安全产业公共服务平台深圳518057
1.Harbin Institute of Technology Shenzhen Graduate School, Shenzhen518055
2.Shenzhen Applied Technology Engineer-ing Laboratory for Internet Multimedia Application,Shenzhen 518055
3.Public Service Platform of Mobile Internet Applica-tion Security Industry,Shenzhen518057于汉语来说,通常包括410个无调音节(不同的标准下数目有所不同).而汉语通用字表包括7000个字,汉语常用字表包括3500个字.这表明每个无调音节都可能对应着多个汉字.例如,在汉语常用字表中就有60个汉字的发音为“yi”.汉语音字转换问题就是同音字的消歧问题.
目前,解决汉语音字转换问题最常用的方法是词N元语言模型.N元语言模型理论成熟、易于训练,可以很好地集成到解码过程中,应用非常广泛[1].但同时它也存在着很多问题.其中一个问题是OOV (Out of vocabulary)问题.由于汉语词的数目比较多,并且仍然在持续增长中,所以语言模型无法包括所有的词.对于OOV词,语言模型赋予的概率比较低,采用平滑技术[1−2]可以改善但并不能真正解决这个问题.适应学习方法可以根据用户的输入和反馈来不断的增加新词和修正词频[3−6].云输入法利用服务器端大规模的存储和计算能力,弥补了传统
4期李鑫鑫等:基于级联重排序的汉语音字转换625
输入法受限于单机内存、只能使用规模较小的词库和语言模型的不足,从而提升输入准确率1.
词N元语言模型面临的第二个问题是它只针对前面的邻近词建立模型,缺少句法和语法上的约束,特别是长距离词之间的约束.汉语中的一些语言现象只通过序列结构,如词N元语言模型,是无法描述清楚的.例如在“一只漂亮可爱的小花猫”中,“一只”的确定要依赖于与词“小花猫”的关系,以区别于“一支”依赖于“小花”.在词N元语言模型中,这种约束关系很难体现.目前已经有很多方法提出来用于解决这个问题,包括更高阶的语言模型[7−9]、机器学习方法[10−14]以及后处理规则等[15].
针对第二个问题,我们引入了多个子模型到汉语音字转换问题,包括词性标注模型、依存句法模型等.然后在此基础上采用两种方法对汉语音字转换的候选词序列进行重排序.在线性重排序方法中,采用了最少错误训练方法来获得每个子模型的权重.平均感知器重排序方法能够使用每个候选值中的词、词性、依存关系作为特征.实验结果显示引入的多个子模型对汉语音字转换问题有重要作用,将两种方法进行级联结合,即首先采用线性重排序方法,然后把产生的概率作为感知器方法的初始概率时性能取得最优.LCMC(Lancaster Corpus of Mandarin Chinese)语料库和人民日报语料上的实验表明本文的级联重排序方法要优于目前已有的工作.
1相关研究
词N元语言模型是汉语音字转换问题最常用的方法.对于一个拼音序列,它选择概率最大的词串或字串
作为正确的识别结果.在解码过程中,当前词/字的确定只依赖于前面邻近的拼音和字/词串(详情见第2节).这个方法简单有效,但是很多语言现象用词N元语言模型并不能很好地表示,例如长距离词之间的约束现象和形容词、名词的嵌套结构等.
目前已经有很多工作提出来用于解决这个问题.一种方法是采用更有效的语言模型存储和索引方法,能够减少模型的规模,提高训练和预测的速度,以便在有效的存储空间上支持更高阶的语言模型[7−8]. Siu等提出了一种可变N元语言模型,用树结构来替代原始的语言模型[9].在这个树模型中,可以通过调整节点的合并和结合来增加N元语言模型的长度.从而可以使这个模型表示出比传统模型更长的词关系.基于类的语言模型是另外一种引入长距离约束的模型[2].它把词/短语分成不同的类别,因为类别的数目要远远小于词的数目,这样就可以表示
1pinyin.sogou 更长的词约束关系.
词N元语言模型也可以通过集成更高层次的模型来加以扩展.Ney等提出了一个模型把两个词之间的关系引入到词N元语言模型,从而能够使用长距离词之间的依存关系表示的信息[16].同样也可以将概率自顶向下的句法解析模型(上下文无关文法)融入到词N元语言模型,这样就可以有效的利用句法结构信息[17−18].
基于规则的后处理方法可以引入长距离词的约束或者嵌套词关系到基于转换的方法中.使用这些句法和
语法约束规则对候选词进行处理,去掉不符合规则的候选词,可以有效地增强词N元语言模型.这些约束关系通常表示各种不同的规则,这些规则可以通过手动或自动的方法进行提取.文献[15]提出了一种通过粗糙集理论从训练数据中自动提取汉语音字转换规则的方法.
各种机器学习方法,例如最大熵模型[10−11]、最大熵马尔科夫模型[12]、支持向量机模型[13]、条件随机场模型[14]、机器翻译的方法[19]等,都可以用来解决这个问题.这些模型使用当前词/字前后的信息和长距离的词/字信息作为特征,有效地弥补了词N 元语言模型只使用前面邻近的词/字的不足.
除了传统的基于准确拼音序列的音字转换问题外,还有不少工作是在做基于连续拼音流和基于有输入错误的拼音串的音字转换研究[20−21].文献[22]提出了一种基于错误容忍的模型,可以将音节串的错误条件概率引入到原始的音字转换概率模型中.对于一个有错误的拼音串,它能够选择可能所有的正确拼音作为候选集,然后使用概率容忍模型对其重排序选出最优的结果.本文主要基于传统的音字转换进行研究.
2N元语言模型
本节主要描述汉语音字转换问题和采用N元语言模型进行音字转换的方法.对于一个音节序列S=s1,s2,···,s n,汉语音字转换的目的是到对应的字序列C=c1,c2,···,c n,或词序列W=w1, w2,···,w m(m≤n).一个音字转换的例子如图1所示.其中,词w k是由字序列c i,···,c j组成,对应着拼音序列(s i,···,
s j).其中i,j随着k的不同而变化.对于音节序列S,选择的最佳词序列W满足:
W∗=arg max
W
P(W|S)(1)采用词N元语言模型时,根据贝叶斯公式:
W∗=arg max
W
P(S|W)P(W)
P(S)
(2)
626自动化学报40卷其中,
P(S|W)=
m
k=1
p((s i,···,s j)|w k)(3)
P(W)=
m
k=1
p(w k|w1,···,w k−1)
(4)
图1一个音字转换的例子
Fig.1An example of Chinese pinyin-to-character
conversion
对于三阶语言模型,P(W)=p(w1)p(w2|w1)×
m
k=3
p(w k|w k−2,w k−1).如果采用字N元语言模
型,最佳的字序列C可以通过下式来确定:
C∗=arg max
C
P(C|S)=
arg max
C
P(S|C)P(C)
P(S)
(5)
其中,P(S|C)和P(C)同P(S|W)和P(W)的计
算方法相似.
当使用基于词N元语言模型时,可以通过一个
conversion翻译方法的定义Beam搜索解码方法来得到最优的词序列和最优的
k个词序列.在解码过程中,P(S|W)和P(S|C)通
常是省略的.解码算法从第一个音节开始.对于音
节序列中位置j,解码算法会根据词典生成以音节
s j结尾的音节序列s i,···,s j(i=max(0,j−20))
对应的所有可能词,然后语言模型给出当前词基于
前面邻近词序列的概率,从而得到当前位置候选词
序列的概率.对于每个位置j,算法可以保存最优的
k个词序列.算法依次向后进行解析,最优的词序列
为句子结尾位置上概率最大的词序列.
3子模型
单个词N元语言模型并不能很好地解决汉语
音字转换问题,因此引入词性、句法等信息是必要
的.为了更好地使用这些信息,我们对每个候选词序
列都进行词性标注和句法分析.本文我们引入了多
个子模型,主要包括基于字的模型、词性标注模型、
拼音–词共现模型、词–词性共现模型、词性N元
语言模型和依存句法模型等.这些模型都能够对候
选词序列生成相应的概率.
3.1基于字的模型
我们采用的基于字的模型是一个判别式机器学
习模型,该模型能够使用音节序列的信息作为特征.
模型采用平均感知器方法进行训练[23],其中特征模
板见表1所示.
表1基于字的模型采用的特征模板
Table1Feature templates for the character-based
model
1s n(n=−2, (2)
2s n s n+1(n=−1, 0
3s−1s1
表1中,s0表示当前音节,s−n,s n表示当前音
节前面的第n个音节和后面的第n个音节.对于音
节序列S,它对应的字序列C选择为
C∗=arg max
C∈GEN(S)
P char(C|S)=
arg max
C∈GEN(S)
Φ(S,C)ׯα(6)
其中,P char(C|S)为模型的概率输出.特征函数
Φ(S,C)可以在解码之前就全部生成,从而减少解码
的时间.模型的解码算法和平均感知器的参数训练
方法可以参考文献[23−24].
3.2拼音−词共现模型
对于一个音节序列S和其对应一个词序列W,
我们定义拼音–词共现概率分别为
P occur(W|S)=
m
k=1
p(w k|(s i,···,s j))(7)
P occur(S|W)=
m
k=1
p((s i,···,s j)|w k)(8)
其中,p(w k|(s i,···,s j))和p((s i,···,s j)|w k)为单
个词w k和拼音(s i,···,s j)的共现概率,共现在本
文中表示词和拼音是严格对齐的.一个音节序列
s i,···,s j可能存在着多个对应的词,一个词也可
能对应着多个音节序列,所以p(w k|(s i,···,s j))和
p((s i,···,s j)|w k)都不恒为1.我们根据频率估计
得到共现概率,并采用加一平滑方法来消除稀疏性.
p(w k|(s i,···,s j))=
N(w k,(s i,···,s j))+1
N(s i,···,s j)+N S
j−i+1
(9)
p((s i,···,s j)|w k)=
N((s i,···,s j),w k)+1
N(w k)+N W
j−i+1
(10)
其中,N S
j−i+1
表示词典中长度为j−i+1的音节的
数目,N W
j−i+1
表示词典中长度为j−i+1的词的
数目.音节N(s i,···,s j)的数目,词N(s i)的数目
和拼音–词对N(w i,(s i,···,s j))的数目可以从已
4期李鑫鑫等:基于级联重排序的汉语音字转换627
标注好拼音的训练文本中统计.训练文本与N元语
言模型采用的文本相同,可详见第6节说明.
3.3词性标注模型
给定一个词序列W,我们可以确定它对应的词
性序列T.文献[25]的研究表明词性信息能够有效
地提高中文分词的准确性.在这里我们引入词性标
注模型来帮助选择最优的词序列.
我们采用平均感知器方法来训练模型.对于词
序列W,其对应的词性标注序列T选择为
T∗=arg max
T∈GEN(W)
P(T|W)=
arg max
T∈GEN(W)
Φ(T,W)ׯα(11)
针对候选值(W,T),词性标注模型的概率为
P(T|W),特征大部分来自于文献[23−26],如表2
所示.我们的特征只采用了当前拼音/词及其前面的
信息,可以随着词序列的解析过程生成,可以不必预
先生成整个词序列.
表2词性标注模型采用的特征
Table2Feature templates for part-of-speech tagging
1w−2t0end(w−1)w0start(w1)t0
2w−1t0when len(w0)=1
3w0t0start(w0)t0
4w1t0end(w0)t0
5w2t0c n t0,(n=1,len(w0)−2)
6t−1t0start(w0)c n t0(n=above)
7t−2t−1t0end(w0)c n t0(n=above)
8t−1w0c n c n+1t0(c n=c n+1)
9w0t0end(w−1)class(start(w0))t0
10w0t0start(w1)class(end(w0))t0
我们采用汉语树库(Chinese treebank5,
CTB5)来训练词性标注模型,其中训练集、开发
集和测试集的设置与文献[26]相同.在开发集上我
们的词性标注模型的F−1值为95.26%.
3.4词性N元语言模型
与词N元语言模型相似,我们建立一个词性N
元语言模型.定义词性序列T的概率为
P(T)=
m
i=1
p(t i|t1,···,t i−1)(12)
词性N元语言模型采用的训练文本与N元语言模型相同.我们可以从标注好词性的训练文本中得到p(t i|t1,···,t i−1),其计算方法与p(w k|w1,···, w k−1)相似.3.5词性−词共现模型
我们采用的词性–词共现模型与拼音–词共现模型的定义类似.对于一个词序列W和它对应的词性序列T,它们的共现频率定义为
P occur(W|T)=
m
i=1
p(w i|t i)(13) P occur(T|W)=
m
i=1
p(t i|w i)(14)
其中,p(w i|t i)和p(t i|w i)都是通过频率统计来得到,并采用加一平滑消除稀疏性,计算方法与拼音–词共现频率相似.
3.6依存句法模型
如前面所示,仅使用相邻的音节和词来判断当前音节对应的词是不够的,可能需要句法和语法的信息.依存句法模型能够为一句话中长距离词之间建立依存关系.对于一个已经分词和词性标注好的句子(W,T),我们可以使用基于转移的句法分析方法对其进行解析[27].依存句法模型的训练语料采用汉语树库(CTB5),训练集、开发集和测试集的设置与文献[27]相同,准确率达到了86%.
图2给出了一个句法树结构的例子.从图中可以看出,词“一只”与词“小花猫”在序列方向上相隔三个词,但是存在着直接的依存关系.这也表明依存关系能为音字转换问题提供有用信息
.
图2一个依存句法的例子
Fig.2An example of a dependency tree 依存树D的概率定义为
P(D|W,T)=
i
w i×f i(D|W,T)(15)
其中,f i(D|W,T)表示建立依存树过程中的每个转移状态对应的特征.
4线性重排序方法
研究表明融合多种信息的模型能够比单个模型取得更好的性能[28].本文首先采用一种线性重排序方法来结合第3节提出的各种子模型.针对每个拼音序列S,可以根据Beam搜索算法产生k个最优的词序列W,然后对每个词序列进行词性标注和句法分析.为了有效地利用各种子模型,我们采用一种
628自动化学报40卷
线性方法来使用子模型对每个候选词序列产生的概
率.我们的重排序方法就是从这k 个候选项中选择出最优的一个.
子模型的权重可以通过最小错误训练方法(Minimum error training method,MERT)得到[29].最早提出最小错误训练方法是用来解决机器翻译中的特征权重问题,已成功应用于自然语言处理的不同领域,如中文分词和词性标注等[30].对于汉语音字转换问题来说,给定一个音节序列S ,它对应的候选词序列W 的概率不再只是词N 元语言模型产生的概率P (W ),而是多个子模型的概率组合,计算为
P mert (W |S )=P mert (W,C,T,D |S )=
k i =0
w i ∗P sub (W,C,T,D |S )=w 0×P (W )+w 1×P (C )+w 2×P char (C |S )+
w 3×P occur (W |S )+w 4×P occur (S |W )+w 5×P (T |W )+w 6×P (T )+
w 7×P occur (W |T )+w 8×P occur (W |T )+w 9×P (D |W,T )
(16)
其中, 9
i =0w i =1.P sub (W,C,T,D |S )表示各个子模型的概率输出,包括词N 元语言模型P (W ),字N 元语言
模型P (C ),字模型P char (C |S ),拼音–词共现模型P occur (W |S )和P occur (S |W ),词性标注模型P (T |W ),词性N 元语言模型P (T ),词性–词共现模型P occur (W |T )和P occur (W |T ),和依存句法模型P (D |W,T ).由于每个词序列W 只产生唯一对应的词性序列T 和依存树D ,所以公式的第1行是成立的.
子模型的权重w j (0≤j ≤k )可以通过保持其他权重不变,每次只计算一个权重w j 得到.每个候选值的概率为
P mert (W |S )=w j ×P j (W |S )+
i =j
w i ×P i (W |S )
(17)
在计算权重时,设置最左边的概率w j ×
P j (W |S )为一个变量,最右边的概率
i =j w i ×P i (W |S )为一个常量.这时,直接通过格搜索算法来确定每个子模型的权重是不适合的,因为重新计算所有候选值的概率到最优值是非常费时的.最小错误训练方法对每个j th 方向使用一个分片式线性搜索算法.每个子模型的权重w j 的最优值肯定在上面公式画出的所有直线的相交点上.因为当在
相交值上变化时,只有少数候选值需要计算,所以这种方法很容易到最优值.最小错误训练方法的细节可参考文献[29−31].
5感知器重排序方法
在线性重排序方法的基础上,我们提出的一种判别式的重排序方法:感知器重排序.对于每个候选词序列W ,我们生成其对应的词性序列T 和句法树D .感知器模型能够从词序列,词性序列和依存树结构中提取的全局特征作为长距离约束的信息.
对于一个音节序列S ,我们可以通过感知器模型来重排序所有可能的候选集.拼音序列S 对应的最优词串W 选择为
W ∗=arg
max W ∈GEN (S )
(P init (W |S )+
P rerank (W |S ))=arg
max W ∈GEN (S )
(P init (W |S )+
Φ(W,S )ׯα)
(18)
式中,GEN (S )表示音节序列S 产生的所有候选词
序列.第一个概率P init (W |S )表示在感知器重排序之前拼音序列S 产生词序列W 的概率,它可以设置为词N 元语言模型产生的概率P (W ),也可以是线性重排序模型产生的概率P mert (W |S ).线性重排序模型P mert (W |S )产生的概率可见第4节.
第二个概率P rerank (W |S )表示感知器重排序模型产生的概率.图2描述了词性标注模型和句法分析器产生的句法树实例.我们的模型使用两种不同类型的特征.第一类特征是平面序列特征,包括词和词性的特征组合.第二类特征是从依存树中抽取的句法特征.这种句法特征包括父子依存特征、父子兄弟依存特征、祖父父亲孙子依存特征.在这里只考虑词之间是否存在依存关系,不考虑有标注的情况.重排序模型采用的最有效特征可通过实验进行选择,详见第6节.
我们采用平均感知器模型作为重排序方法.对于从拼音序列S 产生k 个最优的依存树D i (i =1,···,k ),模型的参数¯α可更新为
¯α=¯α+Φ(¯α,D g )−Φ(¯α,D p )(19)
其中,D g 表示音节序列S 对应的正确词序列的句法
树D i .但对于每个音节序列,正确词序列可能不在候选词序列集中,所以我们设置D g 为候选集中具有最小字错误率的词序列对应的依存树.D p 表示候选集中感知器重排序模型产生的概率最大的依存树.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论