Re: Relating MeasurementAnnotations to other IdentifiedAnnotations
Thank you Peter and Tim, your responses were very helpful. On Tue, Aug 20, 2019, 5:01 PM Peter Abramowitsch wrote: > Hi Jeff > > I've experimented with three approaches. > > One is with the LabValueFinder which is included in the cTakes release - > that looks specifically for values associated with LabMentions. It also > has an "eager" mode where it converts some MedicationMentions into > LabMentions, when the context seems right. O2, Sodium etc. I can't say > it works all that well and it is not capable of many different semantic > forms of the Name/Value association. It is also too eager.. sometimes > creating LabMentions out of Medications when it shouldn't. > > Another approach was to use something like Stanford's TokensRegex, that > allows you to construct regex-like rules where the segments are not strings > but Tokens, where you can query the attributes like POS, and NER . For > Ctakes I had to adapt a UIMA package that must have been someone's thesis > project from the university of Nantes. > > Copyright 2015 - CNRS (Centre National de Recherche Scientifique) > package fr.univnantes.lina.uima.tkregex > > What I have is not ready for prime time and is still very rough. It works > well but only for a limited set of rules > > I used it to create a vitals detector. Here's a snippet of the rules that > this package loads in at runtime, that creates an annotation called WGT > given these matchers > matcher NUM: [ postag == "CD" ]; > matcher BE: [ lemma == "be" | lemma == "at"]; > matcher WT: /(?i)^wt|^weight/; > matcher WUOM: /(?i)^kg|^lb|^pounds/; > term "WGT": WT BE? SYM? NUM WUOM; > > The last approach was a home-built mechanism using the ConllDependencyNode > collection and the RelationArguments to detect the same connection between > certain typed pairs of Identified annotations. > > Problem is. I've always been in prototyping mode and never had time to push > these methods to production ready status > > Peter > > On Tue, Aug 20, 2019 at 1:15 PM Jeffrey Miller wrote: > > > Hi, > > > > Is there any configuration or component in cTAKES that can be used to > > attribute a measurement annotation to another annotation that it applies > > to? For example, for "2 mm incision" where we relate "2 mm" to > "incision"? > > It looks like there might be a roundabout way to find the head of the > span > > of the MeasurementAnnotation in the output of the dependency parser, but > I > > was wondering if this has been explored before? Perhaps the > > RelationExtractor component? > > > > I also have another more general question if anyone can help- how does > the > > structure of the cTAKES type system effect how cTAKES works? I am looking > > for a general intuition of how the structure of the typesystem drives the > > larger cTAKES architecture? > > > > Thanks! > > Jeff > > >
Re: Relating MeasurementAnnotations to other IdentifiedAnnotations
Hi Jeff I've experimented with three approaches. One is with the LabValueFinder which is included in the cTakes release - that looks specifically for values associated with LabMentions. It also has an "eager" mode where it converts some MedicationMentions into LabMentions, when the context seems right. O2, Sodium etc. I can't say it works all that well and it is not capable of many different semantic forms of the Name/Value association. It is also too eager.. sometimes creating LabMentions out of Medications when it shouldn't. Another approach was to use something like Stanford's TokensRegex, that allows you to construct regex-like rules where the segments are not strings but Tokens, where you can query the attributes like POS, and NER . For Ctakes I had to adapt a UIMA package that must have been someone's thesis project from the university of Nantes. Copyright 2015 - CNRS (Centre National de Recherche Scientifique) package fr.univnantes.lina.uima.tkregex What I have is not ready for prime time and is still very rough. It works well but only for a limited set of rules I used it to create a vitals detector. Here's a snippet of the rules that this package loads in at runtime, that creates an annotation called WGT given these matchers matcher NUM: [ postag == "CD" ]; matcher BE: [ lemma == "be" | lemma == "at"]; matcher WT: /(?i)^wt|^weight/; matcher WUOM: /(?i)^kg|^lb|^pounds/; term "WGT": WT BE? SYM? NUM WUOM; The last approach was a home-built mechanism using the ConllDependencyNode collection and the RelationArguments to detect the same connection between certain typed pairs of Identified annotations. Problem is. I've always been in prototyping mode and never had time to push these methods to production ready status Peter On Tue, Aug 20, 2019 at 1:15 PM Jeffrey Miller wrote: > Hi, > > Is there any configuration or component in cTAKES that can be used to > attribute a measurement annotation to another annotation that it applies > to? For example, for "2 mm incision" where we relate "2 mm" to "incision"? > It looks like there might be a roundabout way to find the head of the span > of the MeasurementAnnotation in the output of the dependency parser, but I > was wondering if this has been explored before? Perhaps the > RelationExtractor component? > > I also have another more general question if anyone can help- how does the > structure of the cTAKES type system effect how cTAKES works? I am looking > for a general intuition of how the structure of the typesystem drives the > larger cTAKES architecture? > > Thanks! > Jeff >
Relating MeasurementAnnotations to other IdentifiedAnnotations
Hi, Is there any configuration or component in cTAKES that can be used to attribute a measurement annotation to another annotation that it applies to? For example, for "2 mm incision" where we relate "2 mm" to "incision"? It looks like there might be a roundabout way to find the head of the span of the MeasurementAnnotation in the output of the dependency parser, but I was wondering if this has been explored before? Perhaps the RelationExtractor component? I also have another more general question if anyone can help- how does the structure of the cTAKES type system effect how cTAKES works? I am looking for a general intuition of how the structure of the typesystem drives the larger cTAKES architecture? Thanks! Jeff