Используя библиотеку gensim.models.Word2Vec
, вы можете предоставить модель и "слово", для которых вы хотите найти список наиболее похожих слов:
model = gensim.models.Word2Vec.load_word2vec_format(model_file, binary=True)
model.most_similar(positive=[WORD], topn=N)
Интересно, есть ли возможность дать системе ввести модель и "вектор" и попросить систему вернуть верхушки похожих слов (их векторы очень близки к данному вектору). Нечто похожее на:
model.most_similar(positive=[VECTOR], topn=N)
Мне нужна эта функциональность для двуязычной настройки, в которой у меня есть 2 модели (английский и немецкий), а также некоторые английские слова, для которых мне нужно найти своих самых похожих немецких кандидатов. Я хочу сделать, чтобы получить вектор английского слова из английской модели:
model_EN = gensim.models.Word2Vec.load_word2vec_format(model_file_EN, binary=True)
vector_w_en=model_EN[WORD_EN]
а затем запросите немецкую модель с этими векторами.
model_DE = gensim.models.Word2Vec.load_word2vec_format(model_file_DE, binary=True)
model_DE.most_similar(positive=[vector_w_en], topn=N)
Я реализовал это в C, используя исходную функцию расстояния в пакете word2vec. Но теперь мне нужно, чтобы он был в python, чтобы иметь возможность интегрировать его с другими скриптами.
Знаете ли вы, есть ли метод в библиотеке gensim.models.Word2Vec
или других подобных библиотеках, который это делает? Нужно ли его реализовать самостоятельно?