以kenlm为例,详细介绍N-gram语言模型

本文为转载https://blog.csdn.net/asrgreek/article/details/81979194的基础上,做了一些推演与推演过程的修正,如有错误欢迎指正。

本文以KenlM介绍常用的N-gram语言模型原理。KenlM采用的平滑技术是Modified Kneser-ney smoothing

以以下代码段为例介绍,以N=2为例,即2-gram,bigram介绍N-gram模型:

我
你 我
他
我
你

接下来我们一步步剖析该模型的实现过程

一、增加<s>和</s>标记符,表示句子的开头和结尾

<s> 我 </s>
<s> 你 我 </s>
<s> 他 </s>
<s> 我 </s>
<s> 你 </s>


二、把每个词映射到唯一的数字id,为了更直观地描述下面的关键步骤,我们这里就不把单词映射为数字id

三、Counting(原始计数)。也就是把相同的字合并,然后排序(假设编码顺序为<s>、我、你、他、<\s>) 。根据步骤一的文本,我们可以得到1-gram和2-gram的原始计数counting一列:

 

表1 1-gram counting

1-gram 原始计数counting 中间计算过程 Adjust count
<s> 5 由公式第一行,w_1^n=<s>,a(<s>)=c(<s>)=5 5
3 “我”前面出现了“你”和“<s>”,a(我)=2 2
2 “你”前面出现了“<s>”,a(你)=1 1
1 “他”前面出现了“<s>”,a(他)=1 1
</s> 5 “</s>”前面出现了“我”,“你”,“他”a(<\s>)=3 3

表2 2-gram counting
2-gram 原始计数 中间计算过程

Adjust

count

<s> 我 2 根据式1的条件表达式(n=N),故与原始计数相同 2
<s> 你 2 同上 2
<s> 他 1 同上 1
我 </s> 3 同上 3
你 我 1 同上 1
你 </s> 1 同上 1
他 </s> 1 同上 1

四、Adjusting(调整计数)。其基本思想是对于那些lower-gram,我们不care其出现的次数,而是关心其作为novel continuation的可能性。比如“York”,其在语料中出现的次数一般会比较多,因为“New York”是很高频的词。但“York”作为continuation(中文意思:别的词把“york”作为接续词)的可能性就较低,也就是说它前面的词只有“new”等少数几类词,所以应该给它较低的计数。其公式如右:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值