Unbekannte Wörter in einer trainierten Worteinbettung (Gensim) zur Verwendung in Keras

Dec 19 2020

Ich trainiere eine Worteinbettung mit GENSIM (word2vec) und verwende das trainierte Modell in einem neuronalen Netzwerk in KERAS. Ein Problem tritt auf, wenn ich ein unbekanntes Wort (außerhalb des Wortschatzes) habe, sodass das neuronale Netzwerk nicht mehr funktioniert, weil es keine Gewichte für dieses bestimmte Wort finden kann. Ich denke, eine Möglichkeit, dieses Problem zu beheben, besteht darin <unk>, der vorab trainierten Worteinbettung ein neues Wort ( ) mit Nullgewichten hinzuzufügen (oder vielleicht zufälligen Gewichten? Welches ist besser?). Ist dieser Ansatz in Ordnung? Auch für diese Worteinbettung sind die Gewichte in diesem neuronalen Netzwerk nicht trainierbar.

Antworten

1 gojomo Dec 20 2020 at 04:17

Am typischsten ist es, unbekannte Wörter zu ignorieren. (Das Ersetzen durch ein Plug-Wort oder den Ursprungsvektor ist verzerrender.)

Sie FastTextkönnen stattdessen auch einen Modus trainieren , der immer einen Vermutungsvektor für ein Wort außerhalb des Wortschatzes aus den während des Trainings erstellten Zeichen-n-Gramm-Vektoren synthetisiert. (Diese synthetischen Vektoren sind oft besser als nichts, insbesondere wenn ein Wort überlappende Wortwurzeln mit verwandten Wörtern hat. Es ist jedoch besser, mehr Trainingsdaten mit Beispielen für alle relevanten Wortverwendungen zu erhalten, und seltene unbekannte Wörter einfach zu ignorieren, ist nicht so schlecht.)