视频列表:
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=argmaxIP(I∣O))=argmaxIP(O∣I)P(I)P(O))=argmaxIP(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)I=Iargmax​P(I∣O))=Iargmax​P(O)P(O∣I)P(I)​)=Iargmax​P(O∣I)P(I)
目标:通过有噪声的输出信号试图恢复输入信号

噪声信道模型的应用

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

语音识别

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

其他应用

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

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

香农游戏1

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

32 n-gram语言模型(二)

语言模型

  • P(T)P(T)P(T)语言模型,如何计算P(T)?
    根据链规则:
    P(T)=P(S)=P(w1w2...w3)=P(w1)P(w2∣w1)P(w3∣w1w2)...P(wn∣w1w2...wn−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})P(T)=P(S)=P(w1​w2​...w3​)=P(w1​)P(w2​∣w1​)P(w3​∣w1​w2​)...P(wn​∣w1​w2​...wn−1​)
    问题:
    1、参数空间过大,无法实用!
    2、数据稀疏问题

马尔科夫假设

P(T)=P(S)=P(w1w2...w3)=P(w1)P(w2∣w1)P(w3∣w1w2)...P(wn∣w1w2...wn−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})P(T)=P(S)=P(w1​w2​...w3​)=P(w1​)P(w2​∣w1​)P(w3​∣w1​w2​)...P(wn​∣w1​w2​...wn−1​)

  • biigram
    假设下一个词的出现依赖于它前面的一个词
    ≈P(w1)P(w2∣w1)P(w3∣w2)...P(wn∣wn−1)\approx P(w_{1})P(w_{2}|w_{1})P(w_{3}|w_{2})...P(w_{n}|w_{n-1})≈P(w1​)P(w2​∣w1​)P(w3​∣w2​)...P(wn​∣wn−1​)
  • trigram
    假设下一下一个词的出现依赖于它前面的两个词
    ≈P(w1)P(w2∣w1)P(w3∣w1w2)...P(wn∣wn−2wn−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})≈P(w1​)P(w2​∣w1​)P(w3​∣w1​w2​)...P(wn​∣wn−2​wn−1​)

N-gram语言模型

  • 最大相似度估计( Maximum Likelihood Estimate )
    P(wn∣w1w2...wn−1)=C(w1w2...wn)C(w1w2...wn−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})}P(wn​∣w1​w2​...wn−1​)=C(w1​w2​...wn−1​)C(w1​w2​...wn​)​
  • “n-gram” = n个词构成的序列
    unigram
    bigram
    trigram
    four-gram(quadgram 4-gram)
    ……
  • N元文法对下一个单词的条件概率逼近的通用等式是:
    P(wn∣w1n−1)≈P(wn∣wn−N+1n−1)P(w_{n}|w_{1}^{n-1})\approx P(w_{n}|w_{n-N+1}^{n-1})P(wn​∣w1n−1​)≈P(wn​∣wn−N+1n−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/1215860/325619/938120/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.6x10171.6 x 10^{17}1.6x1017

数据稀疏问题

假设我们使用trigram模型
P(S)=P(w1)P(w2∣w1)P(w3∣w1w2)...P(wn∣wn−2wn−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(S)=P(w1​)P(w2​∣w1​)P(w3​∣w1​w2​)...P(wn​∣wn−2​wn−1​)
如果某个P(wi∣wi−2wi−1)=C(wi−2wi−1wi)C(wi−2wi−1)=0P(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})}=0P(wi​∣wi−2​wi−1​)=C(wi−2​wi−1​)C(wi−2​wi−1​wi​)​=0
那么P(S)=0P(S)=0P(S)=0
数据稀疏问题
必须保证 C≠0C\neq 0C̸​=0从而使 P≠0P\neq 0P̸​=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∈Xp(x)log⁡p(x)H(x)=-{\sum_{}^{x\in X}}p(x)\log p(x)H(x)=−∑x∈X​p(x)logp(x)
    x=(a,b),a∈A∧b∈Bx=(a,b),a\in A\wedge b\in Bx=(a,b),a∈A∧b∈B
    AAA 为上下文特征集合, 为待预测标记的集合
37 n-gram语言模型(七)

- 如何获得这样的模型 从训练数据中统计 (a, b) 对: a: 上下文 b:预测标记(观察值) (a,b)称为一个事件 举例: 词性标注 a=在某个文本窗口中的词 b=NN - 学习得到每个 (a, b)的概率值:p(a, b) - 问题:如何表示限制条件 - 特征 - 在最大熵模型中,特征是一个关于事件二值函数

