前言,上一篇我们学习了一些基于醉打匹配规则的分词方法,这一篇我们介绍基于概率统计的方法之一,概率语言模型LM。

一:什么是语言模型?
每一句话,都是由若干个词语组成,这些词语的排列组合由若干种,但是只有少量的句子是能被该语言所理解的。中文有中文的语言习惯,英语有英语的语言习惯,那么怎么知道某个句子某个句子Sentence是不是说的是 “正常话” 呢?是不是能被人理解的话呢?

假如存在一个评分机制,score(美国, 特朗普)那么一定是大于score(英国, 特朗普)的,我们需要建立这么个评分机制。

二:什么是概率语言模型?
给每个句子赋予一定的概率计算过程,得到这个句子的概率值P(S),根据P(S)的大小来决定句子的真实程度,越像人话的句子P(S)越大,越不像人话的句子概率越小。假设句子由若干词语组成,S=w1,w2,w3,w4…wn公式如下:

三:马尔科夫假设,N-gram模型,
我们可以看到原始的计算P(S)可能存在很长的条件概率的计算,者带来了非常大计算量和存储量,在实际应用上是不可能采用的,于是就有了马尔可夫假设来逼近和近似于原计算公式。
这里需要提到有限视野假设,即每一个词语出现的概率只跟前面的n-1个词语有关,不再严格要求全部相关了。新的式子如下:

以此类推 (忽略细节啊):

我们发现相关变量n越少,计算和存储的量越小,但是呢越无法接近于真实场景,有时候一句个词语跟前后很多词语相关。但是反过来说,n越大,越能反应真是情况,但是带来了巨大存储和计算量。N如何选取是一个权衡的过程。

四:怎么学习(得到)这么个模型?
我们已经知道了,句子是由词语排列组合而成的,每一个组合都是可以通过计算一个概率值来判断合理性的程度,通过马尔科夫假设可以简化计算。

如何计算各个条件概率值呢,首先我们需要给个非常大预料库,对每一种词语的条件概率进行统计。

通过统计各个条件概率的值,即可学习到该N-gram的语言模型。

事实上,自然语言处理方向上由很多的平滑方法,主要包括有:

加法平滑
古德-图灵(Good-Turing)估计法
Katz平滑方法
Jelinek-Mercer平滑方法
Witten-Bell平滑方法
绝对减值法
Kneser-Ney平滑方法

概率出现0就是不平滑,我们需要消除这种现象,就是给他赋予一个很小的概率值,以加法平滑为例。

一般情况下λ取值是1,N分母加上Nλ,是为了尽量保证概率和为1,当出现概率为0 的时候,通过该式子可以做到平滑效果,其他的暂时不细说了,有兴趣可以自行百度学习。

其他的技巧:我们可以看到概率是个很小的值,连续乘法会更小,为了不出现-NaN的情况,也就是溢出的情况,一般对概率取log函数(把乘法操作转成假发操作),然后求相反数,也就是说我们希望P(S)越大越合理,也就是希望(-logP(S))越小月合理。

五:其他语言模型
除此之外还有其他的语言模型,在以后的学习力慢慢讲解。

HMM隐式马尔科夫
CRF条件随机场
NNLM前馈神经网络语言模型
RNNLM循环神经网络语言模型

