NLP学习之随笔(7)

Noisy Channel Model

 

? ???? ?????? ∝ ? ?????? ???? ?(????)

应用场景:
语音识别,机器器翻译,拼写纠错,OCR,密码破解

 

机器翻译:

P(中文|英文) = P(英文|中文)P(中文)

其中P(英文|中文)为translation Model   P(中文)为language Model(依据贝叶斯定理)

 

再比如:

拼接纠错

P(正确的写法|错误的写法) = P(错误的写法|正确的写法)P(正确的写法)

                                                                                          语言模型

 

语音识别:

P(文本|波信号) = P(波信号|文本)P(文本)

P(文本)代表语言模型。

那么什么是语言模型呢?

 

所谓的语言模型,就是判断一句话从语法上判断是否通顺。

 

Chain Rule

P(A,B,C,D) = P(A).P(B|A).P(C|A,B).P(D|A,B,C)

                  =p(A,B).p(C|A,B).P(D|A,B,C)

                  =p(A,B,C).P(D|A,B,C)

               =P(A,B,C,D)

接下来我们用Chain Rule来计算一个合乎语法的句子的概率

P(今天  是 春节  我们 都  休息)

 

这样做的缺点就是,预测下一个词,需要依赖于之前所有的词,假设原文档中。没有出现今天是春节我们都。这几个词。

那么我们预测的P(休息|今天,是,春节,我们,都)的概率就为0.

但是我们可以不用考虑之前所有的词,只是考虑之前1个词会怎样呢?

2个词会怎样呢?

3个词会怎样呢?

考虑前一个词,那么就是P(休息|都)    1-gram

考虑前2个词,则是P(休息|我们,都)  2-gram

考虑前三个词则是P(休息|春节,我们,都)   3-gram

 

然后,我们用语言模型来计算生成的句子的概率。

 

P(今天,是,周日)=P(今天)P(是|今天)P(周日|是)

 = 0.002 * 0.01 * 0.001 = 2*10^-8

 

 

P(今天周日是) = P(今天)P(周日|今天)P(是|周日)

0.002 * 0.0001*0.0002  =4*10^10

 

很明显,今天是周日的概率更大。

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值