python - 使用 embedding_vector 实现 Word2Vec 模型时出错
问题描述
尝试使用 embedding_vector 实现时出现AttributeError :
from gensim.models import KeyedVectors
embeddings_dictionary = KeyedVectors.load_word2vec_format('model', binary=True)
embedding_matrix = np.zeros((vocab_size, 100))
for word, index in tokenizer.word_index.items():
embedding_vector = embeddings_dictionary.get(word)
if embedding_vector is not None:
embedding_matrix[index] = embedding_vector
AttributeError:“Word2VecKeyedVectors”对象没有属性“get”
解决方案
是的,gensim
的KeyedVectors
抽象不提供get()
方法。(您遵循哪些文档或示例表明它确实如此?)
您可以使用标准的 Python[]
索引,例如:
embedding_dictionary[word]
但是,您的循环将每个向量复制到您自己的embedding_matrix
. 该KeyedVectors
实例已经有一个原始数组,每个向量在一行中,按照KeyedVectors
.index2entity
列表的顺序 - 在它的vectors
属性中:
embedding_dictionary.vectors
推荐阅读
- python - 来自 CSV 的 Avro Python - avro.io.AvroTypeException:数据不是模式的示例
- php - 从现有数组创建数组堆栈
- haskell - 在 ST monad 中隐藏幻像类型
- android-studio - 如何为这段代码绘制类图?
- javascript - 多选框:未捕获的类型错误:无法读取未定义的属性“长度”
- firebase - Firebase 规则数据库允许所有登录用户访问
- c# - 在 Bond 中初始化继承的结构
- vba - 文件系统对象后期绑定
- java - 无法解决 R 并且项目未构建
- java - SimplePrincipal 不能转换为 KeycloakPrincipal