2013-02-07 9 views
5

L'attuale Mahout 0.8-SNAPSHOT include una versione Collapsed Variation Bayes (cvb) per Topic Modeling e rimosso l'approccio Latent Dirichlet Analysis (lda), perché il cvb può essere meglio parallelizzato. Sfortunatamente c'è solo documentazione per lda su come eseguire un esempio e generare un output significativo.Esegui cvb in mahout 0.8

Così, voglio:

  • preprocess alcuni testi correttamente
  • eseguire la versione cvb0_local di CVB
  • ispezionare i risultati guardando le n parole top in ciascuno degli argomenti generati

risposta

12

Quindi, ecco i successivi comandi di Mahout che ho dovuto chiamare in una shell di Linux per farlo. $ MAHOUT_HOME punta alla mia cartella 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 

Controllare l'output mostrando le prime 10 parole di ogni argomento:

$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

esiste un modo per retrive ogni porcellana temi documen ts? o viceversa, per recuperare argomenti sui documenti? –

3

Grazie a JoKnopp per i comandi di dettaglio.

Se si ottiene: Exception in thread "main" java.lang.ClassCastException: java.lang.Integer non può essere lanciato a java.lang.String

è necessario aggiungere le "maxIterations" opzione riga di comando : --maxIterations (-m) maxIterations

io uso -m 20 e funziona

si riferiscono a: https://issues.apache.org/jira/browse/MAHOUT-1141