202
gooseeker集搜客
初识word2vec
word2vec是google在2013年推出的做词嵌入(word embedding)的开源工具。简单的说,它在给定的语料库上训练一个模型,然后会输出所有出现在语料库上的单词的向量表示,这个向量称为"word embedding"。基于这个向量表示,可以计算词与词之间的关系,例如相似性(同义词等),语义关联性(中国-北京=英国-伦敦)等。NLP(自然语言处理)中传统的词表示方法是one-hot representation,即把每个单词表示成dim维的稀疏向量,dim等于词汇量的大小。这个稀疏向量只有一个维度(该单词的index)上是1,其余全是0。这个表示方法使得单词之间是孤立的。Word embedding则是把单词的表示降维到n维的稠密向量,n<<><>< span=""><><> 除了google自己的word2vec工具,各位对词向量感兴趣的牛人们也相继编写了各自不同的版本.包括:
- C 版本 https://word2vec.googlecode.com/svn/trunk/
- python版本 https://radimrehurek.com/gensim/
- JAVA版本 https://github.com/ansjsun/Word2VEC_java
- C++版本 https://github.com/jdeng/word2vec
下面介绍word2vec的基本功能。
1. 计算相似的词
word2vec可以计算词与词之间的距离,把词看成向量空间上的一个点,distance看成向量空间上点与点的距离。如下图所示,通过对已有文本进行训练,可以计算出与钓鱼岛相似的词,原则上文本量越大,训练处的结果越准确。
根据词与词之间的相关性进行聚类:如下图所示,摩托罗拉,诺基亚,苹果、三星等手机品牌都聚类到一起。
训练词语短语之间的关系,通过东北和地区两个词,就能找出与这些词相关的短语。
参考链接:
1. 利用word2vec对关键词进行聚类
2. word2vec使用指导
3. 利用中文数据跑Google开源项目word2vec
最后更新:2017-01-09 14:08:09