Mahout - 朴素贝叶斯

时间:2011-11-14 07:46:43

标签: hadoop mahout

我尝试用mahout部署20-新闻组示例,似乎工作正常。出于好奇,我想深入了解模型统计数据,

例如:bayes-model目录包含以下子目录,

training-tfIdf trainer-thetaNormalizer培训师权重

包含part-0000文件。我想阅读文件的内容以便更好地理解,cat命令似乎不起作用,它打印出一些垃圾。

感谢任何帮助。

谢谢

3 个答案:

答案 0 :(得分:5)

'part-00000'文件由Hadoop创建,采用Hadoop的SequenceFile格式,包含特定于Mahout的值。你无法打开它们作为文本文件,不。您可以在Mahout中找到实用程序类SequenceFileDumper,它将尝试将内容作为文本输出到stdout。

关于这些值的开头,它们是Mahout执行的基于多阶段Hadoop的计算的中间结果。您可以阅读代码以更好地了解这些代码。例如,“tfidf”目录包含与术语频率相关的中间计算。

答案 1 :(得分:3)

您可以使用hadoop的filesystem -text选项读取part-0000文件。只需进入hadoop目录并键入以下内容

`bin/hadoop dfs -text /Path-to-part-file/part-m-00000`

part-m-00000将打印到STDOUT。

如果它给您一个错误,您可能需要将HADOOP_CLASSPATH变量添加到您的路径中。例如,如果在运行后它会给你

  

text:java.io.IOException:WritableName无法加载类:org.apache.mahout.math.VectorWritable

然后将相应的类添加到HADOOP_CLASSPATH变量

export HADOOP_CLASSPATH=/src/mahout/trunk/math/target/mahout-math-0.6-SNAPSHOT.jar

这对我有用;)

答案 2 :(得分:0)

要读取part-00000(序列文件),您需要使用“seqdumper”实用程序。这是我用于实验的一个例子:

  

MAHOUT_HOME $:bin / mahout seqdumper -s   〜/聚类/实验-V1 / T14 / TFIDF向量/部分-R-00000   -o~ / vectors-v2-1010

-s是要转换为纯文本的序列文件

-o是输出文件