Tensorflow 如何加速word2vec相似度计算?
我使用Gensim训练了Word2Vec模型,我有两组单词:Tensorflow 如何加速word2vec相似度计算?,tensorflow,gensim,Tensorflow,Gensim,我使用Gensim训练了Word2Vec模型,我有两组单词: S1 = {'','','' ...} S2 = {'','','' ...} 对于S1中的每个单词w1,我想找到与w1最相似的前5个单词。我目前正在这样做: model = w2v_model word_similarities = {} for w1 in S1: similarities = {} for w2 in S2: if w1 in model.wv and w2 in model.
S1 = {'','','' ...}
S2 = {'','','' ...}
对于S1中的每个单词w1,我想找到与w1最相似的前5个单词。我目前正在这样做:
model = w2v_model
word_similarities = {}
for w1 in S1:
similarities = {}
for w2 in S2:
if w1 in model.wv and w2 in model.wv:
similarity = model.similarity(w1, w2)
similarities[w2] = similarity
word_similarties[w1] = similarities
然后,对于单词中的每个单词的相似性,我可以从它的dict值中得到前N。如果S1和S2较大,则速度会非常慢
在genism或tensorflow中,有没有一种更快的方法来计算Word2Vec中的大型词对?根据您的模型的相对大小,
S1
,&S2
,您可能需要使用gensim各种词向量类的最相似的()
方法-这将使用批量,优化了向量比较操作,以检查模型中的所有向量,然后在S2
中筛选结果
<> p> >如果<代码> S2比
keyedVector
,然后将所有S2
单词添加到其中,然后使用S2。最相似的(正数=[target\u word\u vector],topn=5)
您能根据第二个建议编写解决方案吗?请参阅keyedVector.add()
方法: