利用贝叶斯分类器进行文本挖掘---笔记
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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |