Я обучил модель Word2Ve c с помощью Gensim, и у меня есть два набора слов:
S1 = {'','','' ...}
S2 = {'','','' ...}
для каждого слова w1 в S1, я хочу найти 5 лучших слов, которые наиболее похожи на w1. В настоящее время я делаю это так:
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
Затем для каждого слова в word_similities я могу получить верхний N из его значений dict. Если S1 и S2 велики, это становится очень медленным.
Существует ли более быстрый способ вычисления больших пар слов в Word2Ve c, будь то в генизме или тензорном потоке?