统计语言模型Python实现
Posted 小基基o_O
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了统计语言模型Python实现相关的知识,希望对你有一定的参考价值。
文章目录
原理简述
统计语言模型(Statistical Language Model),可用于计算一个句子的合理程度。
S
S
S 表示句子,由有序的
n
n
n 个词
w
1
,
w
2
,
w
3
,
.
.
w
n
w_1,w_2,w_3,..w_n
w1,w2,w3,..wn 组成,句子概率
P
(
S
)
P(S)
P(S) 的计算公式如下:
N-gram
P ( S ) = P ( w 1 , w 2 , . . . w n ) = P ( w 1 ) P ( w 2 ∣ w 1 ) P ( w 3 ∣ w 1 , w 2 ) . . . P ( w n ∣ w 1 , w 2 , . . . w n − 1 ) P(S) =P(w_1,w_2,...w_n) =P(w_1)P(w_2|w_1)P(w_3|w_1,w_2)...P(w_n|w_1,w_2,...w_n-1) P(S)=P(w1,w2,...wn)=P(w1)P(w2∣w1)P(w3∣w1,w2)...P(wn∣w1,w2,...wn−1)
unigram
P
(
S
)
=
P
(
w
1
)
P
(
w
2
)
.
.
.
P
(
w
n
)
=
∏
i
=
1
n
P
(
w
i
)
P(S)=P(w_1)P(w_2)...P(w_n)=\\prod^n_i=1P(w_i)
P(S)=P(w1)P(w2)...P(wn)=i=1∏nP(wi)
log
P
(
S
)
=
∑
i
=
1
n
log
P
(
w
i
)
\\log P(S) = \\sum^n_i=1 \\log P(w_i)
logP(S)=i=1∑nlogP(wi)
bigram
P
(
S
)
=
P
(
w
1
)
P
(
w
2
∣
w
1
)
P
(
w
3
∣
w
2
)
.
.
.
P
(
w
n
∣
w
n
−
1
)
=
P
(
w
1
)
∏
i
=
2
n
P
(
w
i
∣
w
i
−
1
)
P(S) =P(w_1)P(w_2|w_1)P(w_3|w_2)...P(w_n|w_n-1) =P(w_1)\\prod^n_i=2P(w_i|w_i-1)
P(S)=P(w1)P(w2∣w1)P(w3∣w2)...P(wn∣wn−1)=P(w1)i=2∏nP(wi∣wi−1)
log
P
(
S
)
=
log
P
(
w
1
)
+
∑
i
=
2
n
log
P
(
w
i
∣
w
i
−
1
)
\\log P(S) = \\log P(w_1) + \\sum^n_i=2 \\log P(w_i|w_i-1)
logP(S)=logP(w1)+i=2∑nlogP(wi∣wi−1)
Add-k Smoothing
k=1;bigram;C表示count
P
A
d
d
−
1
(
w
i
∣
w
i
−
1
)
=
C
(
w
i
−
1
,
w
i
)
+
1
C
(
w
i
−
1
)
+
V
P_Add-1(w_i|w_i-1)=\\fracC(w_i-1,w_i)+1C(w_i-1)+V
PAdd−1(wi∣wi−1)=C(wi−1)+VC(wi−1,wi)+1
e.g.
我很帅
她很美
P ( 帅 ∣ 很 ) = 1 + 1 2 + 5 = 2 7 P(帅|很)=\\frac1+12+5=\\frac27 P(帅∣很)=2+51+1=72
P ( 美 ∣ 很 ) = 1 + 1 2 + 5 = 2 7 P(美|很)=\\frac1+12+5=\\frac27 P(美∣很)=2+51+1=72
P ( 我 ∣ 很 ) = 0 + 1 2 + 5 = 1 7 P(我|很)=\\frac0+12+5=\\frac17 P(我∣很)=2+50+1=7以上是关于统计语言模型Python实现的主要内容,如果未能解决你的问题,请参考以下文章