Beeinflusst das Tranieren des Word2VEC -Modells mehrmals den Parameter `min_count`?
-
16-10-2019 - |
Frage
Im Word2Vec
, Wenn ich eine Reihe von Sätzen mehrmals mit der Änderung in der Reihenfolge trainiere (wie die Vektordarstellungen erhöht), wird die Häufigkeit eines Wortes aufgrund ihres Wortes geändert.
Zum Beispiel, wenn ich das Wort "Hirsch" in meinem Korpus vier Mal habe und wenn ich das setze min_count
Um 5 Jahre alt zu sein, zählt das Training des Modells dreimal wiederholt "Hirsche" mit Frequenz 12 und wird in das Modell aufgenommen?
Wenn es weiß, dass es sich um den gleichen Korpus handelt, ist es, wie es möglich ist, das Modell mit einem neuen Korpus zu differenzieren.
Lösung
Die Frage wurde in Google Groups von Gordon Mohr beantwortet.
Normalerweise wird ein Lesen des Korpus zum Aufbau des Wortschatzes (einschließlich der Initialisierung des Modells basierend auf der gelernten Vokabulargröße) und einer beliebigen Anzahl von zusätzlichen Pässen für das Training angeboten. Erst nach dem einen Vokabular-Learning-Scan werden die Wortzahlen betrachtet (und verglichen mit
min_count
zum Trimmen).Wenn Sie einen Korpus (als neu startbarer Iterator) als eines der Argumente zur anfänglichen Erstellung des Word2VEC -Modells liefern, werden alle diese Schritte automatisch durchgeführt: eine Lesung des Korpus (durch die
build_vocab()
Methode) zum Sammeln von Wörtern/Zählungen, dann ein oder mehrere Pässe (wie durch den Parameter "Iter" gesteuert und über die durchgeführttrain()
Methode) für das Training. Dennoch nur die Anzahl der einzelnen Pass über die gelieferten Korpus -Angelegenheiten für Frequenzentscheidungen.Wenn Sie bei der Modellinitialisierung keinen Korpus liefern, können Sie anrufen
build_vocab(…)
undtrain(…)
dich selbst. Es ist nur das, was an übergeben wirdbuild_vocab()
Das ist wichtig für die beibehaltenen Frequenzzahlen (und für die Schätzung der Korpusgröße). Sie können dann anrufentrain(…)
auf andere Weise oder wiederholt - es nutzt das Wortschatz immer wieder von dem früherenbuild_vocab(…)
Anruf.(Beachten Sie, dass
train(…)
Versucht versucht, die Einzelpass-Korpusgröße wiederzuverwenden, die aus dem Vocab-Scanning-Pass erinnert, um genaue Fortschrittsschätzungen zu geben und den Verfall der Trainingsrate zu planenalpha
. Wenn Sie also einen Korpus mit unterschiedlichem Größe gebentrain(…)
, Sie sollten auch seine anderen optionalen Parameter verwenden, um ihm einen Hinweis auf die Größe zu geben.)