mahout文档自动分类(有监督学习)问题求救

问题描述

mahout文档自动分类(有监督学习)问题求救
Hadoop2.2.0 mahout0.6
想做一个word文档自动分类的程序(有监督学习类别事先已经定义好就两类财务和人事)始终不成功求救
一训练数据
搞了7个finance的word和7个hr的word用程序生成一个分词后的文本.如下:
terms.txt
finance 会计 会计制度 会计 制度 会计核算 会计 核算 aa
finance 会计 会计制度 会计 制度 会计核算 会计 核算 aa
finance 会计 会计制度 会计 制度 会计核算 会计 核算 核算 管理 会计 管理 aa
finance 会计统计 会计 统计 会计制度 会计 制度 aa
finance 会计核算 会计 核算 制度 1 aa
finance 会计 报销 制度 aa
finance 会计 任免 奖惩制度 奖惩 制度 aa
hr 干部 提拔 制度 bb
hr 机关干部 机关 干部 部奖 奖惩 bb
hr 领导干部 领导 干部 行为规范 行为 规范 第 1 页 共 1 页 bb
hr 人事管理 人事 管理 系统分析 系统 统分 分析 与 设计 干部 任免 会议 1 1 bb
hr 老干部 干部 活动中心 活动 中心 bb
hr 群众 干部 打成一片 打成 一片 一 片 bb
hr 行政 干部 条例 机关干部 机关 干部 部下 下乡 bb
二生成模型
hadoop fs -put /download/terms.txt hdfs://hadoop-node1:9000/testdata/train
mahout trainclassifier -i /testdata/train -o /testdata/model -type bayes -ng 1 -source hdfs
模型也生成的很好
[root@hadoop-node1 Desktop]# hadoop fs -ls hdfs://hadoop-node1:9000/testdata/model/trainer-tfIdf/trainer-tfIdf
Found 1 items
-rw-r--r-- 3 root supergroup 1524 2014-05-23 11:22 hdfs://hadoop-node1:9000/testdata/model/trainer-tfIdf/trainer-tfIdf/part-00000
三测试
1)测试1
public static void main(String[] args) {
// TODO Auto-generated method stub
BayesParameters params = new BayesParameters();
params.set(""classifierType""bayes"");
params.set(""method""sequential"");
params.set(""gramSize""1"");
params.set(""dataSource""hdfs"");
params.set(""model""hdfs://192.168.1.201:9000/testdata/model"");

        Algorithm algorithm = new BayesAlgorithm();        Datastore datastore = new InMemoryBayesDatastore(params);        try {              ClassifierContext classifier = new ClassifierContext(algorithm                          datastore);              classifier.initialize();              String[] str = new String[1];              str[0] = ""会计"";                  ClassifierResult best = classifier.classifyDocument(strunknown"");              System.out.println(best.getLabel() + ""---1---"" + best.getScore());              str = new String[1];              str[0] = ""aa"";                  best = classifier.classifyDocument(strunknown"");              System.out.println(best.getLabel() + ""---2---"" + best.getScore());              str[0] = ""干部"";                  best = classifier.classifyDocument(strunknown"");              System.out.println(best.getLabel() + ""---3---"" + best.getScore());              str[0] = ""bb"";                  best = classifier.classifyDocument(strunknown"");              System.out.println(best.getLabel() + ""---3---"" + best.getScore());        } catch (Exception e) {              e.printStackTrace();        }  }

用 java -jar ml.jar结果都是
2014-05-23 12:23:09464 WARN [main] util.NativeCodeLoader (NativeCodeLoader.java:(62)) - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable (这段提示应该没关系我做别的应用都有不影响结果)
unknown---1---1.7976931348623157E308
unknown---2---1.7976931348623157E308
unknown---3---1.7976931348623157E308
unknown---3---1.7976931348623157E308
2)测试2
准备测试数据
terms4test.txt
finance 会计 报销 制度 aa
hr 老干部 干部 活动中心 活动 中心 bb
执行
mahout testclassifier -d /testdata/test -m /testdata/model -type bayes -ng 1 -source hdfs -method sequential
结果是:
[root@hadoop-node1 Desktop]# mahout testclassifier -d /testdata/test -m /testdata/model -type bayes -ng 1 -source hdfs -method sequential
MAHOUT_LOCAL is not set; adding HADOOP_CONF_DIR to classpath.
Running on hadoop using HADOOP_HOME=/home/cluster/hadoop-2.2.0
HADOOP_CONF_DIR=/home/cluster/hadoop-2.2.0/etc/hadoop
MAHOUT-JOB: /home/cluster/mahout-0.6/mahout-examples-0.6-job.jar
14/05/23 13:47:16 INFO bayes.TestClassifier: Loading model from: {basePath=/testdata/model classifierType=bayes alpha_i=1.0 dataSource=hdfs gramSize=1 verbose=false confusionMatrix=null encoding=UTF-8 defaultCat=unknown testDirPath=/testdata/test}
14/05/23 13:47:16 INFO bayes.TestClassifier: Testing Bayes Classifier
14/05/23 13:47:19 INFO bayes.SequenceFileModelReader: 13.234485816760284
14/05/23 13:47:19 INFO bayes.InMemoryBayesDatastore: finance -32.77372087917866 88.2943409498656 -0.3711871058394094
14/05/23 13:47:19 INFO bayes.InMemoryBayesDatastore: hr -88.2943409498656 88.2943409498656 -1.0
14/05/23 13:47:19 INFO bayes.TestClassifier: =======================================================

