NLP - 语言模型


语言模型

用概率论的专业术语 描述语言模型就是:为长度为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(w2w1)P(w3w1,w2)...P(wiw1,w2,...wi1)...P(wmw1,w2,...wm1)

上述公式缺点:从第三项起的每一项计算难度都很大。
解决方法:提出n元模型来降低计算难度。


n 元模型(n-gram model)

n元模型在估算条件概率时,忽略距离大于或等于 n 的上文词的影响。
因此第i个词出现的概率 P ( ω i ∣ ω 1 , ω 2 , … , ω i − 1 ) P(ω_i | ω_1, ω_2, …, ω_{i-1}) P(ωiω1,ω2,,ωi1) 的计算可简化为:
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,,ωi1)=P(wiwi(n1),...,wi1)


一元模型(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,,ωi1)=P(wiwi1)


三元模型(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,,ωi1)=P(wiwi2,wi1)


当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,,ωi1)=count(wi(n1),...,wi1count(wi(n1),...,wi1,wi)

count(…) 标识词语在语料库中出现的总次数;
以上公式会出现分子分母为零的情况,一般需要配合相应的平滑算法来解决该问题,如拉普拉斯平滑算法等。


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值