fj:X→{0,1},X=A×Bf_{j}:X\rightarrow \left \{ 0, 1\right \},X=A\times Bfj​:X→{0,1},X=A×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 ↩︎

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

  1. 《自然语言处理(哈工大 关毅 64集视频)》学习笔记:第一章 自然语言处理概论

    前言 关毅老师,现为哈工大计算机学院语言技术中心教授,博士生导师.通过认真学习了<自然语言处理(哈工大 关毅 64集视频)>1(来自互联网)的课程,受益良多,在此感谢关毅老师的辛勤工作!为 ...

  2. 《自然语言处理(哈工大 关毅 64集视频)》学习笔记:第六章 markov模型

    视频列表: 38 markov模型(一) 39 markov模型(二) 40 markov模型(三) 41 markov模型(四) 42 markov模型(五) 38 markov模型(一) 第六章 ...

  3. 《自然语言处理(哈工大 关毅 64集视频)》学习笔记:第二章 数学基础与语言学基础

    前言 关毅老师,现为哈工大计算机学院语言技术中心教授,博士生导师.通过认真学习了<自然语言处理(哈工大 关毅 64集视频)>1(来自互联网)的课程,受益良多,在此感谢关毅老师的辛勤工作!为 ...

  4. 《自然语言处理(哈工大 关毅 64集视频)》学习笔记:第七章 句法分析技术

    视频列表: 43 句法分析技术(一) 44 句法分析技术(二) 45 句法分析技术(三) 46 句法分析技术(四) 47 句法分析技术(五) 43 句法分析技术(一) 第七章 句法分析技术 什么是句法 ...

  5. TI高精度实验室ADC系列培训视频学习笔记 第1章 直流参数和交流参数:输入电容、输入漏电流、输入阻抗、参考电压值、参考电流值、差分非线性DNL、积分非线性INL、失调误差与增益误差

    TI高精度实验室ADC系列培训视频(B站) TI高精度实验室ADC系列培训视频(21ic) 第一章:直流参数和交流参数 输入电容 寄生电容 采样电容 当进行采样时 ,S1开关闭合 ,采样电容与输入信号 ...

  6. JAVA语言发展介绍【尚学堂java300集视频学习笔记】

    Java发展简史 1991年,James Gosling在SUN公司的工程师小组想要设计这样一种小型计算机语言.该语言主要用于像电视盒这样的消费类电子产品.另外,由于不同的厂商选择不同的CPU和操作系 ...

  7. 江哥MySQL视频学习笔记--第10章 MySQL存储过程和函数70-MySQL-批量数据处理(掌握)

    需求: 往数据库里存储一万条数据 实现方案: 1.写一万条insert into语句 2.将insert into语句封装到存储过程或者函数中 将来怎么使用? 是配合其它SQL语句使用, 还是单独使用 ...

  8. 数据分析与爬虫实战视频——学习笔记(一)(python基础、urllib、超时设置、自动模拟HTTP请求、异常处理、浏览器伪装、代理服务器、新闻爬虫、淘宝登陆和图片爬取)

    未经允许,请勿转载. 连载未完成状态 网址: [数据挖掘]2019年最新python3 数据分析与爬虫实战_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili https://www.bilibili ...

  9. Rancher 系列教学视频学习笔记(1)

    Rancher 系列教学视频-学习笔记(1) 一.培训视频学习笔记1<容器管理平台Rancher官方介绍>(Rancher 1.0 发布) 视频地址:http://v.youku.com/ ...

最新文章

  1. 《评人工智能如何走向新阶段》后记(再续27)
  2. CCF发布2020-2021中国计算机科学技术发展报告
  3. android ble 助手源码_[源码和文档分享]基于Android的生活助手APP的设计与实现
  4. 计算机应用技术商务网站运营,计算机应用技术云计算与商务网站运营有什么区别...
  5. WebRTC拥塞控制算法——GCC介绍
  6. PostgreSQL创建只读用户之后创建的表不能读问题解决
  7. 南京宝坚电子,招聘图像算法工程师
  8. php 环境优化,Nginx与PHP-fpm环境在大流量下的优化配置
  9. android多环境,Android多环境配置打包
  10. 数据结构学习(1):单链表
  11. 裴礼文《数学分析中的典型问题与方法》 P1~31
  12. PMP考试的成绩怎么算?
  13. ArcEngine ISymbol效果预览
  14. sql server 2000企业管理器中没有项目
  15. qt emit是什么意思_2020年11月14日 无赞赏QT吗哪 :在历史的掌权者面前作信心的决断...
  16. ARM官方汇编与ARM GNU汇编中的伪操作
  17. 总谐波失真--THD
  18. windows10计算机无法启动不了,windows10不能开机怎么办
  19. 如何成为一个高效、快乐、健康的程序员
  20. 计算机类专业工程认证,我校计算机科学与技术、测绘工程专业通过中国工程教育专业认证...

热门文章

  1. Mac os 10.15 不可恢复的错误 SecurityAgent无法创建所要求的机制
  2. 使用vue+textarea的属性maxlength制作一个文本框字数限制
  3. input text 设置数字最大值以及最小值
  4. 2019华北五省计算机应用大赛官网,我院师生出战2019华北五省(市、自治区)及港澳台大学生计算机应用大赛荣获佳绩...
  5. Java的抽象类:猫狗案例
  6. ISODATA聚类算法
  7. VMware 15pro 虚拟机配置教程(虚拟机安装ubuntu)
  8. oppo导出照片计算机找不到了,OPPO手机保存的图片找不到怎么办?
  9. JavaScript 实现空间直角坐标系转换为大地坐标系(XYZ→BLH)
  10. 入秋了,给大家一些生活小常识_陕南赤子_新浪博客