package rainbownlp.analyzer.evaluation.classification; import java.util.HashMap; import rainbownlp.analyzer.evaluation.IEvaluationResult; public class EvaluationResult implements IEvaluationResult { public HashMap<String, ResultRow> evaluationResultByClass = new HashMap<String, ResultRow>(); public String getReport() { String print_res = ""; for(String evaluated_class: evaluationResultByClass.keySet()) { ResultRow averageRow = evaluationResultByClass.get(evaluated_class); print_res += "Class: "+evaluated_class+"\n"; print_res += averageRow.getReport(); } print_res += "Micro-average :\n"; print_res += getMicroAverage().getReport(); return print_res; } public void printResult() { System.out.print(getReport()); // Util.log(getReport(), Level.INFO); } public ResultRow getMicroAverage() { ResultRow micro_average = new ResultRow(); for(String evaluated_class: evaluationResultByClass.keySet()) { if(evaluated_class.equals("NotEdge") || evaluated_class.equals("NotTrigger")) continue; ResultRow averageRow = evaluationResultByClass.get(evaluated_class); // Util.log("Class: "+evaluated_class, Level.INFO); micro_average.TP += averageRow.TP; micro_average.FP += averageRow.FP; micro_average.FN += averageRow.FN; micro_average.TN += averageRow.TN; } return micro_average; } @Override public Double getIntegratedMetric() { return getMicroAverage().getFValue(); } }