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 2016/05/25 21:06:30 UTC

svn commit: r1745539 - /ctakes/sandbox/ctakes-wsd/src/main/java/org/apache/ctakes/pipelines/PositiveAndNegativeExamplePrinter.java

Author: dligach
Date: Wed May 25 21:06:30 2016
New Revision: 1745539

URL: http://svn.apache.org/viewvc?rev=1745539&view=rev
Log:
extracting text between mentions using base tokens

Modified:
    ctakes/sandbox/ctakes-wsd/src/main/java/org/apache/ctakes/pipelines/PositiveAndNegativeExamplePrinter.java

Modified: ctakes/sandbox/ctakes-wsd/src/main/java/org/apache/ctakes/pipelines/PositiveAndNegativeExamplePrinter.java
URL: http://svn.apache.org/viewvc/ctakes/sandbox/ctakes-wsd/src/main/java/org/apache/ctakes/pipelines/PositiveAndNegativeExamplePrinter.java?rev=1745539&r1=1745538&r2=1745539&view=diff
==============================================================================
--- ctakes/sandbox/ctakes-wsd/src/main/java/org/apache/ctakes/pipelines/PositiveAndNegativeExamplePrinter.java (original)
+++ ctakes/sandbox/ctakes-wsd/src/main/java/org/apache/ctakes/pipelines/PositiveAndNegativeExamplePrinter.java Wed May 25 21:06:30 2016
@@ -25,12 +25,13 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.ctakes.relationextractor.ae.RelationExtractorAnnotator.IdentifiedAnnotationPair;
 import org.apache.ctakes.temporal.duration.Utils;
 import org.apache.ctakes.temporal.eval.CommandLine;
 import org.apache.ctakes.temporal.eval.THYMEData;
 import org.apache.ctakes.typesystem.type.relation.BinaryTextRelation;
+import org.apache.ctakes.typesystem.type.syntax.BaseToken;
 import org.apache.ctakes.typesystem.type.textsem.EventMention;
-import org.apache.ctakes.typesystem.type.textsem.TimeMention;
 import org.apache.ctakes.typesystem.type.textspan.Sentence;
 import org.apache.uima.analysis_engine.AnalysisEngine;
 import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
@@ -68,12 +69,12 @@ public class PositiveAndNegativeExampleP
 
     List<Integer> patientSets = options.getPatients().getList();
     List<Integer> trainItems = THYMEData.getPatientSets(patientSets, THYMEData.TRAIN_REMAINDERS);
+    List<Integer> devItems = THYMEData.getPatientSets(patientSets, THYMEData.DEV_REMAINDERS);
     List<File> trainFiles = Utils.getFilesFor(trainItems, options.getInputDirectory());
-    CollectionReader collectionReader = Utils.getCollectionReader(trainFiles);
-
-    AnalysisEngine annotationConsumer = AnalysisEngineFactory.createEngine(
-        RelationSnippetPrinter.class);
-
+    List<File> devFiles = Utils.getFilesFor(devItems, options.getInputDirectory());
+    
+    CollectionReader collectionReader = Utils.getCollectionReader(devFiles);
+    AnalysisEngine annotationConsumer = AnalysisEngineFactory.createEngine(RelationSnippetPrinter.class);
     SimplePipeline.runPipeline(collectionReader, annotationConsumer);
   }
 
@@ -132,24 +133,35 @@ public class PositiveAndNegativeExampleP
               label = relation.getCategory().toLowerCase();
             }
 
-            String context = getTextBetweenAnnotations(systemView, mention1, mention2); 
+            String context = getTextBetween(systemView, mention1, mention2); 
             String text = String.format("%s|%s", label, context);
             eventEventRelationsInSentence.add(text.toLowerCase());
           }
         }
 
         if(eventEventRelationsInSentence.size() > 0) {
-          // String sentText = annotateEvents(eventMentionsInSentence, sentence);
-          // System.out.println(sentText);
           for(String text : eventEventRelationsInSentence) {
             System.out.println(text);
           }
-          // System.out.println();
         }
       }
     }
   }
 
+  public static String getTextBetween(JCas jCas, Annotation arg1, Annotation arg2)  {
+    
+    List<BaseToken> baseTokens = JCasUtil.selectBetween(jCas, BaseToken.class, arg1, arg2);
+    StringBuilder tokens = new StringBuilder();
+    tokens.append("<arg1-start> " + arg1.getCoveredText() + " <arg1-end> ");
+    for(BaseToken baseToken : baseTokens) {
+      tokens.append(baseToken.getCoveredText() + " ");
+    }
+    tokens.append("<arg2-start> " + arg2.getCoveredText() + " <arg2-end>");
+    
+    return tokens.toString().replaceAll("[\r\n]", " ");
+  }
+  
+  @SuppressWarnings("unused")
   private static String annotateEvents(List<EventMention> eventMentions, Sentence sentence) {
     
     String text = sentence.getCoveredText();
@@ -160,6 +172,7 @@ public class PositiveAndNegativeExampleP
     return text;
   }
   
+  @SuppressWarnings("unused")
   private static String getTextBetweenAnnotations(JCas jCas, Annotation arg1, Annotation arg2) {
 
     final int windowSize = 0;