我想要可视化从gensim库创建的word2vec。我试过sklearn,但似乎我需要安装一个开发者版本才能得到它。我尝试安装开发者版本,但这不适用于我的机器。是否有可能修改此代码以可视化word2vec模型?如何在由gensim创建的word2vec上运行tsne?
3
A
回答
0
使用下面的代码,而不是X Concat的垂直使用numpy.vstack成矩阵X所有字的嵌入,然后fit_transform它。
import numpy as np
from sklearn.manifold import TSNE
X = np.array([[0, 0, 0], [0, 1, 1], [1, 0, 1], [1, 1, 1]])
model = TSNE(n_components=2, random_state=0)
np.set_printoptions(suppress=True)
model.fit_transform(X)
fit_transform的输出具有形状vocab_size x 2,因此您可以将其可视化。通过PIP或畅达只是install scikit-learn通常的方式 -
vocab = sorted(word2vec_model.get_vocab()) #not sure the exact api
emb_tuple = tuple([word2vec_model[v] for v in vocab])
X = numpy.vstack(emb_tuple)
13
你不需要的一个开发者版本scikit学习。
要访问word2vec创建简单的用字字典作为索引模型中的词矢量:
X = model[model.wv.vocab]
以下是它加载一些新闻组数据的简单但完整的代码示例,应用非常基本的数据准备(清理和分解句子),训练word2vec模型,使用t-SNE缩小尺寸,并可视化输出。
from gensim.models.word2vec import Word2Vec
from sklearn.manifold import TSNE
from sklearn.datasets import fetch_20newsgroups
import re
import matplotlib.pyplot as plt
# download example data (may take a while)
train = fetch_20newsgroups()
def clean(text):
"""Remove posting header, split by sentences and words, keep only letters"""
lines = re.split('[?!.:]\s', re.sub('^.*Lines: \d+', '', re.sub('\n', ' ', text)))
return [re.sub('[^a-zA-Z]', ' ', line).lower().split() for line in lines]
sentences = [line for text in train.data for line in clean(text)]
model = Word2Vec(sentences, workers=4, size=100, min_count=50, window=10, sample=1e-3)
print (model.most_similar('memory'))
X = model[model.wv.vocab]
tsne = TSNE(n_components=2)
X_tsne = tsne.fit_transform(X)
plt.scatter(X_tsne[:, 0], X_tsne[:, 1])
plt.show()
相关问题
- 1. Gensim word2vec在python3失踪vocab
- 2. Gensim word2vec在线培训
- 3. GenSim Word2Vec意外修剪
- 4. 什么是Gensim word2vec输出
- 5. 如何使用预先训练的单词向量创建gensim word2vec模型?
- 6. 什么是gensim Word2Vec中的`null_word`参数?
- 7. gensim word2vec给出不一致的结果
- 8. 可视化gensim生成的word2vec
- 9. 使用Gensim减少Google的Word2Vec模型
- 10. 如何在gensim word2vec中访问输出嵌入(输出向量)?
- 11. 从gensim获取重量矩阵word2Vec
- 12. Gensim Word2Vec模型:切割尺寸
- 13. gensim word2vec存取/导出向量
- 14. 如何手动改变一个词的向量尺寸Gensim Word2Vec
- 15. 使用gensim的Word2Vec自定义字上下文对
- 16. 如何判断Gensim Word2Vec是否使用C编译器?
- 17. 如何从gensim word2vec获取词汇单词数量?
- 18. 如何在Windows上运行在Mac上创建的.class文件?
- 19. gensim word2vec - 用在线文字嵌入更新数组的尺寸
- 20. 负载gensim Word2Vec计算在Python 2,在Python 3
- 21. 如何在CBOW模式下运行MLlib的word2vec?
- 22. 如何在Odroid XU3上构建和运行qt/qt创建器?
- 23. 如何当我在命令行其上运行此创建Ansible
- 24. Gensim word2vec在预定义词典和词索引数据
- 25. 如何创建在多个设备上运行的openCL测试
- 26. 如何在运行时创建XmlMappingSource?
- 27. 如何在运行时创建控件?
- 28. 如何在运行时创建按钮?
- 29. 如何在运行时创建DB-Tables
- 30. 如何在运行时创建DataTemplate?