Различные результаты в Weka GUI и Weka через код Java

Я применяю текстовую классификацию в Weka, используя классификатор NaiveBayesMultinomialText. Проблема в том, что когда я использую графический интерфейс пользователя и тестирую те же данные поезда (без перекрестной проверки), я получаю точность 93%, а когда пытаюсь сделать это с помощью кода Java, я получаю точность 67%. Что может быть не так?

В графическом интерфейсе я использую следующую конфигурацию:

Lnorm 2.0
debug False
lowercaseTokens True
minWordFrequency 3.0
norm 1.0
normalizeDocLength False
periodicPruning 0
stemmer NullStemmer
stopwords pt-br-stopwords.dat
tokenizer NgramTokenizer (default parameters, but max ngramsize = 2)
useStopList True
useWordFrequencies True

И тогда я выбираю «Использовать тренировочный набор» в «Параметры теста».

Теперь в коде Java у меня есть:

        Instances train = readArff("data/naivebayestest/corpus_treino.arff");
        train.setClassIndex(train.numAttributes() - 1);
        NaiveBayesMultinomialText nb = new NaiveBayesMultinomialText();
        String opt = "-W -P 0 -M 5.0 -norm 1.0 -lnorm 2.0 -lowercase -stoplist -stopwords C:\\Users\\Fernando\\workspace\\GPCommentsAnalyzer\\pt-br_stopwords.dat -tokenizer \"weka.core.tokenizers.NGramTokenizer -delimiters ' \\r\\n\\t.,;:\\\'\\\"()?!\' -max 2 -min 1\" -stemmer weka.core.stemmers.NullStemmer";
        nb.setOptions(Utils.splitOptions(opt));                                            
        nb.buildClassifier(train);    

        Evaluation eval = new Evaluation(train);                                           
        eval.evaluateModel(nb, train);
        System.out.println(eval.toSummaryString());                                        
        System.out.println(eval.toClassDetailsString());                                   
        System.out.println(eval.toMatrixString());    

Возможно, я что-то упустил в своем коде Java .. Есть идеи?

Спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос