Mahout Naive Bayes中文新闻分类示例

转载原文:http://www.cnblogs.com/panweishadow/p/4320720.html


一、简介

关于Mahout的介绍,请看这里:http://mahout.apache.org/

关于Naive Bayes的资料,请戳这里:

Mahout实现了Naive Bayes分类算法,这里我用它来进行中文的新闻文本分类。

官方有一组分类例子,使用20 newsgroups data (http://people.csail.mit.edu/jrennie/20Newsgroups/20news-bydate.tar.gz) 总大小约为85MB。

对于中文文本,相比英文文本,只多一步切词的步骤,使用搜狗实验室的语料库,总大小约为300M。请戳这里:http://www.sogou.com/labs/resources.html?v=1

 

 

二、详细步骤

1.写切词小程序,工具包为IK,用空格分开,将所有新闻集中到一个文本中,一行代表一篇新闻~

2.上传数据到hdfs,数据量大小,亲测数小时~~~

     user@hadoop:~/workspace$hadoop dfs -cp /share/data/Mahout_examples_Data_Set/20news-all .

3.从20newsgroups data创建序列文件(sequence files)

 

user@hadoop:~/workspace$mahout seqdirectory -i 20news-all -o 20news-seq

4.将序列文件转化为向量

user@hadoop:~/workspace$mahout seq2sparse -i ./20news-seq -o ./20news-vectors  -lnorm -nv  -wt tfidf 

5.将向量数据集分为训练数据和检测数据,以随机40-60拆分

user@hadoop:~/workspace$mahout split -i ./20news-vectors/tfidf-vectors --trainingOutput ./20news-train-vectors --testOutput ./20news-test-vectors --randomSelectionPct 40 --overwrite --sequenceFiles -xm sequential

6.训练朴素贝叶斯模型

user@hadoop:~/workspace$mahout trainnb -i  ./20news-train-vectors -el -o ./model -li ./labelindex -ow -c 

7.检验朴素贝叶斯模型

user@hadoop:~/workspace$mahout testnb -i ./20news-train-vectors -m ./model -l ./labelindex -ow -o 20news-testing –c

 

8.检测模型分类效果

user@hadoop:~/workspace$mahout testnb -i ./20news-test-vectors -m ./model -l ./labelindex -ow -o ./20news-testing -c

 

参考资料:http://openresearch.baidu.com/activitybulletin/448.jhtml;jsessionid=28BD4187550DCA6F8AD6FEA4DCCA2480



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值