Thanks Sean, I was able to achieve what I wanted by adding the ContextAnnotator to the default clinical pipeline like so:
public class Pipeline { public static AggregateBuilder getAggregateBuilder( ) throws Exception { AggregateBuilder builder = new AggregateBuilder( ); builder.add( ClinicalPipelineFactory.getDefaultPipeline( ) ); builder.add( ContextAnnotator.createAnnotatorDescription( ) ); return builder; } } -Chris On Tue, Aug 8, 2017 at 2:36 PM, Finan, Sean < sean.fi...@childrens.harvard.edu> wrote: > Hi Chris, > > No, you are not missing anything. > > The example on the wiki was concocted to display what ctakes should do. > There are a few different negation modules (and you can write your own). > Using the Assertion module you will not get negated lesions. Using the > ContextAnnotator you will. > > I did the following: > > In ctakes-examples , edit org.apache.ctakes.examples.pipeline. > HelloWorldPropsPiperRunner.java > HelloWorldPropsPiperRunner uses the ContextAnnotator for negation. > Change DOC_TEXT to be the example sentence. The output is: > > 4,11 patient > | affirmed | certain | not conditional | > not generic | Patient | history of: 0 > 24,26 CT > | affirmed | certain | not conditional | > not generic | Patient | history of: 0 > 27,31 Scan > | affirmed | certain | not conditional | > not generic | Patient | history of: 0 > 35,40 April > | affirmed | certain | not conditional | > not generic | Patient | history of: 0 > 47,50 did > | negated | certain | not conditional | > not generic | Patient | history of: 0 > 47,54 did not > | affirmed | certain | not conditional | > not generic | Patient | history of: 0 > 51,54 not > | affirmed | certain | not conditional | > not generic | Patient | history of: 0 > 62,69 lesions > | negated | certain | not conditional | > not generic | Patient | history of: 0 > 77,82 liver > | negated | certain | not conditional | > not generic | Patient | history of: 0 > > Notice that the context annotator marked lesions as negated. > > I hope that makes sense. > Sean > > > From: Chris Hinkle [mailto:hin...@all-turtles.com] > Sent: Tuesday, August 08, 2017 5:00 PM > To: dev@ctakes.apache.org > Subject: default clinical pipeline: questions about polarity [EXTERNAL] > > Hi cTAKES Team, > > I've recently started exploring cTAKES and I'm excited about the > potential. However, I'm having trouble seeing the results as they're > exemplified in the documentation using the example input "The patient > underwent a CT Scan in April which did not reveal lesions in his liver." > > Specifically negation (polarity) values don't seem to be populated as they > are shown in the Default Clinical Pipeline documentation wiki page< > https://urldefense.proofpoint.com/v2/url?u=https-3A__cwiki.apache.org_ > confluence_display_CTAKES_Default-2BClinical-2BPipeline& > d=DwMFaQ&c=qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r= > fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m= > dTK9VzFknYGrOowQ4jIqy8xeqw9DIClZjRUaj_xs894&s=26Dy4rIl2LIwaRk5o3q8pmAhISj_ > lyCX90hVe2sAV58&e=>. I've built a simple java class which instantiates > the Default Pipeline like so > > > static AnalysisEngine pipeline; > > … > > log.info( "Initilizing Pipeline..." ); > > > > try > > { > > AggregateBuilder builder = new AggregateBuilder( ); > > builder.add( ClinicalPipelineFactory.getDefaultPipeline( ) ); > > pipeline = builder.createAggregate( ); > > } > > catch( Exception e ) > > { > > log.error( e ); > > } > > … > > > > I then instantiate a CAS and process it like so: > > > > try > > { > > JCas jcas = pipeline.newJCas( ); > > jcas.setDocumentText( "The patient underwent a CT Scan in April which > did not reveal lesions in his liver." ); > > pipeline.process( jcas ); > > } > > catch( Exception e ) > > { > > log.error( e ); > > } > > … > > > > I've set my UMLS username and password as environment variables, and UMLS > lookups are working just fine. The CAS contains the same identified > annotations as the example, i.e. The AnatomicalSiteMentions, > SignSymptomMentions, etc, however, the fields for polarity are all 1. The > documentation on the wiki page for Assertion Component Use Guide< > https://urldefense.proofpoint.com/v2/url?u=https-3A__cwiki.apache.org_ > confluence_display_CTAKES_cTAKES-2B4.0-2B-2D-2BAssertion&d=DwMFaQ&c= > qS4goWBT7poplM69zy_3xhKwEW14JZMSdioCoppxeFU&r= > fs67GvlGZstTpyIisCYNYmQCP6r0bcpKGd4f7d4gTao&m= > dTK9VzFknYGrOowQ4jIqy8xeqw9DIClZjRUaj_xs894&s= > AdLHU8Zne1EOqbGocT4o22Ylyl32B-xRHMtogDho9r4&e=>, and the aforementioned > wiki page for the default clinical pipeline lead me to think that the > polarity field for the 'lesions' concept would be set to 1, and leave the > rest -1. > > > > Is there something I'm missing? Perhaps I'm not looking in the right > place, or haven't done all of the configuration required to exercise those > features of cTAKES? > > > > I've attached the serialized CAS object to this email for reference. > > > > > > > > Best, > > Chris > > > -- > Chris Hinkle > All Turtles > 347-407-4993 > -- Chris Hinkle All Turtles 347-407-4993