一 序

本文属于贪心NLP 学习笔记系列。今天开始,明显的数学概念多了起来。

二 unigram

不考虑单词之间的顺序,依赖于马尔科夫假设。

假设w1,w2,...wn是相互独立的:一个事件的发生与否,不会影响另外一个事件的发生。

而P(w1)、P(w2).....P(wn)的计算方法如下:统计语料库中某个单词出现的次数,再除以语料库的总词数。

缺点: 单词相互独立,所以语义上不通顺的跟通顺的概率一样,不能很好的区分。

三 bigram(基于1st order markov assumption)

考虑单词之间(前面的单词)的顺序

而P(w1)、P(w2/w1).....P(wn/wn-1)的计算方法如下:统计语料库里面某个单词后目标单词的概率

四 N-gram

一般情况下,不会考虑N太多,bigram是最多使用的。

只要出现语料库没有的单词,就会出现概率为0的case。

五  语言模型的评估

但是,这种方法一方面难以操作,另一方面可能非常耗时,可能跑一个evaluation需要大量时间,费时难操作。有没有不经过上面的情况,直接评估语言模型呢?

可以给定一个句子,让语言模型类似填坑的方式预测单词,以此来评估语言模型。

Perplexity 困惑度

困惑度是交叉熵的指数形式,网上会搜到很多观念与困惑度的学术型回答,主要推导公式。

老师先给了通俗解释:给测试集的句子赋予较高概率值的语言模型较好,当语言模型训练完之后,测试集中的句子都是正常的句子,那么训练好的模型就是在测试集上的概率越高越好

这个在文本处理尤其是无监督学习很常用。

这里x= average log likelihood,都是术语,老师没有解释。还不太没明白。Perplexity= , X 越大,Perplexity越小。

计算规则: 现根据训练好的模型,去查询likelhood,再计算log,求平均得出x,代入公式Perplexity= ,计算

六 n-gram 语言模型中的平滑技术

我们知道自然语言处理中的一大痛点就是出现未登录词(OOV)的问题,即测试集中出现了训练集中未出现过的词,导致语言模型计算出的概率为零。

优化方法:smoothing 平滑

我们之前的概率计算,可以认为是最大似然估计(maximum likelihood estimation, MLE)。

样本太多,无法得出分布的参数值,可以采样小样本后,利用极大似然估计获取假设中分布的参数值。

这个也还没理解,老师说以后再展开讲。

就是利用已知的样本结果信息,反推最具有可能(最大概率)导致这些样本结果出现的模型参数值!

网上的例子:

假如有一个罐子,里面有黑白两种颜色的球,数目多少不知,两种颜色的比例也不知。我 们想知道罐中白球和黑球的比例,但我们不能把罐中的球全部拿出来数。现在我们可以每次任意从已经摇匀的罐中拿一个球出来,记录球的颜色,然后把拿出来的球 再放回罐中。这个过程可以重复,我们可以用记录的球的颜色来估计罐中黑白球的比例。假如在前面的一百次重复记录中,有七十次是白球,请问罐中白球所占的比例最有可能是多少?

70%,怎么推导的还不知偶。就是直觉了

这里的v是词典库的大小(不是所有单词出现多少次),分子加1可以理解,为了让那些出现频次为0的

