《自然语言处理简明教程》读书笔记:第二章 词汇自动处理

目录

第二章 词汇自动处理

第一节 词汇是语言的建筑材料

第二节 正则表达式

双斜线“//”

双引号“[ ]”

连字符“-”

脱字符“^”

问号“?”

“Kleene”

“Kleene +”

通配符“.”

锚号“^”和“$”

词界号“\b”和“\B”

析取符“|”

第三节 最小编辑距离算法

第四节 词汇语义学

1.同形关系

2.同义关系

3.上下位关系

4.整体—部分关系

5.集合—元素关系

第五节 英语中的词汇歧义现象

1.名词中的歧义

2.代词中的歧义

3.动词中的歧义

4.形容词中的歧义

5.连接词中的歧义

6.介词中的歧义

第六节 几种重要的词义排歧方法

1.选择最常见涵义的方法

2.基于规则的词义排歧的方法

3.自立的词义排歧方法

4.基于机器学习的词义排歧方法

5.基于词典的词义排歧方法


第二章 词汇自动处理

第一节 词汇是语言的建筑材料

近些年来,语料库证据支持的词汇学研究蓬勃发展,越来越多的实证研究表明,词汇和语法在实现意义时是交织一起的,必须整合描述。词汇是话语实现的主要载体,语法则起到管理意义、组合成份和构筑词项的作用。

根据还原主义者的观点,近百年来自然科学发展的历史可以看成是探索如何使用较小“基原”的行为结合起来解释较大“结构”的行为的历史。在生物学中,遗传的性质用基因的行为来解释,而基因的性质用脱氧核糖核酸(DNA)的行为来解释。在物理学中,物质被还原为原子,而原子又被还原为比原子更小的粒子。

在语言学中,也逃不出这种还原主义思想的影响。语言学家可以使用语法范畴构成诸如这样的语法规则,把S看成是由NP和VP组成的,或者把S还原为NP和VP,再把NP和VP还原成具体的单词。

所有这些都可以把客观事物想象成是由某些特征关联而成的复杂特征的集合。在这些特征中的信息用约束来表示,所以这一类的模型通常叫作“基于约束的形式化方法”。

从词汇语义组成的角度,弗雷格提出了“组成性原则”。弗雷格指出,句子的意义是由组成它的各个成分的意义组合而成的,组成成分的意义决定了整个句子的意义,组成成分的意义是句子的意义的函数。

不论从还原主义的角度看,还是从组成性原则的角度看,词汇都是组成句子的基本成分,词汇是语言的建筑材料,是话语实现的主要载体,而语法的作用则是把词汇加以组合,构筑更大的组合成分。

单词本身的语义信息是很重要的,根据“还原主义”,句子的句法成分可以还原成单词;根据“组成性原则”,句子的语义是由构成该句子的单词的语义以及这些单词之间的语义关系组成的。因此,词汇的分析和描述对于自然语言处理是至关重要的,我们应该重视词汇的研究,善于从词汇中发现语言现象后面隐藏着的内在规律。

第二节 正则表达式

正则表达式是一种用于描述文本搜索符号串的语言。用来搜索诸如grep和Emac这样的UNIX工具。在Perl,Python,Ruby和Java等程序语言总,以及在Microsoft Word中,文本的正则表达式几乎是完全一样的,在不同的Web搜索引擎中,存在着具有不同特征的正则表达式。除了这些实际的用处之外,正则表达式还是计算机科学和语言学的一种最重要的理论工具。

正则表达式是1956年首先由克林提出来的。一个正则表达式是专用语言中用于描述符号串的简单类别的一个公式。符号串是符号的序列;对于大多数的基于文本的检索技术来说,符号串就是字母数字字符(字母、数字、空白、表、标点符号)的任意序列。在基于文本的检索技术中心,一个空白相当于一个字符,它与其他字符是同样看待的,我们用符号来表示空白。

从形式上说,正则表达式是用来刻画符号串集合的一个代数表述。因此,它可以用于描述符号串的搜索,也可以用于以形式的方法定义一种语言。

