数学之美笔记1

第3章 统计语言模型

数学的精彩之处就在于简单的模型可以干大事。
数学的魅力就在于将复杂的问题简单化。

什么是大数定律?

大数定律是指在随机试验中,每次出现的结果不同,但是大量重复试验出现的结果的平均值却几乎总是接近于某个确定的值。
其原因是,在大量的观察试验中,个别的、偶然的因素影响而产生的差异将会相互抵消,从而使现象的必然规律性显示出来。例如,观察个别或少数家庭的婴儿出生情况,发现有的生男,有的生女,没有一定的规律性,但是通过大量的观察就会发现,男婴和女婴占婴儿总数的比重均会趋于50%。

判断一个句子是否合理

判断一个句子是否合理就看它的可能性大小,即使用概率来衡量。

P(S)=P(w1,w2,...,wn)

利用条件概率公式,可展开为:
P(w1,w2,...,wn)=P(w1)P(w2|w1)P(w3|w1,w2)P(wn|w1,w2,,wn1)

但是越往后,概率计算越困难。
马尔科夫假设:假设任意一个词出现的概率只同它前面的词有关。于是二元模型:
P(S)=P(w1)P(w2|w1)P(w3|w2)P(wn|wn1)

根据大数定律,只要统计量足够,相对频度就等于概率,即
P(wi|wi1)#(wi1,wi)#wi1

模型的训练、零概率问题和平滑方法

如果同时出现的次数 #(wi1,wi)=0 怎么办,意味着条件概率 P(wi|wi1)=0 吗?
如果 #(wi1,wi) #(wi1) 都只出现了一次,能否得出 P(wi|wi1)=1 这种非常绝对的路径?
一个直接的办法就是增加数据量。但无法解决零概率问题。可以使用古德-图灵估计来解决。
古德-图灵估计:对于没有看见的事件,我们不能认为它发生的概率就是零,因此我们从概率的总量中,分配一个很小的比例给这些没有看见的事件。这样一来,看见的那些事件概率总和就要小于1了。因此,需要将所有看见的事件概率调小一点。至于小多少,要根据“越是不可信的统计折扣越多”的方法进行。

假设语料库中出现 r 次的词有Nr个,未出现的词个数为 N0 。语料库大小为N。

N=r=1rNr

那么,出现 r 次的词在整个语料库中的相对频度则是rNrN
出现 r 次的某一个词在整个语料库中的相对频度则是rN
如果不做任何优化处理,就以这个相对频度作为这些(或这个)词的概率估计。
r 较小时,统计可能就不可靠了。这时,使用一个更小一点的次数dr,而不是直接使用 r
dr=(r+1)Nr+1Nr
显然
N=r=1drNr

r 越大,词的数量Nr越小,即 Nr+1<Nr 。因此 dr<r ,并且 dr>0
这样就给没有出现的词赋予一个很小的概率,解决了零概率问题;同时下调了出现频率很低的词的概率。实际中,一般对于次数超过了某个阈值的词,频率不下调,只对出现次数低于这个阈值的词,频率才下调。下调的概率总和等于没有出现的词的概率总和。
这样所有词的概率估计都很平滑了。

对于二元组、三元组也可以做同样的处理。

语料库选取问题

语料库的选取应该来自于模型应用的领域,即训练数据和应用一致。

训练语料的噪声也会对模型产生一定的影响,一般情况下,训练之前应该首先对语料库进行预处理,去除噪声。如果去噪成本很高,就不用处理了。

第4章 谈谈分词

英文分词

英文单词之间有空格分隔,不用分词。但是英文句法分析时找词组和中文分词是一回事,使用的方法都是相同的。
此外,手写体识别中,英文单词之间的空格不清楚,可以使用分词的方法来解决。

分词方法的演变

1.查字典
北京航空航天大学的梁南元教授提出。
一个句子从左到右扫一遍,遇到字典里有的词就标识出来,遇到复合词就找最长的词匹配,遇到不认识的字串就分割成单个词。
可以解决七八成以上的分词问题。遇到稍微复杂一点的问题就无能为力了。
2.查字典理论化——最少词数
哈工大的王晓龙博士。
一句话应该分成数量最少的词串。
如果遇到有二义性的分隔就无能为力了。
3.统计语言模型
清华大学的郭进博士。
假定一个句子可以有几种分词方法,那么最好的一种分词方法应该保证分完词后这个句子出现的概率最大。

