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

Gensim访问Word2Vec词表时报AttributeError:模块无'Vocab'属性

Gensim 词向量Vocab属性不存在报错的解决方案

报错本质是Gensim 4.0及后续版本对词向量模块的内部存储结构做了不兼容重构,旧版本中通过wv.vocab字典、wv.Vocab类暴露的接口已经被移除,不存在可直接调用的同名属性,即使参考旧教程的解决方案做适配,也会因为接口版本不匹配触发报错。

代码修改方案

原有代码逻辑是校验目标词是否在已加载的词表范围内,再提取对应词向量,不需要调用已废弃的vocab属性,直接替换判断逻辑即可:

  • 替换原判断条件if word in self.w2v_model.wv.vocab: 为 if word in self.w2v_model.wv:
  • 词向量提取语句vector = self.w2v_model.wv[word] 在新版本中完全兼容,无需调整

修正后的完整可运行代码片段:

# if word in model.keys(): #use model.vocab for w2v model and model.keys() for Glove dicts
if word in self.w2v_model.wv:
    vector = self.w2v_model.wv[word]
else:
    vector = [0] * 100  

额外适配说明

  • 如果业务逻辑需要遍历词表、获取旧版本Vocab类存储的词频等元信息,可使用新版本提供的替代接口:通过self.w2v_model.wv.index_to_key获取全量词列表,通过self.w2v_model.wv.get_vecattr(word, "count")查询指定词的出现频次
  • 如果不想调整现有代码逻辑,可选择降级Gensim到3.x兼容版本,执行安装命令:pip install gensim==3.8.3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.26 22:24:07