Как сохранить файл gensim word2vec? - PullRequest
1 голос
/ 15 октября 2019

У меня есть два списка, A - это список слов, например ["hello", "world", ......], Len (A) - 10000. Список B содержит все предварительно обученные векторысоответствует A, который представляет собой [10000,512], 512 - векторное измерение. Я хочу преобразовать два списка в формат модели gensim word2vec, чтобы загрузить модель позже, например model = Word2Vec.load("word2vec.model"), как мне это сделать?

1 Ответ

1 голос
/ 15 октября 2019

Поскольку у вас есть только слова и их векторы, у вас недостаточно информации для полной модели Word2Vec (которая включает в себя другие вещи, такие как скрытые веса внутренней нейронной сети и частоты слов).

Но вы можете создать объект gensim KeyedVectors общего вида, который находится в свойстве gensim Word2Vec модель .wv. Он имеет много вспомогательных методов (например, most_similar()), которые вы можете использовать.

Предположим, что ваш список слов A находится в более понятном названии списка Python, называемом words_list, а ваш список B векторовв более понятном названии списка Python, называемом 'vectors_list`.

Попробуйте:

from gensim.models import KeyedVectors
kv = new KeyedVectors(512)
kv.add(words_list, vectors_list)
kv.save(`mywordvecs.kvmodel`)

Затем вы можете позже перезагрузить их через:

kv2 = KeyedVectors.load(`mywordvecs.kvmodel`)

(Вы также можете использовать save_word2vec_format() и load_word2vec_format() вместо родного save() / load() от gensim, если вы хотите использовать более простые форматы простых векторов, которые также могут быть загружены другими инструментами, использующими этот формат. в gensim простые save() / load() также хороши - и будет лучше, если сохранить более сложную обученную модель Word2Vec, потому что они сохранят дополнительную информацию, содержащуюся в этих объектах.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...