2017-02-22 5 views
1

Ich trainiere mein eigenes word2vec Modell mit verschiedenen Daten. Um das resultierende Modell in meinen Klassifikator zu implementieren und die Ergebnisse mit dem ursprünglichen vortrainierten Word2vec-Modell zu vergleichen, muss das Modell in der binären Erweiterung .bin gespeichert werden. Hier ist mein Code, Sätze ist eine Liste von Kurznachrichten.Speichere Gensim Word2vec Modell im Binärformat .bin mit 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) 

Die letzte Methode, save_word2vec_format, gibt mir diese Fehlermeldung:

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

Was ich hier fehlt? Ich habe die Dokumentation von Gensim und anderen Foren gelesen. Diese repo on github verwendet fast die gleiche Konfiguration, so dass ich nicht verstehen kann, was falsch ist. Ich habe versucht, von skipgram zu cbow und von hierarchischen softmax zu negativen Sampling ohne Ergebnisse zu wechseln.

Vielen Dank im Voraus!

Antwort

2

Verwenden Sie eine Vorabversion Release Candidate Version von Gensim oder Code direkt aus der develop Branche?

In diesen Versionen wurde save_word2vec_format() in eine Dienstprogrammklasse namens KeyedVectors verschoben.

Sie werden noch nicht (ab Februar 2017) diese Versionen von der üblichen Art der Installation von Gensim, pip install gensim bekommen - und es ist wahrscheinlich, dass bis zum Zeitpunkt dieser Änderung in der offiziellen Verteilung die Fehlermeldung für den Versuch der älteren ist Anruf wird verbessert.

Ich empfehle die Version verwenden, die über einfache pip install gensim kommt, wenn Sie ein relativ erfahrenen Benutzer sind, die auch CHANGELOG.md nach dem Projekt sorgfältig ist.

+1

Vielen Dank für Ihre kristallklare Antwort. Ich dachte, es könnte ein Problem mit der Gensim-Version sein, da ich keine Methode namens save_word2vec_format unter den an das Modell angehängten sah. Ich habe Gensim über easy_install -U Gensim installiert, wie ich auf der Website-Dokumentation lese. Ich habe Gensim entfernt und plain pip install benutzt und jetzt funktioniert es reibungslos. Vielen Dank! – carloab

+0

FYI Ich denke, 1.0.0 ist jetzt offiziell, so dass sogar 'pip install gensim' eine Version mit der API-Änderung bekommen wird, aber ich denke auch, dass die Fehlermeldung verbessert wurde (um Leute stattdessen' KeyedVectors' zu nennen). – gojomo

Verwandte Themen