NLP《语言模型(一)-- 基于统计的N-Gram语言模型》相关推荐

  1. 机器学习笔记之马尔可夫链蒙特卡洛方法(四)吉布斯采样

    机器学习笔记之马尔可夫链蒙特卡洛方法--吉布斯采样 引言 回顾:MH采样算法 基于马尔可夫链的采样方式 细致平衡原则与接收率 MH采样算法的弊端 吉布斯采样方法 吉布斯采样的采样过程 吉布斯采样的推导 ...

  2. NLP《词汇表示方法(三)word2vec》

    Word2Vec是2013年Google发布的工具,也可以说是一个产生词向量的一群模型组合,关于词向量,也就是嵌入词向量的解释之前也解释了,这里不赘述.该工具主要包含两个词向量的生成模型,跳字模型(s ...

  3. 深入理解深度学习——Word Embedding(六):负采样(Negative Sampling)优化

    分类目录:<深入理解深度学习>总目录 相关文章: · Word Embedding(一):word2vec · Word Embedding(二):连续词袋模型(CBOW, The Con ...

  4. 负采样Negative Sampling

    1.噪声对比估计(Noise contrastive estimation) 语言模型中,根据上下文c,在整个语料库V中预测某个单词w的概率,一般采用softmax形式,公式为: NCE:将softm ...

  5. 自然语言处理中的负采样

    目录 word2vec出现的背景 跳字模型(skip-gram) 连续词袋模型(CBOW) 小结 负采样 具体训练过程 word2vec出现的背景 我们都知道,自然语言处理需要对文本进行编码,将语言中 ...

  6. NLP《词汇表示方法(四)负采样》

    一:负采样 在CBOW和Skip-Gram模型中,最后输出的都是词汇的one-hot向量,假如我们的词汇表的数量是10000,嵌入空间的维度是300,再假设此时是以Skip-Gram模型只预测cont ...

  7. 花书+吴恩达深度学习(二四)蒙特卡罗方法(重要采样,MCMC)

    文章目录 0. 前言 1. 重要采样 2. 马尔可夫链蒙特卡罗 MCMC 3. 不同峰值之间的混合挑战 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~ 花书+吴恩达深度学习( ...

  8. 【NLP】word2vec负采样

    一.理解负采样之前,需要先回顾一下word2vec的训练流程: 1.初始化一个embedding权重矩阵W1(N*D)→2.根据输入单词直接挑出W1矩阵中对应的行向量→3.相加并求平均得一个向量(1* ...

  9. [nlp] 负采样 nce_loss

    论文:http://demo.clab.cs.cmu.edu/cdyer/nce_notes.pdf 参考:求通俗易懂解释下nce loss? - 知乎 参考:(三)通俗易懂理解--Skip-gram ...

  10. NLP-词向量(Word Embedding)-2013:Word2vec模型(CBOW、Skip-Gram)【对NNLM的简化】【层次Softmax、负采样、重采样】【静态表示;无法解决一词多义】

    一.文本的表示方法 (Representation) 文本是一种非结构化的数据信息,是不可以直接被计算的.因为文本不能够直接被模型计算,所以需要将其转化为向量. 文本表示的作用就是将这些非结构化的信息 ...

最新文章

  1. Unity旋转问题的总结
  2. 杂谈:微服务的体系结构评审的三个问题
  3. [云炬创业管理笔记]第一章测试2
  4. boost::multiprecision模块cpp_dec_float_100相关的测试程序
  5. SQL SERVER提供了大量的WINDOWS和SQLSERVER专用的排序规则
  6. [家里蹲大学数学杂志]第034期中山大学2008年数学分析考研试题参考解答
  7. Servlet第三篇【request和response简介、response的常见应用】
  8. php 操作数组 (合并,拆分,追加,查找,删除等)
  9. python从入门到放弃-学Python方法用错,直接从入门到放弃!
  10. Understand Java hasCode() method
  11. 论文阅读 || 语义分割系列 —— deeplabv1 详解
  12. 【软件工程习题答案】第八章 维护
  13. QQ小程序开发之 一些前期准备:预约开发账号、下载安装开发者工具、创建qq小程序
  14. 2020.1.1 只争朝夕,不付韶华
  15. Android ImageView属性
  16. 磁阻式随机存储器MRAM基本原理
  17. 关于Bundle Adjustment的直观理解
  18. 事业单位工资计算机公积金计算,求问事业单位住房公积金如何计算
  19. STM32单片机开发实例 基于STM32单片机的温室大棚监测系统
  20. 手机ufs2.1测试软件,内置UFS2.1:小米9手机闪存速度测试

热门文章

  1. 什么样的前端框架才是一个好框架
  2. jquery学习。。
  3. form的enctype和action
  4. [合作赞助]九叔生日由中国移动、51cto、奇虎360以及一帆浩瀚联合举办
  5. 一个Web开发的客户端基础技术测试Demo
  6. Win2003 运行 命令行 快捷操作
  7. Map 和 WeakMap
  8. 启动/关闭数据库、实例及服务
  9. 多用as少用强制类型转换
  10. 【python】Macbook的Anaconda查看、创建和管理python环境