You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ctakes.apache.org by sw...@apache.org on 2013/01/31 21:23:37 UTC

svn commit: r1441179 - in /incubator/ctakes/trunk: ctakes-assertion/src/main/java/org/apache/ctakes/assertion/attributes/subject/ ctakes-assertion/src/main/java/org/apache/ctakes/assertion/eval/ ctakes-assertion/src/main/java/org/apache/ctakes/assertio...

Author: swu
Date: Thu Jan 31 20:23:37 2013
New Revision: 1441179

URL: http://svn.apache.org/viewvc?rev=1441179&view=rev
Log:
cosmetic changes (e.g., fewer printouts) and bug fixes around assertion module

Modified:
    incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/attributes/subject/SubjectAttributeClassifier.java
    incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/eval/AssertionEvalBasedOnModifier.java
    incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/AssertionAnalysisEngine.java
    incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/AssertionCleartkAnalysisEngine.java
    incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/ConditionalCleartkAnalysisEngine.java
    incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/GenericCleartkAnalysisEngine.java
    incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/PolarityCleartkAnalysisEngine.java
    incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/SubjectCleartkAnalysisEngine.java
    incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/UncertaintyCleartkAnalysisEngine.java
    incubator/ctakes/trunk/ctakes-dependency-parser/src/main/java/org/apache/ctakes/dependency/parser/util/DependencyUtility.java

Modified: incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/attributes/subject/SubjectAttributeClassifier.java
URL: http://svn.apache.org/viewvc/incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/attributes/subject/SubjectAttributeClassifier.java?rev=1441179&r1=1441178&r2=1441179&view=diff
==============================================================================
--- incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/attributes/subject/SubjectAttributeClassifier.java (original)
+++ incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/attributes/subject/SubjectAttributeClassifier.java Thu Jan 31 20:23:37 2013
@@ -28,6 +28,7 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 
+import org.apache.ctakes.assertion.eval.AssertionEvalBasedOnModifier;
 import org.apache.ctakes.dependency.parser.util.DependencyPath;
 import org.apache.ctakes.dependency.parser.util.DependencyUtility;
 import org.apache.ctakes.typesystem.type.constants.CONST;
@@ -37,6 +38,7 @@ import org.apache.ctakes.typesystem.type
 import org.apache.ctakes.typesystem.type.textsem.Predicate;
 import org.apache.ctakes.typesystem.type.textsem.SemanticArgument;
 import org.apache.ctakes.typesystem.type.textspan.Sentence;
+import org.apache.log4j.Logger;
 import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.tcas.Annotation;
 import org.uimafit.util.JCasUtil;
@@ -64,6 +66,8 @@ public class SubjectAttributeClassifier 
 	public static final String OTHER_DEPTOK = "other_depsrl";
 	public static final String OTHER_OR = "other_or";
     public static ArrayList<String> FeatureIndex = new ArrayList<String>();
+    private static Logger logger = Logger.getLogger(SubjectAttributeClassifier.class); 
+
     static{
             FeatureIndex.add(DONOR_TOKEN);
             FeatureIndex.add(DONOR_SRLARG);
@@ -110,8 +114,15 @@ public class SubjectAttributeClassifier 
 				break;
 			}
 		}
-//		if (sEntity==null)
-//			return null;
+		
+		// if there is no sentence, then all these features are null!
+		if (sEntity==null) {
+//			for ( String feat : FeatureIndex ) {
+//				vfeat.put(feat, null);
+//			}
+//			return vfeat;
+			return null;
+		}
 				
 		// get any SRL arguments
 		List<SemanticArgument> args = JCasUtil.selectCovered(jCas, SemanticArgument.class, sEntity);
