N-gram介绍

1、简介

N-gram是一种基于统计的语言模型,常常用来做句子相似度比较,句子合理性判断。(语言模型就是用来计算一个句子的概率的模型,也就是判断一句话是否合理的概率,RNN是神经语言模型)

N-Gram是基于一个假设:第n个词出现的概率与前n-1个词相关,而与其他任何词不相关。因此整个句子出现的概率就等于各个词出现的概率的乘积。各个词的概率可以通过语料中统计得到。假设句子 T T T是有词序列 w 1 , w 2 , w 3 . . . w n w_{1},w_{2},w_{3}...w_{n} w1,w2,w3...wn组成,用公式表示N-Gram语言模型如下:
P ( T ) = P ( w 1 ) p ( w 2 ) p ( w 3 ) p ( w n ) = p ( w 1 ) p ( w 2 ∣ w 1 ) p ( w 3 ∣ w 1 w 2 ) . . . p ( w n ∣ w 1 w 2 w 3... ) P(T)=P(w1)p(w2)p(w3)p(wn)=p(w1)p(w2|w1)p(w3|w1w2)...p(wn|w1w2w3...) P(T)=P(w1)p(w2)p(w3)p(wn)=p(w1)p(w2w1)p(w3w1w2)...p(wnw1w2w3...)

2、N-gram中的数据平滑方法:

当N变大时,更容易出现这样的状况:某些N-gram从未出现过,这就是稀疏问题。

例如,在bi-gram中,若词库中有20k个词,那么两两组合就有近2亿个组合。其中的很多组合在语料库中都没有出现,从而整个句子的概率就会为0。最后的结果是,我们的模型只能计算零星的几个句子的概率,而大部分的句子算得的概率是0,这显然是不合理的。

2.1 +1法

对所有的频率都加1,因此对于unigram而言有:
P a d d 1 ( w i ) = C ( w i ) + 1 M + ∣ V ∣ P_{add1}(w_{i})=\frac{C(w_{i})+1}{M+|V|} Padd1(wi)=M+V

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值