A1,A2,A3,,Ak

B1,B2,B3,,Bm

C1,C2,C3,,Cn

P(A1,A2,A3,,Ak)>P(B1,B2,B3,,Bm)

P(A1,A2,A3,,Ak)>P(C1,C2,C3,,Cn)

一种计算的方法就死穷举所有可能的分词方法并计算出每种可能性下句子的概率,但是计算量太大。
另一种方法就是看成一个动态规划的问题,使用维特比算法快速找到最佳分词。
4.没有词典的分词
清华大学孙茂松教授
5.英文词组分割
香港科技大学吴德凯教授
解决了英文词组的分割问题,并将英文词组和中文词组在机器翻译时对应起来。

分词的颗粒度和层次

语言学家对词语的定义不完全相同。例如“北京大学”,有人认为是一个词,有人认为是两个词。折中的办法就是在分词的同时,找到复合词的嵌套结构。先当做一个四字词,然后再进一步找出细分词“北京”和“大学”。

另外,汉语分词的颗粒度大小应该不同,比如在机器翻译中,颗粒度应该大一些,即“北京大学”一个词;在语音识别中,“北京大学”应该分成两个词;在网页搜索中,小的颗粒度比大的好。不用的应用应该有不同的分词系统。

分词属于已经解决了的问题,即使可以提高准确率,提升的空间也很有限。

针对不同的应用,构造不同的分词器,但是这样做非常浪费而且没有必要。更好的做法是让一个分词器同时支持不同层次的词的切分。
实现步骤:

  1. 首先需要一个基本词表(包括无法再分的词)和一个复合词表(复合词及构成的基本词)。
  2. 然后根据基本词表和复合词表各建立一个语言模型,比如L1和L2。
  3. 然后根据基本此表和语言模型L1进行分词,得到小颗粒度的结果。
  4. 在此基础上,再用复合词表和语言模型L2进行第二次分词。这时输入的是基本词串,输出的是复合词串。

分词的不一致包括:

  • 错误
    • 越界型错误,如“北京大学生”分成“北京大学/生”
    • 覆盖型错误,如“贾里尼克”分成“贾/里/尼/克”
  • 颗粒度不一致(不是错误,复合词的原因)

第5章 隐含马尔科夫模型

隐马尔科夫模型需要一个训练算法(鲍姆-韦尔奇算法,EM算法)和使用时的解码算法(维比特算法),掌握了这两类算法,就基本上可以使用隐含马尔科夫模型这个工具了。

隐马尔科夫模型的理解

知乎上的一个回答非常好,链接:https://www.zhihu.com/question/20962240/answer/33438846

第6章 信息的度量和作用

信息量就等于不确定性的多少。
信息熵: H(X)=xXP(x)logP(x)
条件熵: H(X|Y)=xX,yYP(x,y)logP(x|y)
信息的作用就在于消除不确定性。

互信息:两个事件相关性的量化度量,就是在了解了其中一个Y的前提下,对消除另一个X不确定性所提供的信息量。
I(X;Y)=H(X)H(X|Y)
互信息被广泛用于度量一些语言现象的相关性。
互信息用于解决机器翻译中词义的二义性。例如翻译Bush,从大量文本中找出和总统布什一起出现的互信息最大的一些词(总统,华盛顿,国会,美国等);同样方法找出和灌木丛一起出现的互信息最大的词(土壤,植物,野生等),翻译的时候,看上下文哪类词多就可以了。

相对熵:用来衡量两个取值为正数的函数的相似性。

  1. 对于两个完全相同的函数,相对熵等于零;
  2. 相对熵越大,两个函数差异越大;反之,两个函数差异越小;
  3. 对于概率分布或者概率密度函数,如果取值均大于零,相对熵可以度量两个随机分布的差异性。

相对熵是不对称的。
如果抄写文章,那么这两篇文章词频分布的相对熵比较小,接近于零。可以基于此,来衡量两个答案的相似性。
相对熵还可以衡量两个常用词在不同文本中的概率分布,看它们是否同义。

模型预测的越准,那么当前文字的不确定性就越小。

语言模型复杂度,用于衡量模型好坏。
如果模型的复杂度越小,每个位置的词越确定,模型越好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值