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 2014/04/08 17:07:26 UTC

svn commit: r1585753 - /ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/feature/duration/DurationEventTimeFeatureExtractor.java

Author: dligach
Date: Tue Apr  8 15:07:25 2014
New Revision: 1585753

URL: http://svn.apache.org/r1585753
Log:
added time unit - wise duration difference features

Modified:
    ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/feature/duration/DurationEventTimeFeatureExtractor.java

Modified: ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/feature/duration/DurationEventTimeFeatureExtractor.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/feature/duration/DurationEventTimeFeatureExtractor.java?rev=1585753&r1=1585752&r2=1585753&view=diff
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/feature/duration/DurationEventTimeFeatureExtractor.java (original)
+++ ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/feature/duration/DurationEventTimeFeatureExtractor.java Tue Apr  8 15:07:25 2014
@@ -43,9 +43,9 @@ public class DurationEventTimeFeatureExt
   @Override
   public List<Feature> extract(JCas jCas, IdentifiedAnnotation arg1, IdentifiedAnnotation arg2)
       throws AnalysisEngineProcessException {
-    
-    List<Feature> features = new ArrayList<Feature>();
-    
+
+    List<Feature> features = new ArrayList<>();
+
     String eventText = Utils.normalizeEventText(jCas, arg1); // arg1 is an event
     String timeText = arg2.getCoveredText().toLowerCase();  // arg2 is a time mention
 
@@ -57,15 +57,19 @@ public class DurationEventTimeFeatureExt
       e.printStackTrace();
       return features;
     }
-
     Map<String, Float> eventDistribution = textToDistribution.get(eventText);
-    float eventExpectedDuration = Utils.expectedDuration(eventDistribution);
 
     HashSet<String> timeUnits = Utils.getTimeUnits(timeText);
     for(String timeUnit : timeUnits) {
       Map<String, Float> timeDistribution = Utils.convertToDistribution(timeUnit);
+      for(String bin : Utils.bins) {
+        features.add(new Feature("bin_diff_" + bin, timeDistribution.get(bin) - eventDistribution.get(bin)));
+      }
+
+      float eventExpectedDuration = Utils.expectedDuration(eventDistribution);
       float timeExpectedDuration = Utils.expectedDuration(timeDistribution);
       features.add(new Feature("duration_difference", timeExpectedDuration - eventExpectedDuration));
+
       break; // for now only use firs time unit
     }