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. 贝叶斯分类器原理——学习笔记

    贝叶斯分类器原理 简介 一.逆概率推理与贝叶斯公式 1.确定性推理与概率推理 2.贝叶斯公式 二.贝叶斯分类的原理 三.概率估计 1.先验概率的估计 2.类条件概率的估计 四.贝叶斯分类的错误率 五. ...

  2. 【人工智能课程实验】 - 利用贝叶斯分类器实现手写数字 的识别

    读入数据与预处理 因为老师给的文件无法直接读取,故从官网导入数据: 官网链接:http://www.cs.nyu.edu/~roweis/data.html 导入数据之后要对MATLAB文件进行读入: ...

  3. 利用朴素贝叶斯分类器实现手写数字的识别

    利用贝叶斯分类器实现手写数字的识别 贝叶斯决策理论: 条件:类别数一定,

  4. 实现贝叶斯分类器_机器学习实战项目-朴素贝叶斯

    朴素贝叶斯 概述 贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类.本章首先介绍贝叶斯分类算法的基础--贝叶斯定理.最后,我们通过实例来讨论贝叶斯分类的中最简单的一种: ...

  5. 贝叶斯算法 — 朴素贝叶斯分类器— 过滤垃圾邮件 — 流失用户 — 用户画像

    目录 应用 1. 胃疼胃癌 2. 过滤垃圾邮件 朴素贝叶斯分类器 概念介绍 朴素贝叶斯分类器原理 贝叶斯分类器的应用 公式 求得是后验概率,等式右侧为先验概率 贝叶斯定理本质:通过 先验概率 求 后验 ...

  6. 机器学习:基于概率的朴素贝叶斯分类器详解--Python实现以及项目实战

    前言 前篇基础理论知识:机器学习:贝叶斯分类器详解(一)-贝叶斯决策理论与朴素贝叶斯 这篇主要使用代码实现贝叶斯分类. 一.准备数据 创建一个bayes.py程序,从文本中构建词向量,实现词表向向量转 ...

  7. MATLAB+二值贝叶斯分类器的手写汉字识别(简易实现)

    写在前头 ~~~~    ~~~   本文以二值贝叶斯作为分类器,利用MATLAB编程工具,实现对9个手写汉字的识别.训练样本是本人手写,数量不大,所以重在描述个人对其工作原理的理解,仅供大家参考和指 ...

  8. 基于朴素贝叶斯分类器的西瓜数据集 2.0 预测分类_第十章:利用Python实现朴素贝叶斯模型

    免责声明:本文是通过网络收集并结合自身学习等途径合法获取,仅作为学习交流使用,其版权归出版社或者原创作者所有,并不对涉及的版权问题负责.若原创作者或者出版社认为侵权,请联系及时联系,我将立即删除文章, ...

  9. 学习笔记-贝叶斯分类器及其python实现

    朴素贝叶斯(NB) [学生党学习笔记,如有错误谢谢各位大佬指出] 所用书籍:<统计学习方法>-李航 一.概述   朴素贝叶斯模型首先基于特征条件独立假设,学习输入的联合概率分布:然后基于此 ...

最新文章

  1. centos6卸载mysql服务器_CentOS6.5下卸载自带的MySQL数据库安装MySQL5.6
  2. 网站收录慢的如“蜗牛”,是什么原因导致的?
  3. Shell——从hello world和echo命令开始
  4. 【WebRTC---入门篇】(二十)WebRTC核心之SDP详解
  5. css3制作广告栏效果的疑问?
  6. css3实现头像旋转360度
  7. 小汤学编程之JAVA基础day09——常用类(一):比较器、内部类和包装类
  8. Ulua_toLua_基本案例(六)_LuaCoroutine2
  9. 数据结构实验 5.二叉树深度
  10. iframe调用父页面方法_5.1 vue中子组件调用父组件的方法,务必理解自定义事件的重要性...
  11. ros control
  12. linux服务器磁盘陈列
  13. python线性拟合、不确定性
  14. 如何下载行政区划数据
  15. CentOS下安装SVN
  16. 一键清理系统垃圾文件.BAT
  17. 【滤波器】基于matlab高斯滤波器【含Matlab源码 995期】
  18. 阿里云服务器ECS到底是什么?
  19. inter至强服务器处理器型号,Intel发布新处理器,用金/银作为型号区分
  20. python打印26个英文字母和数字

热门文章

  1. 线程java作用_java线程介绍(原创)
  2. java的多态代码例子_java 多态实例代码
  3. 修改tomcat服务器图标,如何更改tomcat图标
  4. java spark es_ES-Spark连接ES后,ES Client节点流量打满分析
  5. php输入数据不能为空,输入的数据模型标识(modelID)'的值不能为空或者空白字符串...
  6. Python的第三方库xlwt
  7. MySQL 基准测试(sysbench)工具安装时提示 automake 1.10.x (aclocal) wasn‘t found, exiting
  8. 费诺编码的gui页面设计_关于页面可视化搭建的一些思考(一)
  9. 火狐浏览器jtopo节点切换tab后消失报错NS_ERROR_FAILURE的解决
  10. java当前路径_java获取当前路径的几种方法