自然语言处理笔记week8

week8课程内容

Word Sense Disambiguation (词义消歧)

词义消歧是指:给定一个上下文中的单词,以及这个单词所有可能的sense,找出在这个上下文里,该单词最合适的sense。
这项任务在机器翻译、语音合成等方面都有应用。

1. WSD的两类工作:

(1) Lexical Sample task词汇采样:有一小部分预选好的目标词,和每个单词的sense的集合,使用有监督学习为每一个单词训练一个分类器。
(2) All-words task:涉及文本中的所有词汇,且每个词汇提供一个词义列表。由于数据稀疏性,无法得到特定单词的分类器。

2. WSD的几种方法:

(1)Supervised Machine Learning 有监督机器学习
(2)Thesaurus/Dictionary Methods 基于辞典的方法
(3)Semi-Supervised Learning 半监督学习

3. Supervised Machine Learning 有监督机器学习

使用带标签的单词语料库,训练一个分类器,用来给未知文本中的单词分配合适的词义。
核心点:

  1. WSD Tags:一个tag表示一个词义,一个单词有多个tag
  2. Get a corpus:获得训练数据集。例如:对于 Lexical Sample task ,开源的有 Line-hard-serve corpus 数据集,里面对 line/hard/serve 每个单词都有4000个标注好的词义示例。
  3. Extract feature vectors 得到单词的特征向量:Warren Weaver提出“如果我们一个单词一个单词的去读一个文章,那么我们无法知道单词的上下文含义是什么,如果我们用一个2N大小的窗口去扫读文章,当N足够大时,我们可以准确地确定每个单词的上下文含义”。所谓单词的特征向量,就是体现该单词周围单词情况的向量。
    两种特征表示:
    (1) Collocational (搭配) features:例如:
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(2) bag-of words (词袋) features:与搭配特征不同,词袋特征不考虑附近单词的具体位置顺序,只考虑窗口内单词出现的频数。
给定一个vocabulary,然后统计在指定窗口大小里出现的次数,得到一个长度为V的向量。
在这里插入图片描述

  1. Classifier分类器:
    输入:一个单词,单词的特征(上下文信息),单词的词义集合
    输出:一个预测的词义
    分类器的选择可以有很多,比如朴素贝叶斯分类器、逻辑回归、神经网络、svm、k临近…下面介绍朴素贝叶斯分类器。
4. The Naive Bayes Classifier 朴素贝叶斯分类器

对于上下文d与词义c,根据贝叶斯公式有:
P ( c ∣ d ) = P ( d ∣ c ) P ( c ) P ( d ) P(c|d)=\frac{P(d|c)P(c)}{P(d)} P(cd)=P(d)P(dc)P(c)
我们要根据d预测最可能的c,即:
c m a p = a r g m a x c P ( c ∣ d ) = a r g m a x c P ( d ∣ c ) P ( c ) = a r g m a x c P ( x 1 , . . . x n ∣ c ) P ( c ) c_{map}=argmax_{c}P(c|d)=argmax_{c}P(d|c)P(c)\\=argmax_cP(x_1,...x_n|c)P(c) cmap=argmaxcP(cd)=argmaxcP(dc)P(c)=argmaxcP(x1,...xnc)P(c)
假设条件独立:
c m a p = a r g m a x c P ( x 1 ∣ c ) ⋅ P ( x 2 ∣ c ) ⋅ . . . ⋅ P ( x n ∣ c ) p ( c ) c_{map}=argmax_cP(x_1|c)\cdot P(x_2|c)\cdot...\cdot P(x_n|c)p(c) cmap=argmaxcP(x1c)P(x2c)...P(xnc)p(c)
然而,这样使大量条件概率连乘,会使结果非常小。所以取对数运算:
c N B = a r g m a x c [ log ⁡ P ( c ) + ∑ i = 1 n log ⁡ P ( x i ∣ c ) ] c_{NB}=argmax_c[\log P(c)+\sum_{i=1}^n\log P(x_i|c)] cNB=argmaxc[logP(c)+i=1nlogP(xic)]
其中各项概率均可以统计得到 (进行了加一平滑处理):
P ( c ) = N c N t o t a l P ( x i ∣ c ) = c o u n t ( x i , c ) + 1 ∑ i c o u n t ( x i , c ) + ∣ V ∣ P(c)=\frac{N_c}{N_{total}}\quad P(x_i|c)=\frac{count(x_i,c)+1}{\sum_{i} count(x_i,c)+|V|} P(c)=NtotalNcP(xic)=icount(xi,c)+Vcount(xi,c)+1
对于未知单词(在测试集出现但训练集没有),我们直接忽略,从测试集里移出它们。

5. 例子:使用朴素贝叶斯分类器进行情感分析

在这里插入图片描述

  1. 计算 P( c ):
    P ( + ) = 2 / 5 p ( − ) = 3 / 5 P(+)=2/5\quad p(-)=3/5 P(+)=2/5p()=3/5
  2. 去掉未知词 with
  3. 计算P(x_i|c):
    P ( p r e d i c b l e ∣ + ) = 0 + 1 9 + 20 P ( p r e d i c b l e ∣ − ) = 1 + 1 11 + 20 P(predicble|+)=\frac{0+1}{9+20}\quad P(predicble|-)=\frac{1+1}{11+20} P(predicble+)=9+200+1P(predicble)=11+201+1
    其他不算了。注意:这里的|V|是不计重复单词的。
  4. 分别计算 P ( + ) P ( S ∣ + ) P(+)P(S|+) P(+)P(S+) P ( − ) P ( S ∣ − ) P(-)P(S|-) P()P(S)
  5. 比较两个值,以较大值为分类结果。
6.Thesaurus/Dictionary Methods 基于辞典的方法

一种简单粗暴但不太有效的方法,是直接取辞典中单词的第一个词义作为该单词的词义。因为辞典的词义是按照出现频率排序的。这种方法叫做Most Frequent Sense。
下面主要介绍 Lesk 算法。
算法思想是,对于给定的一个单词和它所在的上下文,我们在辞典中找到该单词的所有注释,然后将各个注释一一与上下文对比得到它们重合的单词数目,然后选择重合单词最多的注释作为该单词的词义。
在这里插入图片描述

7. Semi-Supervised Learning 半监督学习

有监督学习和基于辞典的方法都有一个问题:需要有大量标注好的训练集(或辞典)
了解一下 Yarowsky 算法即可。

8. WSD表现的评估

在这里插入图片描述
–> 自然语言处理笔记week9

  • 21
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值