Warum unterschiedliche Ergebnisse mit MALLET-Thema Inferenz für einzelne und Stapel von Dokumenten?

8

Ich versuche LDA Topic Modeling mit Mallet 2.0.7 durchzuführen. Ich kann ein LDA-Modell trainieren und nach den Ergebnissen der Trainingseinheit gute Ergebnisse erzielen. Außerdem kann ich den in diesem Prozess integrierten Inferenzrechner verwenden und ähnliche Ergebnisse erzielen, wenn ich meine Trainingsdatei erneut verarbeite. Wenn ich jedoch eine einzelne Datei aus dem größeren Trainingssatz nehme und sie mit dem Inferenzrechner verarbeite, erhalte ich sehr unterschiedliche Ergebnisse, die nicht gut sind.

Nach meinem Verständnis sollte der Inferenzler ein festes Modell verwenden und nur lokale Funktionen für dieses Dokument haben. Daher verstehe ich nicht, warum ich bei der Verarbeitung einer Datei oder der 1k aus meinem Trainingssatz andere Ergebnisse erhalten würde. Ich mache keine Frequenzunterbrechungen, die eine globale Operation zu sein scheinen, die diese Art von Effekt hat. Sie können andere Parameter sehen, die ich in den folgenden Befehlen verwende, aber sie sind meistens Standard. Das Ändern der Anzahl der Iterationen auf 0 oder 100 hat nicht geholfen.

Daten importieren:

%Vor%

Zug:

%Vor%

Themen, die während des Trainings einer bestimmten Datei zugewiesen werden, # 14 geht es um Wein, der korrekt ist:

%Vor%

Führen Sie Rückschlüsse auf die gesamte Zugserie aus:

%Vor%

Inferenzpunktzahl im Zug - sehr ähnlich:

%Vor%

Lassen Sie Rückschlüsse auf eine andere Trainingsdatendatei zu, die nur aus dieser 1 txt-Datei besteht:

%Vor%

Die Folgerung zu einem Dokument erzeugt die Themen 80 und 36, die sehr unterschiedlich sind (14 wird nahe der Punktzahl 0 angegeben):

%Vor%     
John Lehmann 03.10.2011, 15:15
quelle

1 Antwort

10

Das Problem war eine Inkompatibilität zwischen small.data und one.data Trainingsdatendateien. Obwohl ich sorgfältig alle Optionen verwendet habe, verwenden zwei Dateien standardmäßig unterschiedliche Alphabete (Zuordnung zwischen Wörtern und ganzen Zahlen). Um dies zu korrigieren, verwenden Sie die Option --use-pipe-from [MALLET TRAINING FILE], und die Angabe anderer Optionen scheint unnötig zu sein. Danke an David Mimno.

%Vor%     
John Lehmann 04.10.2011, 16:51
quelle