我在尝试使用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