我目前正在研究Stanford Classifier(2013年4月4日發佈的版本2.1.8),併爲內部研究項目編寫了一個java包裝器。基於ClassifierDemo.java(附帶Classifier zip文件),我可以調用我的序列化的訓練模型和屬性文件來一次處理一個字符串。請注意,斯坦福分類器只能處理文件,一旦輸入字符串被讀取並保存在臨時文件中,分類器就開始處理它。方法trainedClassifier.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 str,它包含了一個測試例子中的製表符分隔的值,你可以直接去看:'Datum classType = myProp.makeDatumFromLine(line);'。 –