Traditional Language Model
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的更多相关文章
- [IR] Tolerant Retrieval & Spelling Correction & Language Model
Dictionary不一定是个list,它可以是多种形式. 放弃Hash的原因: 通常,tree是比较适合的结构. From: http://www.cnblogs.com/v-July-v/arch ...
- 用CNTK搞深度学习 (二) 训练基于RNN的自然语言模型 ( language model )
前一篇文章 用 CNTK 搞深度学习 (一) 入门 介绍了用CNTK构建简单前向神经网络的例子.现在假设读者已经懂得了使用CNTK的基本方法.现在我们做一个稍微复杂一点,也是自然语言挖掘中很火 ...
- A Neural Probabilistic Language Model
A Neural Probabilistic Language Model,这篇论文是Begio等人在2003年发表的,可以说是词表示的鼻祖.在这里给出简要的译文 A Neural Probabili ...
- tensorflow world language model
上文提到了pytorch里的world language model,那么怎么能不说tensorflow的实现呢,还是以tensorflow ptb的代码为例说说. 地址: https://githu ...
- 论文分享|《Universal Language Model Fine-tuning for Text Classificatio》
https://www.sohu.com/a/233269391_395209 本周我们要分享的论文是<Universal Language Model Fine-tuning for Text ...
- language model ——tensorflow 之RNN
代码结构 tf的代码看多了之后就知道其实官方代码的这个结构并不好: graph的构建和训练部分放在了一个文件中,至少也应该分开成model.py和train.py两个文件,model.py中只有一个P ...
- NLP问题特征表达基础 - 语言模型(Language Model)发展演化历程讨论
1. NLP问题简介 0x1:NLP问题都包括哪些内涵 人们对真实世界的感知被成为感知世界,而人们用语言表达出自己的感知视为文本数据.那么反过来,NLP,或者更精确地表达为文本挖掘,则是从文本数据出发 ...
- 将迁移学习用于文本分类 《 Universal Language Model Fine-tuning for Text Classification》
将迁移学习用于文本分类 < Universal Language Model Fine-tuning for Text Classification> 2018-07-27 20:07:4 ...
- #论文阅读# Universial language model fine-tuing for text classification
论文链接:https://aclweb.org/anthology/P18-1031 对文章内容的总结 文章研究了一些在general corous上pretrain LM,然后把得到的model t ...
随机推荐
- 集合2--毕向东java基础教程视频学习笔记
Day14 08 LinkedList09 LinkedList练习10 ArrayList练习11 ArrayList练习2 12 HashSet13 HashSet存储自定义对象14 HashSe ...
- 版本管理-SVN本地版本管理
0. 引言 使用工具是人与动物的基本区别,善用工具可以极大的提高效率,降低错误率.在PC软件领域,有很多好用的工具,这些工具都是软件工程重要的基础设施.然而,嵌入式开发,在其代码数量上,很多时候由于没 ...
- MongoDB学习笔记~批量插入方法的实现
回到目录 批量插入在EF时代大叔就自己封装过,原理是将多次SQL连接和多次向SQL发送的指令减少到1次,或者1000条数据1次,而对于EF产生的语句来说,这无疑是性能高效的,因为EF这边在处理时,每个 ...
- javax.crypto.BadPaddingException: Given final block not properly padded 解决方法
下面的 Des 加密解密代码,在加密时正常,但是在解密是抛出错误: javax.crypto.BadPaddingException: Given final block not properly p ...
- MySQL 使用JOIN优化子查询
1.数据准备 mysql> select * from student; +----+--------+----------+---------+-------------+ | id | na ...
- jquery2源码分析系列
学习jquery的源码对于提高前端的能力很有帮助,下面的系列是我在网上看到的对jquery2的源码的分析.等有时间了好好研究下.我们知道jquery2开始就不支持IE6-8了,从jquery2的源码中 ...
- Linux 使用iostat分析IO性能
原文:http://www.cnblogs.com/bangerlee/articles/2547161.html 对于I/O-bond类型的进程,我们经常用iostat工具查看进程IO请求下发的数量 ...
- [转]【无私分享:ASP.NET CORE 项目实战(第九章)】创建区域Areas,添加TagHelper
本文转自:http://www.cnblogs.com/zhangxiaolei521/p/5808417.html 目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 在Asp ...
- JS--中奖广告浮动效果
618要到了.要帮公司做一个简单的中奖号码的浮动.怎么玩了.其实只需要使用scrollHeight;scrollTop;offsetHeight这三个就可以实现了. 代码如下: <html> ...
- noip2010提高组3题题解 by rLq
本题地址http://www.luogu.org/problem/show?pid=1525 关押罪犯 题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和 ...