You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ctakes.apache.org by dl...@apache.org on 2012/11/26 15:53:16 UTC

svn commit: r1413663 - /incubator/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/eval/RelationExtractorEvaluation.java

Author: dligach
Date: Mon Nov 26 14:53:15 2012
New Revision: 1413663

URL: http://svn.apache.org/viewvc?rev=1413663&view=rev
Log:
added an option to perform a grid search on dev set

Modified:
    incubator/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/eval/RelationExtractorEvaluation.java

Modified: incubator/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/eval/RelationExtractorEvaluation.java
URL: http://svn.apache.org/viewvc/incubator/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/eval/RelationExtractorEvaluation.java?rev=1413663&r1=1413662&r2=1413663&view=diff
==============================================================================
--- incubator/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/eval/RelationExtractorEvaluation.java (original)
+++ incubator/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/eval/RelationExtractorEvaluation.java Mon Nov 26 14:53:15 2012
@@ -88,6 +88,12 @@ public class RelationExtractorEvaluation
     public File trainDirectory;
 
     @Option(
+        name = "--dev-dir",
+        usage = "specify the directory contraining the XMI development files (for example, /NLP/Corpus/Relations/mipacq/xmi/dev)",
+        required = false)
+    public File devDirectory;
+    
+    @Option(
         name = "--test-dir",
         usage = "specify the directory contraining the XMI testing files (for example, /NLP/Corpus/Relations/mipacq/xmi/test)",
         required = false)
@@ -114,6 +120,7 @@ public class RelationExtractorEvaluation
   public static void main(String[] args) throws Exception {
     Options options = new Options();
     options.parseOptions(args);
+    
     List<File> trainFiles = Arrays.asList(options.trainDirectory.listFiles());
     
     // define the output directory for models
@@ -167,8 +174,9 @@ public class RelationExtractorEvaluation
           trainingArguments,
           options.testOnCTakes);
       
-      if(options.testDirectory == null) {
-      	// run n-fold cross-validation
+      if(options.testDirectory == null && options.devDirectory == null) {
+      	// run n-fold cross-validation on the training set
+        
       	List<AnnotationStatistics<String>> foldStats = evaluation.crossValidation(trainFiles, 2);
       	params.stats = AnnotationStatistics.addAll(foldStats);
         
@@ -177,13 +185,27 @@ public class RelationExtractorEvaluation
         System.err.println(params.stats.confusions());
         System.err.println();
 
-        // store these parameter settings
+        // store these parameter settings and the respective performance
+        scoredParams.put(params, params.stats.f1());
+      } else if(options.devDirectory != null && options.gridSearch) {
+        // tune parameters on the development set
+        
+        List<File> devFiles = Arrays.asList(options.devDirectory.listFiles());
+        params.stats = evaluation.trainAndTest(trainFiles, devFiles);
+        
+        System.err.println("overall:");
+        System.err.print(params.stats);
+        System.err.println(params.stats.confusions());
+        System.err.println();
+        
+        // store these parameter settings and the respective performance
         scoredParams.put(params, params.stats.f1());
       } else {
       	// train on the entire training set and evaluate on the test set
+        
       	List<File> testFiles = Arrays.asList(options.testDirectory.listFiles());
       	AnnotationStatistics<String> stats = evaluation.trainAndTest(trainFiles, testFiles);
-        System.err.print(stats);
+      	System.err.print(stats);
       	return;
       }
     }