Summary

Correctly Classified Instances : 0 ?%
Incorrectly Classified Instances : 0 ?%
Total Classified Instances : 0

Confusion Matrix

a b <--Classified as
0 0 | 0 a = finance
0 0 | 0 b = hr

14/05/23 13:47:19 INFO driver.MahoutDriver: Program took 3380 ms (Minutes: 0.05633333333333333)

时间: 2024-10-02 14:36:45

mahout文档自动分类(有监督学习)问题求救的相关文章

科普|文本分析浅析——文档分类

序言自动文档分类是一个很好的例子,说明如何善用机器学习和自然语言处理,让机器更好地处理人类语言.自动分类目的,是给一个文档或一段文字指派一个或多个类别,以方便对文档进行归类和管理.特别是对于出版社.新闻网站.博客或其他需要处理大量文字内容的人和机构来说,人工对文档,并进行分组和分类是极其耗费人力和时间的工作. 大体上讲,有两类机器学习方式:监督学习和非监督学习.监督学习方法是在"以往的观察"之上建立模型,这种"以往的观察"被称为训练集.在做文档分类时,预先定义好文档

求救啊!上传文档和 enctype=&amp;amp;quot;multipart/form-data&amp;amp;quot; 的问题!

问题描述 我要用C#在webpart中开发一个上传文档至sharepointlist的功能,但是我的fileupload总是空null,上网一搜大家都说在form标签下面加enctype="multipart/form-data",但是我建的可是webpart!!!根本就没有form标签!我自己加上个<formid="form1"method="post"runat="server"enctype="multi

求救!怎么读取数据库以nText类型的doc文档

问题描述 存到数据库中的时候是以DocumentText方法保存上传到数据库中的,现在想读取出来,我是用下面的方法读的intnum=pModel.Reason1.Length;Response.ContentType="Application/msword";Response.AddHeader("Content-Disposition","attachment;filename=new.doc");Response.AddHeader(&quo

求救,基于BPEL的编辑系统(能画流程图,再可以根据流程图转为xml文档)

问题描述 急求,要做个基于BPEL的编辑系统(就是能画流程图,再可以根据流程图转为xml文档)哪位大侠有现成的类似的发我qq357224680 解决方案 解决方案二:你愿意出多少米?

怎样在网页中打开WORD格式的文档?超连接打开的时候总是提示下载文件怎么办?

问题描述 我有个WORD格式的质量手册,现在要挂到WEB服务器上,网上有资料说可以用超连接直接显示:<iframesrc="./11.doc"></iframe>我试了一下,打开页面的时候浏览器总是提示下载文件:打开还是保存.怎样让浏览器直接打开而不出现下载提示?或者还有其他办法在网页中打开WORD格式的文档?谢谢! 解决方案 解决方案二:web.xml下加<mime-mapping><extension>doc</extensio

NTKO打开office文档

问题描述 如题:使用重庆软航科NTKO控件(OfficeControl.cab),请问传个URL过去就可以打开office文档.请问在JS中怎样控件声明,传URL等.求救 解决方案 本帖最后由 babriod 于 2011-04-25 16:46:11 编辑

PHP遍历XML文档所有节点的方法

 这篇文章主要介绍了PHP遍历XML文档所有节点的方法,实例分析了php操作XML文件的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了PHP遍历XML文档所有节点的方法.分享给大家供大家参考.具体实现方法如下: 1. contact.xml代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 <contact id="43956"> <personal> <name> <first>J</fir

win7系统电脑打印文档后出现隐藏的网站链接怎么去掉?

  win7系统电脑打印文档后出现隐藏的网站链接怎么去掉?         方法一: 1.按ALT+F9可将文档中的域代码全部显示出来(特有字会被链接替换); 2.然后编辑--替换,在查找内容中输入除{ }符号的其它字符(如果将符号{}一并拷贝过来的话会自动换为特有字),在"替换为"中输入特有字,"全部替换"即可. 方法二: 1.工具--选项,在"打印"选项卡中找到"打印文档的附加信息",取消勾选"域代码"

word文档-如何在360浏览器中直接 打开word文件 ?

问题描述 如何在360浏览器中直接 打开word文件 ? 在IE浏览器中可以.碰到WORD文档,自动就下载了!为什么? 解决方案 需要有浏览器插件,IE一般有OFFICE插件,所以可以直接打开 解决方案二: 因为360是非法流氓软件,它根本就是粗陋地用IE的内核拼凑了一个山寨的浏览器,做一个稍微有点用的软件功能只是它实施违法犯罪侵害用户计算机和数据的幌子而已. 解决方案三: 这个好像需要转换吧.吧word转成pdf格式的然后在线显示!