《数学之美》信息整合以及个人领悟

统计语言模型

乔姆斯基(Noam Chomsky):有史以来最伟大的语言学家

贾里尼克 (Fred Jelinek):首先成功利用数学方法解决自然语言处理问题的是语音和语言处理大师

在很多涉及到自然语言处理的领域,如机器翻译语音识别印刷体或手写体识别拼写纠错汉字输入文献查询中,我们都需要知道一个文字序列是否能构成一个大家能理解的句子,显示给使用者。对这个问题,我们可以用一个简单的统计模型来解决这个问题。

1.        S:一连串特定顺序排列的词 w1, w2,…, wn

2.        即S 表示某一个由一连串特定顺序排练的词而组成的一个有意义的句子,也就是想知道S在文本中出现的可能性,用概率P(S) 来表示。

3.        P(S)= P(w1)P(w2|w1)P(w3| w1 w2)…P(wn|w1 w2…wn-1)

4.        假定任意一个词wi的出现概率只同它前面的词 wi-1 有关(即马尔可夫假设)

5.        P(S)= P(w1)P(w2|w1)P(w3|w2)…P(wi|wi-1)…

6.        接下来的问题就是如何估计 P (wi|wi-1)。

事实证明,统计语言模型比任何已知的借助某种规则的解决方法都有效。

谈谈中文分词

由于模型是建立在词的基础上的,对于中日韩等语言,首先需要进行分词,即将一个句子分成一个个的词。

以下为各种分词方法以及演进

“查字典” 法把一个句子从左向右扫描一遍,遇到字典里有的词就标识出来,遇到复合词(比如“上海大学”)就找最长的词匹配,遇到不认识的字串就分割成单字词。

 

最少词数的分词理论(“查字典”法):即一句话应该分成数量最少的词串。这种方法一个明显的不足是当遇到有二义性(有双重理解意思)的分割时无能为力。

 

统计语言模型:成功解决分词二义性问题,将汉语分词的错误率降低了一个数量级

最好的分词方法:保证分完词后这个句子出现的概率最大

假定一个句子S可以有几种分词方法,假定有以下三种:

A1, A2, A3, ..., Ak

B1, B2, B3, ..., Bm

C1, C2, C3, ..., Cn

如果我们穷举所有可能的分词方法并计算出每种可能性下句子的概率,那么计算量是相当大的。因此,我们可以把它看成是一个动态规划(Dynamic Programming)的问题,并利用维特比Viterbi算法快速地找到最佳分词。

隐含马尔可夫模型在语言处理中的应用

根据声学信号来推测说话者的意思,就是语音识别。这样说来,如果接收端是一台计算机而不是人的话,那么计算机要做的就是语音的自动识别。同样,在计算机中,如果我们要根据接收到的英语信息,推测说话者的汉语意思,就是机器翻译; 如果我们要根据带有拼写错误的语句推测说话者想表达的正确意思,那就是自动纠错

以语音识别为例,观测到语音信号 o1,o2,o3 时,要根据这组信号推测出发送的句子 s1,s2,s3。显然,我们应该在所有可能的句子中找最有可能性的一个

用数学语言来描述,就是在已知 o1,o2,o3,...的情况下,求使得条件概率

P(s1,s2,s3,...|o1,o2,o3....) 达到最大值的那个句子 s1,s2,s3,...

利用贝叶斯公式并且省掉一个常数项,可以把上述公式等价变换成

P(o1,o2,o3,...|s1,s2,s3....)* P(s1,s2,s3,...)

其中

P(o1,o2,o3,...|s1,s2,s3....) :某句话 s1,s2,s3...被读成 o1,o2,o3,...的可能性

P(s1,s2,s3,...) :字串s1,s2,s3,...本身能够成为一个合乎情理的句子的可能性

满足以下两个假设的模型就叫隐含马尔可夫模型

l  s1,s2,s3,... 是一个马尔可夫链,也就是说,si 只由 si-1 决定 (详见系列一);

