NLP语言模型

语言模型

  一个语言模型通常构建为字符串 s s s的概率分布 p ( s ) p(s) p(s) p ( s ) p(s) p(s)试图反应的是字符串 s s s作为一个句子出现的概率,用来判断这个句子该不该出现,例如,在一个描述人类说话的语言模型中,如果一个句子说“这只鸡把人吃了”,即便这句话的语法正确,它出现的概率仍然为0。语言模型就是这样一个计算句子概率的东西。

1 基本概念

  对于一个句子 s = w 1 w 2 ⋯ w m s=w_1w_2\cdots w_m s=w1w2wm,其概率计算公式可以表示为:
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(w2w1)p(w3w1w2)p(wmw1w2wm1)=i=1mp(wiw1wi1)
这个概率公式就是条件概率的乘法规则,需要注意的是当 i = 1 i=1 i=1时, p ( w 1 ∣ w 0 ) = p ( w 1 ) p(w_1|w_0)=p(w_1) p(w1w0)=p(w1)。该式中的 w i w_i wi叫做统计基元(基元),它可以是字、词、短语或词类等,为了方便表述,通常以“词”代之。 w i w_i wi的概率由 w 1 ⋯ w i − 1 w_1\cdots w_{i-1} w1wi1决定,一般地我们把前 i − 1 i-1 i1个词 w 1 ⋯ w i − 1 w_1\cdots w_{i-1} w1wi1称为第 i i i个词的“历史”

1.1 一个问题

  随着历史中基元数量的增加,不同的“历史”按指数级增长。现在对于第 i i i个基元来说,历史基元的个数为 i − 1 i-1 i1,如果一共有 L L L个不同的基元(假设 L L L为词汇集的大小),理论上每一个基元都有可能出现在 i − 1 i-1 i1个位置中的任意一处,那么 i i i基元就有 L i − 1 L^{i-1} Li1种不同的历史情况。这样的话,我们必须考虑在所有的 L i − 1 L^{i-1} Li1种不同的历史情况下产生第 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(wmw1w2wm1)。指数级的增长对运算带来的负担是非常大的,如果 L = 5000 , m = 3 L=5000,m=3 L=5000,m=3,自由参数的数目为1250亿。

1.2 问题的解决方法

  设法减少历史基元的个数,将 w 1 ⋯ w i − 1 w_1\cdots w_{i-1} w1wi1映射到等价类 S = ( w 1 w 2 ⋯ w i − 1 ) S=(w_1w_2\cdots w_{i-1}) S=(w1w2wi1),使等价类的数目远远小于原来不同历史基元的数目。则有:
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(wiw1wi1)=p(wiS=(w1w2wi1))
划分等价类的规则是,将两个历史映射到同一个等价类,当且仅当这两个历史中的最近 n − 1 n-1 n1个基元相同,即:
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(win+1win+2wi1)wiH2:v1v2(vkn+1vkn+2vk1)vk
对于上面两个串中的 w i w_i wi v k v_k vk,它们的历史最近的 n − 1 n-1 n1个基元,也就是括号括起来的那部分,如果这些基元相同,则 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(w1wi1)=S(wkwk1)。换句话说,这么做的目的就是让一个基元 w i w_i wi的概率只和其最近的 n − 1 n-1 n1个历史有关,这样便大大地减少了历史基元的数量。

1.3 n-gram

  在上述情况下的语言模型就称为n元文法/语法模型(n-gram model)。当然, n n n不能取太大,否则历史基元的数量一样很多。一般都用4或5元,效果好。 n n n取不同值有一些特别的叫法:

  • n = 1 n=1 n=1时,也就是说第 i i i位上的基元 w i w_i wi独立于历史,一元文法也被写为uni-gram或monogram;
  • n = 2 n=2 n=2时,2-gram(bi-gram)被称为1阶马尔可夫链;
  • n = 3 n=3 n=3时,3-gram(tri-gram)被称为2阶马尔可夫链。

以此类推。

  n-gram实际上就是 n n n个临近词构成的一个 n n n元词组,或称词序列,例如:Today is Tuesday.

  • bi-grams就是:Today is, is Tuesday, Tuesday.
  • tri-grams就是:Today is Tuesday, 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} w1w2wm<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=1m+1p(wiwin+1i1)
其中 w i j w_i^j wij表示词序列 w i ⋯ w j w_i\cdots w_j wiwj 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(readJohn)p(aread)p(booka)p(<EOS>book)

1.4 n-gram的应用

  1)音字转换问题:给定拼音之后可能的汉字串可能有很多,利用n-gram可以找到概率最大的字串
  2)汉语分词问题:给定汉字串,可以切分的方法很多,利用n-gram可以找到切分后概率最大的切分方法。
  问题是:如何获得n元语法模型?也就是说我用来计算句子概率的那些条件概率怎么来的。

2 参数估计

  参数估计中的两个重要概念:

  • 训练预料(training data):用于建立模型,确定模型参数的已知语料。
  • 最大似然估计(maximum likelihood Evaluation, MLE):用相对频率计算概率的方法。

