《自然语言处理(哈工大 关毅 64集视频)》学习笔记:第五章 n-gram语言模型

版权声明:本文为博主原创文章,未经博主允许不得转载。欢迎加本人实名微信(Zhou_zhongliang),一起学习,共同进步。 https://blog.csdn.net/weixin_43935926/article/details/85897844

视频列表:
31 n-gram语言模型(一)
32 n-gram语言模型(二)
33 n-gram语言模型(三)
34 n-gram语言模型(四)
35 n-gram语言模型(五)
36 n-gram语言模型(六)
37 n-gram语言模型(七)

31 n-gram语言模型(一)

第五章 n-gram语言模型

噪声信道模型

在这里插入图片描述
I = a r g m a x I P ( I O ) ) = a r g m a x I P ( O I ) P ( I ) P ( O ) ) = a r g m a x I P ( O I ) P ( I ) I=\underset{I}{argmax}P(I|O))=\underset{I}{argmax}\frac{P(O|I)P(I)}{P(O)})=\underset{I}{argmax}P(O|I)P(I)
目标:通过有噪声的输出信号试图恢复输入信号

噪声信道模型的应用

噪声信道模型是一种普适性的模型,通过修改噪声信道的定义,可以将如下应用纳入到这一模型的框架之中

语音识别

一个声学信号对应于一个语句,一个语音识别器需找到其对应的可能性最大的语言文本
T = a r g m a x T P ( T A ) ) T=\underset{T}{argmax}P(T|A))
根据贝叶斯公式 :
T = a r g m a x T P ( A T ) P ( T ) P ( A ) ) = a r g m a x I P ( A T ) P ( T ) T=\underset{T}{argmax}\frac{P(A|T)P(T)}{P(A)})=\underset{I}{argmax}P(A|T)P(T)
信息源对应于以概率 P ( T ) P(T) 生成语句文本,噪声信道对应于以概率分布 P ( A T ) P(A|T) 将语句文本转换成声音信号。语音识别的目的就是由通过噪声信道而输出的声音信号恢复其原始的语句文本。

其他应用

信源以概率 P ( T ) P(T) 生成语句文本,信道为 P ( O T ) P(O|T) ,语音/图像/翻译文本/字音转换模型

  • 手写体汉字识别
    文本-〉书写(或者打印、扫描)-〉图像
  • 文本校错
    文本-〉输入编辑-〉带有错误的文本
  • 机器翻译
    目标语言的文本-〉翻译-〉源语言文本
  • 音字转换
    文本-〉字音转换-〉汉字(拼音)编码
  • 词性标注
    词性标注序列-〉词性词串转换-〉词串

香农游戏1

给定前n-1个词(或者字母),预测下一个词(字母)

32 n-gram语言模型(二)

语言模型

  • P ( T ) P(T) 语言模型,如何计算P(T)?
    根据链规则:
    P ( T ) = P ( S ) = P ( w 1 w 2 . . . w 3 ) = P ( w 1 ) P ( w 2 w 1 ) P ( w 3 w 1 w 2 ) . . . P ( w n w 1 w 2 . . . w n 1 ) P(T)=P(S)=P(w_{1}w_{2}...w_{3})=P(w_{1})P(w_{2}|w_{1})P(w_{3}|w_{1}w_{2})...P(w_{n}|w_{1}w_{2}...w_{n-1})
    问题:
    1、参数空间过大,无法实用!
    2、数据稀疏问题

马尔科夫假设

