Я изучил маллет, и он работает хорошо. То, что я пытаюсь сделать, это дважды создать модель в области программы и столкнуться с исключением. Мой программный код выглядит так:
List<String> commands = new ArrayList<String>();
commands.add("--input input.mallet --output-classifier output_classifier.classifier --trainer MaxEnt --report train:accuracy");
commands.add("--input input.mallet --output-classifier output_classifier.classifier --trainer MaxEnt --report train:accuracy");
for( int index = 0; index < commands.size(); index++ ) {
try {
Vectors2Classify.main(commands.get(index).split(" "));
} catch (EvalError e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Первая команда выполняется успешно. По второй команде я получаю следующее исключение.
Exception in thread "main" java.lang.IllegalArgumentException: Alphabets don't match: Instance: [9327, 3], InstanceList: [9327, 3]
at cc.mallet.types.InstanceList.add(InstanceList.java:335)
at cc.mallet.types.InstanceList.shallowClone(InstanceList.java:213)
at cc.mallet.types.InstanceList.split(InstanceList.java:513)
at cc.mallet.classify.tui.Vectors2Classify.main(Vectors2Classify.java:397)
Я искал эту проблему, но не нашел решения до сих пор. Похоже, до сих пор никто не пытался сделать модель дважды в рамках программы.
Если кто-то может помочь мне в этом, буду благодарен вам.