用mahout进行20news的分类

首先,下载数据集20news-bydate.tar.gz,在$MAHOUT_HOME下的 examples/bin/下建立work文件夹(mkdir /home/hadoop/mahout-distribution-0.4 /examples/bin/work/)将下载的数据集解压tar 20news-bydate.tar.gz,之后放到work文件夹下。

其次,产生Input数据集,即对训练数据集进行预处理,数据准备阶段,将各类中的数据进行分词处理,去掉标点及副词等,同时将各类中的文件读入到一个大文件中,使得每类最后只有一个文件包含起初所有的文件,mahout下处理的文件必须是SequenceFile格式的,还需要把txtfile转换成 sequenceFile。等处理完看结果时就明白了,

命令为:mahout org.apache.mahout.classifier.bayes.PrepareTwentyNewsgroups -p /home/hadoop/mahout-distribution-0.4/examples/bin/work/20news-bydate-train  -o /home/hadoop/mahout-distribution-0.4/examples/bin/work/bayes-train-input -a org.apache.mahout.vectorizer.DefaultAnalyzer -c UTF-8

完毕后将work 下的bayes-train-input放到hadoop的分布式文件系统上的 20news-input,输入命令 hadoop dfs -put /home/hadoop/mahout-distribution-0.4/examples/bin/work/bayes-train-input 20news-input

第三,用处理好的训练数据集进行训练得出分类模型即中间结果,模型保存在分布式文件系统上,在mahout的目录下输入命令 mahout trainclassifier -i 20news-input -o newsmodel -type bayes -ng 3 -source hdfs

或者输入命令:hadoop jar $MAHOUT_HOME/mahout-examples-0.5-job.jar org.apache.mahout.classifier.bayes.TrainClassifier -i 20news-input -o newsmodel -type bayes -ng 3 -source hdfs

当然可以查看newsmodel里的内容时,先查看其里面都有什么,命令:hadoop fs -lsr /user/hadoop/newsmodel

将其导入到本地txt格式,进行查看,例如命令:mahout seqdumper -s /user/hadoop/newsmodel/trainer-tfIdf//trainer-tfIdf/part-00000 -o /home/hadoop/out/part-1

最后,用模型进行测试,输入命令:mahout testclassifier -m newsmodel -d 20news-input -type bayes -ng 3 -source hdfs  -method mapreduce

 

转自:http://hi.baidu.com/bjwyl66/blog/item/32f0820d25ecfbf2ab6457f3.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值