Почему 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 не появляется. что не так с моим кодом?

0 ответов

Другие вопросы по тегам