赞
踩
语言模型用来判断:是否一句话从语法上通顺
用计算概率的方式判断
P
L
M
(
今
天
是
周
日
)
>
P
L
M
(
今
天
周
日
是
)
P_{LM}(今天是周日)> P_{LM}(今天周日是)
PLM(今天是周日)>PLM(今天周日是)
那么如何得到这个模型
P
L
M
P_{LM}
PLM
Language Model(LM)的目标(object):
Compute the probability of a sentence or sequence of words. p ( s ) = p ( w 1 , p 2 , p 3 , . . . , p n ) p(s)=p(w_1,p_2,p_3,...,p_n) p(s)=p(w1,p2,p3,...,pn)
当一条句子中包含的单词太多,会导致这条句子在语料库中很难找到。因此计算这种长句的概率,大部分的概率值都为0。那么 对 长句 通过统计的方法 计算出来的概率值是没有多大意义的。
比如你要计算
p
(
休
息
∣
今
天
,
是
,
春
节
,
我
们
,
都
)
p(休息 | 今天,是,春节,我们,都)
p(休息∣今天,是,春节,我们,都)的概率值,那么你要统计出 “今天是春节我们都” 出现的频数,然后统计出 “今天是春节我们都休息” 的频数。
但是你会发现 这句子在语料库中出现的次数太低,导致结果没有多大意义。
解决sparsity 稀疏性问题 的思路:马尔可夫假设
举例:
1
s
t
o
r
d
e
r
1^{st}order
1storder的语言模型的使用案例:
由不同的马尔可夫假设,可以得出不同的语言模型 Language Model: Unigram, Bigram, N-gram
一般情况下,N取2或者3.
因为是Unigram ,则有
那么现在,我们就要计算出这里的每个概率值
这里,假设 有一个语料库
我们要计算出,
p
(
我
们
)
p(我们)
p(我们)的概率值
通过统计,发现,
语料库中 词语 “我们” 出现的次数为C(我们) = 100 次
语料库中,总共的词语个数为
V
=
1
0
6
V = 10^6
V=106,
则
p
(
我
们
)
=
100
/
1
0
6
p(我们) = 100/10^6
p(我们)=100/106
下面是一个完整的例子
这里错了, 这里,V是词典中单词的个数(不包括重复的单词)。所以上面的V = 17,而不是19
同理,可得出
这里错了, 这里,V是词典中单词的个数(不包括重复的单词)。所以上面的V = 17,而不是19
评估模型为:
这里:
x是平均的log 似然值
Perplexity 越小,模型越好
评测过程:
共有4个平滑函数
为什么需要平滑?
因为稀疏性问题, 有的句子,有的词 ,在语料库中 就是没有。
那么计算的概率值必然为0. 但是,有的时候,我们不希望它为0,(因为不能因为一个单词的缺失就放弃整个句子),那么我们就可以加上平滑,从而保证结果不为0.
这里,V是词典中单词的个数(不包括重复的单词)。
将还没有出现的情况也考虑了进去。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。