Ja, die intersect_word2vec_format()
lässt Sie Vektoren von einer externen Datei in ein Modell bringen, das bereits sein eigenes Vokabular initialisiert hat (wie durch build_vocab()
). Das heißt, es werden nur diejenigen Vektoren geladen, für die bereits Wörter im lokalen Vokabular vorhanden sind.
Zusätzlich wird standardmäßig Sperre diese geladenen Vektoren gegen jede weitere Anpassung während des nachfolgenden Trainings, obwohl andere Wörter in der bereits vorhandenen Vokabular weiterhin aktualisiert werden können. (Sie können dieses Verhalten ändern, indem Sie einen lockf=1.0
Wert anstelle der Standardeinstellung 0.0 angeben.)
Allerdings wird dies am besten als experimentelle Funktion betrachtet und was, wenn überhaupt, Vorteile, die es bietet, hängt von vielen spezifischen Dingen ab Konfiguration. Der PV-DBOW Doc2Vec-Modus, der dem dm=0
-Parameter entspricht, ist oft ein Top-Performer in Geschwindigkeit und Doc-Vektor-Qualität und verwendet oder trainiert überhaupt keine Wortvektoren - also jedes Vorladen von Vektoren haben keine Wirkung.
Der PV-DM-Modus, der durch die Standardeinstellung dm=1
aktiviert wird, trainiert alle Wortvektoren, die er gleichzeitig mit doc-vector training benötigt. (Das heißt, es gibt keine separate Phase, in der zuerst die Wortvektoren erstellt werden, und für die gleichen iter
Durchgänge dauert das PV-DM-Training die gleiche Zeit, ob Wortvektoren mit voreingestellten Zufallswerten beginnen oder aus denen sie vorgeladen sind an anderer Stelle.) Das Vormodellieren des Modells mit einigen Wortvektoren von anderswo könnte der endgültigen Qualität helfen oder schaden - es hängt wahrscheinlich von den Besonderheiten Ihres Korpus, Ihrer Meta-Parameter und Ihrer Ziele ab, und ob diese externen Vektoren Wortbedeutungen darstellen synchron mit dem aktuellen Korpus/Ziel.
Vielen Dank für Ihre ausführliche Antwort. Es hat eine Menge Dinge für mich aufgeklärt. Ich kann jetzt mein erstes d2v-Modell mit PV-DM trainieren :) :) –