Ошибка при реализации модели Word2Ve c с embedding_vector - PullRequest
0 голосов
/ 19 января 2020

Я получаю AttributeError при попытке реализовать с помощью embedding_vector:

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'

Ответы [ 2 ]

1 голос
/ 19 января 2020

У него нет метода get, измените его следующим образом: embeddings_dictionary[word]

1 голос
/ 19 января 2020

Да, gensim KeyedVectors абстракция не предлагает get() метод. (Какие документы или пример вы следуете, что предполагает это делает?)

Вы можете использовать стандартный Python [] -индексирование, например:

embedding_dictionary[word]

Хотя, это не так на самом деле причина, по которой вы * l oop копируете каждый вектор в свой embedding_matrix. Экземпляр KeyedVectors уже имеет необработанный массив с каждым вектором в строке в порядке списка KeyedVectors .index2entity - в его свойстве vectors:

embedding_dictionary.vectors
...