一、语言模型

旨在:给一个句子或一组词计算一个联合概率

作用:

  • 机器翻译:用以区分翻译结果的好坏
  • 拼写校正:某一个拼错的单词是这个单词的概率更大,所以校正
  • 语音识别:语音识别出来是这个句子的概率更大
  • 总结或问答系统

相关任务:在原句子的基础上,计算一个新词的条件概率,该概率与P(w1w2w3w4w5)息息相关。

任何一个模型计算以上两个概率的,我们都称之为语言模型LM。

二、如何计算概率

方法:依赖概率的链式规则

从而有:

问题:如何预估这些概率

方法一:计数和细分

但是不可能做到!

原因:句子数量过于庞大;永远不可能有足够的数据来预估这些(语料库永远不可能是完备的)

方法二:马尔可夫假设

或者:

即:

所以:

三、马尔可夫模型

1. Unigram model

其假设词是相互独立的

2. Bigram model

3. N-gram models

但是并不有效,因为语言本身存在长距离依存关系

比如"The computer which ......crashed" 单词crash本身其实是依赖于主语computer的,但是中间隔了一个很长的从句,在马尔可夫模型中就很难找到这样的依存关系

但是在实际应用中,发现N-gram可以一定程度上解决这个问题

四、预估N-gram概率

以bigram为例。

最大似然估计:

,即,

分子表示wi紧跟着wi-1出现的计数,分母表示wi-1出现的计数

举例如下:

语料库:

计算bigram概率:

结果:

更复杂的举例如下:

一语料库中有9222个句子,这里我们只计数其中8个我们想要关注的单词

其中每个单词后面紧跟着的单词计数如下:

接下来我们需要做的是归一化

其中有些为0,是因为偶然性或者结构语法上的原因

在获得每个bigram之后,就可以预估一个句子的概率了

举例如下:

其中<s>是一个句子开始的标记,</s>是一个句子结束的标记

实际中,在计算概率时使用log,如下:

原因:

1. 避免计数下溢,多个小于0的数相乘之后可能得到的数会非常非常小,甚至接近于0

2. 使用log之后可以将乘法转换成加法,计算更快

 其他语言模型:

  • SRILM
  • Google N-Grams
  • Google Book N-Grams

转载于:https://www.cnblogs.com/a-present/p/9424937.html

【NLP_Stanford课堂】语言模型1相关推荐

  1. 【NLP_Stanford课堂】正则表达式

    或者 [Ww]oods,方括号里的是或的关系,符合其一即被提出.用来匹配单个字符 [A-Z]:表示所有的大写字母之一 [a-z]:表示所有的小写字母之一 [0-9]:表示所有的0-9的数字之一 否定: ...

  2. 已有123所大学将云创大数据人工智能免费直播课引入课堂!

    4月28日,云创大数据正式发文公布了云创大学可以为高校提供高质量免费直播授课的通知.消息一经发出,受到各高校的积极反馈.截止到目前,已有123所大学将云创的大数据人工智能免费直播课引入课堂. 从5月2 ...

  3. 【中文分词系列】 5. 基于语言模型的无监督分词

    转载:https://spaces.ac.cn/archives/3956/ 迄今为止,前四篇文章已经介绍了分词的若干思路,其中有基于最大概率的查词典方法.基于HMM或LSTM的字标注方法等.这些都是 ...

  4. TensorFlow 实现基于LSTM的语言模型

    一.LSTM的相关概念 博客上有很多讲解的很好的博主,我看的是这个博主的关于LSTM的介绍,感觉很全面,如果对LSTM原理不太明白的,可以点击这个链接.LSTM相关概念,这里就不多做介绍了哈! 二.G ...

  5. Deep learning 资源、NLP词向量和语言模型

    转自:http://blog.csdn.net/xceman1997/article/details/38423541 在网上总能发现一些感兴趣的东西,从前是直接转载过来,现在发现太多了,还是汇总ur ...

  6. 华南师范宋宇老师课堂对话论文翻译

    文章目录 课堂对话语义内容的自动分类 摘要 介绍 文献综述 方法 过程 结论 分类模型的性能 论述 结论.限制.贡献和影响 课堂对话语义内容的自动分类 于松1.2,顺伟磊3,天勇浩2.3应鼎1,紫欣兰 ...

  7. 自己动手实现20G中文预训练语言模型示例

    起初,我和大部分人一样,使用的是像Google这样的大公司提供的Pre-training Language Model.用起来也确实方便,随便接个下游任务,都比自己使用Embedding lookup ...

  8. 掩码语言模型(Masked Language Model)mlm

    https://www.cnblogs.com/anai/p/11645953.html bert 论文 从语言模型到Seq2Seq:Transformer如戏,全靠Mask https://zhua ...

  9. c语言中手机系统,一种手机课堂C语言编程系统的制作方法

    技术特征: 1.一种手机课堂C语言编程系统,其特征在于:该系统由手机端C语言编译运行单元.嵌入式主机端传输单元.台式机端显示单元和投影仪端显示单元组成:所述手机端C语言编译运行单元.嵌入式主机端传输单 ...

最新文章

  1. easyui messager 消息框 对话框
  2. LeetCode Random Pick Index(蓄水池抽样算法)
  3. ORACLE 11GR2 RAC的网络规划解析
  4. 测试软件测试赢在测试2:中国软件测试专家访谈录
  5. cenos下安装MySQL最新版(5.7.18)记录。附卸载老版本过程
  6. 强制html元素不随窗口缩小而换行
  7. 分类问题的模型评估指标总结
  8. 数据结构之树状数组(候补)
  9. 阅读《构建之法》第6 第7章
  10. js中字符串类型转化toString、parseInt、parseFloat、Number
  11. Himall商城LinqHelper帮助类(3)
  12. 华为android解锁,华为bootloader怎么解锁 华为手机bootloader解锁教程
  13. 软件测试-APP专项测试
  14. Python爬虫实战:1000图库大全【别轻易点进来】
  15. STM32内部FLASH使用简易流程
  16. Flask(6):Flask的闪现+Flask的蓝图
  17. ssh 所选的用户密钥未在远程主机上注册
  18. 用计算机制作演示文稿教案博客,《制作多媒体演示文稿》教学案例
  19. 高频信号发生器设计—电感三点式振荡电路
  20. drwxr-xr-x是啥意思

热门文章

  1. 软件框架和软件架构的区别?
  2. ExtJs2.0学习系列(2)--Ext.Panel
  3. linux 内存监控工具,系统运维|你值得拥有 —— 25 个 Linux 性能监控工具
  4. 改善深层神经网络:超参数调整、正则化以及优化——2.9学习率衰减
  5. leetcode - 1105. 填充书架
  6. Python下基于requests及BeautifulSoup构建网络爬虫
  7. Golang笔记—文件操作
  8. Socket(套接字)简介
  9. git - 基础 - 01 - git reset --hard 回滚以后,看不到之前的分支版本怎么解决:
  10. linux7 samba,Centos 7使用Samba实现文件共享