Aktualisieren Sie das gensim word2vec-Modell
Ich habe eine word2vec Modell im gensim ausgebildete 98892 Dokumente. Für jeden gegebenen Satz, der sich nicht in die Sätze array (d.h. die Menge, über die ich trainierte Modell), die ich brauche um das Modell zu aktualisieren mit diesem Satz, so dass die Abfrage das nächste mal gibt einige Ergebnisse. Ich mache es so:
new_sentence = ['moscow', 'weather', 'cold']
model.train(new_sentence)
und der Druck dieses logs:
2014-03-01 16:46:58,061 : INFO : training model with 1 workers on 98892 vocabulary and 100 features
2014-03-01 16:46:58,211 : INFO : reached the end of input; waiting to finish 1 outstanding jobs
2014-03-01 16:46:58,235 : INFO : training on 10 words took 0.1s, 174 words/s
Nun, wenn ich die Abfrage mit ähnlichen new_sentence für die meisten positiven (wie model.most_similar(positive=new_sentence)
) gibt es Fehler:
Traceback (most recent call last):
File "<pyshell#220>", line 1, in <module>
model.most_similar(positive=['moscow', 'weather', 'cold'])
File "/Library/Python/2.7/site-packages/gensim/models/word2vec.py", line 405, in most_similar
raise KeyError("word '%s' not in vocabulary" % word)
KeyError: "word 'cold' not in vocabulary"
Gibt an, dass das Wort 'kalt' ist nicht Teil des Vokabulars, über welches ich ausgebildet, das Ding (hab ich Recht)?
Die Frage ist also: Wie um das Modell zu aktualisieren, so dass es gibt alle möglichen ähnlichkeiten für den neuen Satz?
Word2Vec
ein online Word2Vec
. Wo können Sie aktualisieren Sie Ihre Vokabelliste und neue zu erlernen mit online-lernen. Ich habe es nicht ausprobiert, aber schau es dir mal an: rutumulkar.com/blog/2015/word2vec InformationsquelleAutor der Frage user2480542 | 2014-03-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
train()
erwartet eine Sequenz der Sätze auf den Eingang, nicht eine Satz.train()
nur updates GEWICHTE für bestehende feature-Vektoren basierend auf den vorhandenen Wortschatz. Sie können nicht hinzufügen neuer Vokabeln (=neues feature-Vektoren) mittrain()
.InformationsquelleAutor der Antwort Radim
Als der gensim 0.13.3 ist es möglich, online-Ausbildung von Word2Vec mit gensim.
InformationsquelleAutor der Antwort ksindi
Wenn Ihr Modell generiert wurde, mit Hilfe des C-tool load_word2vec_format es ist nicht möglich, Sie zu aktualisieren dieses Modell. Finden Sie die word2vec tutorial-Sektion auf Online-Training Word2Vec Tutorial:
InformationsquelleAutor der Antwort fjxx
Zuerst von allen, können Sie neue Wörter hinzufügen, um ein pre-Modell ausgebildet ist.
Jedoch, es gibt einen "neuen" doc2vec Modell, veröffentlicht im Jahr 2014, die erfüllt alle Ihre Anforderungen. Sie können es verwenden, um Zug ein Dokument, Vektor, anstatt einen Satz von word-Vektor kombinieren Sie dann.
Der beste Teil ist, doc2vec ableiten kann, ungesehen Sätze nach dem training. Obwohl das Modell noch nicht zu ändernde, Sie erhalten eine ziemlich gute Inferenz das Ergebnis basiert auf mein experiment.
InformationsquelleAutor der Antwort fyraimar
Problem ist, dass Sie können nicht umschulen, word2vec Modell mit neuen Sätzen. Nur doc2vec es erlaubt. Versuchen doc2vec Modell.
InformationsquelleAutor der Antwort Nurul Akter Towhid