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

加载FastText预训练词向量时报FastTextKeyedVectors无vocab属性如何解决

报错根本原因

你遇到的是Gensim版本迭代导致的接口不兼容问题:
Gensim从4.0版本开始重构了KeyedVectors相关组件的底层属性:

  1. 3.x版本中存储词汇表映射的.vocab属性被完全移除,替换为.key_to_index属性
  2. 旧版本的word_vec()方法被标记为弃用,内部逻辑没有适配新的属性规则
    你保存.kv文件用的是Gensim 3.x版本,而当前运行代码的环境安装的是Gensim 4.x版本,调用model[word]时内部会调用弃用的word_vec()方法访问不存在的.vocab属性,因此抛出AttributeError。
解决办法
  • 方法1(推荐,适配新版本):改用新版本Gensim官方推荐的调用写法,兼容已加载的旧版本模型文件:
vec_list = []
for word in words:
    # 先用新属性判断词是否在词汇表
    if word in model.key_to_index:
        vec_list.append(model.get_vector(word))
    else:
        # 自定义OOV词的处理逻辑,比如补零或者跳过
        vec_list.append(np.zeros(model.vector_size))
words_df = pd.DataFrame(vec_list)
  • 方法2:降级Gensim到3.x最终稳定版本,不需要修改原有代码即可直接运行:
pip install gensim==3.8.3
  • 方法3:在当前Gensim 4.x环境下重新训练FastText模型并保存.kv文件,新生成的模型文件完全适配新版本属性规则,原有读取逻辑无需修改即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:27:02