对于n-gram来说,参数 p ( w i ∣ w i − n + 1 i − 1 ) p(w_i|w_{i-n+1}^{i-1}) p(wiwin+1i1)可由最大似然估计求得:
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(wiwin+1i1)=f(wiwin+1i1)=wic(win+1i)c(win+1i)
其中, ∑ w i c ( w i − n + 1 i ) \sum_{w_i}c(w_{i-n+1}^i) wic(win+1i)是历史串 w i − n + 1 i − 1 w_{i-n+1}^{i-1} win+1i1在给定语料中出现的次数,即 c ( w i − n + 1 i − 1 ) c(w_{i-n+1}^{i-1}) c(win+1i1),不管 w i w_i wi是什么。 f ( w i ∣ w i − n + 1 i − 1 ) f(w_i|w_{i-n+1}^{i-1}) f(wiwin+1i1)是在给定 w i − n + 1 i − 1 w_{i-n+1}^{i-1} win+1i1的条件下 w i w_i wi出现的相对频度,分子为 w i − n + 1 i − 1 w_{i-n+1}^{i-1} win+1i1 w i w_i wi同时出现的次数。下面举例说明。

2.1 一个例子

  给定一个训练预料:

"John read Moby Dick"
"Mary read a different book"
"She read a book by Cher"
我们来看根据bi-gram来求"John read a book"的概率

  根据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(readJohn)=wic(John wi)c(John read)=11p(aread)=wic(read wi)c(read a)=32p(booka)=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(readJohn)p(aread)p(booka)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(readCher)的时候会发现是0,但这个句子怎么看都是很合理的,这就是数据匮乏(稀疏)引起零概率的问题。解决这个问题要使用数据平滑的方法。

3 数据平滑

  数据平滑的基本思想是调整最大似然估计的概率值,使零概率增值,使非零概率下调,劫富济贫,消除零概率,改进模型的整体正确率。基本目标是使测试样本的语言模型困惑度越小越好。基本约束:
∑ 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 wip(wiw1w2wi1)=1

3.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(wiwin+1i1)=wi[1+c(wi1wi)]1+c(wi1wi)=V+wic(wi1wi)1+c(wi1wi)
其中 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(readCher)=V+wic(Cher wi)1+c(Cher read)=11+11+0p(aread)=V+wic(read wi)1+c(read a)=11+31+2p(booka)=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(readCher)p(aread)p(booka)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(wiwin+1i1)=δV+wic(win+1i)δ+c(win+1i)

3.2减值法/折扣法(Discounting)

  基本思想是修改训练样本中事件的实际计数,使样本中(实际出现的)不同事件的概率之和小于1,剩余的概率量分配给未见概率。

3.2.1 古德-图灵(Good-Turing)估计法

  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=0nrr。需要注意的是:
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=0nrr=r=0(r+1)nr+1=r=1nrr
也就是说, 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>0nrpr=1Nn1<1
因此,有 n 1 N \cfrac{n_1}{N} Nn1的剩余的概率量就可以均分给所有的未见事件(r=0)。
  Good-Turing估计法适用于大词汇集产生的符合多项式分布的大量的观察数据。有关Good-Turing方法的详细推导可以参考论文:on Turing’s Formula for Word Probabilities

3.2.2 Back-off(后备/后退方法,Katz平滑方法)

  当某一事件在样本中出现的频率大于阈值 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分配给未见事件。

3.2.3 绝对减值法(Absolute discounting)

  基本思想是从每个计数 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= \begin{cases} \cfrac{r-b}{N} & \ r>0 \\ \cfrac{b(R-n_0)}{Nn_0} &\ r=0 \end{cases} pr=NrbNn0b(Rn0) r>0 r=0
其中, n 0 n_0 n0为样本中未出现的事件的数目。 b b b为减去的常量, b ≤ 1 b \le 1 b1 b ( R − n 0 ) / N b(R-n_0)/N b(Rn0)/N是由于减值而产生的概率量。 N N N为样本中出现了 r r r次的事件总次数: n r ∗ r n_r*r nrr 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 bn1+2n2n1<1
详细可以参考论文:Estimating Small Probabilities by Leaving-one-Out.

3.2.4 线性减值法(Linear discounting)

  基本思想是从每个计数 r r r中减去与该计数成正比的量(减值函数为线性的),剩余概率量 α \alpha α n 0 n_0 n0个未见事件均分。
p r = { ( 1 − α ) r N   r > 0 α n 0   r = 0 p_r= \begin{cases} \cfrac{(1-\alpha)r}{N} & \ r>0 \\ \cfrac{\alpha}{n_0} & \ r=0 \\ \end{cases} pr=N(1α)rn0α r>0 r=0
自由参数 α \alpha α的优化值为 n 1 N \cfrac{n_1}{N} Nn1
  绝对减值法产生的n-gram通常优于线性减值法。

3.2.5 四种减值法的比较
  • Good-Turing:对非0事件按公式削减出现的次数,节留出来的概率均分给0概率事件。
  • Katz:对非0事件按Good-Turing法计算减值,节留出来的概率按低阶分布分给0概率事件。
  • 绝对减值法:对非0事件无条件削弱某一固定的出现次数值,节留出来的概率均分给0概率事件。
  • 线性减值法:对非0事件根据出现次数按比例削减次数值,节留出来的概率均分给0概率事件。

3.3 删除插值法(Deleted interpolation)

  基本思想是用低阶语法估计高阶语法,即当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(w3w2w1)=λ3p(w3w1w2)+λ2p(w3w2)+λ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(w3w1w2),p(w3w2),p(w3),第二部分用于计算 λ 1 , λ 2 , λ 3 \lambda_1,\lambda_2,\lambda_3 λ1,λ2,λ3:使语言模型对留存数据的困惑度最小。

参考资料:《统计自然语言处理》宗成庆

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值