Traditional Language Model通常用于回答下述问题:

How likely is a string of English words good English ?

\(p_{LM}(\)the house is small\()\ge p_{LM}(\) small the is house\()\)
\(p_{LM}(\)I am going home\()\ge p_{LM}(\)I am going house\()\)

生成该句子 \(W=w_1, w_2, w_3, w_4...w_n\) 的概率为\(p(W)\) 如何计算?

我们可以使用 chain rule 将该句子分解(decompose):

\[\begin{split}p(w_1, w_2, w_3...w_n) &=p(w_1) * p(w_2|w_1)*p(w_3|w_1,w_2)\cdots* p(w_n| w_1, w_2\cdots w_{n-1})\end{split}\]

我们发现 \(p(w_n| w_1, w_2\cdots w_{n-1})\)需要很多前置项\(w_1, w_2\cdots w_{n-1}\),在数据集中很难计算,十分稀疏(sparse)。

Markov 假设

  • 当前词只和前面的词相关;
  • 只和前面的\(k\)个单词相关

这样表示就相对简便。

uni-gram model

\[P(w_i|w_0\cdots w_{i−1})\approx P(w_i)\]

Bi-gram model

\[P(w_i|w_0\cdots w_{i−1})\approx P(w_i|w_{i-1})\]

Tri-gram model

\[P(w_i|w_0\cdots w_{i−1})\approx P(w_i|w_{i-1},w_{i-2})\]

例如,2-gram的 language model:

\[p(w_1, w_2, w_3,\cdots w_n)\approx p(w_1) * p(w_2|w_1) * p(w_3|w_2) \cdots p(w_n|w_{n-1})\]

n-gram probability estimation

2-gram概率估计

\[p(w_2|w_1)=\frac{count(w_1,w_2)}{count(w_1)}\]

所以我们只需要找一个大词库,然后统计\(w_1\)出现的次数和\(w_1,w_2\)共同出现的次数,即可。

Linear interpolation

  • Bigram: \(P(w_i∣w_{i−1})=\lambda_2 P(w_i∣w_{i−1})+ (1−λ_2) P(w_i)\)

  • Unigram: \(P(w_i)=\lambda_1 P(w_i)+(1-\lambda_1)\frac{1}{N}\)

Traditional Language Model的更多相关文章

  1. [IR] Tolerant Retrieval & Spelling Correction & Language Model

    Dictionary不一定是个list,它可以是多种形式. 放弃Hash的原因: 通常,tree是比较适合的结构. From: http://www.cnblogs.com/v-July-v/arch ...

  2. 用CNTK搞深度学习 (二) 训练基于RNN的自然语言模型 ( language model )

    前一篇文章  用 CNTK 搞深度学习 (一) 入门    介绍了用CNTK构建简单前向神经网络的例子.现在假设读者已经懂得了使用CNTK的基本方法.现在我们做一个稍微复杂一点,也是自然语言挖掘中很火 ...

  3. A Neural Probabilistic Language Model

    A Neural Probabilistic Language Model,这篇论文是Begio等人在2003年发表的,可以说是词表示的鼻祖.在这里给出简要的译文 A Neural Probabili ...

  4. tensorflow world language model

    上文提到了pytorch里的world language model,那么怎么能不说tensorflow的实现呢,还是以tensorflow ptb的代码为例说说. 地址: https://githu ...

  5. 论文分享|《Universal Language Model Fine-tuning for Text Classificatio》

    https://www.sohu.com/a/233269391_395209 本周我们要分享的论文是<Universal Language Model Fine-tuning for Text ...

  6. language model ——tensorflow 之RNN

    代码结构 tf的代码看多了之后就知道其实官方代码的这个结构并不好: graph的构建和训练部分放在了一个文件中,至少也应该分开成model.py和train.py两个文件,model.py中只有一个P ...

  7. NLP问题特征表达基础 - 语言模型(Language Model)发展演化历程讨论

    1. NLP问题简介 0x1:NLP问题都包括哪些内涵 人们对真实世界的感知被成为感知世界,而人们用语言表达出自己的感知视为文本数据.那么反过来,NLP,或者更精确地表达为文本挖掘,则是从文本数据出发 ...

  8. 将迁移学习用于文本分类 《 Universal Language Model Fine-tuning for Text Classification》

    将迁移学习用于文本分类 < Universal Language Model Fine-tuning for Text Classification> 2018-07-27 20:07:4 ...

  9. #论文阅读# Universial language model fine-tuing for text classification

    论文链接:https://aclweb.org/anthology/P18-1031 对文章内容的总结 文章研究了一些在general corous上pretrain LM,然后把得到的model t ...

随机推荐

  1. Microsoft IoT Starter Kit 开发初体验

    1. 引子 今年6月底,在上海举办的中国国际物联网大会上,微软中国面向中国物联网社区推出了Microsoft IoT Starter Kit ,并且免费开放1000套的申请.申请地址为:http:// ...

  2. ORACLE查看补丁出现“OPatch failed with error code 1”

    案例场景:               在Oracle Linux Server release 5.7上安装完ORACLE 10g后,顺便将PSR(Patch Set Release)p681018 ...

  3. 0025 Java学习笔记-面向对象-final修饰符、不可变类

    final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...

  4. 解决: DeprecationWarning: Passing 1d arrays as data is deprecated in 0.17 and will raise ValueError in 0.19

    错误信息:C:\Python27\lib\site-packages\sklearn\utils\validation.py:395: DeprecationWarning: Passing 1d a ...

  5. faster_rcnn c++版本的 caffe 封装(1)

    转载请注明出处,楼燚(yì)航的blog,http://www.cnblogs.com/louyihang-loves-baiyan/ 由于需要把FasterRCNN做的工程化,因此这里需要对Caff ...

  6. 【Python网络编程】利用Python进行TCP、UDP套接字编程

    之前实现了Java版本的TCP和UDP套接字编程的例子,于是决定结合Python的学习做一个Python版本的套接字编程实验. 流程如下: 1.一台客户机从其标准输入(键盘)读入一行字符,并通过其套接 ...

  7. 自动装配[@Autowired]的歧义性

    在使用@Autowired自动装配时,如果一个接口有多个实现类,那么自动装配就会出现错误,因为Spring无法判断到底要装配哪个实现类实例(bean). 1.可以使用@Qualifier(" ...

  8. Winform布局方式

    一.默认布局 ★可以加panel,也可以不加: ★通过鼠标拖动控件的方式,根据自己的想法布局.拖动控件的过程中,会有对齐的线,方便操作: ★也可选中要布局的控件,在工具栏中有对齐工具可供选择,也有调整 ...

  9. Nmap参数详解

    转自:http://blog.csdn.net/huangwwu11/article/details/20230795 Nmap--networkmapper,网络探测工具和安全/端口扫描器 nmap ...

  10. C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 角色成员功能的改进支持公司加入到角色

    我们公司有1万多个网点,每个网点都可以看成是一个公司,公司对不同的网点有不同的策略,商业逻辑,每个网点的人员也都是在不断变化,全国有接近10万从业人员,当我们设计好业务逻辑程序后,不可能因为这些人员的 ...