ctakes-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dlig...@apache.org
Subject svn commit: r1526550 - /ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/data/analysis/SignSymptomDurations.java
Date Thu, 26 Sep 2013 15:08:09 GMT
Author: dligach
Date: Thu Sep 26 15:08:08 2013
New Revision: 1526550

URL: http://svn.apache.org/r1526550
Log:
simplified the way in which nearest time mention is found

Modified:
    ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/data/analysis/SignSymptomDurations.java

Modified: ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/data/analysis/SignSymptomDurations.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/data/analysis/SignSymptomDurations.java?rev=1526550&r1=1526549&r2=1526550&view=diff
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/data/analysis/SignSymptomDurations.java
(original)
+++ ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/data/analysis/SignSymptomDurations.java
Thu Sep 26 15:08:08 2013
@@ -160,33 +160,25 @@ public class SignSymptomDurations {
     }
     
     /**
-     * Find nearest time mention. Return null if none found.
+     * Find nearest time mention that is within allowable distance. 
+     * Return null if none found.
      */
     private static TimeMention getNearestTimeMention(JCas jCas, SignSymptomMention signSymptomMention)
{
-      
-      // distances to time expressions from this sign/symptom
-      Map<TimeMention, Integer> distances = new HashMap<TimeMention, Integer>();
-
-      for(TimeMention timeMention : JCasUtil.selectFollowing(jCas, TimeMention.class, signSymptomMention,
1)) {
-        int distance = JCasUtil.selectBetween(jCas, BaseToken.class, signSymptomMention,
timeMention).size();
-        distances.put(timeMention, distance);
-      }
 
-      if(distances.size() < 1) {
+      List<TimeMention> timeMentions = JCasUtil.selectFollowing(jCas, TimeMention.class,
signSymptomMention, 1);
+      if(timeMentions.size() < 1) {
         return null;
       }
       
-      // sort time mentions by distance to sign/symptom
-      List<TimeMention> sortedTimeMentions = new ArrayList<TimeMention>(distances.keySet());
-      Function<TimeMention, Integer> getValue = Functions.forMap(distances);
-      Collections.sort(sortedTimeMentions, Ordering.natural().onResultOf(getValue));
-
-      // if the closest one too far away, return null
-      if(distances.get(sortedTimeMentions.get(0)) > MAXDISTANCE) {
+      assert timeMentions.size() == 1;
+      
+      TimeMention nearestTimeMention = timeMentions.get(0);
+      int distance = JCasUtil.selectBetween(jCas, BaseToken.class, signSymptomMention, nearestTimeMention).size();
+      if(distance > MAXDISTANCE) {
         return null;
       }
       
-      return sortedTimeMentions.get(0);
+      return nearestTimeMention;
     }
     
     private static String getAnnotationContext(Annotation annotation, int maxContextWindowSize)
{



Mime
View raw message