Mahout Naive Bayes中文新闻分类示例
2016-07-10 14:28
411 查看
转载原文:http://www.cnblogs.com/panweishadow/p/4320720.html
关于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
2.上传数据到hdfs,数据量大小,亲测数小时~~~
user@hadoop:~/workspace$hadoop dfs -cp /share/data/Mahout_examples_Data_Set/20news-all
.
3.从20newsgroups data创建序列文件(sequence files)
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
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
一、简介
关于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
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树