正则表达式的搜索要求有一个我们试图搜索的模式和一个被搜索的文本语料库。正则表达式的搜索函数将对整个的语料库进行搜索,并返回包含该模式的所有文本。在诸如搜索引擎这样的信息检索系统中,文本就是整个的文档或Web的网页。在一个词处理系统中,文本可以是独立的单词,或者是文档行。因此,如果给出一个搜索模式,那么,搜索引擎返回的就是文档行。对于一个正则表达式来说,搜索可以返回所有的匹配,也可以只返回第一个匹配。

双斜线“//”

最简单的正则表达式是由简单字符构成的一个序列。例如,要搜索Buttercup我们就键入/Buttercup/这个正则表达式进行搜索。这样,正则表达式/Buttercup/就与语料库中包含子字符串Buttercup的任何字符串相匹配。

双引号“[ ]”

正则表达式是区分大小写的;小写/s/区别于大写/S/;/s/与小写字母s匹配,/S/与大写字母/S/匹配。我们使用方括号“[”和“]”来解决这个问题。

 连字符“-”

用连字符“-”来表示在某一范围内的任何字符。

脱字符“^”

如果开方括号之后有脱字符“^”,那么,相应的模式就是否定的。

问号“?”

我们使用问号“?”来表示前面一个字符或者“无”。

“Kleene”

有时我们需要正则表达式能够表示重复的事物。有一种基于星号或“*”的算符可以容许我们表达“若干个a”,这种算符叫作“Kleene”。Kleene星号的意思是“其直接前面的字符或正则表达式为零或连续出现若干次”。

/a*/表示“由零或若干个a构成的符号串”,它可以与a或aaaaaa相匹配,并且它也可以与Off Minor相匹配,因为Off Minor只包含零个a。

所以,与包含一个或多个a的符号串相匹配的a的符号串相匹配的正则表达式是/aa*/,它表示一个a后面跟着零个或多个a。

更复杂的模式也可以重复。

所以,/[ab]*/表示“零个或多个a或b”(不是表示“零个或多个右方括号”)。这个正则表达式可以与aaaa或ababab或bbbb符号串相匹配。

“Kleene +”

有时,把数字的正则表达式写两次会令人感到腻味,因此,提出了一种表示数字“最少有一个”的加单方法。这种方法就是“Kleene +”,Kleene加号的含义是“前面一个或多个字符”。因此,正则表达式/[0 - 9] + /是“数字序列”的规范表达式。羊叫声的语言有两种表示方法:/baaa*!/和/baa + !/。

通配符“.”

这个通配符表示任何与单个字符(回车符除外)相匹配的字符。

通配符经常与Kleene星号结合起来使用,其意思是“任何的字符串”。例如,如果我们想找到文本中的某一行,其中aardvark这个词出现两次。我们可以用正则表达式表示为:/aardvark.*aardvard/。

锚号“^”和“$”

锚号是一种把正则表达式锚在符号串中某一个特定位置的特殊字符。最普通的锚号是脱字符“^”和美元字符“$”。脱字符与行的开始相匹配。正则表达式/^The/表示单词The只出现在一行的开始。

这样一来,脱字符“^”可有三种用法:表示一行的开始;在方括号内表示否定;只表示脱字符本身。

美元符号$表示一行的结尾。所以模式“_$”是一个有用的模式,它表示一行的结尾是一个空白。这则表达式/^The dog\.$/表示仅包含短语The dog的一个行。(这里必须使用反斜杠“\”,因为我们想让“.”表示点号,而不表示通配符)。

词界号“\b”和“\B”

此外还有两个其他的锚号:\b表示词界,而\B表示非词界。表示单词the,而不是表示单词other。从技术上说,Perl语言把词定义为数字、下划线或字母的任何序列。例如,表示在“There are 99 bottles of beer on the wall”中的符号串99。因为99跟在一个空白的后面。但是这个正则表达式不表示在“There are 299 bottles of beer on the wall”的符号串99,因为99跟在一个数字的后面。然而,这个正则表达式表示$99中的99(因为99跟在美元符号$的后面,$不是数字、下划线或字母)。

析取符“|”

正则表达式/cat | dog/表示或者是符号串cat,或者是符号串dog。

为了使析取算符只能应用于特定的模式,我们需要使用圆括号算符“(”和“)”,把一个模式括在圆括号中,使得它就像一个单独的字符来使用,而且在其中可以使用析取符“|”和Kleene*等算符。因此,表达式/gupp(y|ies)/表示析取符仅仅应用于后缀y和ies。

