自然语言处理总复习(五)—— 词义消歧

  • 一、相关概念与预备知识
  • (一)词义消歧
  • 1. 定义
  • 2. 词义消歧需要解决的三个问题
  • 3. 应用
  • (二)预备知识
  • 1. 有监督学习和无监督学习
  • 2. 伪词
  • 3. 算法效能评估 —— 上界和下界
  • 二、有监督的消歧方法
  • (一)基于贝叶斯分类的词义消歧
  • 1. 概念介绍及准备工作
  • 2. 计算公式推导
  • 3. 词义排歧算法(Disambiguation)
  • (二)基于互信息的词义消歧
  • 1. 核心思想
  • 2. flip-flop算法
  • (1)算法描述
  • (2)算法应用举例
  • (一&二)贝叶斯方法和互信息方法的比较
  • (三)基于词典的词义消歧
  • 1. 核心原理
  • 2. 算法描述
  • 3. 算法伪代码
  • 4. 算法示例
  • 5. 算法总结
  • (四)基于义类词典的消歧
  • 1. 相关概念
  • 2. 方法过程步骤
  • (五)基于第二语料库翻译的消歧
  • 1. 相关概念
  • 2. 举例
  • 三、有监督的消歧方法总结
  • 四、无监督的消歧方法
  • (一)EM算法(Expectation-Maximization)
  • 1. 概念
  • 2. 算法流程


一、相关概念与预备知识

(一)词义消歧

1. 定义

(Word sense disambiguation, WSD)
确定一个歧义词的哪一种语义在一个特殊的使用环境中被调用。

2. 词义消歧需要解决的三个问题

词义消歧 python 词义消歧算法_nlp

3. 应用

词义消歧 python 词义消歧算法_人工智能_02

(二)预备知识

1. 有监督学习和无监督学习

词义消歧 python 词义消歧算法_互信息_03

2. 伪词

词义消歧 python 词义消歧算法_nlp_04

3. 算法效能评估 —— 上界和下界

词义消歧 python 词义消歧算法_nlp_05

二、有监督的消歧方法

(一)基于贝叶斯分类的词义消歧

1. 概念介绍及准备工作

词义消歧 python 词义消歧算法_人工智能_06

2. 计算公式推导

词义消歧 python 词义消歧算法_nlp_07


为了防止取值在 (0, 1) 范围内的数连乘趋近于0,加入log函数进行平滑:

词义消歧 python 词义消歧算法_互信息_08

3. 词义排歧算法(Disambiguation)

for all sense s_i of w do:
	score(s_i) = log(P(s_i))
	for all words w_j in the context of w do:
		score(s_i) += log(P(w_j | s_i))
	end
end
choose s' = arg(s_i) max score(s_i)

词义消歧 python 词义消歧算法_nlp_09

计算举例

词义消歧 python 词义消歧算法_人工智能_10

(二)基于互信息的词义消歧

1. 核心思想

词义消歧 python 词义消歧算法_互信息_11

2. flip-flop算法

(1)算法描述

词义消歧 python 词义消歧算法_自然语言处理_12

(2)算法应用举例

词义消歧 python 词义消歧算法_自然语言处理_13


词义消歧 python 词义消歧算法_词义消歧 python_14

(一&二)贝叶斯方法和互信息方法的比较

词义消歧 python 词义消歧算法_词义消歧 python_15

(三)基于词典的词义消歧

1. 核心原理

上下文词汇的语义范畴 <—互相决定影响—> 上下文的语义范畴
词典中词条本身的定义就可以作为判断其语义的一个很好的依据条件

2. 算法描述

词义消歧 python 词义消歧算法_互信息_16

3. 算法伪代码

词义消歧 python 词义消歧算法_nlp_17

4. 算法示例

词义消歧 python 词义消歧算法_自然语言处理_18

5. 算法总结

  • 用词典资源进行词义排歧,是利用词典中对多义词的各个义项的描写,而这些描写是在语言学家观察了多义词的不同使用情况后概括归纳,抽象总结的结果。只不过跟实际语料不同的是,它是以一种概括的方式在描写词义,而语料库是以具体可感知的大量重复的实例本身在描写词义。
  • 由于词典释义的概括性,这种方法应用于实际语料中多义词的排歧,效果不理想。

(四)基于义类词典的消歧

1. 相关概念

词义消歧 python 词义消歧算法_nlp_19


原理:上下文中词汇的语义范畴大体上确定了此上下文的语义范畴,且上下文的语义范畴可以反过来确定词汇的哪一个语义被使用

比如英语词“crane”有两个意思,一是指“吊车”,一是指“鹤”。前者属于“工具/机械”这个义类;后者属于“动物”这个义类。如果能够确定“crane”出现在具体语境中时属于哪个义类,实际上也就知道了“crane”的义项。

2. 方法过程步骤

词义消歧 python 词义消歧算法_nlp_20


词义消歧 python 词义消歧算法_自然语言处理_21

(五)基于第二语料库翻译的消歧

1. 相关概念

  • 使用双语词典中的对应词
  • 第一语言:需要消歧的语言
  • 第二语言:双语词典中的目标语言

2. 举例

词义消歧 python 词义消歧算法_nlp_22

三、有监督的消歧方法总结

词义消歧 python 词义消歧算法_词义消歧 python_23

四、无监督的消歧方法

(一)EM算法(Expectation-Maximization)

1. 概念

  • EM算法是一个由交替进行的“期望(E过程)”和“极大似然估计(M过程)”两部分组成的迭代过程:
  • 对于给定的不完全数据和当前的参数值,“E过程”从条件期望中相应地构造完全数据的似然函数值,“M过程”则利用参数的充分统计量,重新估计概率模型的参数,使得训练数据的对数似然最大。
  • EM算法的每一次迭代过程必定单调地增加训练数据的对数似然值,于是迭代过程渐进地收敛于一个局部最优值

2. 算法流程

词义消歧 python 词义消歧算法_自然语言处理_24


词义消歧 python 词义消歧算法_人工智能_25