赞
踩
作者: 龙心尘 && 寒小阳
时间: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语言模型是啥?
照抄我们前文垃圾邮件识别中的条件独立假设,长这个样子:
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(x2∣x1)P(x3∣x1,x2)...P(xn∣x1,x2,...,xn−1)
上面的联合概率链规则公式虽然考虑到了所有的词和词之间的依赖关系,但是非常复杂,在实际生活中几乎没办法使用,于是我们就想了很多办法去近似这个公式,效果又要求比独立性假设好。比如我们要讲到的语言模型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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。