l  第 i 时刻的接收信号 oi 只由发送信号 si 决定(又称为独立输出假设, 即P(o1,o2,o3,...|s1,s2,s3....) = P(o1|s1) * P(o2|s2)*P(o3|s3)...。

那么我们就可以很容易利用算法 Viterbi 找出上面式子的最大值,进而找出要识别的句子 s1,s2,s3,...。

用“隐含”这个词是因为状态s1,s2,s3,...无法直接观测到

隐含马尔可夫模型的应用远不只在语音识别中。在上面的公式中,如果我们把 s1,s2,s3,...当成中文,把 o1,o2,o3,...当成对应的英文,那么我们就能利用这个模型解决机器翻译问题; 如果我们把 o1,o2,o3,...当成扫描文字得到的图像特征,就能利用这个模型解决印刷体和手写体的识别。

P (o1,o2,o3,...|s1,s2,s3....) 根据应用的不同而又不同的名称

l  在语音识别中它被称为“声学模型” (Acoustic Model)

l  在机器翻译中是“翻译模型” (Translation Model)

l  在拼写校正中是“纠错模型” (Correction Model)

P (s1,s2,s3,...) 就是我们在系列一中提到的统计语言模型。

怎样度量信息?

一条信息的信息量大小和它的不确定性有直接的关系。比如说,我们要搞清楚一件非常非常不确定的事,或是我们一无所知的事情,就需要了解大量的信息。相反,如果我们对某件事已经有了较多的了解,我们不需要太多的信息就能把它搞清楚。所以,从这个角度,我们可以认为,信息量的度量就等于不确定性的多少

对于任意一个随机变量 X(比如得冠军的球队),它的熵定义如下:


变量的不确定性越大,熵也就越大,把它搞清楚所需要的信息量也就越大。

有了“熵”这个概念,我们就可以回答本文开始提出的问题,即一本五十万字的中文书平均有多少信息量。我们知道常用的汉字(一级二级国标)大约有 7000 字。假如每个字等概率,那么我们大约需要13 个比特(即 13 位二进制数)表示一个汉字。但汉字的使用是不平衡的。实际上,前 10% 的汉字占文本的 95% 以上。因此,即使不考虑上下文的相关性,而只考虑每个汉字的独立的概率,那么,每个汉字的信息熵大约也只有 8-9 个比特。如果我们再考虑上下文相关性每个汉字的信息熵只有5比特左右。所以,一本五十万字的中文书,信息量大约是 250 万比特。如果用一个好的算法压缩一下,整本书可以存成一个 320KB 的文件。如果我们直接用两字节的国标编码存储这本书,大约需要 1MB 大小,是压缩文件的三倍。这两个数量的差距,在信息论中称作“冗余度”(redundancy)。 需要指出的是我们这里讲的 250 万比特是个平均数,同样长度的书,所含的信息量可以差很多。如果一本书重复的内容很多,它的信息量就小,冗余度就大。

不同语言的冗余度差别很大,而汉语在所有语言中冗余度是相对小的。这和人们普遍的认识“汉语是最简洁的语言”是一致的。

布尔代数和搜索引擎的索引

图论和网络爬虫 (Web Crawlers)

信息论在信息处理中的应用

贾里尼克的故事和现代语言处理

如何确定网页和查询的相关性

有限状态机和地址识别

Google 阿卡 47 的制造者阿米特.辛格博士

余弦定理和新闻的分类

信息指纹及其应用

谈谈数学模型的重要性

繁与简 自然语言处理的几位精英

(上)不要把所有的鸡蛋放在一个篮子里-谈谈最大熵模型

(下)— 不要把所有的鸡蛋放在一个篮子里-最大熵模型

闪光的不一定是金子 -- 谈谈搜索引擎作弊问题(Search Engine Anti-SPAM)

矩阵运算和文本处理中的分类问题

马尔可夫链的扩展 贝叶斯网络 (Bayesian Networks)

自然语言处理的教父 -- 马库斯

布隆过滤器(Bloom Filter)

由电视剧《暗算》所想到的-谈谈密码学的数学原理

输入一个汉字需要敲多少个键-谈谈香农第一定律

从全球导航到输入法-谈谈动态规划


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值