P ( T ) = P ( S ) = P ( w 1 w 2 . . . w 3 ) = P ( w 1 ) P ( w 2 w 1 ) P ( w 3 w 1 w 2 ) . . . P ( w n w 1 w 2 . . . w n 1 ) P(T)=P(S)=P(w_{1}w_{2}...w_{3})=P(w_{1})P(w_{2}|w_{1})P(w_{3}|w_{1}w_{2})...P(w_{n}|w_{1}w_{2}...w_{n-1})

  • biigram
    假设下一个词的出现依赖于它前面的一个词
    P ( w 1 ) P ( w 2 w 1 ) P ( w 3 w 2 ) . . . P ( w n w n 1 ) \approx P(w_{1})P(w_{2}|w_{1})P(w_{3}|w_{2})...P(w_{n}|w_{n-1})
  • trigram
    假设下一下一个词的出现依赖于它前面的两个词
    P ( w 1 ) P ( w 2 w 1 ) P ( w 3 w 1 w 2 ) . . . P ( w n w n 2 w n 1 ) \approx P(w_{1})P(w_{2}|w_{1})P(w_{3}|w_{1}w_{2})...P(w_{n}|w_{n-2}w_{n-1})

N-gram语言模型

  • 最大相似度估计( Maximum Likelihood Estimate )
    P ( w n w 1 w 2 . . . w n 1 ) = C ( w 1 w 2 . . . w n ) C ( w 1 w 2 . . . w n 1 ) P(w_{n}|w_{1}w_{2}...w_{n-1})=\frac{C(w_{1}w_{2}...w_{n})}{C(w_{1}w_{2}...w_{n-1})}
  • “n-gram” = n个词构成的序列
    unigram
    bigram
    trigram
    four-gram(quadgram 4-gram)
    ……
  • N元文法对下一个单词的条件概率逼近的通用等式是:
    P ( w n w 1 n 1 ) P ( w n w n N + 1 n 1 ) P(w_{n}|w_{1}^{n-1})\approx P(w_{n}|w_{n-N+1}^{n-1})
    构造(训练)N-gram语言模型:在训练语料库中统计获得n-gram的频度信息
    举例
  1. 假设语料库总词数为13,748词
I 3437
want 1215
to 3256
eat 938
Chinese 213
food 1506
lunch 459
\ I want to eat Chinese food lunch
I 8 1087 0 13 0 0 0
want 3 0 786 0 6 8 6
to 3 0 10 860 3 0 12
eat 0 0 2 0 19 2 52
Chinese 2 0 0 0 0 120 1
food 19 0 17 0 0 0 0
lunch 4 0 0 0 0 1 0

P(I want to eat Chinese food)
=P(I)P(want|I)P(to|want)P(eat|to)P(Chinese|eat)P(food|Chinese)
=0.25
1087/3437
786/1215
860/3256
19/938
120/213
= 0.000154171

  • N的选择:可靠性 vs. 辨别力
    “我 正在 ________ ”
    讲课?图书馆?听课?学习?借书?……

“我 正在 图书馆 ________”
学习? 借书?……
更大的 n: 对下一个词出现的约束性信息更多,更大的辨别力
更小的n: 在训练语料库中出现的次数更多,更可靠的统计结果,更高的可靠性

  • N的选择方法
    词表中词的个数 |V| = 20,000 词
n 所有可能的n-gram的个数
2 (bigrams) 400,000,000
3 (trigrams) 8,000,000,000,000
4 (4-grams) 1.6 x 1 0 17 1.6 x 10^{17}

数据稀疏问题

假设我们使用trigram模型
P ( S ) = P ( w 1 ) P ( w 2 w 1 ) P ( w 3 w 1 w 2 ) . . . P ( w n w n 2 w n 1 ) P(S) = P(w_{1})P(w_{2}|w_{1})P(w_{3}|w_{1}w_{2})...P(w_{n}|w_{n-2}w_{n-1})
如果某个 P ( w i w i 2 w i 1 ) = C ( w i 2 w i 1 w i ) C ( w i 2 w i 1 ) = 0 P(w_{i}|w_{i-2}w_{i-1})=\frac{C(w_{i-2}w_{i-1}w_{i})}{C(w_{i-2}w_{i-1})}=0
那么 P ( S ) = 0 P(S)=0
数据稀疏问题
必须保证 C 0 C\neq 0 从而使 P 0 P\neq 0
假设某语料库词汇分布如下:
在这里插入图片描述
最大相似度估计
在这里插入图片描述
期望概率分布
在这里插入图片描述
在这里插入图片描述

