2010-11-09 11 views
11

Sto cercando di risolvere un semplice problema di classificazione.Classificare i dati usando Apache Mahout

Il problema:
Ho un set di testo e devo categorizzarli in base al contenuto.

Soluzione utilizzando Mahout:
Ho capito che devo convertire l'input in un file di sequenza per generare il modello. Sì, sono stato in grado di farlo. Ora, come classifico i miei dati di test? L'esempio 20News verifica solo la correttezza. Ma, voglio fare la classificazione attuale.
Non sono sicuro se è necessario scrivere codice o utilizzare alcune classi esistenti disponibili per classificare il set di test.?

risposta

3

Detesto collegare il mio lavoro, ma abbiamo inserito un'intera sezione in Mahout in Action sulla classificazione. Teoria, esempi di codice, pratica del case study, anche un'intera implementazione della server farm.

È possibile ottenere la versione pre-release a http://www.manning.com/owen/

+14

IMO, le sezioni relative alla classificazione del libro potrebbe essere migliorata. Le sezioni sulla classificazione sono prolisse, poco chiare e, spesso, non sequitur. Potrebbero esserci più esempi di codice java e meno esempi di shell bash. La sezione di classificazione potrebbe essere migliore se fosse scritta più come i capitoli introduttivi: Mostra il formato per i file di classificazione, come leggerli, come caricarli nel tuo classificatore, una volta addestrato, come usare il classificatore per classificare un nuovo campione. –

+8

Desidero che Mahout abbia una documentazione migliore e migliore. Le persone esperte nell'apprendimento automatico hanno difficoltà a comprendere la struttura della pipeline di elaborazione e l'architettura del codice. Persino i javadoc usano una terminologia inappropriata (setGramSize dovrebbe essere setNGramSize) la piccola semantica fa una ENORME differenza nella comprensione di concetti e codice. –

3

Sto riscontrando un problema simile.

Esecuzione

bin/mahout org.apache.mahout.classifier.Classify --path <PATH TO MODEL> --classify <PATH TO TEXT FILE TO BE CLASSIFIED> --encoding UTF-8 --analyzer org.apache.mahout.vectorizer.DefaultAnalyzer --defaultCat unknown --gramSize 1 --classifierType bayes --dataSource hdfs 

sarà classificare un file di testo in base al modello.

Questo potrebbe farti un po 'più avanti, ma suppongo che, come me, tu voglia classificare un intero carico di documenti e desideri l'output in un formato utile.

Potrebbe essere necessario programmare un po 'di java per eseguire questa operazione. Qualcuno ha un esempio che sembra farà quello che voglio a https://bitbucket.org/jaganadhg/blog/src/tip/bck9/java/src/org/bc/kl/ClassifierDemo.java

Problemi correlati