我加载了一个 word2vec 格式的文件,我想计算向量之间的相似度,但我不知道这个问题意味着什么。
from gensim.models import Word2Vec
from sklearn.metrics.pairwise import cosine_similarity
from gensim.models import KeyedVectors
import numpy as np
model = KeyedVectors.load_word2vec_format('it-vectors.100.5.50.w2v')
similarities = cosine_similarity(model.vectors)
---------------------------------------------------------------------------
MemoryError Traceback (most recent call last)
<ipython-input-54-1d4e62f55ebf> in <module>()
----> 1 similarities = cosine_similarity(model.vectors)
/usr/local/lib/python3.5/dist-packages/sklearn/metrics/pairwise.py in cosine_similarity(X, Y, dense_output)
923 Y_normalized = normalize(Y, copy=True)
924
--> 925 K = safe_sparse_dot(X_normalized, Y_normalized.T, dense_output=dense_output)
926
927 return K
/usr/local/lib/python3.5/dist-packages/sklearn/utils/extmath.py in safe_sparse_dot(a, b, dense_output)
138 return ret
139 else:
--> 140 return np.dot(a, b)
141
142
MemoryError: …Run Code Online (Sandbox Code Playgroud) 是Google预训练的word2vec模型CBO或者skipgram。
我们通过以下方式加载预训练模型:
from gensim.models.keyedvectors as word2vec
model= word2vec.KeyedVectors.load_word2vec_format('GoogleNews-vectors-negative300.bin.gz')
Run Code Online (Sandbox Code Playgroud)
我们如何专门加载预训练的 CBOW 或 Skipgram 模型?
我有我的 word2vec 模型。我可以使用它来查看最相似的单词。现在我创建一个函数来将单词绘制为向量。这是我的功能:
def tsne_plot(model):
labels = []
tokens = []
for word in model.wv.key_to_index:
tokens.append(model[word])
labels.append(word)
tsne_model = TSNE(perplexity=40, n_components=2, init='pca', n_iter=2500, random_state=23)
new_values = tsne_model.fit_transform(tokens)
x = []
y = []
for value in new_values:
x.append(value[0])
y.append(value[1])
plt.figure(figsize=(16, 16))
for i in range(len(x)):
plt.scatter(x[i],y[i])
plt.annotate(labels[i],
xy=(x[i], y[i]),
xytext=(5, 2),
textcoords='offset points',
ha='right',
va='bottom')
plt.show()
Run Code Online (Sandbox Code Playgroud)
当我调用该函数时,出现以下错误:
TypeError Traceback (most recent call last)
<ipython-input-47-d0f4ea6902bf> in <module>
----> 1 tsne_plot(model)
<ipython-input-46-b4714ffe935b> in tsne_plot(model)
5
6 for word in model.wv.key_to_index:
----> 7 …Run Code Online (Sandbox Code Playgroud) 否则说用模式匹配和图遍历替换特征向量并模拟降维?
我的意思是,给定一个英语单词的语义图,计算类似于:
king - man = queen
这意味着我可以从图中减去一个子图,并在给定指标的情况下对结果子图进行评分。
我不希望这将是单个 neo4j 或 gremlin 查询。我对通过图形数据库同时进行全局和局部推理所涉及的底层机制感兴趣。
我已经应用 Doc2vec 将文档转换为向量。之后,我在聚类中使用向量并找出与每个集群的质心最近/最相似的 5 个文档。现在我需要找到这些文档中最主要或最重要的术语,以便我可以弄清楚每个集群的特征。我的问题是有什么方法可以找出 Doc2vec 中文档的最主导或最相似的术语/单词。我正在使用 python 的 gensim 包来实现 Doc2vec
我有一个由 DNA 序列组成的数据,其中单词表示为长度为 6 的 kmers,句子表示为 DNA 序列。每个 DNA 序列有 80 kmers(单词)
我拥有的 kmers 列表约为 130,000 kmers,但删除重复元素后,我将只有 4500 kmers。因此,这个巨大的差距让我对是否删除重复的公里数感到困惑。我的问题是,在这种情况下是否建议删除word2vec算法中重复的kmers?
谢谢。
word2vec ×6
gensim ×3
nlp ×2
python ×2
dna-sequence ×1
doc2vec ×1
graph-theory ×1
gremlin ×1
python-3.x ×1
scikit-learn ×1