You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ctakes.apache.org by cl...@apache.org on 2014/12/15 17:28:38 UTC

svn commit: r1645692 - /ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/RelationExtractorAnnotator.java

Author: clin
Date: Mon Dec 15 16:28:38 2014
New Revision: 1645692

URL: http://svn.apache.org/r1645692
Log:
add null check before feature extraction.

Modified:
    ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/RelationExtractorAnnotator.java

Modified: ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/RelationExtractorAnnotator.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/RelationExtractorAnnotator.java?rev=1645692&r1=1645691&r2=1645692&view=diff
==============================================================================
--- ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/RelationExtractorAnnotator.java (original)
+++ ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/ae/RelationExtractorAnnotator.java Mon Dec 15 16:28:38 2014
@@ -50,6 +50,7 @@ import org.cleartk.ml.CleartkProcessingE
 import org.cleartk.ml.Feature;
 import org.cleartk.ml.Instance;
 import org.cleartk.ml.jar.GenericJarClassifierFactory;
+import org.cleartk.util.ViewUriUtil;
 
 import com.google.common.collect.Lists;
 
@@ -147,7 +148,13 @@ public abstract class RelationExtractorA
         Annotation arg1 = relation.getArg1().getArgument();
         Annotation arg2 = relation.getArg2().getArgument();
         // The key is a list of args so we can do bi-directional lookup
-        relationLookup.put(Arrays.asList(arg1, arg2), relation);
+        List<Annotation> key = Arrays.asList(arg1, arg2);
+        if(relationLookup.containsKey(key)){
+         String reln = relationLookup.get(key).getCategory();
+         System.err.println("Error in: "+ ViewUriUtil.getURI(jCas).toString());
+         System.err.println("Error! This attempted relation " + relation.getCategory() + " already has a relation " + reln + " at this span: " + arg1.getCoveredText() + " -- " + arg2.getCoveredText());
+        }
+        relationLookup.put(key, relation);
       }
     }
 
@@ -165,7 +172,8 @@ public abstract class RelationExtractorA
         // apply all the feature extractors to extract the list of features
         List<Feature> features = new ArrayList<>();
         for (RelationFeaturesExtractor extractor : this.featureExtractors) {
-          features.addAll(extractor.extract(jCas, arg1, arg2));
+        	 List<Feature> feats = extractor.extract(jCas, arg1, arg2);
+        	 if (feats != null)  features.addAll(feats);
         }
 
         // sanity check on feature values