1、定义
如果用一句比较简单的话来总结,word2vec是用一个一层的神经网络(即CBOW)把one-hot形式的稀疏词向量映射称为一个n维(n一般为几百)的稠密向量的过程。为了加快模型训练速度,其中的tricks包括Hierarchical softmax,negative sampling, Huffman Tree等。
2、原理
word2vec可以分为两部分:模型与通过模型获得的词向量。
word2vec,字面意思,将 word 转化为 vector,word 是顺序有意义的实体,比如文档中单词、用户依次点击的商品。
word2vec 是 NLP 领域的重要算法,它的功能是将 word 用 K 维的 dense vector 来表达,训练集是语料库,不含标点,以空格断句。因此可以看作是种特征处理方法。
word2vec 两种实现方式:Skip-gram:用一个词语作为输入,来预测它周围的上下文。同义词 p(word1|word2)
CBOW :用一个词语的上下文作为输入,来预测这个词语本身。完形填空p(word1|word2,word3)
3、spark代码实现
3.1、添加依赖包
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-mllib_2.11</artifactId>
<vers