【发布时间】: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 我想做的是对新文档进行分类,因此我认为这是不可行的