语言模型
用概率论的专业术语 描述语言模型就是:为长度为m的字符串确定其概率分布
P
(
ω
1
,
ω
2
,
.
.
.
,
ω
m
)
P(ω_1,ω_2,...,ω_m)
P(ω1,ω2,...,ωm)
其中
ω
1
ω_1
ω1 到
ω
m
ω_m
ωm 依次表示文本中的各个词语。
一般采用链式法则计算其概率值:
P
(
ω
1
,
ω
2
,
.
.
.
,
ω
m
)
=
P
(
w
2
∣
w
1
)
P
(
w
3
∣
w
1
,
w
2
)
.
.
.
P
(
w
i
∣
w
1
,
w
2
,
.
.
.
w
i
−
1
)
.
.
.
P
(
w
m
∣
w
1
,
w
2
,
.
.
.
w
m
−
1
)
P(ω_1,ω_2,...,ω_m) = P(w_2|w_1)P(w_3|w_1,w_2)...P(w_i|w_1,w_2,...w_{i-1})...P(w_m|w_1,w_2,...w_{m-1})
P(ω1,ω2,...,ωm)=P(w2∣w1)P(w3∣w1,w2)...P(wi∣w1,w2,...wi−1)...P(wm∣w1,w2,...wm−1)
上述公式缺点:从第三项起的每一项计算难度都很大。
解决方法:提出n元模型来降低计算难度。
n 元模型(n-gram model)
n元模型在估算条件概率时,忽略距离大于或等于 n 的上文词的影响。
因此第i个词出现的概率
P
(
ω
i
∣
ω
1
,
ω
2
,
…
,
ω
i
−
1
)
P(ω_i | ω_1, ω_2, …, ω_{i-1})
P(ωi∣ω1,ω2,…,ωi−1) 的计算可简化为:
P
(
ω
i
∣
ω
1
,
ω
2
,
…
,
ω
i
−
1
)
≈
=
P
(
w
i
∣
w
i
−
(
n
−
1
)
,
.
.
.
,
w
i
−
1
)
P(ω_i | ω_1, ω_2, …, ω_{i-1}) \approx = P(w_i | w_{i-(n-1)}, ..., w_{i-1} )
P(ωi∣ω1,ω2,…,ωi−1)≈=P(wi∣wi−(n−1),...,wi−1)
一元模型(unigram model)
当n=1时称为一元模型,此时整个句子的概率可表示为:
$P(ω_1,ω_2,…,ω_m) = P(w_1)P(w_2)P(w_m) $
特性:在一元语言模型中,整个句子的概率 等于各个词语概率的乘积。
相当于 各个词之间都是相互独立的。
缺点:这完全损失了句中的词序信息。所以一元模型的效果并不理想。
二元模型(bigram model)
公式变为:
P
(
ω
i
∣
ω
1
,
ω
2
,
…
,
ω
i
−
1
)
=
P
(
w
i
∣
w
i
−
1
)
P(ω_i | ω_1, ω_2, …, ω_{i-1}) = P(w_i | w_{i-1} )
P(ωi∣ω1,ω2,…,ωi−1)=P(wi∣wi−1)
三元模型(trigram model)
公式变为:
P
(
ω
i
∣
ω
1
,
ω
2
,
…
,
ω
i
−
1
)
=
P
(
w
i
∣
w
i
−
2
,
w
i
−
1
)
P(ω_i | ω_1, ω_2, …, ω_{i-1}) = P(w_i | w_{i-2}, w_{i-1} )
P(ωi∣ω1,ω2,…,ωi−1)=P(wi∣wi−2,wi−1)
当n≥2时,模型可以保留一定的词序信息。
而且n越大,保留的词序信息越丰富,但计算成本也呈指数级增长。
计算n元条件概率
一般使用频率计数的比例
来计算,如下所示
P ( ω i ∣ ω 1 , ω 2 , … , ω i − 1 ) = c o u n t ( w i − ( n − 1 ) , . . . , w i − 1 , w i ) c o u n t ( w i − ( n − 1 ) , . . . , w i − 1 P(ω_i | ω_1, ω_2, …, ω_{i-1}) = \frac{ count(w_{i-(n-1)}, ..., w_{i-1}, w_i) }{ count(w_{i-(n-1)}, ..., w_{i-1} } P(ωi∣ω1,ω2,…,ωi−1)=count(wi−(n−1),...,wi−1count(wi−(n−1),...,wi−1,wi)
count(…) 标识词语在语料库中出现的总次数;
以上公式会出现分子分母为零的情况,一般需要配合相应的平滑算法来解决该问题,如拉普拉斯平滑算法等。