赞
踩
一个语言模型通常构建为字符串 s s s的概率分布 p ( s ) p(s) p(s), p ( s ) p(s) p(s)试图反应的是字符串 s s s作为一个句子出现的概率,用来判断这个句子该不该出现,例如,在一个描述人类说话的语言模型中,如果一个句子说“这只鸡把人吃了”,即便这句话的语法正确,它出现的概率仍然为0。语言模型就是这样一个计算句子概率的东西。
对于一个句子
s
=
w
1
w
2
⋯
w
m
s=w_1w_2\cdots w_m
s=w1w2⋯wm,其概率计算公式可以表示为:
p
(
s
)
=
p
(
w
1
)
p
(
w
2
∣
w
1
)
p
(
w
3
∣
w
1
w
2
)
⋯
p
(
w
m
∣
w
1
w
2
⋯
w
m
−
1
)
=
∏
i
=
1
m
p
(
w
i
∣
w
1
⋯
w
i
−
1
)
p(s)=p(w_1)p(w_2|w_1)p(w_3|w_1w_2)\cdots p(w_m|w_1w_2\cdots w_{m-1})=\prod_{i=1}^mp(w_i|w_1\cdots w_{i-1})
p(s)=p(w1)p(w2∣w1)p(w3∣w1w2)⋯p(wm∣w1w2⋯wm−1)=i=1∏mp(wi∣w1⋯wi−1)
这个概率公式就是条件概率的乘法规则,需要注意的是当
i
=
1
i=1
i=1时,
p
(
w
1
∣
w
0
)
=
p
(
w
1
)
p(w_1|w_0)=p(w_1)
p(w1∣w0)=p(w1)。该式中的
w
i
w_i
wi叫做统计基元(基元),它可以是字、词、短语或词类等,为了方便表述,通常以“词”代之。
w
i
w_i
wi的概率由
w
1
⋯
w
i
−
1
w_1\cdots w_{i-1}
w1⋯wi−1决定,一般地我们把前
i
−
1
i-1
i−1个词
w
1
⋯
w
i
−
1
w_1\cdots w_{i-1}
w1⋯wi−1称为第
i
i
i个词的“历史”。
随着历史中基元数量的增加,不同的“历史”按指数级增长。现在对于第 i i i个基元来说,历史基元的个数为 i − 1 i-1 i−1,如果一共有 L L L个不同的基元(假设 L L L为词汇集的大小),理论上每一个基元都有可能出现在 i − 1 i-1 i−1个位置中的任意一处,那么 i i i基元就有 L i − 1 L^{i-1} Li−1种不同的历史情况。这样的话,我们必须考虑在所有的 L i − 1 L^{i-1} Li−1种不同的历史情况下产生第 i i i个基元的概率。那么模型中就有 L m L^m Lm个自由参数。 p ( w m ∣ w 1 w 2 ⋯ w m − 1 ) p(w_m|w_1w_2\cdots w_{m-1}) p(wm∣w1w2⋯wm−1)。指数级的增长对运算带来的负担是非常大的,如果 L = 5000 , m = 3 L=5000,m=3 L=5000,m=3,自由参数的数目为1250亿。
设法减少历史基元的个数,将
w
1
⋯
w
i
−
1
w_1\cdots w_{i-1}
w1⋯wi−1映射到等价类
S
=
(
w
1
w
2
⋯
w
i
−
1
)
S=(w_1w_2\cdots w_{i-1})
S=(w1w2⋯wi−1),使等价类的数目远远小于原来不同历史基元的数目。则有:
p
(
w
i
∣
w
1
⋯
w
i
−
1
)
=
p
(
w
i
∣
S
=
(
w
1
w
2
⋯
w
i
−
1
)
)
p(w_i|w_1\cdots w_{i-1})=p(w_i|S=(w_1w_2\cdots w_{i-1}))
p(wi∣w1⋯wi−1)=p(wi∣S=(w1w2⋯wi−1))
划分等价类的规则是,将两个历史映射到同一个等价类,当且仅当这两个历史中的最近
n
−
1
n-1
n−1个基元相同,即:
H
1
:
w
1
w
2
⋯
⋯
(
w
i
−
n
+
1
w
i
−
n
+
2
⋯
w
i
−
1
)
w
i
⋯
⋯
H
2
:
v
1
v
2
⋯
⋯
(
v
k
−
n
+
1
v
k
−
n
+
2
⋯
v
k
−
1
)
v
k
⋯
⋯
H_1:w_1w_2\cdots \cdots (w_{i-n+1}w_{i-n+2}\cdots w_{i-1})w_i \cdots \cdots \\ H_2:v_1v_2\cdots \cdots (v_{k-n+1}v_{k-n+2}\cdots v_{k-1})v_k \cdots \cdots
H1:w1w2⋯⋯(wi−n+1wi−n+2⋯wi−1)wi⋯⋯H2:v1v2⋯⋯(vk−n+1vk−n+2⋯vk−1)vk⋯⋯
对于上面两个串中的
w
i
w_i
wi和
v
k
v_k
vk,它们的历史最近的
n
−
1
n-1
n−1个基元,也就是括号括起来的那部分,如果这些基元相同,则
w
i
w_i
wi和
v
k
v_k
vk的历史就可以映射到同一个等价类
S
(
w
1
⋯
w
i
−
1
)
=
S
(
w
k
⋯
w
k
−
1
)
S(w_1\cdots w_{i-1})=S(w_k\cdots w_{k-1})
S(w1⋯wi−1)=S(wk⋯wk−1)。换句话说,这么做的目的就是让一个基元
w
i
w_i
wi的概率只和其最近的
n
−
1
n-1
n−1个历史有关,这样便大大地减少了历史基元的数量。
在上述情况下的语言模型就称为n元文法/语法模型(n-gram model)。当然, n n n不能取太大,否则历史基元的数量一样很多。一般都用4或5元,效果好。 n n n取不同值有一些特别的叫法:
以此类推。
n-gram实际上就是 n n n个临近词构成的一个 n n n元词组,或称词序列,例如:Today is Tuesday.
为了保证条件概率在
i
=
1
i=1
i=1时有意义,同时为了保证句子内所有字符串的概率和为1,即
∑
s
p
(
s
)
=
1
\sum_sp(s)=1
∑sp(s)=1,可以在句子首尾两端增加两个标志:<BOS>
w
1
w
2
⋯
w
m
w_1w_2\cdots w_{m}
w1w2⋯wm<EOS>。不失一般性,对于
n
>
2
n \gt 2
n>2的n-gram,
p
(
s
)
p(s)
p(s)可以分解为:
p
(
s
)
=
∏
i
=
1
m
+
1
p
(
w
i
∣
w
i
−
n
+
1
i
−
1
)
p(s)=\prod_{i=1}^{m+1}p(w_i|w_{i-n+1}^{i-1})
p(s)=i=1∏m+1p(wi∣wi−n+1i−1)
其中
w
i
j
w_i^j
wij表示词序列
w
i
⋯
w
j
w_i\cdots w_j
wi⋯wj,
w
0
w_0
w0为<BOS>,
w
m
+
1
w_{m+1}
wm+1为<EOS>。举例:
给定句子:John read a book
首先增加标记:<BOS>John read a book <EOS>
Uni-gram:<BOS>,John,read,a,book,<EOS>
Bi-gram:(<BOS>John),(John read),(read a),(a book), (book<EOS>)
Tri-gram:(<BOS>John read),(John read a),(read a book),(a book<EOS>)
拿bi-gram来说,句子的概率为:
p
(
J
o
h
n
r
e
a
d
a
b
o
o
k
)
=
p
(
J
o
h
n
∣
<
B
O
S
>
)
∗
p
(
r
e
a
d
∣
J
o
h
n
)
∗
p
(
a
∣
r
e
a
d
)
∗
p
(
b
o
o
k
∣
a
)
∗
p
(
<
E
O
S
>
∣
b
o
o
k
)
p(John \ read\ a\ book)=p(John|<BOS>)*p(read|John)*p(a|read)*p(book|a)*p(<EOS>|book)
p(John read a book)=p(John∣<BOS>)∗p(read∣John)∗p(a∣read)∗p(book∣a)∗p(<EOS>∣book)
1)音字转换问题:给定拼音之后可能的汉字串可能有很多,利用n-gram可以找到概率最大的字串
2)汉语分词问题:给定汉字串,可以切分的方法很多,利用n-gram可以找到切分后概率最大的切分方法。
问题是:如何获得n元语法模型?也就是说我用来计算句子概率的那些条件概率怎么来的。
参数估计中的两个重要概念:
对于n-gram来说,参数
p
(
w
i
∣
w
i
−
n
+
1
i
−
1
)
p(w_i|w_{i-n+1}^{i-1})
p(wi∣wi−n+1i−1)可由最大似然估计求得:
p
(
w
i
∣
w
i
−
n
+
1
i
−
1
)
=
f
(
w
i
∣
w
i
−
n
+
1
i
−
1
)
=
c
(
w
i
−
n
+
1
i
)
∑
w
i
c
(
w
i
−
n
+
1
i
)
p(w_i|w_{i-n+1}^{i-1})=f(w_i|w_{i-n+1}^{i-1})=\cfrac{c(w_{i-n+1}^i)}{\sum_{w_i}c(w_{i-n+1}^i)}
p(wi∣wi−n+1i−1)=f(wi∣wi−n+1i−1)=∑wic(wi−n+1i)c(wi−n+1i)
其中,
∑
w
i
c
(
w
i
−
n
+
1
i
)
\sum_{w_i}c(w_{i-n+1}^i)
∑wic(wi−n+1i)是历史串
w
i
−
n
+
1
i
−
1
w_{i-n+1}^{i-1}
wi−n+1i−1在给定语料中出现的次数,即
c
(
w
i
−
n
+
1
i
−
1
)
c(w_{i-n+1}^{i-1})
c(wi−n+1i−1),不管
w
i
w_i
wi是什么。
f
(
w
i
∣
w
i
−
n
+
1
i
−
1
)
f(w_i|w_{i-n+1}^{i-1})
f(wi∣wi−n+1i−1)是在给定
w
i
−
n
+
1
i
−
1
w_{i-n+1}^{i-1}
wi−n+1i−1的条件下
w
i
w_i
wi出现的相对频度,分子为
w
i
−
n
+
1
i
−
1
w_{i-n+1}^{i-1}
wi−n+1i−1与
w
i
w_i
wi同时出现的次数。下面举例说明。
给定一个训练预料:
根据1.3最后的式子,我们需要计算其中的每一个条件概率:
p
(
J
o
h
n
∣
<
B
O
S
>
)
=
c
(
<
B
O
S
>
J
o
h
n
)
∑
w
i
c
(
<
B
O
S
>
w
i
)
=
1
3
p
(
r
e
a
d
∣
J
o
h
n
)
=
c
(
J
o
h
n
r
e
a
d
)
∑
w
i
c
(
J
o
h
n
w
i
)
=
1
1
p
(
a
∣
r
e
a
d
)
=
c
(
r
e
a
d
a
)
∑
w
i
c
(
r
e
a
d
w
i
)
=
2
3
p
(
b
o
o
k
∣
a
)
=
c
(
a
b
o
o
k
)
∑
w
i
c
(
a
w
i
)
=
1
2
p
(
<
E
O
S
>
∣
b
o
o
k
)
=
c
(
b
o
o
k
<
E
O
S
>
)
∑
w
i
c
(
b
o
o
k
w
i
)
=
1
2
p(John|<BOS>)=\cfrac{c(<BOS> John)}{\sum_{w_i}c(<BOS>\ w_i)}=\cfrac{1}{3}\\ p(read|John)=\cfrac{c(John\ read)}{\sum_{w_i}c(John\ w_i)}=\cfrac{1}{1}\\ p(a|read)=\cfrac{c(read\ a)}{\sum_{w_i}c(read\ w_i)}=\cfrac{2}{3}\\ p(book|a)=\cfrac{c(a\ book)}{\sum_{w_i}c(a\ w_i)}=\cfrac{1}{2}\\ p(<EOS>|book)=\cfrac{c(book\ <EOS>)}{\sum_{w_i}c(book\ w_i)}=\cfrac{1}{2}
p(John∣<BOS>)=∑wic(<BOS> wi)c(<BOS>John)=31p(read∣John)=∑wic(John wi)c(John read)=11p(a∣read)=∑wic(read wi)c(read a)=32p(book∣a)=∑wic(a wi)c(a book)=21p(<EOS>∣book)=∑wic(book wi)c(book <EOS>)=21
最后:
p
(
J
o
h
n
r
e
a
d
a
b
o
o
k
)
=
p
(
J
o
h
n
∣
<
B
O
S
>
)
∗
p
(
r
e
a
d
∣
J
o
h
n
)
∗
p
(
a
∣
r
e
a
d
)
∗
p
(
b
o
o
k
∣
a
)
∗
p
(
<
E
O
S
>
∣
b
o
o
k
)
≈
0.06
p(John \ read\ a\ book)=p(John|<BOS>)*p(read|John)*p(a|read)*p(book|a)*p(<EOS>|book)\approx0.06
p(John read a book)=p(John∣<BOS>)∗p(read∣John)∗p(a∣read)∗p(book∣a)∗p(<EOS>∣book)≈0.06
最后这些概率相乘就是句子的概率了。但是现在考虑另外一个句子"Cher read a book",我们计算
p
(
C
h
e
r
∣
<
B
O
S
>
)
p(Cher|<BOS>)
p(Cher∣<BOS>)和
p
(
r
e
a
d
∣
C
h
e
r
)
p(read|Cher)
p(read∣Cher)的时候会发现是0,但这个句子怎么看都是很合理的,这就是数据匮乏(稀疏)引起零概率的问题。解决这个问题要使用数据平滑的方法。
数据平滑的基本思想是调整最大似然估计的概率值,使零概率增值,使非零概率下调,劫富济贫,消除零概率,改进模型的整体正确率。基本目标是使测试样本的语言模型困惑度越小越好。基本约束:
∑
w
i
p
(
w
i
∣
w
1
w
2
⋯
w
i
−
1
)
=
1
\sum_{w_i}p(w_i|w_1w_2\cdots w_{i-1})=1
wi∑p(wi∣w1w2⋯wi−1)=1
基本思想是每一种情况出现的次数加1,例如对于uni-gram来说,设
w
1
,
w
2
,
w
3
w_1,w_2,w_3
w1,w2,w3三个词的概率分别为
1
3
,
0
,
2
3
\cfrac{1}{3},0,\cfrac{2}{3}
31,0,32,每个词出现的次数加1后就变为了
2
6
,
1
6
,
3
6
\cfrac{2}{6},\cfrac{1}{6},\cfrac{3}{6}
62,61,63。对于bi-gram则有:
p
(
w
i
∣
w
i
−
n
+
1
i
−
1
)
=
1
+
c
(
w
i
−
1
w
i
)
∑
w
i
[
1
+
c
(
w
i
−
1
w
i
)
]
=
1
+
c
(
w
i
−
1
w
i
)
∣
V
∣
+
∑
w
i
c
(
w
i
−
1
w
i
)
p(w_i|w_{i-n+1}^{i-1})=\cfrac{1+c(w_{i-1}w_i)}{\sum_{w_i}[1+c(w_{i-1}w_i)]}=\cfrac{1+c(w_{i-1}w_i)}{|V|+\sum_{w_i}c(w_{i-1}w_i)}
p(wi∣wi−n+1i−1)=∑wi[1+c(wi−1wi)]1+c(wi−1wi)=∣V∣+∑wic(wi−1wi)1+c(wi−1wi)
其中
V
V
V为被考虑预料的词汇量(全部可能的基元数),现在回到上面的例子"Cher read a book":
p
(
C
h
e
r
∣
<
B
O
S
>
)
=
1
+
c
(
<
B
O
S
>
C
h
e
r
)
∣
V
∣
+
∑
w
i
c
(
<
B
O
S
>
w
i
)
=
1
+
0
11
+
3
p
(
r
e
a
d
∣
C
h
e
r
)
=
1
+
c
(
C
h
e
r
r
e
a
d
)
∣
V
∣
+
∑
w
i
c
(
C
h
e
r
w
i
)
=
1
+
0
11
+
1
p
(
a
∣
r
e
a
d
)
=
1
+
c
(
r
e
a
d
a
)
∣
V
∣
+
∑
w
i
c
(
r
e
a
d
w
i
)
=
1
+
2
11
+
3
p
(
b
o
o
k
∣
a
)
=
1
+
c
(
a
b
o
o
k
)
∣
V
∣
+
∑
w
i
c
(
a
w
i
)
=
1
+
1
11
+
2
p
(
<
E
O
S
>
∣
b
o
o
k
)
=
1
+
c
(
b
o
o
k
<
E
O
S
>
)
∣
V
∣
+
∑
w
i
c
(
b
o
o
k
w
i
)
=
1
+
1
11
+
2
p(Cher|<BOS>)=\cfrac{1+c(<BOS> Cher)}{|V|+\sum_{w_i}c(<BOS>\ w_i)}=\cfrac{1+0}{11+3}\\ p(read|Cher)=\cfrac{1+c(Cher\ read)}{|V|+\sum_{w_i}c(Cher\ w_i)}=\cfrac{1+0}{11+1}\\ p(a|read)=\cfrac{1+c(read\ a)}{|V|+\sum_{w_i}c(read\ w_i)}=\cfrac{1+2}{11+3}\\ p(book|a)=\cfrac{1+c(a\ book)}{|V|+\sum_{w_i}c(a\ w_i)}=\cfrac{1+1}{11+2}\\ p(<EOS>|book)=\cfrac{1+c(book\ <EOS>)}{|V|+\sum_{w_i}c(book\ w_i)}=\cfrac{1+1}{11+2}
p(Cher∣<BOS>)=∣V∣+∑wic(<BOS> wi)1+c(<BOS>Cher)=11+31+0p(read∣Cher)=∣V∣+∑wic(Cher wi)1+c(Cher read)=11+11+0p(a∣read)=∣V∣+∑wic(read wi)1+c(read a)=11+31+2p(book∣a)=∣V∣+∑wic(a wi)1+c(a book)=11+21+1p(<EOS>∣book)=∣V∣+∑wic(book wi)1+c(book <EOS>)=11+21+1
得到概率:
p
(
C
h
e
r
r
e
a
d
a
b
o
o
k
)
=
p
(
C
h
e
r
∣
<
B
O
S
>
)
∗
p
(
r
e
a
d
∣
C
h
e
r
)
∗
p
(
a
∣
r
e
a
d
)
∗
p
(
b
o
o
k
∣
a
)
∗
p
(
<
E
O
S
>
∣
b
o
o
k
)
≈
0.00003
p(Cher \ read\ a\ book)=p(Cher|<BOS>)*p(read|Cher)*p(a|read)*p(book|a)*p(<EOS>|book)\approx0.00003
p(Cher read a book)=p(Cher∣<BOS>)∗p(read∣Cher)∗p(a∣read)∗p(book∣a)∗p(<EOS>∣book)≈0.00003
在实际应用中,最简单的平滑技术之一就是加法平滑方法,这种方法的基本思想是上述bi-gram方法的通用化,不是假设每个n元语法发生的次数比实际统计次数多一次,而是假设它比实际出现情况多发生
δ
\delta
δ次,
0
≤
δ
≤
1
0 \le \delta \le 1
0≤δ≤1,那么就有加法平滑法的通用形式:
p
a
d
d
(
w
i
∣
w
i
−
n
+
1
i
−
1
)
=
δ
+
c
(
w
i
−
n
+
1
i
)
δ
∣
V
∣
+
∑
w
i
c
(
w
i
−
n
+
1
i
)
p_{add}(w_i|w_{i-n+1}^{i-1})=\cfrac{\delta+c(w_{i-n+1}^i)}{\delta |V|+\sum_{w_i}c(w_{i-n+1}^i)}
padd(wi∣wi−n+1i−1)=δ∣V∣+∑wic(wi−n+1i)δ+c(wi−n+1i)
基本思想是修改训练样本中事件的实际计数,使样本中(实际出现的)不同事件的概率之和小于1,剩余的概率量分配给未见概率。
Good-Turing估计法是很多平滑技术的核心。假设
N
N
N是原来训练样本数据的大小,
n
r
n_r
nr是在样本中正好出现
r
r
r次的事件的数目(此处事件为n-gram),即出现1次的n-gram有
n
1
n_1
n1个,出现2次的n-gram有
n
2
n_2
n2个,
⋯
\cdots
⋯出现
r
r
r次的n-gram有
n
r
n_r
nr个。基本思路是,对于任何一个出现
r
r
r次的
n
n
n元语法,都假设它出现了
r
∗
r^*
r∗次,这里:
r
∗
=
(
r
+
1
)
n
r
+
1
n
r
r*=(r+1)\cfrac{n_{r+1}}{n_r}
r∗=(r+1)nrnr+1
n
r
n_r
nr是训练预料中恰好出现
r
r
r次的n元语法的数目。要把这个统计数转化为概率,只需要进行归一化处理:对于统计数为
r
r
r的n元语法,其概率为:
p
r
=
r
∗
N
p_r=\cfrac{r^*}{N}
pr=Nr∗
其中,
N
=
∑
r
=
0
∞
n
r
r
∗
N=\sum_{r=0}^\infty n_rr^*
N=∑r=0∞nrr∗。需要注意的是:
N
=
∑
r
=
0
∞
n
r
r
∗
=
∑
r
=
0
∞
(
r
+
1
)
n
r
+
1
=
∑
r
=
1
∞
n
r
r
N=\sum_{r=0}^\infty n_rr^*=\sum_{r=0}^\infty (r+1)n_{r+1}=\sum_{r=1}^\infty n_rr
N=r=0∑∞nrr∗=r=0∑∞(r+1)nr+1=r=1∑∞nrr
也就是说,
N
N
N等于这个分布中最初的计数。这样,原样本中所有事件的概率之和为:
∑
r
>
0
n
r
p
r
=
1
−
n
1
N
<
1
\sum_{r>0}n_rp_r=1-\cfrac{n_1}{N} \lt 1
r>0∑nrpr=1−Nn1<1
因此,有
n
1
N
\cfrac{n_1}{N}
Nn1的剩余的概率量就可以均分给所有的未见事件(r=0)。
Good-Turing估计法适用于大词汇集产生的符合多项式分布的大量的观察数据。有关Good-Turing方法的详细推导可以参考论文:on Turing’s Formula for Word Probabilities
当某一事件在样本中出现的频率大于阈值
k
k
k(通常取
k
k
k为0或1)时,运用最大似然估计的减值法来估计其概率;而当时间的出现的频率小于
k
k
k值时,使用低阶的语法模型作为代替高阶语法模型的后备,即(n-1)gram的概率替代n-gram概率,而这种替代需受归一化因子
α
\alpha
α的作用。
另一种理解就是,对于每个计数
r
<
0
r \lt 0
r<0的n元语法的出现次数减值,把因减值而节省下来的剩余概率根据低阶的(n-1)gram分配给未见事件。
基本思想是从每个计数
r
r
r中减去同样的量,剩余的概率量由未见事件均分。设
R
R
R为所有可能事件的数目(当事件为n-gram时,如果统计基元为词,且词汇集的大小为
L
L
L,则
R
=
L
n
R=L^n
R=Ln)
那么,样本出现了
r
r
r次的事件的概率可以由如下公式估计:
p
r
=
{
r
−
b
N
r
>
0
b
(
R
−
n
0
)
N
n
0
r
=
0
p_r=
其中,
n
0
n_0
n0为样本中未出现的事件的数目。
b
b
b为减去的常量,
b
≤
1
b \le 1
b≤1。
b
(
R
−
n
0
)
/
N
b(R-n_0)/N
b(R−n0)/N是由于减值而产生的概率量。
N
N
N为样本中出现了
r
r
r次的事件总次数:
n
r
∗
r
n_r*r
nr∗r。
b
b
b为自由参数,可以通过留存数据方法求得
b
b
b的上限为:
b
≤
n
1
n
1
+
2
n
2
<
1
b \le \cfrac{n_1}{n_1+2n_2} \lt 1
b≤n1+2n2n1<1
详细可以参考论文:Estimating Small Probabilities by Leaving-one-Out.
基本思想是从每个计数
r
r
r中减去与该计数成正比的量(减值函数为线性的),剩余概率量
α
\alpha
α被
n
0
n_0
n0个未见事件均分。
p
r
=
{
(
1
−
α
)
r
N
r
>
0
α
n
0
r
=
0
p_r=
自由参数
α
\alpha
α的优化值为
n
1
N
\cfrac{n_1}{N}
Nn1。
绝对减值法产生的n-gram通常优于线性减值法。
基本思想是用低阶语法估计高阶语法,即当3-gram的值不能从训练数据中准确估计时,用2-gram来替代,同样,当2-gram的值不能从训练语料中准确估计时,可以用1-gram的值来代替。插值公式:
p
(
w
3
∣
w
2
w
1
)
=
λ
3
p
′
(
w
3
∣
w
1
w
2
)
+
λ
2
p
′
(
w
3
∣
w
2
)
+
λ
1
p
′
(
w
3
)
p(w_3|w_2w_1)=\lambda_3p'(w_3|w_1w_2)+\lambda_2p'(w_3|w_2)+\lambda_1p'(w_3)
p(w3∣w2w1)=λ3p′(w3∣w1w2)+λ2p′(w3∣w2)+λ1p′(w3)
其中,
λ
1
+
λ
2
+
λ
3
=
1
\lambda_1+\lambda_2+\lambda_3=1
λ1+λ2+λ3=1,他们的确定是将训练语料分为两部分,即从原始语料中删除第一部分作为留存数据。第一部分用于估计
p
′
(
w
3
∣
w
1
w
2
)
,
p
′
(
w
3
∣
w
2
)
,
p
′
(
w
3
)
p'(w_3|w_1w_2),p'(w_3|w_2),p'(w_3)
p′(w3∣w1w2),p′(w3∣w2),p′(w3),第二部分用于计算
λ
1
,
λ
2
,
λ
3
\lambda_1,\lambda_2,\lambda_3
λ1,λ2,λ3:使语言模型对留存数据的困惑度最小。
参考资料:《统计自然语言处理》宗成庆
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。