(二)N-gram模型

N-gram语言模型

语言模型:简单来说就是用于判断一个句子是否通顺,我们的目标是要给一个句子赋予一个概率。

1
2
3
4
5
6
//机器翻译
P(high winds tonite) > P(large winds tonite)
//正确拼写
P(about fifteen minutes from) > P(about fifteen minuets from)
//语言识别
P(I saw a van) >> P(eyes awe of an)

可以提炼成两个问题:

  • 最终问题:计算一个句子或一系列单词的概率\(P(W)=P(w_1,w_2,w_3,w_4...w_n)\)
  • 相关问题:预测下一个单词出现的概率\(P(w_n | w_1,w_2,w_3...w_n-1)\)

将概率最大的作为预测结果返回。再比如机器翻译中,‘I like Tom so much.’ ===>{‘我’,‘喜欢’,‘汤姆’,‘非常’} 将这个集合里的字词排列组合成句子,然后用语言模型去计算形成句子的概率大小。概率越大,说明翻译越顺畅,越好,就作为最终的答案返回。

image-20210906214136251

Markov Assumption

我们一般不会这样判断:

\(P(the|its\ water\ is\ so\ transparent\ that)=\frac{Count(its\ water\ is\ so\ transparent\ that\ the)}{Count(its\ water\ is\ so\ transparent\ that)}\)

因为涉及到太多可能的句子了。

直接这么计算,是有很大困难的,我们可以将其简化为求:

\(P(the|its\ water\ is\ so\ transparent\ that)∪P(the|that)\)

或者: \(P(the|its\ water\ is\ so\ transparent\ that)∪P(the|transparent\ that)\)

这里引入的就是马尔科夫假设,即:一个item的出现概率,只与其前m个items有关,当m=0时,就是unigram,m=1时,是bigram模型。

\(P(w_1w_2w_3...w_n)=\prod_{i=1}^{n}P(w_i|w_1w_2w_3...w_{i-1})\)

  • unigram模型:\(P(w_1w_2w_3...w_n)=\prod_{i=1}^{n}P(w_i)\)
  • bigram模型:\(P(w_i|w_1w_2w_3...w_{n-1})\approx P(w_i|w_{i-1})\)

局限性:比如说,两个词语有长距离依赖关系时,起不了作用。

计算流程

1
数出现的频数——>建表——>计算某个句子的概率

image-20210906224947161

image-20210906173428485

由于句子可能会很长,这个概率就会变得非常小,可能会出现下界(underflow)的问题。所以可以修改直接相乘为log相加:\(log(p_1·p_2·p_3·p_4)=logp_1+logp_2+logp_3+logp_4\)

两个工具包

http://www.speech.sri.com/projects/srilm/

https://kheafield.com/code/kenlm/

效果评估

1
2
3
4
5
6
7
8
9
10
11
一般方法是:
1. 在训练集(training set)中训练我们的模型参数
2. 使用区别于训练集的数据集作为测试集(test set)
3. 评估指标告诉我们模型在测试集上的表现如何

比较两个模型AB的最佳评估方法是:
1. 将每个模型放入一个任务中——拼写校正器、语音识别器、机器翻译系统
2. 运行任务,获得AB的精度,包括
o 正确纠正了多少拼写错误的单词
o 有多少单词翻译正确
3. 比较AB的精确度

Shannon Game:香农游戏。即给出前面n个单词,猜出第n+1个单词。

困惑度(Perplexity)。PPL是用在自然语言处理领域(NLP)中,衡量语言模型好坏的指标。

image-20210906175128920

Generalization and Zeros

如果出现从未见到过的单词,就可能出现0除的情况,困惑度无法计算。所以我们引入Laplace Smoothing

每个部分减去一点点,分给所有没有出现过的情况。或者称为加1法(在出现次数表里,设置所有的初始值为1)。

image-20210906175721810

image-20210906175734929

image-20210906230732145

image-20210906230755996

参考资料

[1] https://www.jianshu.com/p/e91f061d6d91

[2] 权小军 nlp课程


(二)N-gram模型
https://wuhlan3.gitee.io/2021/09/22/n-gram模型/
Author
Wuhlan3
Posted on
September 22, 2021
Licensed under