【问题标题】:Mahout - Naive BayesMahout - 朴素贝叶斯
【发布时间】:2011-12-28 10:51:37
【问题描述】:

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

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

trainer-tfIdf trainer-thetaNormalizer trainer-weights

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

感谢任何帮助。

谢谢

【问题讨论】:

    标签: hadoop mahout


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      part-m-00000 将被打印到 STDOUT。

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

      文本: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
      

      这对我有用;)

      【讨论】:

        【解决方案3】:

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

        MAHOUT_HOME$: bin/mahout seqdumper -s ~/clustering/experiments-v1/t14/tfidf-vectors/part-r-00000 -o ~/vectors-v2-1010

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

        -o 是输出文件

        【讨论】:

          猜你喜欢
          • 2014-01-23
          • 1970-01-01
          • 2012-04-28
          • 2014-07-01
          • 2012-02-21
          • 2012-01-24
          • 2013-09-09
          • 2015-01-03
          • 2017-02-09
          相关资源
          最近更新 更多