33 n-gram语言模型(三)

数据平滑技术

  • 降低已出现的n-gram条件概率分布,以使未出现n-gram条件概率分布非0
  • 又可称为“折扣方法” (Discounting methods)
  • (确认)“Validation” –特指使用两个不同的训练语料库的平滑方法

拉普拉斯定律

  • 加一平滑法
    在这里插入图片描述
    在这里插入图片描述
  • Jeffreys-Perks Law
    在这里插入图片描述
  • Good-Turing估计
    在这里插入图片描述
    在这里插入图片描述
  • Good-Turing估计示例
    建立频度bigram个数表(词表中词数14585,语料库中出现的各不相同的bigram总数199252个,bigram总数为617091个)
    在这里插入图片描述
    对于未出现的bigram
    在这里插入图片描述
    假设语料库中,某bigram 出现了1次,
    在这里插入图片描述
    P=0.3663/617091=5.94E-7
  • 简单 Good-Turing
    对于比较大的 r,Nr=arb (b < -1) 用线性回归的方法估算 a 和 b :log Nr= log a + b log r, 对于比较小的 r, 直接使用Nr
  • 关于Good-Turing平滑的两个问题2
    1、Good-Turing 估计的理论依据是什么?
    2、Good-Turing 估计是完备的吗?

其他常用平滑方法

  • Back-off 平滑
  • 线性插值平滑
  • Witten-Bell平滑

平滑的效果

  • 数据平滑的效果与训练语料库的规模有关
  • 数据平滑技术是构造高鲁棒性语言模型的重要手段
  • 训练语料库规模越小,数据平滑的效果越显著,
  • 训练语料库规模越大,数据平滑的效果越不显著,甚至可以忽略不计
34 n-gram语言模型(四)

一元模型,N-gram模型与N-pos模型之间的关系

考察N-pos模型的极端情况,即当整个模型只有一个词类,与每一个词都有一个各自不同的词类的情况:如果N-pos模型只有一个词类,那么前N-1个词类没有提供任何上下文信息,于是N-pos模型退化为Unigram模型;如果每一个词都有一个各不相同的词类,那么这样的N-pos模型等价于N-gram模型
在这里插入图片描述

统计语言模型的评价

  • 实用方法
    通过查看该模型在实际应用中的表现来评价统计语言模型
    优点: 直观,实用
    缺点:缺乏针对性,不够客观
  • 理论方法
    交叉熵与迷惑度
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

Kullback-Leibler (KL)距离

Kullback-Leibler (KL)距离(相关熵)
两个概率密度函数p(x)与q(x)它们的相关熵由下式给出:
在这里插入图片描述
描述了两个概率分布之间的差异
(D(p||q)==0 iff p=q)
非量度(不满足交换率和三角不等式)

语言与其模型的交叉熵

我们构造的语言模型为q(x),如何评价它的好坏?
Idea:如果q(x)与正确的语言模型p(x)的相关熵越小,模型越好
问题是我们并不知道p(x)
可以借助交叉熵
在这里插入图片描述
某语言L,其真实的概率分布为p(x),我们构造的该语言的概率模型为q(x),那么该语言与其模型的交叉熵为:
在这里插入图片描述
如果我们将语言视为平稳各态可遍历的随机过程:
那么
在这里插入图片描述

迷惑度
在这里插入图片描述
举例:150万词WSJ语料库得到的不同n-gram语言模型的迷惑度:
Unigram:962
Bigram:170
Trigram:109

35 n-gram语言模型(五)
  • 音字转换系统
    在这里插入图片描述

附录1 语言模型构造实例

N-gram语言模型构造举例

在这里插入图片描述

36 n-gram语言模型(六)

