NLP-词义消歧

NLP|词义消歧

一. 概述

1.句法结构和语义:

语义是区别于句法的一种语言要素。一个句子可能他的句法结构是正确的,但是,这个句子从语义上是错误的(这一点我们可以通过举个例子来形象的理解:老虎飞出了银河系),所以语义分析是有必要的。

2.语义计算的任务和难点:

  • 自然语言句子中存在大量的歧义:多义、隐喻等

  • 同一句子对于不同人来说可能有不同理解

  • 理论、方法、模型尚不成熟

3.词义消歧(词义标注):确定具体语境中多一次的确切意义,简记为:WSD。

义项:词典中一个词的某个具体表示(含义)。

该任务需要提前在构建词典时,明确“判断一个词是多义词“,”表示一个多义词的不同意思“,”明确一个多义词每个意义的区分标准”的方法,然后建立模型,对出现在具体语境中的多义词,为他选择一个合适的义项。

二. 词义消歧的几个简单方法:

1.基于词典释义的WSD方法:

​ 1). 词典构建:

​ 词典有语言学家对词语知识进行归纳总结,内记录了多义词各个义项的描述和 对应的使用方法。

​ 2). 方法:

​ 已知:

​ [1]:多义词w的若干义项\((S_1,...S_m)\)

​ [2]:w每个义项\(S_i\)在词典中的释义$D_i = \({\)a_1,a_2,...$}

​ [3]:多义词的具体上下文C对应的词汇,即上下文特征词: (\(W_1,W_2,...\))

​ [4]:每个特征词的释义\(E_{ji}\)(特征词\(W_j\)的第i条义项对应的释义)对应的词汇{\(b_{i1},b_{i2},...\)}

​ 判别方法:

​ 对每个义项\(S_i\)计算Score(\(S_i\)) = \(D_i \bigcap (\bigcup_{W_j \in C} E_{W_j})\),取最大值对应\(S_i\)为多义词的义项。

​ 也即当前义项释义的词汇,和所有特征词的所有义项释义词汇之集,取交集。最终选择交集中含词汇最多的那个义项。

​ 3). 评价:

​ 准确率在50%~70%,由于词典释义的概括性,这种方法用于实际预料中效果并不理想。

2.基于义类词典的WSD方法:

​ 1). 基本思想:一个多义词在义类词典中可能分属不同义类,在具体语境中确定了一个多义词的义类,就刻画了他的一个义项。

​ 例如:crane,一指吊车,属“工具/机械”义类,一指鹤,属动物义类。确定义类,就确定了他的义项。

​ 2). 步骤:

​ [1]:义类词典选择:Roget词典,对其中1041个类所有的词,收集包含这些词的上下文C(长度为前后100个词),作为训练数据。

​ [2]:对C进行统计,找出能够有效标注每个一类的特征词,计算各个特征词的权值:\(Weight(w) = \log(\frac{P(w|Cate)}{P(w)})\),P(w|C)表示w出现在Cate(category)中的概率,P(w)表示w出现在训练预料库中的总概率

​ [3]:判断在某个具体语境中出现的多义词所属的义类:

​ · 如果在该多一次上下文中只能找到一个义类的特征词,则该多一次术语该义类。

​ · 上下文中包含若干特征词,且对应着不同义类,根据Bayes法则,求这些特征词的不同一类的权值之和,那个一类的权值和最大,选哪个。

3). 评价:

训练预料库无需标注、义项分别对应着不同一类的多义词区分效果好。

对那些不依赖主题的多义词效果差。

3.基于Bayes的WSD方法:

1). 基本思想:计算多义词W出现在给定上下文语境C=\((w_1,w_2,..,w_n)\),并为各个义项\(S_i\)计算概率\(P(s_i|C)\),最大概率对应义项纪委该多义词义项标注。

2). 多义词W义项:\(s_1,s_2,...\),上下文语境C=\((w_1,w_2,..,w_n)\),则:

\[ P(s_i|C) = \frac{P(C|s_i)P(s_i)}{P(C)} \]

\[ s' = \underset{s_i}{argmax} P(s_i|C) = \underset{s_i}{argmax}\frac{P(C|s_i)P(s_i)}{P(C)} = \underset{s_i}{argmax}P(C|s_i)P(s_i) \]

\[ P(s_i) = \frac{count(s_i)}{count(w)} \]

\[ P(C|s_i)=P(\{ w_j |w_j \in C \} | s_i) = \prod_{w_j \in C}\frac{count(w_j,s_i)}{count(s_i)} \]

注:count(a),训练语料中出现a的次数;count(a,b),训练语料中出现ab的次数。