NLP学习笔记14-语言模型(下)相关推荐

  1. NLP学习笔记6--Lecture/语言模型/预处理/独热编码/word2vec/文本特征工程

    语言模型用来判断:是否一句话从语法上通顺 先分词  然后算出联合概率 怎么算? chain rule 条件很长的时候 会遇到一个问题 sparsity 数据的稀疏性 用马尔科夫假设  最简单的假设 之 ...

  2. 利用计算机技术实现对文本篇章,自然语言处理NLP学习笔记一:概念与模型初探...

    前言 先来看一些demo,来一些直观的了解. 自然语言处理: 可以做中文分词,词性分析,文本摘要等,为后面的知识图谱做准备. 知识图谱: 还有2个实际应用的例子,加深对NLP的理解 九歌机器人: 微软 ...

  3. Linux学习笔记14

    Linux学习笔记14 Linux学习笔记14 DNS服务搭建 基本介绍 使用bind搭建dns服务 增加一个域名zone 配置DNS转发 配置主从 测试主从同步 后续课程 DNS服务搭建 基本介绍 ...

  4. 华为HCIA-datacom 学习笔记14——WLAN概述

    华为HCIA-datacom 学习笔记14--WLAN概述 1.WLAN(无线局域网) 通过无线技术构造的无线局域网络.WLAN广义上是指以无线电波.激光.红外线等无线信号代替有线局域网中的部分或全部 ...

  5. 【白帽子学习笔记14】SQL注入常用语句

    [白帽子学习笔记14]SQL注入常用语句 目前网站中使用的最多的数据库要算是 ACCESS.SQL Server(MSSQL).MySQL 这三个了,所以这里的手工注入,我就以他们三个数据库来分成三 ...

  6. 学习笔记(1)centos7 下安装nginx

    学习笔记(1)centos7 下安装nginx 这里我是通过来自nginx.org的nginx软件包进行安装的. 1.首先为centos设置添加nginx的yum存储库 1.通过vi命令创建一个rep ...

  7. node.js学习笔记14—微型社交网站

    node.js学习笔记14-微型社交网站 1.功能分析 微博是以用户为中心,因此需要有注册和登录功能. 微博最核心的功能是信息的发表,这个功能包括许多方面,包括:数据库访问,前端显示等. 一个完整的微 ...

  8. 【转】 C#学习笔记14——Trace、Debug和TraceSource的使用以及日志设计

    [转] C#学习笔记14--Trace.Debug和TraceSource的使用以及日志设计 Trace.Debug和TraceSource的使用以及日志设计   .NET Framework 命名空 ...

  9. 台大李宏毅Machine Learning 2017Fall学习笔记 (14)Unsupervised Learning:Linear Dimension Reduction

    台大李宏毅Machine Learning 2017Fall学习笔记 (14)Unsupervised Learning:Linear Dimension Reduction 本博客整理自: http ...

  10. NLP学习笔记一(语言模型+NLM+Word2Vec)

    花书十二章+NLP 最近刚好轮到自己讲花书十二章,感觉goodfellow在NLP这块写的不是很全,所以就自己参考宗老师的<统计自然语言处理>来理了一下思路,现在整理一下. 一.NLP前言 ...

最新文章

  1. 包子和饺子之扫地机器人_扫地机器人和体重秤在一起,能生出什么宝宝? | 爆笑囧图...
  2. shell编程之特殊变量
  3. 数学中不可能实现的图形
  4. MoneyRunner API汇总
  5. 用c++做算法题的注意事项(一)
  6. 复合存储引擎的设计和实现(包含ORM和内容存储)
  7. Linux安装 deb包命令
  8. STM8L超低功耗程序编写教学,简单易懂
  9. MDM数据清洗功能开发说明
  10. delphi LPT1端口打印与开钱箱
  11. 使用redis缓存来实现最近的浏览记录
  12. opengl介绍 webGL Open Inventor、Cosmo3D、Optimizer 3DLabs
  13. SM2算法+开发中注意事项
  14. golang中channal容量的问题
  15. 使用cle 调用opengl的简单例子(android)
  16. 求函数:x的n次方(函数递归)
  17. 低调,中国的FPGA到底有多强?!
  18. Webots中常用的函数(C版)
  19. 原厂对NPI安全稽核要求
  20. eclipse改变背景颜色及背景图片

热门文章

  1. C语言自制简单点菜系统
  2. Elasticsearch Nested类型深入详解
  3. Jetson TX1(视频)、TK1(音视频)
  4. android 加速度过滤,如何校准Android加速度计并降低噪音,消除重力
  5. 如何给人物模型添加动画效果
  6. BDC模式与OKCODE、 CALL TRANSACTION用法
  7. 两个自变量和一个因变量spss_两个自变量(离散)对一个因变量(连续)的影响(SPSS:双因素方差分析)...
  8. html可以简写的属性,css有哪些缩写属性?
  9. 基于Android的天气预报系统的设计和实现
  10. 服务器白屏维修,液晶屏故障汇总及检修方法之一(白屏)