统计语言模型
-
N元模型
(假设任意一个词 出现的概率由前面 N − 1 N-1 N−1 个词决定,实际中应用最多的是N=3) -
二元模型
(假设任意一个词 出现的概率只和其前面的词 有关)假定 S S S 表示某一个有意义的句子,由一连串特定顺序拍立的词 W 1 , W 2 , W 3 , . . . , W n W_1,W_2,W_3,...,W_n W1,W2,W3,...,Wn 组成,n 为句子的长度,我们想知道 S S S 在文本中出现的可能性
P ( S ) = P ( W 1 , W 2 , W 3 , . . . , 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 ) \begin{aligned} P(S) &= P(W_1,W_2,W_3,...,W_n) \\ &=P(W_1)\cdot P(W_2|W_1) \cdot P(W_3|W_1,W_2) \cdot ....\cdot P(W_N|W_1,W_2,...,W_{n-1}) \\ \end{aligned} P(S)=P(W1,W2,W3,...,Wn)=P(W1)⋅P(W2∣W1)⋅P(W3∣W1,W2)⋅....⋅P(WN∣W1,W2,...,Wn−1)
后续的计算量会越来越大,几乎不可能完成,所以俄国数学家马尔科夫提出了一种偷懒但是颇为有效的方法:齐次马尔科夫性,即假设任意一个词 W i W_i Wi 出现的概率只和其前面的词 W i − 1 W_{i-1} Wi−1 有关,即
P ( S ) = P ( W 1 , W 2 , W 3 , . . . , 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 ( W 1 ) ⋅ P ( W 2 ∣ W 1 ) ⋅ P ( W 3 ∣ W 2 ) ⋅ . . . . ⋅ P ( W i ∣ W i − 1 ) ⋅ . . . . ⋅ P ( W N ∣ W n − 1 ) \begin{aligned} P(S) &= P(W_1,W_2,W_3,...,W_n) \\ &=P(W_1)\cdot P(W_2|W_1) \cdot P(W_3|W_1,W_2) \cdot ....\cdot P(W_N|W_1,W_2,...,W_{n-1}) \\ &\approx P(W_1)\cdot P(W_2|W_1) \cdot P(W_3|W_2) \cdot ....\cdot P(W_i|W_{i-1})\cdot ....\cdot P(W_N|W_{n-1}) \end{aligned} P(S)=P(W1,W2,W3,...,Wn)=P(W1)⋅P(W2∣W1)⋅P(W3∣W1,W2)⋅....⋅P(WN∣W1,W2,...,Wn−1)≈P(W1)⋅P(W2∣W1)⋅P(W3∣W2)⋅....⋅P(Wi∣Wi−1)⋅....⋅P(WN∣Wn−1)
其中
P ( W i ∣ W i − 1 ) = P ( W i , W i − 1 ) P ( W i − 1 ) P(W_i|W_{i-1}) = \frac{P(W_i,W_{i-1}) }{P(W_{i-1}) } P(Wi∣Wi−1)=P(Wi−1)P(Wi,Wi−1)
而估计联合概率 $P(W_i,W_{i-1}) $ 和边缘概率 $P(W_{i-1}) $ 现在变得简单,因为有了大量机读文本,也就是语料库(Corpus),只要数一数 W i , W i − 1 W_i,W_{i-1} Wi,Wi−1 这对词在统计的文本中前后相邻出现了多少次 # ( W i , W i − 1 ) \# (W_i,W_{i-1}) #(Wi,Wi−1) ,以及 W i − 1 W_{i-1} Wi−1 本身在同样的文本中出现了多少次 # ( W i − 1 ) \#(W_{i-1}) #(Wi−1) ,然后用两个数分别除以语料库的大小 # \# # ,即可以得到这些词的二元组的相对频度
f ( W i , W i − 1 ) = # ( W i , W i − 1 ) # ( W i − 1 ) f(W_i,W_{i-1}) = \frac{\# (W_i,W_{i-1})}{\#(W_{i-1})} f(Wi,Wi−1)=#(Wi−1)#(Wi,Wi−1)f ( W i − 1 ) = # ( W i − 1 ) # f(W_{i-1}) = \frac{\# (W_{i-1})}{\#} f(Wi−1)=##(Wi−1)
根据大数定理,只要统计量足够,相对频度就等于概率,即
P ( W i , W i − 1 ) ≈ f ( W i , W i − 1 ) = # ( W i , W i − 1 ) # ( W i − 1 ) P(W_i,W_{i-1})\approx f(W_i,W_{i-1}) = \frac{\# (W_i,W_{i-1})}{\#(W_{i-1})} P(Wi,Wi−1)≈f(Wi,Wi−1)=#(Wi−1)#(Wi,Wi−1)P ( W i − 1 ) ≈ f ( W i − 1 ) = # ( W i − 1 ) # P(W_{i-1}) \approx f(W_{i-1}) = \frac{\# (W_{i-1})}{\#} P(Wi−1)≈f(Wi−1)=##(Wi−1)
再约去分母
P ( W i ∣ W i − 1 ) = P ( W i , W i − 1 ) W i − 1 ) ≈ # ( W i , W i − 1 ) # ( W i − 1 ) P(W_i|W_{i-1}) = \frac{P(W_i,W_{i-1}) }{W_{i-1}) }\approx \frac{\# (W_i,W_{i-1})}{\#(W_{i-1})} P(Wi∣Wi−1)=Wi−1)P(Wi,Wi−1)≈#(Wi−1)#(Wi,Wi−1)