Ich verwende Vowpal Wabbit 7.10.0 (VW), um Kategorien für Textdaten zu lernen und vorherzusagen. Meine Textdaten für jeden Datensatz ähneln jedoch nicht einem Artikel oder einem anderen Textdokument mit anständiger Größe, sondern einigen Sätzen wie Titel, Untertitel und Schlüsselwörtern.
Ich habe ungefähr 10.000 beschriftete Datensätze, die ich für die Validierung, Schulung und Prüfung verwenden kann, und ungefähr 1-2 Millionen unbeschriftete Datensätze. Es ist ein Mehrklassenproblem mit rund 100 Klassenetiketten, die ebenfalls unausgewogen sind.
Was wäre das beste Vorverarbeitungs- und Eingabeformat, um solche Daten mit VW optimal zu nutzen?
Meine Erfahrung zeigt mir, dass VW-Modelle empfindlich auf Probleme mit Klassenungleichgewichten reagieren sollten. Hier ist eine andere Quelle, die dies bestätigt . Ist das richtig?
Bei der Auswahl eines Modells habe ich beschlossen, lieber Wortkombinationen durch n-Gramm zu berücksichtigen und dann latente Variablen basierend auf der Häufigkeit zu entdecken (weil die Texte zu kurz sind). Außerdem neigen einige Texte dazu, ein Wort hundertmal aufzulisten (für SEO) in meinen Daten. Daher gehe ich nicht TF-IDF. Ist das richtig oder nicht? Ich denke, ich kann sowohl n-Gramm als auch Wortbeutel als verschiedene Namespaces kombinieren. Aber mit welchem Klassifikator mit welchen Parametern soll man anfangen?
Bisher habe ich es auf drei verschiedene Arten der Datenvorverarbeitung versucht: (1) unverarbeiteter Text mit nur entfernter Interpunktion, (2) Tokenisierung, Lemmatisierung (nicht Stemming), entfernte Stoppwörter, (3) zusätzlich zu (2), Tasche von Wörtern, dh Wort: word_count-Format.
Die Ergebnisse sind mit einer sehr grundlegenden Einstellung nicht zufriedenstellend (in diesem Beispiel wurden 16 Klassen verwendet, nicht 100):
vw input.vw -c -k --passes 300 -b 24 --ect 16 -f model.vw
vw input.vw -t -i model.vw -p preds.txt
Die Fehlerrate beträgt selbst auf dem Trainingssatz etwa 0,68.
Ich habe einige Zeitlimits, um alle Arten von Einstellungen gründlich zu untersuchen, und brauche wirklich schnelle und informative Ratschläge: Was ist in meinem Fall die beste Vorverarbeitungstechnik und welches Modell, das in der neuesten VW implementiert ist, sollte ich verwenden. Diese beiden Probleme hängen zusammen.