(二)背景知识 -- 2 N-gram模型

2. N-gram模型

2.1 统计语言模型

在自然语言处理中,统计语言模型(Statistic Language Model)是很重要的一环。简单来说,统计语言模型就是计算一个句子的概率的概率模型,即,语料库中出现这个句子的概率。

假设 W = w 1 T : = ( w 1 , w 2 , . . . , w T ) W=w_1^T:=(w_1, w_2, ..., w_T) W=w1T:=(w1,w2,...,wT) 表示由 T T T个词 w 1 , w 2 , . . . , w T w_1, w_2, ..., w_T w1,w2,...,wT按照顺序构成的一个句子,则该句子的概率模型就是 w 1 , w 2 , . . . , w T w_1, w_2, ..., w_T w1,w2,...,wT的联合概率,即:

p ( W ) = p ( w 1 T ) = p ( w 1 , w 2 , . . . , w T ) ( 利 用 B a y e s 链 式 分 解 ) = p ( w 1 ) ⋅ p ( w 2 ∣ w 1 ) ⋅ p ( w 3 ∣ w 1 2 ) ⋅ ⋅ ⋅ p ( w T ∣ w 1 T − 1 ) p(W)=p(w_1^T)=p(w_1, w_2, ..., w_T) \\(利用Bayes链式分解)\\ =p(w_1)·p(w_2|w_1)·p(w_3|w_1^2)···p(w_T|w_1^{T-1}) p(W)=p(w1T)=p(w1,w2,...,wT)Bayes=p(w1)p(w2w1)p(w3w12)p(wTw1T1)

其中, p ( w 1 ) p(w_1) p(w1) p ( w 2 ∣ w 1 ) p(w_2|w_1) p(w2w1) p ( w 3 ∣ w 1 2 ) p(w_3|w_1^2) p(w3w12) ··· p ( w T ∣ w 1 T − 1 ) p(w_T|w_1^{T-1}) p(wTw1T1) 就是语言模型的参数。
已知这些参数,即可得到句子的出现概率。
注: p ( w 3 ∣ w 1 2 ) = p ( w 3 ∣ w 2 , w 1 ) p(w_3|w_1^2)=p(w_3|w_2,w_1) p(w3w12)=p(w3w2,w1)

问题在于,当前面给定的单词序列很长时,无法计算这个单词的确切概率,即 p ( w T ∣ w 1 T − 1 ) p(w_T|w_1^{T-1}) p(wTw1T1)

因此,需要借助N-gram模型来进行简化。


2.2 N-gram模型

2.2.1 概念

考虑 p ( w k ∣ w 1 k − 1 ) ( k > 1 ) p(w_k|w_1^{k-1}) (k>1) p(wkw1k1)(k>1)的近似计算,利用 B a y e s Bayes Bayes公式,有:

p ( w k ∣ w 1 k − 1 ) = p ( w 1 k ) p ( w 1 k − 1 ) 根 据 大 数 定 理 , 当 语 料 库 够 大 时 ≈ c o u n t ( w 1 k ) c o u n t ( w 1 k − 1 ) p(w_k|w_1^{k-1}) =\frac{p(w_1^k)}{p(w_1^{k-1})} \\根据大数定理,当语料库够大时\\ \approx \frac{count(w_1^k)}{count(w_1^{k-1})} p(wkw1k1)=p(w1k1)p(w1k)count(w1k1)count(w1k)

其中, p ( w 1 k ) p(w_1^k) p(w1k)表示句子中从第 1 1 1个到第 k k k个的词构成的词串, c o u n t ( w 1 k ) count(w_1^k) count(w1k)表示词串 w 1 k w_1^k w1k在语料中出现的次数。

由此可见,一个词出现的概率与它前面所有的词都相关。

假设这个词只与它前面 n − 1 n-1 n1个词相关( n − 1 n-1 n1 M a r k o v Markov Markov假设),那么,上述公式可以简化为:

p ( w k ∣ w 1 k − 1 ) ≈ p ( w k ∣ w k − n + 1 k − 1 ) ≈ c o u n t ( w 1 k ) c o u n t ( w k − n + 1 k − 1 ) p(w_k|w_1^{k-1}) \approx p(w_k|w_{k-n+1}^{k-1})\\ \approx \frac{count(w_1^k)}{count(w_{k-n+1}^{k-1})} p(wkw1k1)p(wkwkn+1k1)count(wkn+1k1)count(w1k)

2.2.2 经验

对于参数的选取,可以从以下两个角度进行考虑:

(1) 计算复杂度: n n n越大,计算复杂度越大(指数级增长)。
(2) 模型效果:理论上 n n n越大越好,但 n n n越大,模型效果的提升幅度越小。

因此,实际常选用 n = 3 n=3 n=3

此外,还需要考虑到「平滑化」的问题。
因为假如词串在统计时计数为0,即 c o u n t ( w k − n + 1 k − 1 ) = 0 count(w_{k-n+1}^{k-1})=0 count(wkn+1k1)=0,并不能认为 p ( w k ∣ w 1 k − 1 ) = 0 p(w_k|w_1^{k-1})=0 p(wkw1k1)=0,否则会导致连乘时,整个词串的概率都为0。



参考

博客:Word2Vec-知其然知其所以然
Speech and Language Processing - chapter 3: N-gram Language Models

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值