2017-08-03 1 views
0

Ich baue das TensorFlow-Modell für die NLP-Aufgabe und verwende den vortrainierten Glove 300d-Wortvektor/Einbettungsdatensatz.Initialisierung von Vokabeln für Vokabeln (OOV)

Offensichtlich können einige Token nicht als Einbettungen aufgelöst werden, weil sie nicht in den Trainingsdatensatz für das Wortvektoreinbettungsmodell, z.B. seltene Namen.

Ich kann diese Token durch Vektoren von 0s ersetzen, aber anstatt diese Informationen auf den Boden fallen zu lassen, bevorzuge ich es irgendwie zu kodieren und zu meinen Trainingsdaten hinzuzufügen.

Say, ich habe 'Raijin' Wort, das nicht als Einbettung Vektor gelöst werden kann, was wäre der beste Weg, um es konsequent mit Glove Einbettung Datensatz zu kodieren? Was ist der beste Ansatz, um es in 300d Vektor zu konvertieren?

Vielen Dank.

Antwort

2

Anstatt alle Out of Vocabulary Tokens einem gemeinsamen Vektor UNK (Nullen) zuzuordnen, ist es besser, ihnen einen eindeutigen Zufallsvektor zuzuweisen. Zumindest auf diese Weise, wenn Sie die Ähnlichkeit zwischen ihnen mit irgendeinem anderen Wort finden, wird jeder von ihnen einzigartig sein und das Modell kann etwas daraus lernen. In der UNK case werden sie alle gleich sein und so werden alle UNK-Wörter so behandelt, als hätten sie denselben Kontext.

habe ich versucht, diesen Ansatz und bekam eine 3% ige Genauigkeit Verbesserung des Quora Duplicate question pair detection Dataset ein LSTM Modell.

Verwandte Themen