В настоящее время я работаю над Stanford Classifier (версия 2.1.8 выпущен 04-04-2013) и написал оболочку java для внутреннего исследовательского проекта. На основе ClassifierDemo.java (поставляется с zip-файлом классификатора) я смог вызвать мою сериализованную обучаемую модель и файл свойств для обработки одной строки за раз. Обратите внимание, что классификатор Stanford может обрабатывать файлы только после того, как строка ввода будет прочитана, а затем сохранена во временном файле, а затем классификатор начнет ее обрабатывать. Метод trainingClassifier.classOf способен выводить класс для данной строки с использованием обученной модели (myClassifier.ser.gz). Тем не менее, я не могу найти способ вывода доверительного балла вместе с ним (cf: http://nlp.stanford.edu/nlp/javadoc/javanlp/edu/stanford/nlp/classify/ColumnDataClassifier.html).Метод (ы) для вывода оценки доверия из Стэнфордского классификатора?
Выход желание stringCategory: пустышки доверия Оценка: 0,85
Ниже класс/метод Java, который я использую в обертке:
//.....
LinearClassifier<String, String> trainedClassifier =
IOUtils.readObjectFromFile("myClassifier.ser.gz");
//Have to call *.prop every time
ColumnDataClassifier myProp =
new ColumnDataClassifier("myClassifierProp.prop");
//Specify the temporary one sentence file saved in class-tmp.txt
for (String line : ObjectBank.getLineIterator("class-tmp.txt"))
{ Datum<String,String> classType = myProp.makeDatumFromLine(line, 0);
classOutput = trainedClassifier.classOf(classType);
System.out.println("stringCategory: "+ classOutput + "/n");
//end of for
//.....
Вам не придется писать временный файл и читать его с 'ObjectBank'. Если у вас есть строка String, которая содержит значения, разделенные табуляцией, для тестового примера, вы можете просто перейти прямо к: 'Datum classType = myProp.makeDatumFromLine (строка);'. –