如何解决运行作者名消歧项目时Word2Vec模型不可迭代报错
Word2Vec模型不可迭代报错修复方案
错误根因
该报错由gensim库版本迭代后的API不兼容导致:你运行的开源项目基于gensim 3.x版本编写,本地安装的是gensim 4.0及以上版本,新版本不再支持直接对Word2Vec实例做成员判断、直接取词向量的操作,相关能力已全部迁移到模型的wv属性下。
修复方法
无需降级依赖库,仅修改两处调用Word2Vec模型的代码即可:
- 判断词是否在词表的逻辑
j in model修改为j in model.wv - 获取词向量的逻辑
model[j]修改为model.wv[j]
另外你提供的代码存在缩进缺失问题,运行前需保证循环、分支下的代码有正确的缩进层级,修正后的完整代码片段如下:
num_step = 20 #GRU时序个数 word_input = 100 paperid_title = {} with open("gene/paper_title.txt",encoding = 'utf-8') as adictfile: for line in adictfile: toks = line.strip().split("\t") if len(toks) == 2: paperid_title[toks[0]] = toks[1] save_model_name = "gene/word2vec.model" model = word2vec.Word2Vec.load(save_model_name) paper_vec={} paper_len={} for paperid in paperid_title: split_cut = paperid_title[paperid].split() words_vec = [] for j in split_cut: if (len(words_vec)<num_step) and (j in model.wv): words_vec.append(model.wv[j])
内容的提问来源于stack exchange,提问作者Meet Maratha
相关产品推荐
相关产品推荐

