word2vec的理解
在学习LSTM的时候,了解了word2vec,简单的理解就是把词变成向量。看了很多书,也搜索了很多博客,大多数都是在word2vec的实现原理、数学公式,和一堆怎么样重新写一个word2vec的python代码。对于我这种数学弱鸟级别的人来说,这显然是没有什么意义的,更别说价值了。我所需要的就是理解几个简单的问题:
1、什么是word2vec?
2、为什么是word2vec?
3、word2vec能干什么?
4、怎么用word2vec来达到目的?
最起码目前我能理解这几个问题,以及足够了,至于那些数学公式,还需要时间,我高中数学都忘光了,已经在京东上购买了高中数学书,估计学到能看懂这些数学公式,都天荒地老了,有没有word2vec的算法都不好说了。
什么是word2vec?
word2vec是谷歌提出的一种算法,能把文字表述成一种向量表。在这种向量表里,关系相近的词语向量距离比较近。通过这个向量表可以十分清晰的看出来词语和词语的分布。
为什么是word2vec?
因为计算机不懂得人类的语言,必须把词语变成数字化得东西,才能进一步的参与运算,可以把词语简单的映射,行程one-hot的词典,然后就可以参与lstm的网络训练了。但是这样的情况有几个问题。
1、one-hot的方式是一个稀疏矩阵,占用很大的位置。计算起来十分不方便。
2、one-hot仅仅是把词语或者文字数字化了,而没有词语和词语之间的联系和关系。如果能把语义上相近的词语放到一起,这样就可以一眼看出来词语和词语的关系,同时根据词语和词语分布进行语义方面的分析和计算。
而为了实现既可以语义上分布有规律,有可以缩小矩阵减少计算。人类进行了很多摸索和算法,而目前为止,word2vec就恰恰好可以实现这个目的,同时避免缺点。
word2vec能干什么?
我个人的理解,word2vec主要达到两个效果
1、把词语进行数字化以后,可以参与其他的计算了。
2、词语根据语义分布的有规律了,可以根据这个进行一些有意思的玩法了。
关于把词语放入词典,可以参与其他的计算。这个暂且不去探讨,因为我也还不懂。说了也是胡说
词语语义有规律的分布以后,就可以进行一些有意思的玩法,比如
1、一个网站的内容可以提取出来词语,得到空间向量,然后广告内容也可以得到空间向量,计算向量之间的距离,就可以知道哪个广告匹配哪个内容了?
2、兴趣推荐,内容推荐,商品推荐,大概的意思都这样,社交网络的大V推荐
我能想到的大概就这么多:
看看别人怎么说吧:
https://x-algo.cn/index.php/2016/03/12/281/
https://www.jianshu.com/p/f58c08ae44a6
word2vec的理解的更多相关文章
- 对word2vec的理解及资料整理
对word2vec的理解及资料整理 无他,在网上看到好多对word2vec的介绍,当然也有写的比较认真的,但是自己学习过程中还是看了好多才明白,这里按照自己整理梳理一下资料,形成提纲以便学习. 介绍较 ...
- word2vec参数理解
之前写了对word2vec的一些简单理解,实践过程中需要对其参数有较深的了解: class gensim.models.word2vec.Word2Vec(sentences=None,size=10 ...
- 对Word2Vec的理解
1. word embedding 在NLP领域,首先要把文字或者语言转化为计算机能处理的形式.一般来说计算机只能处理数值型的数据,所以,在NLP的开始,有一个很重要的工作,就是将文字转化为数字,把这 ...
- word2vec入门理解的博客整理
深度学习word2vec笔记之基础篇 https://blog.csdn.net/mytestmy/article/details/26961315 深度学习word2vec笔记之算法篇 https: ...
- word2vec 的理解
1.CBOW 模型 CBOW模型包括输入层.投影层.输出层.模型是根据上下文来预测当前词,由输入层到投影层的示意图如下: 这里是对输入层的4个上下文词向量求和得到的当前词向量,实际应用中,上下文窗口大 ...
- 文本分布式表示(二):用tensorflow和word2vec训练词向量
看了几天word2vec的理论,终于是懂了一些.理论部分我推荐以下几篇教程,有博客也有视频: 1.<word2vec中的数学原理>:http://www.cnblogs.com/pegho ...
- word2vec之tensorflow(skip-gram)实现
关于word2vec的理解,推荐文章https://www.cnblogs.com/guoyaohua/p/9240336.html 代码参考https://github.com/eecrazy/wo ...
- Alink漫谈(十六) :Word2Vec源码分析 之 建立霍夫曼树
Alink漫谈(十六) :Word2Vec源码分析 之 建立霍夫曼树 目录 Alink漫谈(十六) :Word2Vec源码分析 之 建立霍夫曼树 0x00 摘要 0x01 背景概念 1.1 词向量基础 ...
- Alink漫谈(十七) :Word2Vec源码分析 之 迭代训练
Alink漫谈(十七) :Word2Vec源码分析 之 迭代训练 目录 Alink漫谈(十七) :Word2Vec源码分析 之 迭代训练 0x00 摘要 0x01 前文回顾 1.1 上文总体流程图 1 ...
随机推荐
- Linux - 搭建FastDFS分布式文件系统
1. FastDFS简介 说明:FastDFS简介部分的理论知识全部来自于博主bojiangzhou的 <用FastDFS一步步搭建文件管理系统>,在此感谢博主的无私分享.当然最最要感谢的 ...
- Hive学习之路 (二)Hive安装
Hive的下载 下载地址http://mirrors.hust.edu.cn/apache/ 选择合适的Hive版本进行下载,进到stable-2文件夹可以看到稳定的2.x的版本是2.3.3 Hive ...
- swoole_table测试
public function test() { $count = []; $count[] = ['key' => 'name', 'type' => ...
- print输出
python中的print输出可以用逗号"," >>> a = 1 >>> b = 2 >>> print a,b 1 2 逗 ...
- Docker实战(八)之Web服务与应用
1.Apache 官方提供了名为httpd的Apache镜像,可以作为基础web服务镜像 Dockerfile(安装apache2) FROM httpd:2.4 COPY ./public-html ...
- django restframework 简单总结
官方文档:http://www.django-rest-framework.org/ model.py class Snippet(models.Model): created = models.Da ...
- 多线程之CountDownLatch、CyclicBarrier和Semaphore
Java并发编程:CountDownLatch.CyclicBarrier和Semaphore 在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch ...
- 【题解】洛谷P2577 [ZJOI2005] 午餐(DP+贪心)
次元传送门:洛谷P2577 思路 首先贪心是必须的 我们能感性地理解出吃饭慢的必须先吃饭(结合一下生活) 因此我们可以先按吃饭时间从大到小排序 然后就能自然地想到用f[i][j][k]表示前i个人在第 ...
- 【vue】如何在 Vue-cli 创建的项目中引入iView
根据vue项目的搭建教程,一下记录下如何在Vue-cli创建的项目中引入iView. 1)安装iView,在项目下 cnpm install iview --save 2 ) 在 webpack ...
- 如何方便的结果ajax使用html5的新type类型
今天需要做手机端的输入表单自动生成器,突然就想到了手机端对input的输入类型支持还不错,于是翻遍了资料,有了下面的使用方法,闲话少说,上正文: html5现在可以用的新input type类型一共有 ...