NLP系列(5)_从朴素贝叶斯到N-gram语言模型

本文介绍了NLP中从朴素贝叶斯方法的局限性出发,探讨了N-gram语言模型的原理和应用场景,包括词性标注、垃圾邮件识别和中文分词。N-gram通过考虑词语的顺序信息来改善独立假设的不足,但面临零概率问题,可通过平滑技术如拉普拉斯平滑和古德图灵平滑进行解决。
摘要由CSDN通过智能技术生成

作者: 龙心尘 && 寒小阳
时间:2016年2月。
出处:
http://blog.csdn.net/longxinchen_ml/article/details/50646528
http://blog.csdn.net/han_xiaoyang/article/details/50646667
声明:版权所有,转载请联系作者并注明出处

##1. 引言:朴素贝叶斯的局限性

我们在之前文章《NLP系列(2)_用朴素贝叶斯进行文本分类(上)》探讨过,朴素贝叶斯的局限性来源于其条件独立假设,它将文本看成是词袋子模型,不考虑词语之间的顺序信息,就会把“武松打死了老虎”与“老虎打死了武松”认作是一个意思。那么有没有一种方法提高其对词语顺序的识别能力呢?有,就是本节要接到的N-gram语言模型。

##2. N-gram语言模型是啥?

2.1从假设性独立到联合概率链规则

照抄我们前文垃圾邮件识别中的条件独立假设,长这个样子:

P ( ( “ 我 ” , “ 司 ” , “ 可 ” , “ 办 理 ” , “ 正 规 发 票 ” , “ 保 真 ” , “ 增 值 税 ” , “ 发 票 ” , “ 点 数 ” , “ 优 惠 ” ) ∣ S ) P((“我”,“司”,“可”,“办理”,“正规发票”,“保真”,“增值税”,“发票”,“点数”,“优惠”)|S) P(,,,,,,,,,)S)
= P ( “ 我 ” ∣ S ) × P ( “ 司 ” ∣ S ) × P ( “ 可 ” ∣ S ) × P ( “ 办 理 ” ∣ S ) × P ( “ 正 规 发 票 ” ∣ S ) =P(“我”|S)×P(“司”|S)×P(“可”|S)×P(“办理”|S)×P(“正规发票”|S) =P(S)×P(S)×P(S)×P(S)×P(S)
× P ( “ 保 真 ” ∣ S ) × P ( “ 增 值 税 ” ∣ S ) × P ( “ 发 票 ” ∣ S ) × P ( “ 点 数 ” ∣ S ) × P ( “ 优 惠 ” ∣ S ) ×P(“保真”|S)×P(“增值税”|S)×P(“发票”|S)×P(“点数”|S)×P(“优惠”|S) ×P(S)×P(S)×P(S)×P(S)×P(S)

为了简化起见,我们以字母 x i x_i xi表示每一个词语,并且先不考虑条件“S”。于是上式就变成了下面的独立性公式。

P ( x 1 , x 2 , x 3 , x 4 , x 5 , x 6 , x 7 , x 8 , x 9 , x 10 ) P(x_1,x_2,x_3,x_4,x_5,x_6,x_7,x_8,x_9,x_{10}) P(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10)
= P ( x 1 ) P ( x 2 ) P ( x 3 ) P ( x 4 ) P ( x 5 ) P ( x 6 ) P ( x 7 ) P ( x 8 ) P ( x 9 ) P ( x 10 ) =P(x_1)P(x_2)P(x_3)P(x_4)P(x_5)P(x_6)P(x_7)P(x_8)P(x_9)P(x_{10}) =P(x1)P(x2)P(x3)P(x4)P(x5)P(x6)P(x7)P(x8)P(x9)P(x10)
= P ( “ 我 ” ) P ( “ 司 ” ) P ( “ 可 ” ) P ( “ 办 理 ” ) . . . P ( “ 优 惠 ” ) =P(“我”)P(“司”)P(“可”)P(“办理”)...P(“优惠”) =P()P()P()P()...P()

如果不满足独立性假设,上面的等号就不成立。 那么有没有一个不依赖于任何其他的假设,而能够原原本本地把所有的语序信息都考虑进来的恒等式呢?有,它就是联合概率链规则(chain rule)

P ( x 1 , x 2 , x 3 , x 4 , x 5 , … , x n ) P(x_1,x_2,x_3,x_4,x_5,…,x_n) P(x1,x2,x3,x4,x5,,xn)
= P ( x 1 ) P ( x 2 ∣ x 1 ) P ( x 3 ∣ x 1 , x 2 ) . . . P ( x n ∣ x 1 , x 2 , . . . , x n − 1 ) =P(x_1)P(x_2|x_1)P(x_3|x_1,x_2)...P(x_n|x_1,x_2,...,x_{n-1}) =P(x1)P(x2x1)P(x3x1,x2)...P(xnx1,x2,...,xn1)

2.2 从联合概率链规则到n-gram语言模型

上面的联合概率链规则公式虽然考虑到了所有的词和词之间的依赖关系,但是非常复杂,在实际生活中几乎没办法使用,于是我们就想了很多办法去近似这个公式,效果又要求比独立性假设好。比如我们要讲到的语言模型n-gram就是一个这样的简化。

如果我们考虑一个词语对上一个词语的依赖关系,公式就简化成了如下形式,我们把它叫做二元语法(bigram,2-gram):

P ( x 1 , x 2 , x 3 , x 4 , x 5 , x 6 , x 7 , x 8 , x 9 , x 10 ) P(x_1,x_2,x_3,x_4,x_5,x_6,x_7,x_8,x_9,x_{10}) P(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10)
= P ( x 1 ) P ( x 2 ∣ x 1 ) P ( x 3 ∣ x 2 ) P ( x 4 ∣ x 3 ) . . P ( x 10 ∣ x 9 ) =P(x_1)P(x_2|x_1)P(x_3|x_2)P(x_4|x_3)..P(x_{10}|x_9) =P(x1)P(x2

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值