自然语言处理笔记week2

week2课程内容

一、Morphology(形态学):单词怎样构成

1.概念:

(1)Morphology 研究单词是如何由 语素(morphemes) 构成的
(2)morphemes 分为两类:词干 stems,词缀 affixes
更广义上的分类:
a) 屈折 inflactional:后缀不改词性,如 walk、walking
b) 派生 derivational:后缀改变词性,如 clue、clueless
(3)steming(词干还原):
常用在信息检索中,效果是:搜 cat,匹配到 cat 和 cats 。具体用在信息检索时,要同时对检索词和被检索对象作 stemming,然后进行匹配。实现 stemming 操作的工具称为 stemmer.

2.一种 stemmer: Porter stemmer

基于一系列写好的规则进行后缀拆分。例如,computerization ,先根据规则ization->ize,变成 computerize,再根据规则 ize-> ϵ \epsilon ϵ ,变成computer。

二、Edit distance(编辑距离):度量单词间的‘距离’

1.Edit distance定义:

在仅使用 a.insertion插入 b.deletion删除 c.substitution替代 这三种操作的情况下,从一个字符串到另一个字符串所需的最少操作数。

如果想要求 edit distance,要先找两个字符串的对齐(alignment) ,如下为例:
在这里插入图片描述

Edit distance 的一个应用:评价机器翻译的结果。

2.如何求得最小 Edit distance:

(1)搜索树:

在这里插入图片描述

缺点是搜索空间太大,不好用。
(2)动态规划求解(Dynamic programming)
首先定义 D(i,j) 如下:

在这里插入图片描述

求解算法如下:这里 levenshtein 的含义是,替代操作的代价记为2,删与增均为1

在这里插入图片描述

该算法的时间复杂度与空间复杂度均为:O(mn)

三、Language model(语言模型)

1.定义:

我们想要得到,一句话的单词序列为 w 1 , w 2 . . . w n w_1,w_2...w_n w1,w2...wn 的概率 P ( w 1 , w 2 . . . w n ) = p ( ω ) P(w_1,w_2...w_n)=p(\omega) P(w1,w2...wn)=p(ω) ,或者是已知前n-1个词,预测第n个词,求 P ( w n ∣ w 1 , w 2 . . . w n − 1 ) P(w_n|w_1,w_2...w_{n-1}) P(wnw1,w2...wn1).
用来求 p ( ω ) p(\omega) p(ω) 或者 P ( w n ∣ w 1 , w 2 . . . w n − 1 ) P(w_n|w_1,w_2...w_{n-1}) P(wnw1,w2...wn1)的模型, 就叫语言模型

2.求解的理论依据:chain rule链式法则

在这里插入图片描述

Markov Assumption 马尔科夫假设:每个单词的出现只与他前面N个单词有关,即: P ( w n ∣ w 1 n − 1 ) ≈ P ( w n ∣ w n − N + 1 n − 1 ) P(w_n|w^{n-1}_1)\approx P(w_n|w^{n-1}_{n-N+1}) P(wnw1n1)P(wnwnN+1n1)
一元语法N=1: P ( w n ∣ w 1 n − 1 ) ≈ P ( w n ) P(w_n|w^{n-1}_1)\approx P(w_n) P(wnw1n1)P(wn) ,代表与任何其他单词无关
二元语法N=2: P ( w n ∣ w 1 n − 1 ) ≈ P ( w n ∣ w n − 1 ) P(w_n|w^{n-1}_1)\approx P(w_n|w_{n-1}) P(wnw1n1)P(wnwn1) 代表只与前一个单词有关
三元语法N=3:…

3.训练模型

在训练集上依照 N-gram 训练模型时,我们会创造一个 token:<UNK>,用来作为测试集中的集外词(OOV,out of vocabulary)的概率。

4.模型评测

(1)Extrinsic evaluation (外在评测)
在测试集上使用训练好的模型,计算单词出错率 WER(word error rate).
缺点是:太耗时
(2)Intrinsic evaluation (内在评测)
perplexity (困惑度):
p p ( w ) = p ( w 1 w 2 . . . w n ) − 1 n = 1 p ( w 1 . . . w n ) n = ∏ i = 1 n 1 p ( w i ∣ w 1 . . . w i − 1 ) n {pp(w)}=p(w_1w_2...w_n)^{-\frac{1}{n}}=\sqrt[n]{\frac{1}{p(w_1...w_n)}}= \sqrt[n]{\prod_{i=1}^{n}\frac{1}{p(w_i|w_1...w_{i-1})}} pp(w)=p(w1w2...wn)n1=np(w1...wn)1 =ni=1np(wiw1...wi1)1
它主要是根据每个词来估计一句话出现的概率,PP(S)越小,p(wi)则越大,一句我们期望的sentence出现的概率就越高。

5.语言模型存在的问题

(1)Overfitting
N-gram 模型只在与训练集相似的测试集上表现很好。
(2)zeros or not?
对于在训练集中从未出现过的单词序列,是否就应该将对应的概率视为0呢?显然这样是不符合实际的,因为实际上任何单词序列都可能在语言交流中出现,哪怕是错误的表达!
因此引入一些平滑(smoothing)方法:
a) Laplace smoothing为所有单词序列的计数加上一
原先计数为0的,现在变成1,从而出现概率虽然很小,但至少不是0.
b) Good-Turing:GT平滑用只出现一次的频率代表未出现的频率
例子:
在这里插入图片描述

抓到的只有一条的鱼共有三种,频率为3/18,那么下一次钓到新品种的鱼的概率就认为是3/18.
更进一步的,我们列出一个表:

出现次数 C C C出现C次的鱼的种类数 N N N
02
13
21
31
101

本来,有两种鱼出现次数都是 C 0 = 0 C_0=0 C0=0,但经过 C 0 N 0 = C 1 N 1 C_0N_0=C_1N_1 C0N0=C1N1,求得新的 C 0 ∗ = 3 2 C^*_0=\frac{3}{2} C0=23,从而这两种鱼出现的概率为频数除以总数,即 C 0 ∗ / 18 C^*_0/18 C0/18,乘以2之后正是3/18.
因此,GT平滑为每个type都重新分配了出现频数,计算公式为:
C X ∗ = C X + 1 N X + 1 N X C^*_X=\frac{C_{X+1}N_{X+1}}{N_X} CX=NXCX+1NX+1
但是注意,GT平滑并不对OOV词汇使用,因为使用GT需要知道频数为零的单词种类数。
c) backoff and interpolation回退与内插:
backoff:若N-gram下,某个P为0,则对其运用N-1-gram,直到降到P不为0
interpolation:混合加权使用各种多元语法:
在这里插入图片描述

(3)N-gram语言模型的优缺点
在这里插入图片描述

–> 自然语言处理笔记week3

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值