【实验目的】

很多词汇具有一词多义的特点,但一个词在特定的上下文语境中其含义却是确定的。本项目要求实现系统能够自动根据不同上下文判断某一词的特定含义。

【实验原理】

语义消歧(Word Sense Disambiguation, WSD)

由于自然语言中一词多义现象普遍存在,在机器翻译中,要让计算机进行准确的译文选择(translation
choice),一个重要的前提条件就是能够在某个特定上下文中,自动排除歧义,确定多义词的词义。

语义消歧的主要方法

1. 利用词类标记进行词义消歧

如果多义词的不同意义属于不同的词类,计算机自然可以借助于语料中的词类标注判断出文本中具体出现的是哪一个意义。如“补贴”的①义是动词,②义是名词:

【补贴】①贴补:~家用|~粮价。

②贴补的费用:福利~|副食~。

2. 词类相同,利用子类标记进行词义消歧

现代汉语多义词的不同意义,有很大一部分属于不同的子类。如:【会计】①监督和管理财务的工作,主要内容有填制各种记帐凭证,处理帐务,编制各种有关报表等。②担任会计工作的人员。
“会计”
的两个意义都是名词,但①义只能受量词“种”、“点”修饰,是抽象名词(ne);②义则是指人名词,可与“个、位、名、排、些”等量词搭配,属于个体名词(na)。这样,对于具体上下文中的“会计”,计算机就可以根据其前面的量词判断出它究竟是个哪一类名词,并进而正确地进行词义标注和译文选择。

如:

[1] 他/r 还/d 利用/v 业余/b 时间/t 学/v 了/u 一/m 点/q 会计/n、电脑/n
和/c广东话/n。

[2] 全所/n 只有/v 1/m 名/q 会计/n 和/c 1/q 名/q 炊事员/n,加上/v 他/r 总共/d
才/d 3/m 人/n。

句[1]中的“会计”前面的量词是“点”,因而属于抽象名词,指的是“会计职务(职能)”,对应的英语译词是“accountantship”。在句[2]中,“会计”与量词“名”搭配,因而是个体名词,指称“会计人员”,应译为“accountant”。

3. 子类相同,则利用语法功能的差异进行词义消歧

如果一个多义词的不同意义属于同一词类下面的同一个子类,词类和子类标记就都无能为力了。这时,则可根据“现代汉语语法信息词典”中丰富的其他语法功能信息来区分词义。

4. 语法功能相同,进一步利用语义搭配限制进行词义消歧

4.1 利用搭配对象属于不同的语义类:词义所反映的事物通常只能与一定范围内的事物发生关系,因而,多义词的一个意义只能与反映某一类现象的词语或其中的某几个特定词语组合;
语义类相同但每个语法位置上的词汇搭配不同:

4.2 语义类相同,但每个语法位置上的词汇搭配不同:汉语中还有一些多义词,其内部各个意义的词类、子类均相同,语义类也基本相同,词义差别主要体现在各个语法位置上的词汇搭配限制不同。

5. 利用自由义和非自由义进行词义消歧

在语法、语义信息描述的基础上,词义消歧知识库中如果加入词义的组合自由度信息,将会更加提高消歧系统的效率。

现代汉语名词在句法分布中并不是完全自由的,而是或多或少地要受到一些限制。如果按照词义进入组合的自由程度来给词语分类,我们就会发现自由程度有级别之分。有些词可以充当多种句法成分,有些则只能出现在其中的一两个位置上。

Lesk算法

比较经典的词义消岐的算法为Lesk算法,该算法的想法很简单,通过对某个歧义词构建不同含义的语料及待判别句子中该词语与语料的重合程度来实现。该算法认为:一个词在词典中的词义解释与该词所在句子具有相似性。这种相似性可以由相同单词的个数来表示,比如“cone”和"pine"的意思分别为:

PINE

  1. kinds of evergreen tree with needle-shaped leaves

  2. waste away through sorrow or illness

CONE

  1. solid body which narrows to a point

  2. something of this shape whether solid or hollow

  3. fruit of certain evergreen trees

可以看出,最大交集Pine #1 ⋂ Cone #3 = 2

本实验思想基于简单的Lesk算法:

function SIMPLIFIED LESK(word,sentence) returns best sense of word
    best-sense <- most frequent sense for word
    max-overlap <- 0
    context <- set of words in sentence
    for each sense in senses of word do
    signature <- set of words in the gloss and examples of sense
    overlap <- COMPUTEOVERLAP (signature,context)
    if overlap > max-overlap then
    max-overlap <- overlap
    best-sense <- sense
        end return (best-sense)

【实验操作】

以词语“苹果”作为实验,选取其中的两个义项(同一个词语的不同含义):“蔷薇科苹果属果实”“苹果产品公司”

1. 获取语料

首先,利用爬虫爬取这两个义项的百度百科网页,以句子为单位,只要句子中出现该词语,则把这句话加入到这个义项的预料中。

语料获取程序执行如下:

file

file

2. 实现算法

我们以句子为单位进行词义消岐,即输入一句话,识别出该句子中某个歧义词的含义。笔者使用的算法比较简单,是以TF-IDF为权重的频数判别。以句子:

“一天吃一个苹果,可以补充大量维生素。”

“在2019全球开发者大会,我们看到了最新款的苹果笔记本电脑。”

为例,对该句子分词后,去掉停用词(stopwords),然后分别统计除了“苹果”这个词以外的TF-IDF值,累加起来,比较在两个义项下这个值的大小即可。

“在2019全球开发者大会,我们看到了最新款的苹果笔记本电脑。”,输出:

file

“一天吃一个苹果,可以补充大量维生素。”,输出:

file

“我爱吃苹果。”,输出:

file

“我爱用苹果电脑。”,输出:

file

【结果与分析】

可以看出,一般情况下,使用百科作为语料库的基于简单的Lesk算法实现的词义消歧可以实现比较好的效果。

可以看出一点,此种消歧方法明显有两个可以改进的地方:

  1. 更丰富的语料库;

  2. 扩充停用词;

另外,针对汉语消歧,还可以利用如原理中写的,还可以利用词类标记、子词类标记、语法功能、词义搭配等信息开发出更鲁棒的汉语消歧算法。

【参考文献】

机器翻译中基于语法、语义知识库的汉语词义消歧策略[§].
王惠. 北京大学计算语言研究所

Lesk algorithm. Wikipedia

最后修改日期: 2019年6月17日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。