- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经使用gensim在自己的语料库上训练了doc2vec和相应的word2vec。我想使用带有单词的t-sne可视化word2vec。如图所示,图中的每个点也带有“单词”。
我在这里看了一个类似的问题:t-sne on word2vec
之后,我有此代码:
导入gensim
将gensim.models导入为g
from sklearn.manifold import TSNE
import re
import matplotlib.pyplot as plt
modelPath="/Users/tarun/Desktop/PE/doc2vec/model3_100_newCorpus60_1min_6window_100trainEpoch.bin"
model = g.Doc2Vec.load(modelPath)
X = model[model.wv.vocab]
print len(X)
print X[0]
tsne = TSNE(n_components=2)
X_tsne = tsne.fit_transform(X[:1000,:])
plt.scatter(X_tsne[:, 0], X_tsne[:, 1])
plt.show()
最佳答案
答案分为两个部分:如何获取单词标签,以及如何在散点图上绘制标签。
gensim的word2vec中的单词标签model.wv.vocab
是{word:数字 vector 对象}的字典。要将数据加载到t-SNE的X
中,我进行了一项更改。
vocab = list(model.wv.vocab)
X = model[vocab]
vocab
列表,以及(2)在为
model
编制索引时,可以确保您知道单词的顺序。
tsne = TSNE(n_components=2)
X_tsne = tsne.fit_transform(X)
X_tsne
和
vocab
列表放在一起。对于 Pandas 来说这很容易,所以如果还没有
import pandas as pd
的话。
df = pd.DataFrame(X_tsne, index=vocab, columns=['x', 'y'])
df
看起来像
x y
politics -1.524653e+20 -1.113538e+20
worry 2.065890e+19 1.403432e+20
mu -1.333273e+21 -5.648459e+20
format -4.780181e+19 2.397271e+19
recommended 8.694375e+20 1.358602e+21
arguing -4.903531e+19 4.734511e+20
or -3.658189e+19 -1.088200e+20
above 1.126082e+19 -4.933230e+19
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.scatter(df['x'], df['y'])
annotate
方法将标注坐标。前两个参数是文本标签和2元组。使用
iterrows()
,可以非常简洁:
for word, pos in df.iterrows():
ax.annotate(word, pos)
plt.show()
或
fig.savefig()
。根据您的数据,您可能不得不弄混
ax.set_xlim
和
ax.set_ylim
才能看到密集的云。这是新闻组示例,无需进行任何调整:
关于scikit-learn - 可视化从gensim生成的word2vec,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43776572/
比方说, word2vec.model 是我训练好的 word2vec 模型。当出现词汇外单词( oov_word )时,我计算向量 vec 使用 compute_vec(oov_word) 方法。现
我有一个现有的 gensim Doc2Vec 模型,我正在尝试对训练集以及模型进行迭代更新。 我拿新文件,照常进行预处理: stoplist = nltk.corpus.stopwords.words
使用 gensim.models.LdaMallet 有什么区别和 gensim.models.LdaModel ?我注意到参数并不完全相同,想知道什么时候应该使用一个而不是另一个? 最佳答案 TL;
我训练了一个 gensim.models.doc2vec.Doc2Vec 模型 d2v_model = Doc2Vec(sentences, size=100, window=8, min_count
我在 gensim 中有一个 word2vec 模型,训练了 98892 个文档。对于句子数组中不存在的任何给定句子(即我训练模型的集合),我需要用该句子更新模型,以便下次查询时给出一些结果。我这样做
我对 Gensim 很陌生,我正在尝试使用 word2vec 模型训练我的第一个模型。我看到所有参数都非常简单易懂,但是我不知道如何跟踪模型的损失以查看进度。此外,我希望能够在每个 epoch 之后获
请帮助我理解如何 TaggedDocument 之间的区别和 LabeledSentence的 gensim作品。我的最终目标是使用 Doc2Vec 进行文本分类模型和任何分类器。我正在关注这个 bl
尝试使用以下代码行在 gensim 中加载文件: model = gensim.models.KeyedVectors.load_word2vec_format(r"C:/Users/dan/txt_
我有一组用神经网络训练的嵌入,与 gensim 的 word2vec 无关。 我想使用这些嵌入作为 gensim.Word2vec 中的初始权重。 现在我看到的是,我可以model.load(SOME
我尝试使用 gensim 导入 import gensim 但出现以下错误 ImportError Traceback (most rece
我正在关注 https://radimrehurek.com/gensim/wiki.html#latent-dirichlet-allocation 上的“英语维基百科”gensim 教程 它解释了
我正在使用 24 核虚拟 CPU 和 100G 内存来训练 Doc2Vec 与 Gensim,但无论修改核数,CPU 的使用率始终在 200% 左右。 top htop 上面两张图显示了cpu使用率,
在将文本文档列表转换为语料库字典,然后使用以下方法将其转换为词袋模型之后: dictionary = gensim.corpora.Dictionary(docs) # docs is a list
我已经使用 Gensim 3.8.0 训练了一个 Word2Vec 模型。后来我尝试在 GCP 上使用使用 Gensim 4.0.o 的预训练模型。我使用了以下代码: model = KeyedVec
我正在构建一个多标签文本分类程序,我正在尝试使用 OneVsRestClassifier+XGBClassifier 对文本进行分类。最初,我使用 Sklearn 的 Tf-Idf 矢量化来矢量化文本
我发现关于 word2vec.similarity() 的警告如下: >d:\python\lib\site-packages\gensim\matutils.py:737: FutureWarnin
我正在尝试使用版本为 3.6 的 Python 的 Gensim 库运行程序。 每当我运行该程序时,我都会遇到这些语句: C:\Python36\lib\site-packages\gensim-2.
我有一个通过 Java 中的 Mallet 训练的 LDA 模型。 Mallet LDA 模型生成了三个文件,这使我能够从文件运行模型并推断新文本的主题分布。 现在我想实现一个 Python 工具,它
我正在使用gensim doc2vec。我想知道是否有任何有效的方法来了解doc2vec的词汇量。一种粗略的方法是计算单词总数,但是如果数据量很大(1GB或更多),那么这将不是一种有效的方法。 最佳答
documentation有点不清楚如何将 fasttext 模型保存到磁盘 - 如何在参数中指定路径,我尝试这样做,但失败并出现错误 文档中的示例 >>> from gensim.test.util
我是一名优秀的程序员,十分优秀!