2017-12-29 22 views
0

Ich habe ein Word2Vec-Modell, das auf einem riesigen Korpus trainiert wurde. Bei der Verwendung dieses Modells für die Neuronale Netzwerkanwendung stieß ich auf eine Reihe von Wörtern, die nicht im Vokabular standen. Jetzt muss ich Worteinbettungen für diese "Out of Vocabulary" Wörter finden. Also habe ich gegoogelt und herausgefunden, dass Facebook kürzlich eine FastText-Bibliothek dafür veröffentlicht hat. Nun meine Frage ist, wie kann ich mein vorhandenes Word2vec-Modell oder Keyedvectors in FastText-Modell konvertieren?Wie konvertiert man das Gensim-Word2Vec-Modell in das FastText-Modell?

Antwort

1

FastText ist in der Lage, Vektoren für Teilwortfragmente zu erstellen, indem diese Fragmente im ursprünglichen Training vom ursprünglichen Korpus eingeschlossen werden. Wenn dann ein Wort außerhalb des Wortschatzes ("OOV") gefunden wird, konstruiert es einen Vektor für diese Wörter unter Verwendung von Fragmenten, die es erkennt. Bei Sprachen mit wiederkehrenden Wortstamm-/Präfix-/Suffixmustern führt dies zu Vektoren, die besser sind als zufällige Vermutungen für OOV-Wörter.

Der FastText-Prozess jedoch nicht extrahiert diese Unterwort Vektoren aus endgültigen Vollwort Vektoren. Daher gibt es keine einfache Möglichkeit, Vollwortvektoren in ein FastText-Modell zu verwandeln, das auch Unterwortvektoren enthält.

Es könnte einen praktikablen Weg geben, den gleichen Effekt zu approximieren, zum Beispiel, indem alle bekannten Wörter mit dem gleichen Teilwortfragment genommen werden und ein allgemeiner Mittelwert/Vektorkomponente extrahiert wird, die dem Teilwort zugewiesen werden soll. Oder das Modellieren von OOV-Wörtern als ein Durchschnitt von Worten im Vokabular, die eine kurze Editierentfernung von dem OOV-Wort sind. Aber diese Techniken wären nicht ganz FastText, nur vage analog dazu, und wie gut sie funktionieren oder mit Tweaking arbeiten könnten, wäre eine experimentelle Frage. Es geht also nicht darum, eine Standardbibliothek zu ergattern.

Es gibt ein paar Forschungsberichte mit anderen OOV-Bootstrapping-Ideen, die in this blog post by Sebastien Ruder erwähnt werden.

Wenn Sie die FastText OOV-Funktionalität benötigen, wäre der am besten geeignete Ansatz, FastText-Vektoren von Grund auf auf dem gleichen Korpus zu trainieren, wie es für Ihre herkömmlichen Vollwortvektoren verwendet wurde.

Verwandte Themen