Umgang mit unbekannten Wörtern in Sprachmodellierungsaufgaben mit LSTM


11

Für eine NLP-Aufgabe (Natural Language Processing) werden häufig word2vec-Vektoren als Einbettung für die Wörter verwendet. Es kann jedoch viele unbekannte Wörter geben, die nicht von den word2vec-Vektoren erfasst werden, einfach weil diese Wörter in den Trainingsdaten nicht oft genug gesehen werden (viele Implementierungen verwenden eine Mindestanzahl, bevor dem Wortschatz ein Wort hinzugefügt wird). Dies kann insbesondere bei Texten von z. B. Twitter der Fall sein, bei denen Wörter häufig falsch geschrieben werden.

Wie sollten solche unbekannten Wörter behandelt werden, wenn eine NLP-Aufgabe wie die Stimmungsvorhersage unter Verwendung eines Langzeitnetzwerks (LSTM) modelliert wird? Ich sehe zwei Möglichkeiten:

  1. Hinzufügen eines Tokens für ein unbekanntes Wort zum word2vec-Wörterbuch.
  2. Löschen Sie diese unbekannten Wörter so, dass der LSTM nicht einmal weiß, dass das Wort im Satz enthalten ist.

Was ist die bevorzugte Art, mit diesen Wörtern umzugehen?


2
Ich habe eine ähnliche Frage früher beantwortet. Während die Frage damals nicht spezifisch für LSTMs war, scheint das meiste, was ich dort geschrieben habe, genauso zutreffend zu sein: stats.stackexchange.com/questions/163005/…
fnl

Antworten:


11

Option 1 (Hinzufügen eines unbekannten Wort-Tokens) ist, wie die meisten Leute dieses Problem lösen.

Option 2 (Löschen der unbekannten Wörter) ist eine schlechte Idee, da sie den Satz auf eine Weise transformiert, die nicht mit dem Training des LSTM übereinstimmt.

Eine andere Option, die kürzlich entwickelt wurde, besteht darin, ein Wort zu erstellen, das im laufenden Betrieb für jedes Wort eingebettet wird, wobei ein Faltungs-Neuronales Netzwerk oder ein separates LSTM verwendet wird, das die Zeichen jedes Wortes einzeln verarbeitet. Mit dieser Technik wird Ihr Modell niemals auf ein Wort stoßen, für das es keine Einbettung erstellen kann.


Hallo Aaron, kannst du mir ein paar Hinweise (Papiere oder Code) geben, die deine dritte Option verwenden?
Prophezeiungen



1
Eine neuere (EMNLP 2017) arxiv.org/abs/1707.06961 mit dem Code github.com/yuvalpinter/Mimick
jayelm

-1

Das Zuordnen seltener Wörter bedeutet einfach, dass wir diese Wörter löschen und durch das Token in den Trainingsdaten ersetzen. Daher kennt unser Modell keine seltenen Wörter. Es ist eine grobe Form der Glättung, da das Modell davon ausgeht, dass das Token in realen Daten niemals tatsächlich auftritt oder besser, diese n-Gramme jedoch insgesamt ignoriert.


4
Bitte ergänzen Sie diese Antwort erheblich. Unterstützen Sie beispielsweise die Behauptung, dass "das Hinzufügen eines unbekannten Wort-Tokens die beste Option ist".
Jim
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.