首发于 NLP与深度学习外加一些鸡汤

NLP入门系列之语言模型



1 什么是语言模型

那这个概率该怎么算呢?

用频率估计概率的思想,假设我们可以找到足够大的一个语料(例如网络上的所有中文或者英文网页)。我们计算出单词序列 (w_1,w_2,w_3,...w_n) 出现的次数 n ,其中 w_i\in V , V = \left\{ v_1,v_2,v_3...x_{|V|}\right\} 表示字典,而所有的序列个数记为 N ,则 P(w_1,w_2,w_3,...w_n)=\frac{n}{N}

可以看出这个模型有一个问题,一旦单词序列没有在训练集中出现过,模型的输出概率就是0,并且我们知道,语言是具有创造性的,所以这样计算相当不合理。并且这样计算一个给定序列的概率也需要语料足够的大才有实际意义。因此我们需要更聪明的方法来计算 P(w_1,w_2,w_3,...w_n)

我们知道概率的链式规则,即

图1.1 概率链式规则

根据概率的链式规则,我们有

图1.2 给定序列的概率

由1.2可以看出,我们的语言模型其实是在计算 P(w_t|w_{1}^{t-1}) ,即预测下一个单词 w_t 。但是 P(w_t|w_{1}^{t-1}) 又该怎么计算呢?由上面分析我们知道,我们可以计算出 count(w_1,w_2,w_3,...w_t) count(w_1,w_2,w_3,...x_{t-1}) ,则 P(w_t|w_{1}^{t-1})\approx\frac{count(w_1,w_2,w_3,...x_{t}) }{count(w_1,w_2,w_3,...w_{t-1}) } 。但是我们知道,语言是具有创造性的,任何特定的上下文也许在语料中从未出现过。

2 n-gram Language Models

如何学习一个语言模型呢,在深度学习没由火起来前,都是学习一个n-gram Language Model

图1.3 n-gram模型的定义

n-gram模型做了一个假设, w_{t-1} 只取决于前 n-1 个词,即 P(w_{t+1}|w_{t},w_{t-1},...,w_1)=P(w_{t+1}|w_{t},...,w_{t-n+2}) =\frac{P(w_{t+1},w_{t},w_{t-1},...,w_{t-n+2})}{P(w_{t},w_{t-1},...,w_{t-n+2})}

可以看出,n-gram模型可以减轻单词序列没有在训练集中出现过而引起的问题,即数据稀疏问题

那问题来了n-gram (w_{t+1},w_{t},w_{t-1},...,w_{t-n+2}) 和n-1gram (w_{t},w_{t-1},...,w_{t-n+2}) 的概率 P(w_{t+1},w_{t},w_{t-1},...,w_{t-n+2})P(w_{t},w_{t-1},...,w_{t-n+2}) 怎么计算呢?


Answer: By counting them in some large corpus of text!


\approx\frac{count(w_{t+1},w_{t},w_{t-1},...,w_{t-n+2})}{count(w_{t},w_{t-1},...,w_{t-n+2})} ,为什么用约等于呢?因为是统计近似。

3 n-gram模型举例

对于句子 as the proctor started the clock, the students opened their ___ w __, w\in V 假设我们用一个四元模型,则

P(w|students\quad opened\quad their) = \frac{count(students\quad opened\quad their\quad w) }{count(students\quad opened\quad their)}

假设在语料中,我们算的P(books | students opened their) = 0.4,而P(exams | students opened their) = 0.1,那么我们就可以预测出 w 更应该为books而不是exams(这个例子中还有0.5的概率没写出来,大家明白意思就行),但实际上根据上下文你就知道,这里应该exams而不是books。所以这该怎么办呢,显然最之间的办法就是让n变大一些,这样我们可以看到的历史信息就更多,但是从上面分析我们其实知道,n越大,数据稀疏问题会越严重(没看懂的请回看1 什么是语言模型)。

4 n-gram模型问题

我有点懒,就直接吧Stanford cs224n中的ppt贴上来吧。对于n-gram模型的问题,这两页ppt说的很明白,我就不再解释了

嗯,终于抄完了,真的太感谢国外大牛们开源他们辛苦辛苦写的书籍,做的ppt。

想更详细了解n-gram语言模型的话,可以看参考文献2

5 参考文献

写在最后:虽然n-gram模型准确率不高,但是它很简单,在一个语言模型任务中,它可以充当baseline的作用。我一直认为对于一个问题而言,从0到1是最重要的,后面再考虑从1到1.5或者到2等等。

以上全是个人理解,肯定会有不正确或者不准确之处,大家看出来可以评论指正,我看到就会修改过来。

看到这篇文章的小伙伴,如果觉得对你有用,就为我点个赞吧!


注:本文可以任意转载,转载时请标明作者和出处。

深圳坪山网站建设公司清徐网站优化按天计费推荐怒江网站排名优化公司塘坑百姓网标王推广价格惠州网站优化推荐喀什网站制作兴安盟网站推广方案价格江门SEO按效果付费多少钱海东seo排名报价永新网站制作松岗网站改版公司信阳seo网站优化价格河池建设网站哪家好那曲设计公司网站价格泸州关键词排名包年推广报价兰州模板网站建设哪家好塘坑企业网站建设哪家好张掖百度网站优化价格龙岗网络推广公司威海网络营销价格临汾seo排名多少钱德阳网站改版报价贺州阿里店铺托管四平网站优化软件抚州网站推广方案推荐东莞seo排名价格安庆营销网站哈尔滨百度关键词包年推广哪家好梧州关键词按天收费推荐大理网站优化软件哪家好宁波网站搭建香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化