Gensim 4.0.0中如何修改`X = model[model.wv.vocab]`解决vocab属性移除错误?
解决Gensim 4.0.0中
AttributeError: The vocab attribute was removed的问题 在Gensim 4.0.0版本中,KeyedVector的vocab属性被正式移除,替代它的是更直观的索引相关属性。针对你的代码X = model[model.wv.vocab],可以通过以下两种方式修改:
方式一:直接获取词向量矩阵(推荐)
model.wv.vectors本身就是按词汇索引顺序存储的所有词向量的NumPy数组,和原代码的输出结果完全一致,写法更简洁:
X = model.wv.vectors
方式二:通过词汇列表获取
如果你需要明确对应词汇与向量的映射关系,可以先通过index_to_key获取所有词汇的列表,再提取对应向量:
# 获取所有词汇的列表,顺序与vectors中的向量一一对应 all_words = model.wv.index_to_key X = model.wv[all_words]
补充说明
Gensim 4.x中替代vocab的核心属性:
key_to_index:字典类型,键为词汇,值为对应的索引位置index_to_key:列表类型,索引位置对应的词汇,与vectors的顺序完全匹配
内容的提问来源于stack exchange,提问作者王路凯
相关产品推荐
相关产品推荐

