You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ctakes.apache.org by tm...@apache.org on 2013/07/10 17:41:45 UTC

svn commit: r1501804 - in /ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk: AssertionCleartkAnalysisEngine.java PolarityCleartkAnalysisEngine.java

Author: tmill
Date: Wed Jul 10 15:41:44 2013
New Revision: 1501804

URL: http://svn.apache.org/r1501804
Log:
Added lastLabel variable. Changed polarity engine to use constants.

Modified:
    ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/AssertionCleartkAnalysisEngine.java
    ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/PolarityCleartkAnalysisEngine.java

Modified: ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/AssertionCleartkAnalysisEngine.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/AssertionCleartkAnalysisEngine.java?rev=1501804&r1=1501803&r2=1501804&view=diff
==============================================================================
--- ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/AssertionCleartkAnalysisEngine.java (original)
+++ ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/AssertionCleartkAnalysisEngine.java Wed Jul 10 15:41:44 2013
@@ -89,6 +89,7 @@ public abstract class AssertionCleartkAn
   
   protected Random coin = new Random(0);
 
+  protected String lastLabel;
   
 /* DEPRECATED: STW 2013/03/28.  Use DependencyUtility:getNominalHeadNode(jCas,annotation) instead */
 //  public ConllDependencyNode findAnnotationHead(JCas jcas, Annotation annotation) {
@@ -217,6 +218,9 @@ public abstract class AssertionCleartkAn
     {
       logger.warn("processing next doc (doc id is null)");
     }
+    
+    this.lastLabel = "<BEGIN>";
+    
 //    // get gold standard relation instances during testing for error analysis
 //    if (! this.isTraining() && printErrors) {
 //      JCas goldView;
@@ -317,7 +321,7 @@ public abstract class AssertionCleartkAn
           }
 //          instance.addAll(cuePhraseInWindowExtractor.extractBetween(jCas, cue, entityOrEventMention));
         }
-        if(closestCue != null){
+        if(closestCue != null && closest < 21){
           instance.add(new Feature("ClosestCue_Word", closestCue.getCoveredText()));
 //          instance.add(new Feature("ClosestCue_Phrase", closestCue.getCuePhrase()));
           instance.add(new Feature("ClosestCue_PhraseFamily", closestCue.getCuePhraseAssertionFamily()));
@@ -330,7 +334,7 @@ public abstract class AssertionCleartkAn
 //      }
 
 
-      instance.add(new Feature("ENTITY_TYPE", entityOrEventMention.getTypeID()));
+      instance.add(new Feature("ENTITY_TYPE_" + entityOrEventMention.getTypeID()));
       
       for (SimpleFeatureExtractor extractor : this.entityFeatureExtractors) {
         instance.addAll(extractor.extract(jCas, entityOrEventMention));
@@ -344,17 +348,14 @@ public abstract class AssertionCleartkAn
       }
       
       List<Feature> feats = instance.getFeatures();
-//      List<Feature> lcFeats = new ArrayList<Feature>();
       
       for(Feature feat : feats){
     	  if(feat.getName() != null && (feat.getName().startsWith("TreeFrag") || feat.getName().startsWith("WORD") || feat.getName().startsWith("NEG"))) continue;
     	  if(feat.getValue() instanceof String){
     		  feat.setValue(((String)feat.getValue()).toLowerCase());
-//    		  lcFeats.add(new Feature("LC_" + feat.getName(), ((String)feat.getValue()).toLowerCase()));
     	  }
       }
-//      instance.addAll(lcFeats);
-
+      
       setClassLabel(entityOrEventMention, instance);
       
     }

Modified: ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/PolarityCleartkAnalysisEngine.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/PolarityCleartkAnalysisEngine.java?rev=1501804&r1=1501803&r2=1501804&view=diff
==============================================================================
--- ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/PolarityCleartkAnalysisEngine.java (original)
+++ ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/PolarityCleartkAnalysisEngine.java Wed Jul 10 15:41:44 2013
@@ -24,6 +24,7 @@ import org.apache.ctakes.assertion.medfa
 import org.apache.ctakes.assertion.medfacts.cleartk.extractors.AboveRightFragmentExtractor;
 import org.apache.ctakes.assertion.medfacts.cleartk.extractors.ContextWordWindowExtractor;
 import org.apache.ctakes.assertion.medfacts.cleartk.extractors.NegationDependencyFeatureExtractor;
+import org.apache.ctakes.typesystem.type.constants.CONST;
 import org.apache.ctakes.typesystem.type.textsem.IdentifiedAnnotation;
 import org.apache.uima.UimaContext;
 import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
@@ -34,6 +35,9 @@ import org.cleartk.classifier.feature.ex
 
 public class PolarityCleartkAnalysisEngine extends AssertionCleartkAnalysisEngine {
 
+  public static final String NEGATED = "NEGATED";
+  public static final String NOT_NEGATED = "NOT_NEGATED";
+  
 	@Override
 	public void initialize(UimaContext context) throws ResourceInitializationException {
 		super.initialize(context);
@@ -52,13 +56,14 @@ public class PolarityCleartkAnalysisEngi
 	public void setClassLabel(IdentifiedAnnotation entityOrEventMention, Instance<String> instance) throws AnalysisEngineProcessException {
 	      if (this.isTraining())
 	      {
-	        String polarity = (entityOrEventMention.getPolarity() == -1) ? "negated" : "present";
+	        String polarity = (entityOrEventMention.getPolarity() == CONST.NE_POLARITY_NEGATION_PRESENT) ? NEGATED : NOT_NEGATED; // "negated" : "present";
+	        this.lastLabel = polarity;
 	        // downsampling. initialize probabilityOfKeepingADefaultExample to 1.0 for no downsampling
-	        if ("negated".equals(polarity))
+	        if (NEGATED.equals(polarity))
 	        {
 	          logger.debug("TRAINING: " + polarity);
 	        }
-	        if ("present".equals(polarity) 
+	        if (NOT_NEGATED.equals(polarity) 
 	        		&& coin.nextDouble() >= this.probabilityOfKeepingADefaultExample) {
 	        	return;
 	        }
@@ -67,19 +72,17 @@ public class PolarityCleartkAnalysisEngi
 	      } else
 	      {
 	        String label = this.classifier.classify(instance.getFeatures());
-	        int polarity = 1;
-	        if (label!= null && label.equals("present"))
+	        this.lastLabel = label;
+	        int polarity = CONST.NE_POLARITY_NEGATION_ABSENT;
+	        if (NOT_NEGATED.equals(label))
 	        {
-	          polarity = 1;
-	        } else if (label != null && label.equals("negated"))
+	          polarity = CONST.NE_POLARITY_NEGATION_ABSENT;
+	        } else if (NEGATED.equals(label))
 	        {
-	          polarity = -1;
+	          polarity = CONST.NE_POLARITY_NEGATION_PRESENT;
+            logger.debug(String.format("DECODING/EVAL: %s//%s [%d-%d] (%s)", label, polarity, entityOrEventMention.getBegin(), entityOrEventMention.getEnd(), entityOrEventMention.getClass().getName()));
 	        }
 	        entityOrEventMention.setPolarity(polarity);
-	        if ("negated".equals(label))
-	        {
-	          logger.debug(String.format("DECODING/EVAL: %s//%s [%d-%d] (%s)", label, polarity, entityOrEventMention.getBegin(), entityOrEventMention.getEnd(), entityOrEventMention.getClass().getName()));
-	        }
 	      }
 	}
 }