前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通俗理解n-gram语言模型

通俗理解n-gram语言模型

作者头像
触摸壹缕阳光
发布2020-07-20 16:13:42
2.8K0
发布2020-07-20 16:13:42
举报
文章被收录于专栏:AI机器学习与深度学习算法

本文主要介绍n-gram语言模型,如果想要了解语言模型的相关知识可以看《带你理解语言模型》。

▲参数的数量

代码语言:javascript
复制
商品 和 服务
商品 和服 物美价廉
服务 和 货币
代码语言:javascript
复制
我 打 篮球
我 打 游泳

▲n-gram语言模型汇总

随着n的取值越大,n-gram模型在理论上越精确,但是也越复杂,需要的计算量和训练语料数据量也就越大,并且精度提升的不够明显,所以在实际的任务中很少使用n ≥ 4的语言模型。

无论是原始的语言模型还是n-gram语言模型,都是使用极大似然估计法来估计概率值,通过统计频次来近似概率值,统计频次极有可能统计不到较长句子的频次。

  • 如果分子为0,估计的概率值为0,由于连乘的方式会导致最终计算出句子的概率值为0;
  • 如果分母为0,分母为0,计算的公式将没有任何意义;

这被称为数据稀疏,对于n-gram语言模型来说,n越大,数据稀疏的问题越严重。即使是使用n相对比较小的二元语言模型,许多二元靠语料库也是统计不到的。比如对于下面这个小型的语料库:

代码语言:javascript
复制
商品 和 服务
商品 和服 物美价廉
服务 和 货币

"商品 货币"的频次就为0,当n-gram语言模型中的n越小,可统计的n元也就越丰富,一个很自然的解决方案就是利用低阶n元语法平滑到高阶n元语法。所谓的平滑就是字面上的意思:使n元语法频次的折线平滑为曲线。我们不希望二元语法"商品 货币"的频次突然跌倒0,因此使用一元语法"商品"和("或",不同的平滑方法可能需要不同的处理)"货币"的频次去平滑它。

平滑策略是语言模型的研究课题之一,人们提出了很多平滑技术,比如线性差值法(linear interpolation)、图灵平滑(Good-Turing)、加法平滑(Add-One Smoothing)等。

总结下基于统计的 n-gram 语言模型的优缺点: 优点:

  1. 采用极大似然估计,参数易训练;
  2. 完全包含了前 n-1 个词的全部信息;
  3. 可解释性强,直观易理解;

缺点:

  1. 缺乏长期依赖,只能建模到前 n-1 个词;
  2. 随着 n 的增大,参数空间呈指数增长;
  3. 数据稀疏,难免会出现OOV的问题;
  4. 单纯的基于统计频次,泛化能力差;

参考:

  1. 《自然语言处理入门》
  2. 《实战Google深度学习框架》
  3. https://zhuanlan.zhihu.com/p/52061158
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI机器学习与深度学习算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档