Gensim Self Тренированные вложения нагрузки - PullRequest
0 голосов
/ 04 сентября 2018

Существует два способа загрузки встроенных слов: те, которые скомпилированы в C, и другие в python. У меня есть самообучающиеся вложения в python, которые загружаются с:

model = gensim.models.Word2Vec.load('transcript-vectors.pickle')

Но когда я иду, чтобы загрузить их в словарь слов (так же, как я делал бы с предварительно подготовленными вложениями от третьей стороны), он выдает ошибку, поскольку у него нет тех же методов, что и при другой загрузке.

embeddings_index = dict()
for word in model.wv.vocab:
    embeddings_index[word] = model.word_vec(word)
print('Loaded %s vectors' % len(embeddings_index))
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-94-c1e5d21d49af> in <module>()
  1 embeddings_index = dict()
  2 for word in model.wv.vocab:
----> 3     embeddings_index[word] = model.word_vec(word)
  4 print('Loaded %s vectors' % len(embeddings_index))

AttributeError: 'Word2Vec' object has no attribute 'word_vec'

1 Ответ

0 голосов
/ 04 сентября 2018

Я читал некоторые другие записные книжки, которые у меня были, с использованием предварительно обученных вложений, если они не обучены C, тогда необходимо использовать model.wv [word] в качестве индекса, а не функцию word_vec ().

Итак, правильный цикл:

embeddings_index = dict()
for word in model.wv.vocab: #model.wv[word] | model.word_vec(word)
    embeddings_index[word] = model.wv[word]
print('Loaded %s vectors' % len(embeddings_index))

@ Soumitri Chilakamarri далее подтвердил это в своем комментарии.

...