2017-02-22 62 views
1

Я тренирую свою собственную модель word2vec, используя разные данные. Чтобы реализовать полученную модель в моем классификаторе и сравнить результаты с исходной предварительно обученной моделью Word2vec, мне нужно сохранить модель в двоичном расширении .bin. Вот мой код, предложений - это список коротких сообщений.Сохранить gensim Word2vec модель в двоичном формате .bin с save_word2vec_format

import gensim, logging 
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO) 
sentences = gensim.models.word2vec.LineSentence('dati.txt') 
model = gensim.models.Word2Vec(
sentences, size=300, window=5, min_count=5, workers=5, 
sg=1, hs=1, negative=0 
) 
model.save_word2vec_format('model.bin', binary=True) 

Последний метод, save_word2vec_format, дает мне эту ошибку:

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

Что я здесь отсутствует? Я прочитал документацию по gensim и другим форумам. Этот repo on github использует почти ту же конфигурацию, поэтому я не могу понять, что не так. Я пытался переключиться с skipgram на cbow и с иерархического softmax на отрицательную выборку без каких-либо результатов.

Спасибо заранее!

ответ

2

Вы используете версию-релиз версии gensim с предварительным выпуском или код непосредственно из ветки develop?

В этих версиях save_word2vec_format() перешел в класс полезности под названием KeyedVectors.

Вы не сможете (начиная с февраля 2017 года) получить эти версии от обычного способа установки gensim, pip install gensim - и вполне вероятно, что к моменту, когда это изменение будет опубликовано в официальном дистрибутиве, появится сообщение об ошибке, вызов будет улучшен.

Я рекомендую использовать версию, которая поставляется через обычную pip install gensim, если вы не являетесь относительно опытным пользователем, который также внимательно следит за проектом CHANGELOG.md.

+1

Спасибо за ваш кристально чистый ответ. Я думал, что это может быть проблема с версией gensim, поскольку я не видел никакого метода, называемого save_word2vec_format, среди тех, которые были привязаны к модели. Я установил gensim через easy_install -U gensim, когда прочитал документацию на сайте. Я unistalled gensim и использовал простой pip install, и теперь он работает плавно. Большое спасибо! – carloab

+0

FYI Я думаю, что 1.0.0 теперь является официальным, поэтому даже «pip install gensim» получит версию с изменением API, но я также думаю, что сообщение об ошибке было улучшено (вместо того, чтобы указывать людям на использование «KeyedVectors»). – gojomo