Почему className не появляется при классификации экземпляров с использованием weka в java, почему?
Я пытаюсь сделать классификацию текста, используя библиотеку weka в моей Java-программе, но у меня есть небольшая проблема
Это мои тренировочные данные, есть 5 данных и два класса:
@relation hamspam
@attribute text string
@attribute class {ham,spam}
@data
'good',ham
'very good',ham
'bad',spam
'very bad',spam
'very bad, very bad',spam
Это мои данные тестирования, есть три данных:
@relation hamspam
@attribute text string
@attribute class {ham,spam}
@data
'good bad very bad',?
'good good good',?
'good very good',?
И это мой код:
public static void loader() throws FileNotFoundException, IOException, Exception{
//filter
StringToWordVector filter = new StringToWordVector();
Classifier j48tree = new J48();
//training data
Instances train = new Instances(new BufferedReader(new FileReader("D:/trainingdata.arff")));
int lastIndex = train.numAttributes() - 1;
train.setClassIndex(lastIndex);
filter.setInputFormat(train);
train = Filter.useFilter(train, filter);
//testing data
Instances test = new Instances(new BufferedReader(new FileReader("D:/testingdata.arff")));
test.setClassIndex(lastIndex);
filter.setInputFormat(test);
test = Filter.useFilter(test, filter);
j48tree.buildClassifier(train);
for(int i=0; i<test.numInstances(); i++) {
double index = j48tree.classifyInstance(test.instance(i));
String className = train.attribute(lastIndex).value((int)index);
System.out.println(className);
}
}
я пытаюсь предсказать className и распечатать его, но className не появляется. что не так с моим кодом?