属性错误:无法在模块"gensim.models.word2vec"上获取属性"词汇" <



我的问题与这个问题类似。我尝试了发布在问题上的两种解决方案,但我仍然收到属性"的错误;Vocab";在gensim.models.word2vec模块中不可用。

我的代码中使用此属性的部分在这里

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

pip install gensim==3.8.1工作正常-问题出在特定的Gensim软件包版本上。

Gensim 4.0.0,有许多修复程序&性能改进,还更改了一些属性/方法名称以简化&长期一致性。一个项目wiki页面有一个调整旧代码以匹配新API的指南:

https://github.com/RaRe-Technologies/gensim/wiki/Migrating-from-Gensim-3.x-to-4

但是,您的代码根本不需要使用.vocab。单词向量集合w2v_model.wv可以回答关键字是否已经是in本身。因此,以下代码应该在4.0之前和4.0及以上版本中都可以使用:

if word in self.w2v_model.wv:
vector = self.w2v_model.wv[word]
else:
vector = [0] * 100  

(另外,如果你选择继续使用较旧的Gensim来推迟任何其他代码更改,最好使用2020年5月发布的3.x系列中的最后一个3.8.3,而不是2019年9月发布的较旧/有缺陷的3.8.1。但是一些与关键字2vec相关的操作在CCD_ 8&更高,因此尽可能避免回滚。(

最新更新