【问题标题】:classify a single text document in naive bayes in weka在 weka 中用朴素贝叶斯对单个文本文档进行分类
【发布时间】:2014-05-27 13:53:26
【问题描述】:

我不确定我应该如何在 weka 中创建一个未标记的 arff 文本文档。我目前正在尝试从磁盘读取未标记的 txt 文档,以根据我构建的模型进行分类。但是,要将文本文档转换为 arff,我目前正在使用

java weka.core.converters.TextDirectoryLoader 有效地将类标签分配给文档。

因此,arff 将被标记。我的文本文件将是任意长度。

我已经检查了 wikispaces 中的示例,但它似乎只是加载了一个未标记的 arff,而没有解释我如何去创建它。

例子

Test.txt

我有一个很长很长的字符串


如何将其转换为 arff 格式以便在此代码中使用 unlabeled.arff

import java.io.BufferedReader;
 import java.io.BufferedWriter;
 import java.io.FileReader;
 import java.io.FileWriter;
 import weka.core.Instances;
 ...
 // load unlabeled data
 Instances unlabeled = new Instances(
                         new BufferedReader(
                           new FileReader("/some/where/unlabeled.arff")));

 // set class attribute
 unlabeled.setClassIndex(unlabeled.numAttributes() - 1);

 // create copy
 Instances labeled = new Instances(unlabeled);

 // label instances
 for (int i = 0; i < unlabeled.numInstances(); i++) {
   double clsLabel = tree.classifyInstance(unlabeled.instance(i));
   labeled.instance(i).setClassValue(clsLabel);
 }
 // save labeled data
 BufferedWriter writer = new BufferedWriter(
                           new FileWriter("/some/where/labeled.arff"));
 writer.write(labeled.toString());
 writer.newLine();
 writer.flush();
 writer.close();

此代码来自 weka wiki 空间示例

【问题讨论】:

  • 很抱歉,这里的问题是什么?问题是如何从文本文档中创建 arff? arff 本质上是一个 csv 文件,顶部有一个描述性标题,数据由 @DATA 处理。您可以使用@ATTRIBUTE 定义标题中的每个属性。它应该按列顺序创建
  • @Razs Apps 我编辑了我的问题
  • 使用删除过滤器只是为了删除类属性,然后保存为arff怎么样?...
  • @makak 我想做的是对新文档进行分类,因此我认为这是不可行的

标签: java weka arff


【解决方案1】:

我创建了一个目录名称为 ?并将测试文档放入文件夹并使用 TextDirectoryLoader 转换为 arff。它对我有用,但我怀疑它是最好的解决方案。

【讨论】:

    猜你喜欢
    • 2017-06-15
    • 2019-01-22
    • 2013-06-21
    • 2012-05-17
    • 2018-03-06
    • 2012-11-02
    • 2016-08-02
    • 2018-07-29
    • 2014-07-01
    相关资源
    最近更新 更多