@@ -198,6 +209,13 @@ public class SubjectAttributeClassifier 
 	
 	
 	public static String classifyWithLogic(HashMap<String, Boolean> vfeat) {
+		
+		if (vfeat==null) {
+			// if missing values, use default subject value
+			logger.warn("Subject attribute classifier missing feature values, defaulting to 'patient'");
+			return CONST.ATTR_SUBJECT_PATIENT;
+		}
+
 		Boolean donor_summary = new Boolean(vfeat.get(DONOR_TOKEN) || vfeat.get(DONOR_DEPPATH) || 
 				vfeat.get(DONOR_DEPTOK) || vfeat.get(DONOR_SRLARG));
 		Boolean family_summary = new Boolean(                         vfeat.get(FAMILY_DEPPATH) || 
@@ -207,7 +225,7 @@ public class SubjectAttributeClassifier 
 		vfeat.put(DONOR_OR, donor_summary);
 		vfeat.put(FAMILY_OR, family_summary);
 		vfeat.put(OTHER_OR, other_summary);
-		
+
 		if (vfeat.get(DONOR_OR) && vfeat.get(FAMILY_OR)) {
 			return CONST.ATTR_SUBJECT_DONOR_FAMILY_MEMBER;
 		} else if (vfeat.get(DONOR_OR) && !vfeat.get(FAMILY_OR)) {
@@ -219,6 +237,7 @@ public class SubjectAttributeClassifier 
 		} else {
 			return CONST.ATTR_SUBJECT_PATIENT;
 		}
+
 	}
 
 

Modified: incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/eval/AssertionEvalBasedOnModifier.java
URL: http://svn.apache.org/viewvc/incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/eval/AssertionEvalBasedOnModifier.java?rev=1441179&r1=1441178&r2=1441179&view=diff
==============================================================================
--- incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/eval/AssertionEvalBasedOnModifier.java (original)
+++ incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/eval/AssertionEvalBasedOnModifier.java Thu Jan 31 20:23:37 2013
@@ -19,6 +19,7 @@
 package org.apache.ctakes.assertion.eval;
 
 import java.io.File;
+import java.io.IOException;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
 import java.net.URI;
@@ -31,6 +32,7 @@ import java.util.Map;
 import java.util.TreeMap;
 
 import org.apache.log4j.Logger;
+import org.apache.uima.UIMAException;
 import org.apache.uima.analysis_engine.AnalysisEngine;
 import org.apache.uima.analysis_engine.AnalysisEngineDescription;
 import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
@@ -59,6 +61,7 @@ import org.cleartk.util.Options_ImplBase
 import org.kohsuke.args4j.Option;
 import org.kohsuke.args4j.spi.BooleanOptionHandler;
 import org.mitre.medfacts.uima.ZoneAnnotator;
+import org.apache.ctakes.assertion.medfacts.AssertionAnalysisEngine;
 import org.apache.ctakes.assertion.medfacts.cleartk.AssertionCleartkAnalysisEngine;
 import org.apache.ctakes.assertion.medfacts.cleartk.AssertionComponents;
 import org.apache.ctakes.assertion.medfacts.cleartk.ConditionalCleartkAnalysisEngine;
@@ -164,6 +167,17 @@ public class AssertionEvalBasedOnModifie
             required = false)
     public Integer crossValidationFolds;
     
+    @Option(
+            name = "--test-only",
+            usage = "do not train a model, use the one specified in --models-dir",
+            required = false)
+    public boolean testOnly = false;
+
+    @Option(
+            name = "--no-cleartk",
+            usage = "run the version of the assertion module released with cTAKES 2.5",
+            required = false)
+    public boolean noCleartk = false;
   }
   
   protected ArrayList<String> annotationTypes;
@@ -181,10 +195,10 @@ public class AssertionEvalBasedOnModifie
     //Options options = new Options();
     options.parseOptions(args);
     
-    System.err.println("forcing skipping of subject processing!!!");
-    options.runSubject = false;
-    System.err.println("forcing skipping of generic processing!!!");
-    options.runGeneric = false;
+//    System.err.println("forcing skipping of subject processing!!!");
+//    options.runSubject = false;
+//    System.err.println("forcing skipping of generic processing!!!");
+//    options.runGeneric = false;
 //    System.err.println("forcing skipping of polarity processing!!!");
 //    options.runPolarity = false;
 //    System.err.println("forcing skipping of uncertainty processing!!!");
@@ -275,16 +289,17 @@ public class AssertionEvalBasedOnModifie
       // train on the entire training set and evaluate on the test set
       List<File> testFiles = Arrays.asList(options.testDirectory.listFiles());
       
-      CollectionReader trainCollectionReader = evaluation.getCollectionReader(trainFiles);
-      evaluation.train(trainCollectionReader, modelsDir);
-      
+      if (!options.testOnly) {
+    	  CollectionReader trainCollectionReader = evaluation.getCollectionReader(trainFiles);
+    	  evaluation.train(trainCollectionReader, modelsDir);
+      }
       CollectionReader testCollectionReader = evaluation.getCollectionReader(testFiles);
       Map<String, AnnotationStatistics> stats = evaluation.test(testCollectionReader, modelsDir);
       
       AssertionEvalBasedOnModifier.printScore(stats,  modelsDir.getAbsolutePath());
     }
     
