Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Classify data using Apache Mahout

I am trying to solve a simple classification problem.

The Problem:
I have a set of text and I have to categorize them based on the content.

Solution using Mahout:
I understood that I have to convert the input to a sequence file to generate the model. Yes, I was able to do this. Now, how do I categorize my test data? The 20News example only tests for correctness. But, I want to do the actual classification.
I am not sure if I need to write code or use some existing classes available to classify the test set.?

like image 977
vkris Avatar asked Nov 09 '10 19:11

vkris


2 Answers

I hate to plug my own work, but we put an entire section into Mahout in Action about classification. Theory, code examples, case study practice, even an entire server farm implementation.

You can get the pre-release version at http://www.manning.com/owen/

like image 121
Ted Dunning Avatar answered Nov 15 '22 17:11

Ted Dunning


I am having a similar problem.

Running

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

will classify a text file based on the model.

This might get you a bit further forward, but I'm guessing that, like me, you want to classify a whole load of documents and you want the output in a useful format.

Might have to program a bit of java to do this. Someone has an example that looks like it will do what I want at https://bitbucket.org/jaganadhg/blog/src/tip/bck9/java/src/org/bc/kl/ClassifierDemo.java

like image 32
Richard Fergie Avatar answered Nov 15 '22 17:11

Richard Fergie