主要参考:https://www.jianshu.com/p/52ee8c5739b6(Gensim Word2vec 使用指南)
https://rare-technologies.com/word2vec-tutorial/ (Word2vec Tutorial)
作为自己复习使用。
Gensim
Gensim是一款开源的第三方Python工具包,用于从原始的非结构化的文本中,无监督地学习到文本隐层的主题向量表达。
它支持包括TF-IDF,LSA,LDA,和word2vec在内的多种主题模型算法,
支持流式训练,并提供了诸如相似度计算,信息检索等一些常用任务的API接口
word2vec
参考:
https://zhuanlan.zhihu.com/p/22477976
一句理解 word2vec
一句话,word2vec就是用一个一层的神经网络(CBOW的本质)把one-hot形式的词向量映射为分布式形式的词向量,为了加快训练速度,用了Hierarchical softmax,negative sampling 等trick。
概念
文本表示/词向量
- 1-of-N的one-hot方式
- 分布式词向量(distributed word representation)
分布式词向量是一个固定大小的实数向量,事前确定它的大小比如N=300维或者N=1000维,每个元素都是一个实数,实数的具体值是词库里面每个词通过不同的贡献得来的,所以叫分布式的。而word2vec就是一种学习这个分布式词向量的算法。
分布式词向量并不是word2vec的作者发明的,他只是提出了一种更快更好的方式来训练也就是:连续词袋模型Continous Bag of Words Model(CBOW)和Skip-Gram Model
代码
输入
Gensim Word2vec 使用一个句子序列作为其输入,每个句子包含一个单词列表。
sentences = [['first', 'sentence'], ['second'