-    System.out.println("Finished.");
+    System.out.println("Finished assertion module.");
     
   }
   
@@ -533,93 +548,12 @@ public static void printScore(Map<String
     AnalysisEngineDescription assertionAttributeClearerAnnotator = AnalysisEngineFactory.createPrimitiveDescription(ReferenceAnnotationsSystemAssertionClearer.class);
     builder.add(assertionAttributeClearerAnnotator);
     
-    AnalysisEngineDescription cuePhraseLookupAnnotator =
-        AnalysisEngineFactory.createAnalysisEngineDescription("org/apache/ctakes/dictionary/lookup/AssertionCuePhraseDictionaryLookupAnnotator");
-    builder.add(cuePhraseLookupAnnotator);
-    
-    String generalSectionRegexFileUri =
-      "org/mitre/medfacts/zoner/section_regex.xml";
-    AnalysisEngineDescription zonerAnnotator =
-        AnalysisEngineFactory.createPrimitiveDescription(ZoneAnnotator.class,
-            ZoneAnnotator.PARAM_SECTION_REGEX_FILE_URI,
-            generalSectionRegexFileUri
-            );
-    builder.add(zonerAnnotator);
-
-    String mayoSectionRegexFileUri =
-      "org/mitre/medfacts/uima/mayo_sections.xml";
-    AnalysisEngineDescription mayoZonerAnnotator =
-        AnalysisEngineFactory.createPrimitiveDescription(ZoneAnnotator.class,
-            ZoneAnnotator.PARAM_SECTION_REGEX_FILE_URI,
-            mayoSectionRegexFileUri
-            );
-    builder.add(mayoZonerAnnotator);
-    
-    if (options.runPolarity)
-    {
-	    AnalysisEngineDescription polarityAnnotator = AnalysisEngineFactory.createPrimitiveDescription(PolarityCleartkAnalysisEngine.class); //,  this.additionalParamemters);
-	    ConfigurationParameterFactory.addConfigurationParameters(
-	        polarityAnnotator,
-	        AssertionCleartkAnalysisEngine.PARAM_GOLD_VIEW_NAME,
-	        AssertionEvalBasedOnModifier.GOLD_VIEW_NAME,
-	        GenericJarClassifierFactory.PARAM_CLASSIFIER_JAR_PATH,
-	        new File(new File(directory, "polarity"), "model.jar").getPath()
-	        );
-	    builder.add(polarityAnnotator);
-    }
-    
-    if (options.runConditional)
-    {
-	    AnalysisEngineDescription conditionalAnnotator = AnalysisEngineFactory.createPrimitiveDescription(ConditionalCleartkAnalysisEngine.class); //,  this.additionalParamemters);
-	    ConfigurationParameterFactory.addConfigurationParameters(
-	        conditionalAnnotator,
-	        AssertionCleartkAnalysisEngine.PARAM_GOLD_VIEW_NAME,
-	        AssertionEvalBasedOnModifier.GOLD_VIEW_NAME,
-	        GenericJarClassifierFactory.PARAM_CLASSIFIER_JAR_PATH,
-	        new File(new File(directory, "conditional"), "model.jar").getPath()
-	        );
-	    builder.add(conditionalAnnotator);
-    }
-    
-    if (options.runUncertainty)
-    {
-	    AnalysisEngineDescription uncertaintyAnnotator = AnalysisEngineFactory.createPrimitiveDescription(UncertaintyCleartkAnalysisEngine.class); //,  this.additionalParamemters);
-	    ConfigurationParameterFactory.addConfigurationParameters(
-	        uncertaintyAnnotator,
-	        AssertionCleartkAnalysisEngine.PARAM_GOLD_VIEW_NAME,
-	        AssertionEvalBasedOnModifier.GOLD_VIEW_NAME,
-	        GenericJarClassifierFactory.PARAM_CLASSIFIER_JAR_PATH,
-	        new File(new File(directory, "uncertainty"), "model.jar").getPath()
-	        );
-	    builder.add(uncertaintyAnnotator);
-    }
-    
-    if (options.runSubject)
-    {
-	    AnalysisEngineDescription subjectAnnotator = AnalysisEngineFactory.createPrimitiveDescription(SubjectCleartkAnalysisEngine.class); //,  this.additionalParamemters);
-	    ConfigurationParameterFactory.addConfigurationParameters(
-	        subjectAnnotator,
-	        AssertionCleartkAnalysisEngine.PARAM_GOLD_VIEW_NAME,
-	        AssertionEvalBasedOnModifier.GOLD_VIEW_NAME,
-	        GenericJarClassifierFactory.PARAM_CLASSIFIER_JAR_PATH,
-	        new File(new File(directory, "subject"), "model.jar").getPath()
-	        );
-	    builder.add(subjectAnnotator);
-    }
-    
-    if (options.runGeneric)
-    {
-	    AnalysisEngineDescription genericAnnotator = AnalysisEngineFactory.createPrimitiveDescription(GenericCleartkAnalysisEngine.class); //,  this.additionalParamemters);
-	    ConfigurationParameterFactory.addConfigurationParameters(
-	        genericAnnotator,
-	        AssertionCleartkAnalysisEngine.PARAM_GOLD_VIEW_NAME,
-	        AssertionEvalBasedOnModifier.GOLD_VIEW_NAME,
-	        GenericJarClassifierFactory.PARAM_CLASSIFIER_JAR_PATH,
-	        new File(new File(directory, "generic"), "model.jar").getPath()
-	        );
-	    builder.add(genericAnnotator);
+    if ( options.noCleartk ) {
+    	addExternalAttributeAnnotatorsToAggregate(builder);
+    } else {
+    	addCleartkAttributeAnnotatorsToAggregate(directory, builder);
     }
-    
+
     if (evaluationOutputDirectory != null)
     {
         AnalysisEngineDescription xwriter =
@@ -687,14 +621,14 @@ public static void printScore(Map<String
       goldEntitiesAndEvents.addAll(goldEntities);
       Collection<EventMention> goldEvents = JCasUtil.select(goldView, EventMention.class);
       goldEntitiesAndEvents.addAll(goldEvents);
-      System.out.format("gold entities: %d%ngold events: %d%n%n", goldEntities.size(), goldEvents.size());
+//      System.out.format("gold entities: %d%ngold events: %d%n%n", goldEntities.size(), goldEvents.size());
       
       Collection<IdentifiedAnnotation> systemEntitiesAndEvents = new ArrayList<IdentifiedAnnotation>();
       Collection<EntityMention> systemEntities = JCasUtil.select(jCas, EntityMention.class);
       systemEntitiesAndEvents.addAll(systemEntities);
       Collection<EventMention> systemEvents = JCasUtil.select(jCas, EventMention.class);
       systemEntitiesAndEvents.addAll(systemEvents);
-      System.out.format("system entities: %d%nsystem events: %d%n%n", systemEntities.size(), systemEvents.size());
+//      System.out.format("system entities: %d%nsystem events: %d%n%n", systemEntities.size(), systemEvents.size());
       
       if (options.runPolarity)
       {
@@ -736,6 +670,134 @@ public static void printScore(Map<String
     return map;
   }
 
+private void addExternalAttributeAnnotatorsToAggregate(AggregateBuilder builder)
+		throws UIMAException, IOException {
+	// RUN ALL THE OLD (non-ClearTK) CLASSIFIERS
+	AnalysisEngineDescription oldAssertionAnnotator = AnalysisEngineFactory.createAnalysisEngineDescription("desc/assertionAnalysisEngine"); 
+	ConfigurationParameterFactory.addConfigurationParameters(
+			oldAssertionAnnotator,
+			AssertionCleartkAnalysisEngine.PARAM_GOLD_VIEW_NAME,
+			AssertionEvalBasedOnModifier.GOLD_VIEW_NAME
+	);
+	builder.add(oldAssertionAnnotator);
+
+	AnalysisEngineDescription oldConversionAnnotator = AnalysisEngineFactory.createAnalysisEngineDescription("desc/conceptConverterAnalysisEngine"); 
+	ConfigurationParameterFactory.addConfigurationParameters(
+			oldConversionAnnotator,
+			AssertionCleartkAnalysisEngine.PARAM_GOLD_VIEW_NAME,
+			AssertionEvalBasedOnModifier.GOLD_VIEW_NAME
+	);
+	builder.add(oldConversionAnnotator);
+
+//	AnalysisEngineDescription oldSubjectAnnotator = AnalysisEngineFactory.createAnalysisEngineDescription("desc/SubjectAttributeAnalysisEngine"); 
+//	ConfigurationParameterFactory.addConfigurationParameters(
+//			oldSubjectAnnotator,
+//			AssertionCleartkAnalysisEngine.PARAM_GOLD_VIEW_NAME,
+//			AssertionEvalBasedOnModifier.GOLD_VIEW_NAME
+//	);
+//	builder.add(oldSubjectAnnotator);
+
+	AnalysisEngineDescription oldGenericAnnotator = AnalysisEngineFactory.createAnalysisEngineDescription("desc/GenericAttributeAnalysisEngine"); 
+	ConfigurationParameterFactory.addConfigurationParameters(
+			oldGenericAnnotator,
+			AssertionCleartkAnalysisEngine.PARAM_GOLD_VIEW_NAME,
+			AssertionEvalBasedOnModifier.GOLD_VIEW_NAME
+	);
+	builder.add(oldGenericAnnotator);
+}
+
+private void addCleartkAttributeAnnotatorsToAggregate(File directory,
+		AggregateBuilder builder) throws UIMAException, IOException,
+		ResourceInitializationException {
+	AnalysisEngineDescription cuePhraseLookupAnnotator =
+		AnalysisEngineFactory.createAnalysisEngineDescription("org/apache/ctakes/dictionary/lookup/AssertionCuePhraseDictionaryLookupAnnotator");
+	builder.add(cuePhraseLookupAnnotator);
+
+	String generalSectionRegexFileUri =
+		"org/mitre/medfacts/zoner/section_regex.xml";
+	AnalysisEngineDescription zonerAnnotator =
+		AnalysisEngineFactory.createPrimitiveDescription(ZoneAnnotator.class,
+				ZoneAnnotator.PARAM_SECTION_REGEX_FILE_URI,
+				generalSectionRegexFileUri
+		);
+	builder.add(zonerAnnotator);
+
+	String mayoSectionRegexFileUri =
+		"org/mitre/medfacts/uima/mayo_sections.xml";
+	AnalysisEngineDescription mayoZonerAnnotator =
+		AnalysisEngineFactory.createPrimitiveDescription(ZoneAnnotator.class,
+				ZoneAnnotator.PARAM_SECTION_REGEX_FILE_URI,
+				mayoSectionRegexFileUri
+		);
+	builder.add(mayoZonerAnnotator);
+
+	// RUN THE CLEARTK CLASSIFIERS
+	if (options.runPolarity)
+	{
+		AnalysisEngineDescription polarityAnnotator = AnalysisEngineFactory.createPrimitiveDescription(PolarityCleartkAnalysisEngine.class); //,  this.additionalParamemters);
+		ConfigurationParameterFactory.addConfigurationParameters(
+				polarityAnnotator,
+				AssertionCleartkAnalysisEngine.PARAM_GOLD_VIEW_NAME,
+				AssertionEvalBasedOnModifier.GOLD_VIEW_NAME,
+				GenericJarClassifierFactory.PARAM_CLASSIFIER_JAR_PATH,
+				new File(new File(directory, "polarity"), "model.jar").getPath()
+		);
+		builder.add(polarityAnnotator);
+	}
+
+	if (options.runConditional)
+	{
+		AnalysisEngineDescription conditionalAnnotator = AnalysisEngineFactory.createPrimitiveDescription(ConditionalCleartkAnalysisEngine.class); //,  this.additionalParamemters);
+		ConfigurationParameterFactory.addConfigurationParameters(
+				conditionalAnnotator,
+				AssertionCleartkAnalysisEngine.PARAM_GOLD_VIEW_NAME,
+				AssertionEvalBasedOnModifier.GOLD_VIEW_NAME,
+				GenericJarClassifierFactory.PARAM_CLASSIFIER_JAR_PATH,
+				new File(new File(directory, "conditional"), "model.jar").getPath()
+		);
+		builder.add(conditionalAnnotator);
+	}
+
+	if (options.runUncertainty)
+	{
+		AnalysisEngineDescription uncertaintyAnnotator = AnalysisEngineFactory.createPrimitiveDescription(UncertaintyCleartkAnalysisEngine.class); //,  this.additionalParamemters);
+		ConfigurationParameterFactory.addConfigurationParameters(
+				uncertaintyAnnotator,
+				AssertionCleartkAnalysisEngine.PARAM_GOLD_VIEW_NAME,
+				AssertionEvalBasedOnModifier.GOLD_VIEW_NAME,
+				GenericJarClassifierFactory.PARAM_CLASSIFIER_JAR_PATH,
+				new File(new File(directory, "uncertainty"), "model.jar").getPath()
+		);
+		builder.add(uncertaintyAnnotator);
+	}
+
+	if (options.runSubject)
+	{
+		AnalysisEngineDescription subjectAnnotator = AnalysisEngineFactory.createPrimitiveDescription(SubjectCleartkAnalysisEngine.class); //,  this.additionalParamemters);
+		ConfigurationParameterFactory.addConfigurationParameters(
+				subjectAnnotator,
+				AssertionCleartkAnalysisEngine.PARAM_GOLD_VIEW_NAME,
+				AssertionEvalBasedOnModifier.GOLD_VIEW_NAME,
+				GenericJarClassifierFactory.PARAM_CLASSIFIER_JAR_PATH,
+				new File(new File(directory, "subject"), "model.jar").getPath()
+		);
+		builder.add(subjectAnnotator);
+	}
+
+	if (options.runGeneric)
+	{
+		AnalysisEngineDescription genericAnnotator = AnalysisEngineFactory.createPrimitiveDescription(GenericCleartkAnalysisEngine.class); //,  this.additionalParamemters);
+		ConfigurationParameterFactory.addConfigurationParameters(
+				genericAnnotator,
+				AssertionCleartkAnalysisEngine.PARAM_GOLD_VIEW_NAME,
+				AssertionEvalBasedOnModifier.GOLD_VIEW_NAME,
+				GenericJarClassifierFactory.PARAM_CLASSIFIER_JAR_PATH,
+				new File(new File(directory, "generic"), "model.jar").getPath()
+		);
+		builder.add(genericAnnotator);
+	}
+}
+
   public static final String GOLD_VIEW_NAME = "GoldView";
 
   /**

Modified: incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/AssertionAnalysisEngine.java
URL: http://svn.apache.org/viewvc/incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/AssertionAnalysisEngine.java?rev=1441179&r1=1441178&r2=1441179&view=diff
==============================================================================
--- incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/AssertionAnalysisEngine.java (original)
+++ incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/AssertionAnalysisEngine.java Thu Jan 31 20:23:37 2013
@@ -27,8 +27,9 @@ import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Set;
-import java.util.logging.Logger;
 
+import org.apache.log4j.Logger;
+import org.apache.log4j.Level;
 import org.apache.uima.UimaContext;
 import org.apache.uima.analysis_component.JCasAnnotator_ImplBase;
 import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
@@ -140,7 +141,7 @@ public class AssertionAnalysisEngine ext
   @Override
   public void process(JCas jcas) throws AnalysisEngineProcessException
   {
-    logger.info("(logging statement) AssertionAnalysisEngine.process() BEGIN");
+    logger.debug("(logging statement) AssertionAnalysisEngine.process() BEGIN");
     System.out.println("(stdout) AssertionAnalysisEngine.process() BEGIN");
     String contents = jcas.getDocumentText();
 
@@ -205,12 +206,12 @@ public class AssertionAnalysisEngine ext
     }
 
     logger
-        .info("(logging statement) AssertionAnalysisEngine.process() BEFORE CALLING p.processSingleDocument()");
+        .debug("(logging statement) AssertionAnalysisEngine.process() BEFORE CALLING p.processSingleDocument()");
 
     p.processSingleDocument();
 
     logger
-        .info("(logging statement) AssertionAnalysisEngine.process() AFTER CALLING p.processSingleDocument()");
+        .debug("(logging statement) AssertionAnalysisEngine.process() AFTER CALLING p.processSingleDocument()");
 
     Map<Integer, String> assertionTypeMap = p.getAssertionTypeMap();
     //logger.info(String.format("    - done processing ..\"."));
@@ -290,7 +291,7 @@ public class AssertionAnalysisEngine ext
     {
       String message = "current assertion type is null; this is a problem!!";
       System.err.println(message);
-      logger.severe(message);
+      logger.log(Level.ERROR,message);
       // Exception runtimeException = new RuntimeException(message);
       // throw new AnalysisEngineProcessException(runtimeException);
     
@@ -370,8 +371,8 @@ public class AssertionAnalysisEngine ext
       String message = String.format(
           "unexpected assertion value returned!! \"%s\"",
           assertionType);
-      logger.severe(message);
-      System.err.println(message);
+      logger.log(Level.ERROR,message);
+//      System.err.println(message);
       Exception runtimeException = new RuntimeException(message);
       throw new AnalysisEngineProcessException(runtimeException);
     }
@@ -389,7 +390,7 @@ public class AssertionAnalysisEngine ext
     
     b.append(debugOutput);
     
-    logger.info(b.toString());
+    logger.debug(b.toString());
     
   }
 

Modified: incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/AssertionCleartkAnalysisEngine.java
URL: http://svn.apache.org/viewvc/incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/AssertionCleartkAnalysisEngine.java?rev=1441179&r1=1441178&r2=1441179&view=diff
==============================================================================
--- incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/AssertionCleartkAnalysisEngine.java (original)
+++ incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/AssertionCleartkAnalysisEngine.java Thu Jan 31 20:23:37 2013
@@ -386,15 +386,15 @@ public abstract class AssertionCleartkAn
       return new ArrayList<Feature>();
     } else
     {
-      logger.info("AssertionCleartkAnalysisEngine.extractZoneFeatures() found zones and adding zone features");
+      logger.debug("AssertionCleartkAnalysisEngine.extractZoneFeatures() found zones and adding zone features");
     }
     
     ArrayList<Feature> featureList = new ArrayList<Feature>();
     for (Zone zone : zoneList)
     {
       Feature currentFeature = new Feature("zone", zone.getLabel());
-      logger.info(String.format("zone: %s", zone.getLabel()));
-      logger.info(String.format("zone feature: %s", currentFeature.toString()));
+      logger.debug(String.format("zone: %s", zone.getLabel()));
+      logger.debug(String.format("zone feature: %s", currentFeature.toString()));
       featureList.add(currentFeature);
     }
     

Modified: incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/ConditionalCleartkAnalysisEngine.java
URL: http://svn.apache.org/viewvc/incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/ConditionalCleartkAnalysisEngine.java?rev=1441179&r1=1441178&r2=1441179&view=diff
==============================================================================
--- incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/ConditionalCleartkAnalysisEngine.java (original)
+++ incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/ConditionalCleartkAnalysisEngine.java Thu Jan 31 20:23:37 2013
@@ -31,7 +31,7 @@ public class ConditionalCleartkAnalysisE
 	@Override
 	public void initialize(UimaContext context) throws ResourceInitializationException {
 		super.initialize(context);
-		probabilityOfKeepingADefaultExample = 1.0;
+		probabilityOfKeepingADefaultExample = 0.1;
 	}
 	
 	@Override

Modified: incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/GenericCleartkAnalysisEngine.java
URL: http://svn.apache.org/viewvc/incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/GenericCleartkAnalysisEngine.java?rev=1441179&r1=1441178&r2=1441179&view=diff
==============================================================================
--- incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/GenericCleartkAnalysisEngine.java (original)
+++ incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/GenericCleartkAnalysisEngine.java Thu Jan 31 20:23:37 2013
@@ -36,7 +36,7 @@ public class GenericCleartkAnalysisEngin
 	@Override
 	public void initialize(UimaContext context) throws ResourceInitializationException {
 		super.initialize(context);
-		probabilityOfKeepingADefaultExample = 1.0;
+		probabilityOfKeepingADefaultExample = 0.1;
 	
 //		if (this.isTraining() && this.goldViewName == null) {
 //			throw new IllegalArgumentException(PARAM_GOLD_VIEW_NAME + " must be defined during training");

Modified: incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/PolarityCleartkAnalysisEngine.java
URL: http://svn.apache.org/viewvc/incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/PolarityCleartkAnalysisEngine.java?rev=1441179&r1=1441178&r2=1441179&view=diff
==============================================================================
--- incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/PolarityCleartkAnalysisEngine.java (original)
+++ incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/PolarityCleartkAnalysisEngine.java Thu Jan 31 20:23:37 2013
@@ -20,10 +20,19 @@ package org.apache.ctakes.assertion.medf
 
 import org.apache.ctakes.typesystem.type.textsem.IdentifiedAnnotation;
 import org.cleartk.classifier.Instance;
+import org.apache.uima.UimaContext;
 import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
+import org.apache.uima.resource.ResourceInitializationException;
+
 
 public class PolarityCleartkAnalysisEngine extends AssertionCleartkAnalysisEngine {
 
+	@Override
+	public void initialize(UimaContext context) throws ResourceInitializationException {
+		super.initialize(context);
+		probabilityOfKeepingADefaultExample = 0.1;
+	}
+
 	public void setClassLabel(IdentifiedAnnotation entityMention, Instance<String> instance) throws AnalysisEngineProcessException {
 	      if (this.isTraining())
 	      {

Modified: incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/SubjectCleartkAnalysisEngine.java
URL: http://svn.apache.org/viewvc/incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/SubjectCleartkAnalysisEngine.java?rev=1441179&r1=1441178&r2=1441179&view=diff
==============================================================================
--- incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/SubjectCleartkAnalysisEngine.java (original)
+++ incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/SubjectCleartkAnalysisEngine.java Thu Jan 31 20:23:37 2013
@@ -51,7 +51,7 @@ public class SubjectCleartkAnalysisEngin
 	@Override
 	public void initialize(UimaContext context) throws ResourceInitializationException {
 		super.initialize(context);
-		probabilityOfKeepingADefaultExample = 1.0;
+		probabilityOfKeepingADefaultExample = 0.1;
 
 		if (this.isTraining() && this.goldViewName == null) {
 			throw new IllegalArgumentException(PARAM_GOLD_VIEW_NAME + " must be defined during training");

Modified: incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/UncertaintyCleartkAnalysisEngine.java
URL: http://svn.apache.org/viewvc/incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/UncertaintyCleartkAnalysisEngine.java?rev=1441179&r1=1441178&r2=1441179&view=diff
==============================================================================
--- incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/UncertaintyCleartkAnalysisEngine.java (original)
+++ incubator/ctakes/trunk/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/cleartk/UncertaintyCleartkAnalysisEngine.java Thu Jan 31 20:23:37 2013
@@ -30,7 +30,7 @@ public class UncertaintyCleartkAnalysisE
 	@Override
 	public void initialize(UimaContext context) throws ResourceInitializationException {
 		super.initialize(context);
-		probabilityOfKeepingADefaultExample = 1.0;
+		probabilityOfKeepingADefaultExample = 0.1;
 	}
 	
 	@Override

Modified: incubator/ctakes/trunk/ctakes-dependency-parser/src/main/java/org/apache/ctakes/dependency/parser/util/DependencyUtility.java
URL: http://svn.apache.org/viewvc/incubator/ctakes/trunk/ctakes-dependency-parser/src/main/java/org/apache/ctakes/dependency/parser/util/DependencyUtility.java?rev=1441179&r1=1441178&r2=1441179&view=diff
==============================================================================
--- incubator/ctakes/trunk/ctakes-dependency-parser/src/main/java/org/apache/ctakes/dependency/parser/util/DependencyUtility.java (original)
+++ incubator/ctakes/trunk/ctakes-dependency-parser/src/main/java/org/apache/ctakes/dependency/parser/util/DependencyUtility.java Thu Jan 31 20:23:37 2013
@@ -50,6 +50,8 @@ public abstract class DependencyUtility 
 	
 	/** Equality expressions to aid in converting between DepNodes and CAS objects */
 	public static boolean equalCoverage(Annotation annot1,Annotation annot2) {
+		if (annot1==null || annot2==null) 
+			return false;
 		return annot1.getBegin()==annot2.getBegin() && 
 			annot1.getEnd()==annot2.getEnd() && 
 			annot1.getCoveredText().equals(annot2.getCoveredText());
@@ -57,6 +59,8 @@ public abstract class DependencyUtility 
 
 	/** Checks if one annotation subsumes another */
 	public static boolean doesSubsume(Annotation annot1,Annotation annot2) {
+		if (annot1==null || annot2==null) 
+			return false;
 		return annot1.getBegin()<=annot2.getBegin() && 
 			annot1.getEnd()>=annot2.getEnd() && 
 			annot1.getCoveredText().contains(annot2.getCoveredText());
@@ -106,6 +110,9 @@ public abstract class DependencyUtility 
 	/** Returns the first ConllDependencyNode in the CAS w/ same begin and end as the given Annotation **/	
 	public static ConllDependencyNode getNominalHeadNode(JCas jCas, Annotation annot) {
 		List<ConllDependencyNode> nodes = getDependencyNodes(jCas, annot);
+		if (nodes==null || nodes.size()==0) {
+			return null;
+		}
 		return getNominalHeadNode( nodes );
 	}