利用贝叶斯分类器进行文本挖掘---笔记
1. 调用庖丁分词器,分词
grid@server01:~/data$ hadoop jar mrtokenize.jar tokenize.TokenizeDriver /home/grid/data/lesson8 /home/grid/output/sportwords
14/08/31 21:59:33 INFO input.FileInputFormat: Total input paths to process : 10205
.....
14/08/31 22:05:25 INFO mapred.JobClient: Map output records=10205
共处理:10205个文件,耗时 6 分钟
分词后的结果:
badminton 尤伯 伯杯 中国 泰国 挺进 决赛 王仪 仪涵 机敏 回球 月 日 中国 中国队 选手 王仪 仪涵 比赛 中回 回球 她最 最终 战胜 泰国 队 选手 手拉 差诺 当日 武汉 体育 中心 中心体 体育 体育馆 举行 年尤 尤伯 伯杯 羽毛 羽毛球 球赛 决赛 半决赛 中 中国 中国队 总比 比分 战胜 泰国 队 晋级 决赛 新华 新华社 记者 孟永 永民 民摄 关注 体育 了解 更多 体坛 资讯
badminton 尤伯 伯杯 中国 泰国 挺进 决赛 王仪 仪涵 比赛 中 发球 月 日 中国 中国队 选手 王仪 仪涵 比赛 中 发球 她最 最终 战胜 泰国 队 选手 手拉 差诺 当日 武汉 体育 中心 中心体 体育 体育馆 举行 年尤 尤伯 伯杯 羽毛 羽毛球 球赛 决赛 半决赛 中 中国 中国队 总比 比分 战胜 泰国 队 晋级 决赛 新华 新华社 记者 孟永 永民 民摄 关注 体育 了解 更多 体坛 资讯
2. load 分词集
grunt> processed = load'/home/grid/output/sportwords' as (category:chararray, doc:chararray);
3. 随机 20% 生成 测试集
grunt> test = sample processed 0.2;
4. 生成训练集
grunt> jnt =join processed by (category,doc) left outer, test by (category, doc);
grunt> filt_test = filter jnt by test::category is null;
grunt> train = foreach filt_test generate processed::category as category, processed::doc as doc;
5. 导出测试集和训练集
grunt> store test into '/home/grid/data/lesson8.2/test';
6. 统计测试集分类
grunt> test_ct= foreach(group test by category) generate group, COUNT(test.category);
grunt> dump test_ct;
result:
(f1,196)
(golf,206)
(swim,170)
(tennis,187)
(football,209)
(pingpong,220)
(badminton,212)
(billiards,236)
(basketball,201)
(volleyball,204)
7. 统计训练集
grunt> train_ct= foreach(group train by category) generate group, COUNT(train.category);
grunt> dump train_ct;
8. 利用朴素贝叶斯分类器,来训练模型
grid@server01:~/data$ mahout trainclassifier \
> -i /home/grid/data/lesson8.2/train \
> -o /home/grid/output/model-bayes8.2 \
> -type bayes \
> -ng 1 \
> -source hdfs
result:
14/08/31 23:31:15 INFO mapred.JobClient: Map output records=228211
14/08/31 23:31:15 INFO common.HadoopUtil: Deleting /home/grid/output/model-bayes8.2/trainer-docCount
14/08/31 23:31:15 INFO common.HadoopUtil: Deleting /home/grid/output/model-bayes8.2/trainer-termDocCount
14/08/31 23:31:15 INFO common.HadoopUtil: Deleting /home/grid/output/model-bayes8.2/trainer-featureCount
14/08/31 23:31:15 INFO common.HadoopUtil: Deleting /home/grid/output/model-bayes8.2/trainer-wordFreq
14/08/31 23:31:15 INFO common.HadoopUtil: Deleting /home/grid/output/model-bayes8.2/trainer-tfIdf/trainer-vocabCount
14/08/31 23:31:15 INFO driver.MahoutDriver: Program took 1265118 ms (Minutes: 21.0853)
9. 测试模型
grid@server01:~/data$ mahout testclassifier \
> -d /home/grid/data/lesson8.2/test \
> -m /home/grid/output/model-bayes8.2 \
> -type bayes \
> -ng 1 \
> -source hdfs \
> -method mapreduce
14/08/31 23:45:52 INFO bayes.BayesClassifierDriver: ======================================================= Confusion Matrix ------------------------------------------------------- a b c d e f g h i j <--Classified as 190 0 1 1 0 3 0 0 0 0 | 195 a = basketball 0 249 0 0 0 0 1 0 0 0 | 250 b = billiards 0 0 198 0 0 1 0 0 0 0 | 199 c = badminton 0 0 0 224 0 0 0 0 0 0 | 224 d = football 0 0 0 0 190 0 0 0 0 0 | 190 e = volleyball 0 0 0 0 0 181 0 0 0 0 | 181 f = swim 0 1 0 0 0 0 204 0 0 0 | 205 g = pingpong 1 0 0 0 0 0 0 193 0 0 | 194 h = golf 0 0 0 0 0 0 0 0 196 0 | 196 i = f1 0 0 0 0 0 0 1 0 0 206 | 207 j = tennis
10. 用户浏览记录分词,同1
grid@server01:~/data$ hadoop jar mrtokenize.jar tokenize.TokenizeDriver /home/grid/data/les8-usersport /home/grid/lesson8/output/userwords
11. 利用sport 生成的模型对用户浏览内容进行分类
grid@server01:~/data$ hadoop jar mrclassify.jar classifier.ClassifierDriver \
> /home/grid/lesson8/output/userwords \
> /home/grid/lesson8/output/classify \
> /home/grid/output/model-bayes8.2 \
> bayes
result:
grid@server01:~/data$ hadoop fs -cat /home/grid/lesson8/output/classify/part-r-00000 | head -20
Warning: $HADOOP_HOME is deprecated.
10511838|badminton|7
10511838|basketball|5
10511838|billiards|8
10511838|f1|7
10511838|football|11
10511838|golf|5
10511838|pingpong|5
10511838|tennis|2
10511838|volleyball|12
10564290|badminton|2
10564290|basketball|12
10564290|billiards|11
10564290|f1|12
10564290|football|16
10564290|golf|1
10564290|pingpong|18
10564290|swim|6
10564290|tennis|3
10564290|volleyball|7
107879|basketball|7
转载于:https://blog.51cto.com/now51jq/1547434
利用贝叶斯分类器进行文本挖掘---笔记相关推荐
- 贝叶斯分类器原理——学习笔记
贝叶斯分类器原理 简介 一.逆概率推理与贝叶斯公式 1.确定性推理与概率推理 2.贝叶斯公式 二.贝叶斯分类的原理 三.概率估计 1.先验概率的估计 2.类条件概率的估计 四.贝叶斯分类的错误率 五. ...
- 【人工智能课程实验】 - 利用贝叶斯分类器实现手写数字 的识别
读入数据与预处理 因为老师给的文件无法直接读取,故从官网导入数据: 官网链接:http://www.cs.nyu.edu/~roweis/data.html 导入数据之后要对MATLAB文件进行读入: ...
- 利用朴素贝叶斯分类器实现手写数字的识别
利用贝叶斯分类器实现手写数字的识别 贝叶斯决策理论: 条件:类别数一定,
- 实现贝叶斯分类器_机器学习实战项目-朴素贝叶斯
朴素贝叶斯 概述 贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类.本章首先介绍贝叶斯分类算法的基础--贝叶斯定理.最后,我们通过实例来讨论贝叶斯分类的中最简单的一种: ...
- 贝叶斯算法 — 朴素贝叶斯分类器— 过滤垃圾邮件 — 流失用户 — 用户画像
目录 应用 1. 胃疼胃癌 2. 过滤垃圾邮件 朴素贝叶斯分类器 概念介绍 朴素贝叶斯分类器原理 贝叶斯分类器的应用 公式 求得是后验概率,等式右侧为先验概率 贝叶斯定理本质:通过 先验概率 求 后验 ...
- 机器学习:基于概率的朴素贝叶斯分类器详解--Python实现以及项目实战
前言 前篇基础理论知识:机器学习:贝叶斯分类器详解(一)-贝叶斯决策理论与朴素贝叶斯 这篇主要使用代码实现贝叶斯分类. 一.准备数据 创建一个bayes.py程序,从文本中构建词向量,实现词表向向量转 ...
- MATLAB+二值贝叶斯分类器的手写汉字识别(简易实现)
写在前头 ~~~~ ~~~ 本文以二值贝叶斯作为分类器,利用MATLAB编程工具,实现对9个手写汉字的识别.训练样本是本人手写,数量不大,所以重在描述个人对其工作原理的理解,仅供大家参考和指 ...
- 基于朴素贝叶斯分类器的西瓜数据集 2.0 预测分类_第十章:利用Python实现朴素贝叶斯模型
免责声明:本文是通过网络收集并结合自身学习等途径合法获取,仅作为学习交流使用,其版权归出版社或者原创作者所有,并不对涉及的版权问题负责.若原创作者或者出版社认为侵权,请联系及时联系,我将立即删除文章, ...
- 学习笔记-贝叶斯分类器及其python实现
朴素贝叶斯(NB) [学生党学习笔记,如有错误谢谢各位大佬指出] 所用书籍:<统计学习方法>-李航 一.概述 朴素贝叶斯模型首先基于特征条件独立假设,学习输入的联合概率分布:然后基于此 ...
最新文章
- centos6卸载mysql服务器_CentOS6.5下卸载自带的MySQL数据库安装MySQL5.6
- 网站收录慢的如“蜗牛”,是什么原因导致的?
- Shell——从hello world和echo命令开始
- 【WebRTC---入门篇】(二十)WebRTC核心之SDP详解
- css3制作广告栏效果的疑问?
- css3实现头像旋转360度
- 小汤学编程之JAVA基础day09——常用类(一):比较器、内部类和包装类
- Ulua_toLua_基本案例(六)_LuaCoroutine2
- 数据结构实验 5.二叉树深度
- iframe调用父页面方法_5.1 vue中子组件调用父组件的方法,务必理解自定义事件的重要性...
- ros control
- linux服务器磁盘陈列
- python线性拟合、不确定性
- 如何下载行政区划数据
- CentOS下安装SVN
- 一键清理系统垃圾文件.BAT
- 【滤波器】基于matlab高斯滤波器【含Matlab源码 995期】
- 阿里云服务器ECS到底是什么?
- inter至强服务器处理器型号,Intel发布新处理器,用金/银作为型号区分
- python打印26个英文字母和数字
热门文章
- 线程java作用_java线程介绍(原创)
- java的多态代码例子_java 多态实例代码
- 修改tomcat服务器图标,如何更改tomcat图标
- java spark es_ES-Spark连接ES后,ES Client节点流量打满分析
- php输入数据不能为空,输入的数据模型标识(modelID)'的值不能为空或者空白字符串...
- Python的第三方库xlwt
- MySQL 基准测试(sysbench)工具安装时提示 automake 1.10.x (aclocal) wasn‘t found, exiting
- 费诺编码的gui页面设计_关于页面可视化搭建的一些思考(一)
- 火狐浏览器jtopo节点切换tab后消失报错NS_ERROR_FAILURE的解决
- java当前路径_java获取当前路径的几种方法