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/10/11 17:05:54 UTC

svn commit: r1764310 - /ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/data/EventTimeRelPositionPrinter.java

Author: dligach
Date: Tue Oct 11 17:05:54 2016
New Revision: 1764310

URL: http://svn.apache.org/viewvc?rev=1764310&view=rev
Log:
fixed issues with times and events that couldn't be found based on offsets

Modified:
    ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/data/EventTimeRelPositionPrinter.java

Modified: ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/data/EventTimeRelPositionPrinter.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/data/EventTimeRelPositionPrinter.java?rev=1764310&r1=1764309&r2=1764310&view=diff
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/data/EventTimeRelPositionPrinter.java (original)
+++ ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/data/EventTimeRelPositionPrinter.java Tue Oct 11 17:05:54 2016
@@ -325,6 +325,7 @@ public class EventTimeRelPositionPrinter
       tokens.add(baseToken.getCoveredText());  
     }
     
+    // find the positions of time and event mentions
     // assume time consists of multipe words; event of one
     int currentPosition = 0;       // current token index
     int timeFirstPosition = -1000; // timex's start index
@@ -343,6 +344,35 @@ public class EventTimeRelPositionPrinter
       currentPosition++;
     }
 
+    // try to locate events that weren't found
+    // e.g. "this can be re-discussed tomorrow"
+    // "discussed" not found due to incorrect tokenization
+    if(eventPosition == -1000) {
+      currentPosition = 0;
+      for(BaseToken token : JCasUtil.selectCovered(jCas, BaseToken.class, sent)) {
+        if(token.getCoveredText().contains(event.getCoveredText())) {
+          eventPosition = currentPosition; 
+        }
+        currentPosition++;
+      }
+    }
+    
+    if(eventPosition == -1000) {
+      System.out.println("event not found: " + event.getCoveredText());
+      System.out.println(sent.getCoveredText());
+      System.out.println();
+      eventPosition = 0; // just set it to zero for now
+    }
+
+    // now need to see if some times weren't found
+    if(timeFirstPosition == -1000 || timeLastPosition == -1000) {
+      System.out.println("time not found: " + time.getCoveredText());
+      System.out.println(sent.getCoveredText());
+      System.out.println();
+      timeFirstPosition = 0; // just set it to zero for now
+      timeLastPosition = 0;  // just set it to zero for now
+    }
+    
     List<String> positionsWrtToTime = new ArrayList<>();
     List<String> positionsWrtToEvent = new ArrayList<>();
     int tokensInSentence = JCasUtil.selectCovered(jCas, BaseToken.class, sent).size();