附录2 最大熵模型基础

  • 最大熵模型
    一种基于最大熵原理的统计预测模型。
  • 最大熵原理
    在一定的限制条件下,尽可能地选择熵最大的概率分布(均匀分布)作为预测结果
    对不知道(限制条件以外)的情形,不做任何假设
    举例-1
    抛一枚硬币: p(H)=p1, p(T)=p2.
    限制条件: p1 + p2 = 1
    问题:如何估计概率分布 p=(p1, p2)?
    基于最大熵原理的答案: 选择使H§最大的那个p
    在这里插入图片描述
    举例-2
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

最大熵模型

  • 目的:估计在限定条件下的概率p
    选择满足限定条件的p,使H§为最大
    H ( x ) = x X p ( x ) log p ( x ) H(x)=-{\sum_{}^{x\in X}}p(x)\log p(x)
    x = ( a , b ) , a A b B x=(a,b),a\in A\wedge b\in B
    A A 为上下文特征集合, 为待预测标记的集合
37 n-gram语言模型(七)
- 如何获得这样的模型 从训练数据中统计 (a, b) 对: a: 上下文 b:预测标记(观察值) (a,b)称为一个事件 举例: 词性标注 a=在某个文本窗口中的词 b=NN - 学习得到每个 (a, b)的概率值:p(a, b) - 问题:如何表示限制条件 - 特征 - 在最大熵模型中,特征是一个关于事件二值函数

f j : X { 0 , 1 } , X = A × B f_{j}:X\rightarrow \left \{ 0, 1\right \},X=A\times B
举例:
在这里插入图片描述
特征(事件)举例
(title caps, NNP): Citibank, Mr.
(sufix -ing, VBG): running, cooking
(POS tag DT, I-NP): the bank, a thief
(current word from, I-PP): from the bank
(next word Inc., I-ORG): Lotus Inc.
(previous word said, I-PER): said Mr. Vinken

复杂特征

  • 文档级特征
    (document category = 篮球& current word = “火箭”, I-ORG)
    可能将“火箭”标为 I-ORG 而非普通名词
  • 原子级(词)特征
    (current word = “李宁” & next word = 公司, I-ORG)
    可能将“李宁”标为 I-ORG而非I-PER

限制条件

在这里插入图片描述

在这里插入图片描述

最大熵模型的使用

根据局部概率值直接标注
计算全局最优解

  • Viterbi search
  • Beam search

最大熵模型总结

原理:找到满足所有限制的熵最大的概率分布
训练:通过 GIS 或者 IIS,收敛速度可能较慢
对交叉性的特征也能很好的处理
对自然语言处理的许多问题都能提供很好的解决方案

致谢
关毅老师,现为哈工大计算机学院语言技术中心教授,博士生导师。通过认真学习了《自然语言处理(哈工大 关毅 64集视频)》3(来自互联网)的课程,受益良多,在此感谢关毅老师的辛勤工作!为进一步深入理解课程内容,对部分内容进行了延伸学习4 5 612,在此分享,期待对大家有所帮助,欢迎加我微信(验证:NLP),一起学习讨论,不足之处,欢迎指正。
在这里插入图片描述

参考文献


  1. Claude E. Shannon. “Prediction and Entropy of Printed English”, Bell System Technical Journal 30:50-64. 195 ↩︎ ↩︎

  2. An Empirical Study of Smoothing Techniques for Language Modeling, Stanley F. Chen ↩︎ ↩︎

  3. 《自然语言处理(哈工大 关毅 64集视频)》(来自互联网) ↩︎

  4. 王晓龙、关毅 《计算机自然语言处理》 清华大学出版社 2005年 ↩︎

  5. 哈工大语言技术平台云官网:http://ltp.ai/ ↩︎

  6. Steven Bird,Natural Language Processing with Python,2015 ↩︎

猜你喜欢

转载自blog.csdn.net/weixin_43935926/article/details/85897844
今日推荐