在weka中对朴素贝叶斯中的单个文本文档进行分类

时间:2014-05-21 23:58:17

标签: java weka arff

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

java weka.core.converters.TextDirectoryLoader有效地为文档分配了一个类标签。

因此,arff会被贴上标签。我的文本文件将是任意长度。

我已经检查了wiki空间的示例,但它似乎只是加载一个未标记的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空间示例

1 个答案:

答案 0 :(得分:0)

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