大连理工大学硕士学位论文
4) 自然语言理解:确定句子的语义结构时,必须考虑句子中每个词的词义。在
已知句子中每个词的词义前提下,通过语义分析能够得到句子的语义结构,如句子的格结构。
5) 语音识别和音字转换:基于词的N元模型只考虑了词之间的接续关系,在识
别结果中存在词之间无意义联系的句子,造成识别错误。在引入词义后,可以得到意义之间的接续关系,提供词在意义一级上的接续关系,在一定程度上避免这样的错误。
综上所述,作为自然语言处理过程中一个重要过程,词义排歧的研究具有重要理论和实践意义。它的研究成果可以直接应用于自然语言处理的许多方面。
1.2 国内外的研究状况
近几年,国内外研究人员将统计学和机器学习引入到词义消歧的处理中,提出基于语料库的多义词处理方法(Corpus Based Approach,CBA)。从语料库中学习的方法主要有有指导学习和无指导学习两种[5]。一般来说,有指导的消歧方法要比无指导的方法有更好的效果。
有指导的学习中训练数据是已知的(在这里是词义标注),而在无指导的学习中训练事物的分类是未知的。因此,无指导学习通常被称为聚类任务(clustering task),而有指导学习通常被称为分类任务(classification task),也可以称为函数拟合,就是说基于一些数据点推断出函数形态[6]。
然而,在统计自然语言处理领域中,事情往往并非这么简单。由于标注好的语料库非常昂贵,所以人们希望可以从未标注的数据中学习,即无指导的学习,并且试图在自己的算法中使用各种资源,比如词典,或者使用更加复杂的结构化数据。在这些方法中,系统可以建立在一些所谓的“种子”数据集上,然而即可利用这个系统,从未标注的数据中学习,逐步扩大种子数据集。下面分别对这两种方法中比较典型的算法进行论述。
1.2.1 有指导排歧方法
在有指导的排歧中,一个已经标注好的语料库被用来训练。在这个样本训练集中,多义词 w 每一次出现都被标注了一个语义标签( 通常是符合上下文的语义sk)。这样就可以为有指导排歧提供统一分类的实例。统计分类的任务就是构建一个分类器,根据上下文ci对新的多义词进行分类。
-5-
一种基于AdaBoost.MH算法的汉语多义词排歧方法
在众多的有指导的学习算法中,有一些算法已经被应用到多义词排歧中。其中有两种典型的算法,它们代表了统计自然语言处理中的两个重要理论方法:贝叶斯分类[7]和信息论[8]。这两种方法同时证明了上下文中的多种完全不同的信息源可以应用到排歧算法中。第一种方法把上下文看做是一个无结构词集,整合了上下文窗口中众多的词汇信息。第二种方法仅仅考虑了上下文中的一个特征信息,这个特征信息可以很灵敏的反应上下文结构。但是,这个特征要谨慎地从大量的潜在信息中选取。其它使用较多的有指导算法还有决策树学习算法和决策表算法。 1.2.1.1 贝叶斯分类
贝叶斯分类器的原理是:它在一个大的上下文窗口中考虑多义词周围的词的信息。每个实词都含有潜在的有用信息,暗示多义词的哪个词义被使用。这个分类器不是简单的进行特征选择,而是组合了所有特征。本文的形式化描述来自于[6]。分类器的有指导训练要求语料库中的多义词都事先被正确的词义标注。
在选择类别的时候,贝叶斯分类器使用贝叶斯决策规则,这个规则最小化了错误概率:
Decide s' if
P(s|c)?P(sk|c)'forsk?s'
贝叶斯决策规则是最优化的,因为它最小化了错误概率。对于每个独立的例子,它选择带有最高条件概率的类,因此有最小的错误率。对于一系列类别决策的错误率也会尽可能小。
通常P(sk|c)的值是未知的,但是可以使用下面的贝叶斯规则来计算它:
P(sk|c)?P(c|sk)P(c)P(sk)
(1.1)
。
P(sk)是词义sk的先验概率,它是不知道任何上下文信息时得到的sk出现的概率。
P(sk)被综合了上下文信息的因子P(c|sk)/P(c)校正,然后得到后验概率P(sk|c)如果仅仅是要得到正确的分类,那么可以通过消除P(c)(对于所有的词义,它是一个常量,因此不会影响最大值的选择)来简化这个分类任务。也可以使用概率的对数值来简化计算。然后。我们就能为 w 指定一个词义s:
s''?argmaxP(sk|c)?argmaxP(c|sk)P(sk)?argmax[logP(c|sk)?logP(sk)] (1.2)
-6-
大连理工大学硕士学位论文
Gale等人提出的分类器是一个特殊的贝叶斯分类器,即单纯贝叶斯分类器。它把分类所基于的状态空间描述成一系列的特征,根据出现在上下文的词来描述词w 的上下文。
单纯贝叶斯假设认为用来刻画事物特征的属性都是条件独立的:
P(c|sk)?P({vj|vjinc}|sk})??vjincP(vj|sk) (1.3)
在词义排歧中,单纯贝叶斯假设有两个结论。第一个是上下文中所有结构和词语顺序都可以被忽略。这通常是指一个可有重复的单词集模型。另一个结论是指在可有重复的单词集中出现的词均独立于其它词。 1.2.1.2 基于信息论的方法
信息论分类方法试图寻找一个单一的上下文特征,它可以可靠地指示出多义词的哪一种词义被使用。为了更好的地应用语料信息,信息的量值需要进行规范化。Brown等人使用了Flip-Flop算法来解决这个问题。算法描述如下:
Find random partition P = {P1,P2} of {t1,t2,…,tm} While (improving) do
Find partition Q = {Q1,Q2} of {x1,x2,…,xn}
that maximizes I(P;Q)
Find partition P = {P1,P2} of {t1,t2,…,tm}
that maximizes I(P;Q)
End.
Flip-Flop算法的每一次迭代都必须满足使互信息I(P;Q)单调增加,所以算法的一个很自然的中止条件就是互信息I(P;Q)不再增加或者增加很少。其中P为最初的词义划分,Q为指示器。I(P;Q)为P,Q的互信息。互信息的定义如下:
I(X;Y)?p(x,y)p(x)p(y)
??x?Xy?Yp(x,y)log (1.4)
对于计算一个特殊指示器值的最佳划分,Flip-Flop算法是一个有效的线性时间算法,它基于分裂理论(splitting theorem)[8]。对所有可能的指示器使用这个算法,然后选择带有最高互信息的指示器。
当指示器和它取值的特殊划分已经确定之后,排歧就很简单了,如下所示: 1) 对于出现的一个多义词,确定它的指示器值xi;
-7-
一种基于AdaBoost.MH算法的汉语多义词排歧方法
2) 如果xi在Q1中,指定多义词的词义就为词义1;如果xi在Q2中,指定多义词
的词义就在词义2中。
1.2.1.3 决策树的学习方法
决策树算法的主要思想是:一棵决策树(decision tree)是一个“提问-问答”机制。对一个事件,经过一系列的“提问-回答”逐渐较少问题的不确定性,从而做出正确的决策,其中当前的提问与以前的回答有关。形式上,决策树是一棵N叉树,其中事件与根节点关联,提问与每个内部节点关联,选择与每个叶子节点关联。Black[10]曾采用这种方法学习了5个含有4个词义的多义词的决策树。首先从语料库中抽取每个词的训练样本,每个词各有2000个句子;然后使用“提问-回答”的方式,获得多义词的决策树:根节点对应于多义词的排歧任务,提问是识别多义词词义的一个特征,叶子节点是多义词的一个词义。即学习阶段;最后使用学习得到的决策树对多义词确定词义的阶段,即排歧过程。 1.2.1.4 决策表的学习方法
决策表的形式为一个二元组(条件,值)。Yarowsky[7]曾使用决策表学习词义排歧时使用的知识。在决策表中,条件对应多义词的一个搭配,值是这个多义词在两个不同词义下的概率似然比,决策表按似然比由小到大排列,似然比大的排列被排到决策表的前面位置,表明该搭配可以表征某多义词的词义。
Yarowshy曾对多义词在一篇文章中和在一个特定上下文环境中具有的词义情况作了实验调查,发现两条规律:1)一个词在每个话题中只对应一个词义;2)一个多义词在一个搭配中只有一个词义。即在给定搭配中每个词只表现出一个词义。不同搭配所对应的词义是不同的,如果能找出对多义词排歧最有用的搭配,则可以用它来解决多义词问题。考虑的搭配类型有多义词左、右两边的第一个词,多义词在窗口长度为左右K的上下文的词。在对多义词进行手工标注后,按上述搭配类型进行统计,计算对数似然比:
?abs?log??Pr(sense1|collocationi)?????Pr(sense2|collocation)i??? (1.5)
之后得到的数据按降序放在决策表中。由上式可以看出,能够较好地表示词义的搭配的似然比较大,位于决策表较前的位置。
-8-
大连理工大学硕士学位论文
1.2.2 基于词典的排歧方法
如果一个词没有语义范畴信息,我们可以求助于它的一般语义描述。比如可以依赖词典和义类辞典中的语义定义。在这方面的研究中,主要有3种不同的信息类型。
Lesk[11]直接使用词典中的语义定义。Yakowsky[7]提出了怎样把词的语义范畴应用到上下文的语义范畴和排歧判断中。在Dagan and Itai[12]的方法中则是从一个双语词典得到不同语义的翻译,通过分析它们在外语语料中的分布来进行排歧。 1.2.2.1 基于语义定义的排歧
Lesk[11]提出了一个新的消歧思路,认为词典中词条本身的定义就可以作为判断其语义的一个很好的依据条件。方法使用的假设是:一个词的词义和定义该词义的释义词之间存在明显的语义关系。
但是这种方法并不成功。Lesk报告说:《Pride and Prejudice》的样本片断中只有50%-70%的词被正确地标上了词义。这种方法的缺点表现在三方面:
1)当多义词的上下文与其对应的释义文本无重叠词或重叠词较少时,无法确定该词的正确词义;
2)多义词的释义文本中的一些词(如虚词)与多义词的意义联系不大,但在排歧过程中同等对待,由此导致判断错误;
3)由于释义文本中的词本身可能是歧义的,在利用释义文本进行排歧时只对释义文本与多义词周围的词的重叠度进行计算,没有考虑词在意义上的重叠。 1.2.2.2 基于义类词典的排歧
基于义类词典的排歧方法使用语义范畴信息(semantic categorization),这些语义范畴信息一般都由义类词典或带有主体范畴的词典给出。基于义类词典的排歧方法的基本原理,上下文中词汇的语义范畴大体上确定了这个上下文的语义范畴,并且上下文的语义范畴可以反过来确定词汇的那一个语义被使用[6]。Walker[13] 和Yarowsky[7]在词义消歧的研究中分别提出了基于义类辞典的消歧算法。
Walker提出的算法中使用的基本信息是词典中给每个词指定的一个或多个主题码(subject code)。如果一个词指定了多个主题码,那么假设它们就对应于这个词的不同词义。设t(sk)为上下文中多义词w的词义sk的主题码。那么,通过统计义类词典中可以把t(sk)列为可能主题的上下文的词的个数,就可以对w进行排歧处理。选择带有最高统计值的语义作为排歧的结果,算法描述如下:
Comment: Given: context c
-9-