You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Python字典形式的预训练Word2Vec嵌入加载到Gensim?

把自定义词向量字典加载到Gensim中计算距离

别担心,这种场景完全能轻松解决!你已经有了{词: 向量}格式的字典,只需要把它转换成Gensim的KeyedVectors格式,就能直接用Gensim的内置工具计算欧氏距离(或者其他向量相似度指标)了。以下是具体步骤:

步骤1:导入必要的模块

首先确保你已经安装了Gensim,然后导入KeyedVectors类:

from gensim.models import KeyedVectors

步骤2:初始化KeyedVectors实例

先从你的字典里获取向量的维度(随便取一个向量的长度就行),然后创建KeyedVectors对象:

# 获取向量维度(假设字典非空)
vector_dim = len(next(iter(w2v_dict.values())))
# 初始化KeyedVectors
kv_model = KeyedVectors(vector_size=vector_dim)

步骤3:加载字典中的词向量

用add_vectors方法把字典里的词和向量批量添加到模型中:

# 提取所有词和对应的向量列表
words = list(w2v_dict.keys())
vectors = list(w2v_dict.values())
# 添加到KeyedVectors
kv_model.add_vectors(words, vectors)

步骤4:计算欧氏距离

现在你就可以用Gensim的方法来计算词向量之间的欧氏距离了:

  • 计算两个词的欧氏距离:
    # 计算"house"和"home"的欧氏距离
    euclidean_distance = kv_model.distance("house", "home")
    print(f"欧氏距离:{euclidean_distance}")
    
  • 计算一个词和多个词的距离:
    # 计算"house"与"home"、"apartment"的距离
    distances = kv_model.distances("house", ["home", "apartment"])
    print(f"距离列表:{distances}")
    

额外:保存模型方便后续使用

如果之后还需要用到这个模型,可以把它保存成Gensim的专属格式:

kv_model.save("my_custom_word2vec.kv")
# 下次加载时直接用
# kv_model = KeyedVectors.load("my_custom_word2vec.kv")

小提示

KeyedVectors是Gensim专门用来存储和操作词向量的核心类,不管是从预训练的.bin/.txt文件加载,还是像你这样自定义构建,都能支持各种向量运算——除了欧氏距离,还能算余弦相似度、找相似词等等,完全满足你的需求。

内容的提问来源于stack exchange,提问作者James Dorfman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 09:03:14