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

最佳答案

是的,gensimKeyedVectors抽象不提供get()方法。 (您遵循的是什么文档或示例表明确实如此?)

您可以使用标准的Python []-索引,例如:

embedding_dictionary[word]


但是,循环并没有真正的理由将每个向量复制到您自己的embedding_matrix中。 KeyedVectors实例已经具有一个原始数组,每个矢量都按KeyedVectors .index2entity列表的顺序排列在其vectors属性中:

embedding_dictionary.vectors

08-24 20:50