Revision: 16714
          http://sourceforge.net/p/gate/code/16714
Author:   johann_p
Date:     2013-06-28 16:55:17 +0000 (Fri, 28 Jun 2013)
Log Message:
-----------
Add measurements for each class label to the 
XML report file.

Modified Paths:
--------------
    gate/trunk/plugins/Learning/src/gate/learning/EvaluationBasedOnDocs.java
    gate/trunk/plugins/Learning/src/gate/learning/LearningAPIMain.java

Modified: 
gate/trunk/plugins/Learning/src/gate/learning/EvaluationBasedOnDocs.java
===================================================================
--- gate/trunk/plugins/Learning/src/gate/learning/EvaluationBasedOnDocs.java    
2013-06-28 15:21:53 UTC (rev 16713)
+++ gate/trunk/plugins/Learning/src/gate/learning/EvaluationBasedOnDocs.java    
2013-06-28 16:55:17 UTC (rev 16714)
@@ -31,7 +31,9 @@
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
+import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.Random;
 import java.util.Set;
 
@@ -720,6 +722,19 @@
     return logMes.toString();
   }
 
+  /** Get the measures per label */
+  public Map<String,EvaluationMeasuresComputation> getMeasuresForEachLabel() {
+    List labels = new ArrayList(labels2InstNum.keySet());
+    Map<String,EvaluationMeasuresComputation> ret = new 
LinkedHashMap<String,EvaluationMeasuresComputation>();
+    Collections.sort(labels);
+    for(int i = 0; i < labels.size(); ++i) {
+      String labelName = labels.get(i).toString();
+      ret.put(labelName, 
(EvaluationMeasuresComputation)labels2MMR.get(labelName));
+    }
+    return ret;
+  }
+  
+  
   /** Evaluate the test document by using the AnnotationDiff class. */
   public void evaluateAnnDiff(Document doc, String classTypeOriginal,
     String classTypeTest, String classFeat, Set labelSet, HashMap labels2MR) {

Modified: gate/trunk/plugins/Learning/src/gate/learning/LearningAPIMain.java
===================================================================
--- gate/trunk/plugins/Learning/src/gate/learning/LearningAPIMain.java  
2013-06-28 15:21:53 UTC (rev 16713)
+++ gate/trunk/plugins/Learning/src/gate/learning/LearningAPIMain.java  
2013-06-28 16:55:17 UTC (rev 16714)
@@ -22,6 +22,8 @@
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.HashMap;
+import java.util.Map;
+
 import org.apache.log4j.Logger;
 import org.jdom.output.Format;
 import org.jdom.output.XMLOutputter;
@@ -796,9 +798,6 @@
                             
"<time-started>"+date_time_started.substring(9)+"</time-started>");
                 
log.println("<date-ended>"+date_time_ended.substring(0,8)+"</date-ended>"+
                             
"<time-ended>"+date_time_ended.substring(9)+"</time-ended>");
-                for(int i=0;i<learningSettings.evaluationconfig.kk;i++) {
-                  
-                }
                 log.println("<overall>");
                 log.println("  
<correct>"+evaluation.macroMeasuresOfResults.correct+"</correct>");
                 log.println("  
<partialCorrect>"+evaluation.macroMeasuresOfResults.partialCor+"</partialCorrect>");
@@ -830,6 +829,25 @@
                   log.println("  </run>");
                 }
                 log.println("</per-run>");
+                log.println("<per-class>");
+                Map<String,EvaluationMeasuresComputation> perLabel = 
evaluation.getMeasuresForEachLabel();
+                for(String label : perLabel.keySet()) {
+                  EvaluationMeasuresComputation oneLabel = perLabel.get(label);
+                  log.println("  <class>");
+                  log.println("    
<class-label><![CDATA["+label+"]]></class-label>");                  
+                  log.println("    <correct>"+oneLabel.correct+"</correct>");
+                  log.println("    
<partialCorrect>"+oneLabel.partialCor+"</partialCorrect>");
+                  log.println("    
<spurious>"+oneLabel.spurious+"</spurious>");
+                  log.println("    <missing>"+oneLabel.missing+"</missing>");
+                  log.println("    
<precision>"+oneLabel.precision+"</precision>");
+                  log.println("    <recall>"+oneLabel.recall+"</recall>");
+                  log.println("    <f1>"+oneLabel.f1+"</f1>");
+                  log.println("    
<precisionLenient>"+oneLabel.precisionLenient+"</precisionLenient>");
+                  log.println("    
<recallLenient>"+oneLabel.recallLenient+"</recallLenient>");
+                  log.println("    
<f1Lenient>"+oneLabel.f1Lenient+"</f1Lenient>");
+                  log.println("  </class>");
+                }
+                log.println("</per-class>");
                 Format outputFormat = Format.getPrettyFormat();
                 outputFormat.setLineSeparator("\n");
                 outputFormat.setEncoding("UTF-8");

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
GATE-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gate-cvs

Reply via email to