NLP-tutorial代码笔记1

现在每次后面都会加上一个Q&A部分,就是每次有人看完,讲完后的问题,或者是一些不全面的方面,以问答的形式呈现出来。

现在开的坑系列是Github上一个即将3k+Star的NLP-tutorial项目,里面是一些NLP方面的Deep-learning代码,框架Tensor和Torch都有,而且实现行数基本都控制在了100行以内,比较适合去研究一下。这样之后搭框架的时候就会明白许多了。
项目地址:https://github.com/graykode/nlp-tutorial

第一部分是基本的Embeddeding模型

这部分是基于非常经典的paper,A Neural Probabilistic Language Model,http://www.jmlr.org/papers/volume3/bengio03a/bengio03a.pdf
这份代码就是展现了这个里面的模型代码。所以首先先介绍一下这个论文的内容。

A Neural Probabilistic Language Model 论文内容

论文的内容介绍参考了一下博客:
https://blog.youkuaiyun.com/hx14301009/article/details/80345449
https://www.jianshu.com/p/be242ed3f314

传统的语言模型缺点

1.由于维度灾难(特别是离散变量),在高维下,数据的稀缺性导致统计语言模型存在很多为0的条件概率,传统的统计语言模型也花费大量的精力来处理这个,包括平滑,插值,回退等方法

2.语言模型的参数个数随着阶数呈指数增长,所以一般这个模型的阶数不会很高,这样n-gram无法建立长远的关系

3.n-gram无法建模出多个相似词的关系,比如在训练集中有: the cat is walking in the bedroom,但是用n-gram预测时,遇到:the dog was running in a room这个句子,并不会因为两个句子相似就让该句子的概率变高

所以基于以上的问题,就想要引入别的模型来解决这个问题。

这篇NNLM使训练得到的模型比传统的统计语言模型使用n-gram能建模更远的关系,并且考虑到了词与词之间的相似性,一些相似的词获得了自然的平滑。前者是因为神经网络的结果使得,后者是因为使用了词向量。

词向量

在NLP任

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值