与算符“|”不同,Kleene*算符只能用来表示单个的字符,不能用来表示整个的序列。如果我们想匹配某一符号串的重复出现,我们有一行符号包含标记Column1 1 Column2 Column3。表达式/Column_[0 - 9] + _*/不能与任何的列相匹配,但是可以与一个后面有任意数目的空白的列相匹配。星号“*”在这里仅仅用于表示它前面的空白符号“_”,而不表示整个的序列。我们可以用圆括号写出正则表达式/(Column_[0 - 9] + _*/,这个表达式与单词Column后面跟着一个数字和任意数目的空白组成的符号串相匹配,整个模式可以重复任意次数。

可见,一个算符可能优先与其他的算符,因此,我们有必要使用括号来表示这种优先关系,在正则表达式中,这种优先关系是通过算符优先层级来形式地描述的。正则表达式算符优先性按从高到低的顺序排列:

​由于计数符比序列具有更高的优先性,所以/the*/与theeeee相匹配,而不与thethe相匹配。由于序列比析取符具有更高的优先性,所以/the|any/与the或者any相匹配,而不与theny相匹配。

例子略。

我们刚才所分析的例子的错误可以归纳为两种类型:一类是正面错误,例如,我们搜索the的时候,错误地匹配other或there这样的符号串,一类是负面错误,例如,我们搜索the的时候,错误地遗漏The这样的符号串。在研制自然语言处理系统的时候,这两种类型的错误总是一而再、再而三地反复出现。为了减少应用系统的错误率,我们要做两方面的努力,而这两方面的努力是彼此对立的:

增加准确率:把正面错误减少到最低限度。

增加覆盖率:把负面错误减少到最低错误。

还有一些有用的正则表达式高级算符。下图列出了一些有用的通用字符的替换名,使用这些替换名,可以节省打字的工作量。除了Kleene*和Kleene + 之外,我们还可以使用花括号括起来的数字作为计数符。

 数字的范围也可以用类似的办法来表示。

最后,还可以用基于右斜杠(\)的记法来引用某些特殊字符。

 正则表达式的一个重要用途是替换。

数字字符也可以使用其他的数字。如果我们要匹配圆括号中的不同的符号串,那么,我们可以用数字2来表示圆括号中另一个符号串。这样的数字存储器叫作寄存器。这样的存储特性不是每一种正则表达式语言都具备的,但这常常是正则表达式的“扩充”特性。

ELIZA进行一连串的正则表达式的替换,每个正则表达式与输入行中的某个部分相匹配,然后替换并改变它们。由于在ELIZA系统中大量使用正则表达式,使得这个系统看起来似乎能够理解自然语言,实际上,它的原理并不复杂。由此可以看出,在自然语言处理中,正则表达式确实是一种简单而有用的工具。

第三节 最小编辑距离算法

在词汇自动处理中,判断两个单词中的哪一个在拼写上更接近于第三个单词,是字符串距离这个一般问题的一种特殊情况。两个符号串之间的距离用这两个符号串彼此相似的程度来度量。

两个符号串之间的最小编辑距离就是指把一个符号串转换为另一个符号串时,所需要的最小编辑操作的次数。

给定两个序列,这两个序列的子符号串之间的对应情况就是对齐。在对齐的符号串下边的标记说明从上面的符号串转换为下面的符号串要做的操作,符号的一个序列就表示一个操作表。其中,d表示删除,s表示替代,i表示插入。

我们也可以给每一个操作一个代价值或权值。两个序列之间的列文斯坦距离是最简单的加权因子。

最小编辑距离使用动态规划来计算。动态规划把各个子问题的求解结合起来,从而求解整个问题。这一类算法包括了自然语言处理中的大多数通用算法。

从直觉上来说,动态规划问题就是首先把一个大的问题化解为不同的子问题,再把这些子问题的解适当地结合起来,从而实现对大的问题的求解。

用于序列比较的动态规划算法工作时,要建立一个距离矩阵,目标矩阵的每一个符号记录在矩阵的行上,源序列的每一个符号记录在矩阵的列上,也就是说,目标序列的字母沿着底线排列,源序列的字母沿着侧线排列。对于最小编辑距离来说,这个矩阵就是编辑距离矩阵。每一个编辑距离单元[i,j]表示目标序列头i个字符和源序列的头j个字符之间的距离。每个单元可以作为周围单元的简单函数来计算。

计算每个单元中的值的时候,我们取到达该单元时插入、替代、删除三个可能的路径中的最小路径为其值,计算公式如下:

 最小编辑距离对于发现诸如潜在的拼写错误更正算法等工作是很有用的。只要做一些轻微的改动,最小编辑距离算法就可以用来做两个符号串之间的最小代价对其。在语音识别中,可以使用最小编辑距离对齐来计算单词的错误率。在机器翻译中,对齐也起着很大的作用,因为双语并行语料库中的句子需要彼此匹配。

为了扩充最小编辑距离算法使得它能够进行对齐,我们可以把对齐看成是通过编辑距离矩阵的一条路径。

第四节 词汇语义学

单词本身的语义信息是很重要的,根据“组成性原则”,句子的语义是由构成该句子的单词的语义以及这些单词之间的语义关系组成的。因此,我们在自然语言处理中,应该重视词汇语义的研究。

语言中的词汇具有高度系统化的结构,正是这种结构决定了单词的意义和用法。这种结构包括单词和它的意义之间的关系以及个别单词的内部结构。对这种系统化的、与意义相关的结构的词汇研究叫作“词汇语义学”。

我们使用“词位”这个术语来替代“词”这个术语,词位表示词典中一个单独的条目,是一个特定的正字法形式和音素形式与一些符号的意义表示形式的组合。词典是有限个词位的列表,从词汇语义学的观点来看,词典还是无限的意义的生成机制。一个词位的意义部分叫作“涵义”。

词位和它的涵义之间存在着复杂的关系。这些关系可以用同形关系、同义关系、上下位关系、整体—部分关系、集合—元素关系来描述。

 1.同形关系

形式相同而意义上没有联系的词位之间的关系叫作同形关系。具有同形关系的词位叫作同形词。

同形词可以分为两种:

同音异义词:发音相同但是拼写法不同的词位。

同形异义词:正词法形式相同但是发音不同的词位。

在自然语言处理中,我们应该重视同形关系的研究。在拼写校正时,同音异义词可能会导致单词的拼写错误;在语音识别时,同音异义词会引起识别的困难;在文本—语音转换系统中,同形异义词由于发音不同,会引起转换的错误。

一个单独的词位具有若干个彼此关联的涵义的现象,叫作多义关系现象,具有多义关系的词位叫作多义词,这意味着,在一个多义词中的各个涵义是彼此相关的,而同形词的各个涵义是不相关的。

在语言学中,区分同形词和多义词是很重要的。不过,在自然语言处理中,由于同形词和多义词实际上都是一个词具有一个以上的涵义的现象,它们都属于词义的歧义问题,我们一般没有必要区分同形词和多义词,我们把它们都作为词义排歧的问题来处理。

2.同义关系

在传统语言学中,如果两个词位具有相同的意义,那么,就说它们之间具有同义关系。

在机器翻译研究中,我们可以根据可替换性来定义同义关系:在一个句子中,如果两个词位可以互相替换而不改变句子的意思或者不改变句子的可接受性,那么,我们就说这两个词位具有同义关系。

不过,如果我们坚持这种可替换性一定要在一切的环境中都具有,那么,英语中的同义词的数量就很少了。因此,我们对于可替换性的要求不能太过于严格,只要求在某些环境下可替换就可以了,也就是说,我们宁愿给同义关系一个比较弱的定义,这样做比较现实。

可替换性与下面4个因素有联系:

1.多义关系中的某些含义的有无

2.微妙的意义色彩的差别

3.搭配约束的不同

下面a栏和b栏的搭配是不一样的:

4.使用域的不同

使用域是指语言使用中的礼貌因素、社会地位因素以及其他社会因素对于词语使用的影响。使用域的差别也会影响到同义词的选择。

使用域是语言使用中由于语言环境的改变而引起的语言变异。语言环境的场景、交际者、方式三个组成部分,都可以产生新的使用域。

由于场景的不同,可产生科技英语、非科技英语等使用域。这些使用域之间的差异,主要表现在词汇、及物性关系和语言各结构等级上的逻辑关系不同。

由于交际者的不同,可产生正式英语、非正式英语以及介于这两者之间的、具有不同程度的正式或非正式英语等使用域,还可以产生广告英语、幽默英语、应酬英语等使用域。这些使用域之间的差异,主要表现在语气、情态以及单词中所表达的说话者的态度的不同。

由于方式的不同,可产生口头英语和书面英语等使用域。这些使用域之间的差异,主要表现在句题结构(主题、述题)、信息结构(新信息、旧信息)和连贯情况(如参照、替代、省略、连接等)的不同。

在机器翻译中,同义词的意义色彩差别、搭配约束和使用域对于译文的质量有明显的影响,我们应该考虑到这些因素,正确地选择恰当的同义词。

3.上下位关系

如果两个词位中,一个词位是另一个词位的此类,那么就说它们之间存在上下位关系。上下位关系是不对称的,我们把特定性较强的词位称为概括性较强的词位的下位词,把概括性较强的词位称为特定性较强的词位的上位词。

上下位关系构成庞大的等级体系。越在下面的词就越专指,也即外延就越小。

 4.整体—部分关系

如果两个词位中,一个词位是另一个词位的部分,那么,它们之间就存在整体—部分关系。

整体—部分关系不仅仅存在于物体和空间中,也可以存在于时间、过程中。有时它们也与上下位一样构成较深的等级。“整体—部分关系”是一种特殊的“上下位关系”,它们之间的区别在于,在“整体部分关系”中,“部分词”往往不继承“整体词”的属性,而在“上下文关系”中,“下位词”往往继承了“上位词”的某些属性。

5.集合—元素关系

如果两个词位中,一个词位是另一个词位所包含的元素,那么,它们之间就存在集合—元素关系。有的“集合—元素关系”与“整体—部分关系”比较接近,但是,“集合—元素关系”一般不如“整体—部分关系”紧密。“集合—元素关系”也可以看成是“上下位关系”的一种特殊情况。

第五节 英语中的词汇歧义现象

一词多义是自然语言中存在的普遍现象,在机器翻译中,如果词义翻译错误,译文不能正确地表示原文的意思,也就没有任何价值了,所以,词义排歧是任何机器翻译系统必须解决的大问题。此外,词义排歧还直接关系到信息检索、文本分类、语音识别的效率。

英语中的名词、代词、动词、形容词、连接词、介词都存在歧义。

1.名词中的歧义

多义词:具有多个涵义的词位叫作多义词,多义词中的各个涵义是有联系的。

例子略。

同形异义词:词形相同而意思不同的词叫同形异义词,同形异义词中的各个涵义之间没有联系。

例子略。

从计算机处理语言的角度来看,多义词和同形异义词在实质上没有区别,因此,在机器翻译中,我们没有必要区分它们,把它们一律作为词汇歧义来处理。

名词的单数形式和复数形式相同而造成的歧义。

例子略。

2.代词中的歧义

例子略。

3.动词中的歧义

例子略。

4.形容词中的歧义

例子略。

5.连接词中的歧义

例子略。

6.介词中的歧义

例子略。

由以上的分析可以看出,英语中的词汇歧义现象分布很广,涉及到各主要的词类,而且,不同的歧义都有很强的特异性,很不容易发现一般性的规律。

当然,对于人来说,要判定词汇歧义并不困难,人们可以根据语言环境或上下文,在多义词的多个涵义中选择最恰当的涵义。但是,对于计算机来说,要从多个涵义中进行正确的选择,确实非常困难的事情。

第六节 几种重要的词义排歧方法

由于多义词是任何语言中都普遍存在的现象,而多义词中诸多的词义分布很不容易找到一般的规律,多义词的自动排歧涉及到上下文因素、语义因素、语境因素,还涉及到甚至日常生活中的常识。而这些因素的处理,恰恰是计算机最感棘手的问题。所以,词义排歧是自然语言计算机处理研究中的一个特别困难的问题。

下面,我们介绍几种重要的词义排歧的方法:

1.选择最常见涵义的方法

词义排歧的最简单的统计技术是找出有歧义的单词在语料库中具有最高频度的涵义,并把这个涵义选择为缺省值,也就是把最常见的涵义选择为有歧义单词的当前涵义。这样的方法叫作“选择最常见涵义的方法”。这种方法需要首先对语料库进行语义标注,然后从这个具有语义标注的语料库中,选择有关单词的最常见的涵义作为排歧结果。

在标注了语义的大规模语料库中,我们可以统计出多义词最常见涵义,并把这个最常见的涵义作为该多义词的“缺省值”。

2.基于规则的词义排歧的方法

基于规则的词义排歧的方法主要有:利用词类进行词义排歧的方法、利用选择限制进行词义排歧的方法、利用优选关系进行词义排歧的方法。

利用词类进行词义排歧的方法

有些多义词的词义与它们所属的词类有关,不同的词义往往属于不同的词类。因此,如果我们能够确定这些多义词的词类,词义排歧的问题也就迎刃而解了。

例子略。

如果我们设计一个高效率的词性标注系统,可以正确地决定兼类的多义词的词类,那么,我们就可以利用标注正确的词类,来决定多义词的词义,从而达到词义排歧的目的。

可是,当同一个词类的多义词还存在多个不同的词义的时候,这种“以词类决定词义”的方法就显得无能为力了,因为在判定了词类之后,还需要对不同的词义进行选择。

这时,我们还需要根据上下文的选择限制来排歧。

利用选择限制进行词义排歧的方法

选择限制和语义类型的分类是词义排歧的主要的知识源。在语义分析中,它们被用来删除不恰当的语义从而减少歧义的数量。

使用选择限制实际上是一种“观其伴而知其意”(You shall know a word by the company it keeps)方法。

使用选择限制时,我们一般要确定多义词的上位概念,然后根据上位概念与句子的中心谓词的搭配关系来选择这个多义词的恰当涵义。

使用语义框架图中的信息,可以帮助我们判定在多义词的两个或多个涵义中,哪一个涵义是最符合句子在语义上的要去,从而达到词义排歧的目的。句子中多义词优选的涵义是与该多义词相结合的单词含义在语义距离上最接近的距离。

我们要在语义框架图中表示谓词的每一个边上给一个权值,然后使用标准的最短路径算法来计算语义距离,取与相应问题有关的结点之间的最小权值的语义距离作为优选的结果。

基于选择限制的词义排歧要求在语义分析中使用两方面的知识:

论元的语义类型分类;

论元对于谓词的选择限制。

这两方面的知识都可以从词网中获取。语义类型分类的信息可以从有关词的上下位关系获得,选择限制的信息通过把有关词的SYNSET与谓词的论元相联系的方法获得。如果我们从词网上获得了这两方面的知识,我们就可以利用选择限制来进行词义排歧。

选择限制是有局限性的,主要表现在:

当选择限制的一般性太强的时候,很难决定有关词的选择限制的范围;

当在否定句子中的时候,否定关系明显地违反了选择限制,但是,句子的语义却是合法的;

当句子描述的事件是不寻常的事件时,尽管违反了选择限制,句子仍然是完全合法的;

 当句子中出现比喻或借喻的时候,这样的比喻或借喻是对选择限制的极大挑战。

利用优选关系进行词义排歧的方法

 威尔克斯认为,在词义排歧的过程中,涵义的取舍不要看成是完全的接受或完全的拒绝,而应该看成是在各种可能的涵义中进行优选。当单词彼此结合的时候,优选程度最高的那些涵义被确定为可接受的涵义,而优选程度低的涵义则被拒绝。

威尔克斯把词义排歧的过程看成是一个语义的优选过程,显然更加符合实际情况。当句子中出现比喻或借喻的时候,如果使用语义优选的方法,可能取得比较理想的词义排歧结果。

雷斯尼克提出“选择关联度”的概念。选择关联度是在谓词与该谓词所支配论元的类别之间的关联强度的一种概率测度。雷斯尼克把词网WordNet中上下位关系与标注语料库中的谓词—论元关系结合起来,从而推算选择关联的强度,算法选择在谓词与其论元的上位词之间具有最高选择关联度的论元作为该论元的正确含义。

雷斯尼克这种选择关联度方法的缺陷是,它只能用于谓词没有歧义而仅仅论元有歧义的场合。

雷斯尼克的这种选择关联度方法,需要有一个高效的句法剖析器来自动获取句法关系的知识,句法剖析的错误往往会导致词义排歧的错误,而目前句法剖析器的效果还不理想,因而也就使得这种方法的效率不高。

此外,我们还可以使用语义层级关系,放松对于语义选择的限制来解决比喻和借喻的问题。

3.自立的词义排歧方法

前面的方法都要制定“规则”,是所谓“规则对规则”的方法,另外,还有自立的方法。自立的方法不需要制定规则,是一种鲁棒的词义排歧方法。

这种鲁棒的自立的词义排歧方法主要依靠词类标注来工作,力求把对于信息的要求减低到最低限度,从做到“自立”,也就是让机器自己学习而获得信息。

这种机器学习的方法,要求对系统进行训练,使得系统能够自行进行词义排歧,而不必依靠事先设定的规则。

要进行词义排歧的词叫作目标词,目标词所嵌入的文本,叫作上下文。输入按下面方式进行初始化的处理:

输入文本一般应该是经过词类标注的;

上下文可以看成是围绕目标词的长短不一的语言片段;

上下文中的单词,应该是经过词法分析的,应该把变形词还原成原形词;

文本最好经过局部句法分析或者依存关系分析,能够反映出题元角色关系或者其他语法关系。

经过这样的初始化处理,输入文本要进一步提炼为包含相关信息的特征的集合。主要步骤是:

选择相关的语言学特征;

根据学习算法的要求对这些特征进行形式化描述(或者编码)。大多数的学习系统使用简单的特征向量,这些特征向量采用数字或者词类标记来编码。

用来训练词义排歧系统的语言学特征可以粗略地分为两类:

搭配特征;

共现特征。

搭配特征对目标词左右的上下文进行编码,要去指出特定的、能反应这些单词的语法性质的位置特征。典型的特征是单词、词根形式、词类等。这样的特征往往能把目标词特定的含义孤立起来以便处理。

共现特征不考虑相邻单词的精确的位置信息,单词本身就可以作为特征。特征的值就是单词在围绕目标词的环境中出现的次数。目标词的环境一般定义为以目标词位中心的一个固定窗口,要计算出在这个窗口中实词的出现频度,根据共现词的出现频度,判定目标词的含义。

在鲁棒的词义排歧系统中,一般都把共现特征与搭配特征结合起来使用,根据反映共现特征的共现词在反映搭配特征的窗口中出现的频度来排歧。

4.基于机器学习的词义排歧方法

有指导的学习方法(即监督学习)

这种方法依据词义标注的数据来训练分类器,并获得相关参数,进而对测试语料中的词语进行排歧。目前在有指导的学习方法排歧中,主要的方法有朴素贝叶斯分类法和决策表分类法两种。

使用朴素贝叶斯分类法时,不是去寻找某个特定的特征,而是在综合考虑多个特征的基础上进行词义排歧。这种方法实际上是在给定的上下文环境下,计算一个多义词的各个义项中概率最大的义项。

决策表分类法根据共现词的等价类的不同制定决策表,然后利用这个决策表输入向量,确定最佳的词义。决策表中项目的排列可以根据训练语料的特征来决定。

半指导的学习方法(即半监督学习)

有指导的学习方法的问题是需要训练大量的标注语料。半指导的学习方法不需要训练大量的语料,而只需要依靠数量相对少的实例,每一个词目的每一个义项都依靠少量的标记好的实例来判别。

以这些实例作为种子,采用有指导的学习方法来训练语料从而得到初始的分类。然后,利用这些初始的分类,从未训练的语料中抽取出大量的训练语料,反复进行这个过程一直到得到较满意的精确度和覆盖率为止。

这个方法的关键是从较小的种子集合出发,创造出大量的训练语料,然后再利用这些得出的大量的训练语料来创造出新的、更加精确的分类。每重复一次这样的过程,所得到的训练语料越来越大。而未标注的语料越来越少。所以这是一种半指导的学习方法。

无指导的学习方法(即无监督学习)

无指导的学习方法避免使用通过训练得出义项标注的语料,只使用无标记的语料作为输入,这些语料根据它们的相似度进行类聚。这样的类聚可以作为成分的特征向量的代表。根据相似度得出的类聚再经过人工的词义标注后,就可以用来给没有特征编码的实例进行分类,这是一种向量聚类的方法。

经常采用的方法是凝聚法。N个训练实例中的每一个实例都被指派给一个类聚,然后用自底向上的方式陆续地把两个最相似的类聚结合成一个新的类聚,直到达到预期的指标为止。

由于无指导的学习方法不使用人工标注的数据,它存在如下的不足:

在训练语料中,无法知道什么是正确的义项;

所得到的类聚往往与训练实例的义项在性质上差别很大,各不相谋;

类聚的数量几乎总是与需要消解歧义的目标词的义项的数量不一致。

5.基于词典的词义排歧方法

机器可读词典中词典条目的定义实际上就是一种既存的知识源,当判断两个单词A和B之间的亲和程度时,可以比较这两个单词A和B在机器可读词典的定义中同时出现的词语的情况,如果在A和B两个单词的定义中都出现共同的词语,便可推断它们之间的亲和程度较大,从而据此来进行优选。

例子略。

这种方法的主要困难是词典中的定义往往太短,不足以为词义排歧提供足够的上下文材料。

40多年来,自然语言处理各个领域的研究在词义排歧方面虽然取得了很大的成绩,但是,学者们的各种方法似乎都很难判定“the box was in the pen”中pen的词义应该是“游戏的围栏”。可见,词义排歧确实是非常困难的问题。要真正解决词义排歧问题,还需要我们做出不懈的努力。

过去的成果使我们看到了解决这个问题的一线曙光,尽管这一线曙光还很微弱,但它毕竟是黎明前的曙光,还是很鼓舞人心的,因为它预示了自然语言处理事业光辉的未来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
应用于神经网络机器翻译的无显式分割字符级解码器 A character-level decoder without explicit segmentation for neural machine translation (2016) 作者J. Chung et al. 探索语言建模的局限性 Exploring the limits of language modeling (2016) 作者R. Jozefowicz et al. 教机器阅读和理解 Teaching machines to read and comprehend (2015) 作者 K. Hermann et al. 摘要:教机器阅读自然语言文档仍然是一个难以应付的挑战。对于看到的文档内容,我们可以测试机器阅读系统回答相关问题的能力,但是到目前为止,对于这种类型的评估仍缺少大规模的训练和测试数据集。在这项工作中,我们定义了一种新的方法来解决这个瓶颈,并提供了大规模的监督阅读理解数据。 这允许我们开发一类基于attention的深层神经网络,凭借最少的语言结构的先验知识来学习阅读真实文档和回答复杂的问题 。 attended-based神经网络机器翻译有效策略 Effective approaches to attention-based neural machine translation (2015) 作者 M. Luong et al. 通过共同学习对齐和翻译实现神经机器翻译 Neural machine translation by jointly learning to align and translate (2014) 作者 D. Bahdanau et al. 利用神经网络进行序列到序列的学习 Sequence to sequence learning with neural networks (2014) 作者I. Sutskever et al. 用 RNN 编码——解码器学习短语表征,实现统计机器翻译 Learning phrase representations using RNN encoder-decoder for statistical machine translation (2014) 作者K. Cho et al. 一个为句子建模的卷积神经网络 A convolutional neural network for modelling sentences (2014) 作者 N. Kalchbrenner et al. 用于句子分类的卷积神经网络 Convolutional neural networks for sentence classification (2014) 作者Y. Kim Glove: 用于词表征的全局向量 Glove: Global vectors for word representation (2014) 作者 J. Pennington et al. 句子和文档的分布式表示 Distributed representations of sentences and documents (2014) 作者Q. Le and T. Mikolov 词、短语及其合成性的分布式表征 Distributed representations of words and phrases and their compositionality (2013) 作者T. Mikolov et al. 有效评估词在向量空间中的表征 Efficient estimation of word representations in vector space (2013) 作者T. Mikolov et al. 基于情感树库应用于情感组合研究的递归深度网络模型 Recursive deep models for semantic compositionality over a sentiment treebank (2013) 作者R. Socher et al.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值