Bei einem Satz: „Wenn ich das öffnen ?? Tür es beginnt Heizung automatisch“
Ich möchte die Liste der möglichen Wörter in bekommen? mit einer Wahrscheinlichkeit.
Das Grundkonzept, das im word2vec-Modell verwendet wird, besteht darin, ein Wort im gegebenen Umgebungskontext "vorherzusagen".
Was ist die richtige Operation für Kontextvektoren, wenn das Modell erstellt wurde, um meine Vorhersage-Aufgabe für neue Sätze auszuführen?
Ist es einfach eine lineare Summe?
model.most_similar(positive=['When','I','open','the','door','it','starts' ,'heating','automatically'])
Antworten:
Word2vec funktioniert in zwei Modellen CBOW und Skip-Gram. Nehmen wir das CBOW-Modell, da Ihre Frage genau so lautet, wie Sie das Zielwort vorhersagen, wenn Sie die umgebenden Wörter berücksichtigen.
Das Modell entwickelt grundsätzlich Eingabe- und Ausgabegewichtsmatrizen, die von den Eingabekontextwörtern und dem Ausgabezielwort mit Hilfe einer verborgenen Schicht abhängen. Daher wird die Rückausbreitung verwendet, um die Gewichte zu aktualisieren, wenn die Fehlerdifferenz zwischen dem vorhergesagten Ausgabevektor und der aktuellen Ausgabematrix besteht.
Grundsätzlich wird das Vorhersagen des Zielworts aus gegebenen Kontextwörtern als Gleichung verwendet, um die optimale Gewichtungsmatrix für die gegebenen Daten zu erhalten.
Die Beantwortung des zweiten Teils erscheint etwas komplexer als nur eine lineare Summe.
h
der Größe zu ermittelnNx1
syn1
(word2vec.c
odergensim
), die von Größe istVxN
syn1
mith
, der resultierende Vektor hat diez
GrößeVx1
y = softmax(z)
mit der GrößeVx1
, wobei die höchste Wahrscheinlichkeit die One-Hot-Darstellung des Zielworts im Wortschatz bezeichnet.V
bezeichnet die Größe des Wortschatzes undN
bezeichnet die Größe des Einbettungsvektors.Quelle: http://cs224d.stanford.edu/lecture_notes/LectureNotes1.pdf
Update: Langzeit-Kurzzeitgedächtnismodelle leisten derzeit hervorragende Arbeit bei der Vorhersage der nächsten Wörter. seq2seq- Modelle werden im Tensorflow-Tutorial erklärt . Es gibt auch einen Blog-Beitrag über die Texterstellung.
quelle
syn1
indem man einfach das Modell speichert. ja, die Reihenfolge wird ignoriert, für die Anwendung könnte man tatsächlich das LSTM-basierte seq2seq-Modell verwenden.Die Vorhersage fehlender Wörter wurde in der neuesten Version von Word2Vec als Funktion hinzugefügt. Natürlich muss Ihr Satz mit der Word2Vec-Modelleingabesyntax übereinstimmen, die zum Trainieren des Modells verwendet wird (Kleinbuchstaben, Stoppwörter usw.).
Verwendung für die Vorhersage der Top-3-Wörter für "Wenn ich die Tür öffne?":
quelle
center
zwischen dem 3. und 4. Wort war? Das ergibt für mich keinen Sinn. Ich würde mir vorstellen, dass nur Kontextwörter mit geraden Zahlenfloor(len(n)/2))
floor(len(n)/2))+1