package cc.mallet.classify; import cc.mallet.types.InstanceList; public class ClassifierAccuracyEvaluator extends ClassifierEvaluator { public ClassifierAccuracyEvaluator (InstanceList[] instances, String[] descriptions) { super(instances,descriptions); } public ClassifierAccuracyEvaluator (InstanceList instanceList1, String instanceListDescription1) { this(new InstanceList[] {instanceList1}, new String[] {instanceListDescription1}); } public ClassifierAccuracyEvaluator (InstanceList instanceList1, String instanceListDescription1, InstanceList instanceList2, String instanceListDescription2) { this(new InstanceList[] {instanceList1, instanceList2}, new String[] {instanceListDescription1, instanceListDescription2}); } public ClassifierAccuracyEvaluator (InstanceList instanceList1, String instanceListDescription1, InstanceList instanceList2, String instanceListDescription2, InstanceList instanceList3, String instanceListDescription3) { this(new InstanceList[] {instanceList1, instanceList2, instanceList3}, new String[] {instanceListDescription1, instanceListDescription2, instanceListDescription3}); } public void evaluateInstanceList (ClassifierTrainer trainer, InstanceList instances, String description) { Classifier classifier = trainer.getClassifier(); if (classifier.getFeatureSelection() != instances.getFeatureSelection()) // TODO consider if we really want to do this... but note that the old MaxEnt did this to the testing the validation sets. //instances.setFeatureSelection(classifier.getFeatureSelection()); System.out.print (description+" accuracy=" + classifier.getAccuracy (instances)); } }