python - 给定单词的向量(不是单词本身),获取最相似的单词

标签 python gensim word2vec

使用 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)

我使用 word2vec 包中的原始距离函数在 C 中实现了这一点。但是,现在我需要它在 python 中,以便能够将它与我的其他脚本集成。

你知道 gensim.models.Word2Vec 库或其他类似库中是否已经有一个方法可以做到这一点?需要我自己实现吗?

最佳答案

方法similar_by_vector按向量返回前 N 个最相似的词:

similar_by_vector(vector, topn=10, restrict_vocab=None)

关于python - 给定单词的向量(不是单词本身),获取最相似的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37818426/

相关文章:

python - 使用 Python 和 BeautifulSoup 获取字符串中 1-10 的正则表达式时出现问题

python - 如何在 Flask 服务器中将 python JSON 转换为 html 表?

python-3.x - word2vec - 通过特定向量查找单词

keras - 将 gensim doc2vec 嵌入导出到单独的文件中,以便稍后与 keras 嵌入层一起使用

nlp - 如何在 python-gensim 中使用潜在狄利克雷分配 (LDA) 来抽象二元主题而不是一元主题?

python - 如何评估Word2Vec模型

python - 在 python 中使用 Tf-Idf 的搜索引擎

python - 抓取链接和标题 - 使用 beautifulsoup 存储在字典中

machine-learning - Word2Vec向量大小和扫描的单词总数之间的关系?

nlp - 如何评估Word2Vec的性能?