2013-02-07 6 views
5

Der aktuelle Mahout 0.8-SNAPSHOT enthält eine Collapsed Variationale Bayes (cvb) Version für Topic Modeling und entfernt den Latent Dirichlet Analysis (lda) -Ansatz, weil cvb viel besser parallelisiert werden kann. Leider gibt es nur Dokumentation für lda, wie man ein Beispiel ausführt und eine sinnvolle Ausgabe erzeugt.Run cvb in Mahout 0.8

So, ich will:

  • Vorprozess einige Texte richtig
  • die cvb0_local Version von cvb laufen
  • inspizieren die Ergebnisse von in jedem der generierten Themen in den oberen n Wörter suchen

Antwort

12

Also hier sind die nachfolgenden Mahout-Befehle, die ich in einer Linux-Shell aufrufen musste, um es zu tun. $ MAHOUT_HOME zeigt auf meinen Ordner mahout/bin.

$MAHOUT_HOME/mahout seqdirectory \ 
    -i path/to/directory/with/texts \ 
    -o out/sequenced 

$MAHOUT_HOME/mahout seq2sparse -i out/sequenced \ 
    -o out/sparseVectors \ 
    --namedVector \ 
    -wt tf 

$MAHOUT_HOME/mahout rowid \ 
    -i out/sparseVectors/tf-vectors/ \ 
    -o out/matrix 

$MAHOUT_HOME/mahout cvb0_local \ 
    -i out/matrix/matrix \ 
    -d out/sparseVectors/dictionary.file-0 \ 
    -a 0.5 \ 
    -top 4 -do out/cvb/do_out \ 
    -to out/cvb/to_out 

die Ausgabe Inspizieren durch die Top 10 Wörter jedes Thema zeigt:

$MAHOUT_HOME/mahout vectordump \ 
    -i out/cvb/to_out \ 
    --dictionary out/sparseVectors/dictionary.file-0 \ 
    --dictionaryType sequencefile \ 
    --vectorSize 10 \ 
    -sort out/cvb/to_out 
+0

gibt es eine Möglichkeit eache Themen Documen retrive ts? oder umgekehrt, Dokumenten-Themen zu reaktivieren? –

3

Dank JoKnopp für die Detail-Befehle.

Wenn Sie erhalten: Exception in thread "main" java.lang.ClassCastException: java.lang.Integer kann nicht auf java.lang.String gegossen werden

müssen Sie die Befehlszeilenoption "MaxIterations" hinzufügen : --maxIterations (-m) MaxIterations

I -m 20 verwenden und es funktioniert

beziehen sich auf: https://issues.apache.org/jira/browse/MAHOUT-1141