I don't have any links handy offhand.


cTAKES uses HSQL.  Mostly you can just reference HSQL documentation for 
learning HSQL, and point to the database in

resources\org\apache\ctakes\dictionary\lookup\umls2011ab

(which will be under whereever you unzipped the ctakes-resources you downloaded 
from sourceforge)



The only cTAKES-specific thing I can think of that you need to be aware of when 
updating cTAKES dictionaries is that you need to tokenize the (text part of 
the) dictionary entries the same way that cTAKES will tokenize the text you 
will process, so that when cTAKES compares the text it is processing to the 
dictionary entries, the tokens match up.

Tokens within the dictionary entries are separated by a space.



For example, should "left-handed" be all together without spaces, or should it 
be three separate tokens: left - handed



I think the tokenization issue is described in the old forum posts I mentioned 
earlier.



- James



________________________________
From: [email protected] 
[[email protected]] on behalf of digital 
paula [[email protected]]
Sent: Tuesday, November 19, 2013 11:22 PM
To: [email protected]
Subject: RE: Dictionary and Assertion rules for the Aggregate Plaintext 
Processor

Thanks so much James for helping me to get my tiny dictionary to work.  If you 
look up James in it....it states 'a great guy'  :-)

I really do appreciate your mentioning of the other options such as the lucene 
index (as well as links to this) which I don't have any familiarity with, yet.  
 Also, like what you stated on the better alternative on updating the SQL 
dictionaries.  However, I'm not familiar with that either, is there any 
reference links or details that you can provide on how to update SQL 
dictionaries?

Thanks.

Regards,
Paula

________________________________
From: [email protected]
To: [email protected]
Subject: RE: Dictionary and Assertion rules for the Aggregate Plaintext 
Processor
Date: Tue, 19 Nov 2013 03:50:10 +0000


Hi Paula,



There is a separate DictionaryLookupAnnotatorCSV.xml descriptor for using the 
delimited file that you found.

You would have to update the aggregate to refer to 
DictionaryLookupAnnotatorCSV.xml instead of DictionaryLookupAnnotator.xml in 
order to use the delimited files directly.



Or, to create a lucene index to replace the lucene index used by 
DictionaryLookupAnnotator.xml, there are some posts on the old forum that talk 
about creating dictionaries.  You could take a look at those.



https://cabig-kc.nci.nih.gov/Vocab/forums/viewtopic.php?f=28&t=80&start=20#p1459
https://cabig-kc.nci.nih.gov/Vocab/forums/viewtopic.php?f=28&t=423&p=1465



I think a better alternative would be update the SQL dictionaries – delete all 
the data and replace with what you want. And remove the check for the UMLS user 
ID.



Hope that helps.



-- James



From: [email protected] 
[mailto:[email protected]] On Behalf Of 
digital paula
Sent: Monday, November 18, 2013 8:48 PM
To: [email protected]
Subject: RE: Dictionary and Assertion rules for the Aggregate Plaintext 
Processor



Thanks James for the response.

I'd like to update that tiny dictionary and see the changes take effect.   I 
looked in the dictionary-lookup folders and found a dictionary1.csv file with 
these entires, I  added 'elbow 'to it  (just typed in and saved file).

ankle|ankle
aspirin|aspirin
cm|cm
cm|cm is a synonym of a UMLS term Cutaneous Mastocytosis which is in SNOMED but 
cm is not by itself
hyperlipidemia|hyperlipidemia
knee|knee
knee|knee pain
ld|ld
ld|ld SNOMED procedure C0011911
medical|medical nutrition therapy
nutrition|nutrition
nutrition|nutrition therapy
pain|pain
pain|pain, chronic
weight|weight gain
elbow|elbow

 I typed in the following text in CVD using the plaintext processor that uses 
the DictionaryLookupAnnotator.xml descriptor.

"patient has knee pain and gained significant weight gain due to injury.  Past 
history of elbow pain.  family history includes hyperlipidemia. ."

There was no annotation for 'elbow' or 'weight' after executing the 
AggregatePlaintext AE processor.  Does something else have to be done to get it 
to annotate, basically what are the steps to add terms to the tiny dictionary?

Thanks.

Regards,
Paula


> From: [email protected]<mailto:[email protected]>
> To: [email protected]<mailto:[email protected]>
> Subject: RE: Dictionary and Assertion rules for the Aggregate Plaintext 
> Processor
> Date: Mon, 18 Nov 2013 20:17:32 +0000
>
> The "pain" and "aspirin" terms are from a tiny dictionary that has just a 
> handful of terms with made-up codes/CUIs. (For the record, they are in a 
> lucene index instead of an HSQL database.) I think "knee" is also in that 
> tiny dictionary.
>
> As far as I know, the assertion component doesn't work any differently 
> whether you use the UMLS dictionary or the tiny, sample, made-up dictionary.
>
> Which dictionary is used is determined by which Dictionary Lookup analysis 
> engine is included in the aggregate
> DictionaryLookupAnnotator.xml for the tiny one
> DictionaryLookupAnnotatorUMLS.xml for the one that has real UMLS terms and 
> CUIs
>
> -- James
>
>
> From: 
> [email protected]<mailto:[email protected]>
>  [mailto:[email protected]] On Behalf 
> Of digital paula
> Sent: Monday, November 18, 2013 1:37 PM
> To: [email protected]<mailto:[email protected]>
> Subject: RE: Dictionary and Assertion rules for the Aggregate Plaintext 
> Processor
>
> Oh, gosh....I meant 'Hello' again.
>
> ________________________________________
> From: [email protected]<mailto:[email protected]>
> To: [email protected]<mailto:[email protected]>
> Subject: Dictionary and Assertion rules for the Aggregate Plaintext Processor
> Date: Mon, 18 Nov 2013 14:36:13 -0500
> Hell again cTakes Community,
>
> I think this will be an easy question.     Okay I've decided to start simple 
> by first exploring the Aggregate Plaintext Processor without ULMS.   Since 
> it's not using ULMS, where  is the dictionary and the assertion rules being 
> defined?  Can these be modified easily?   For example,  I see that 'pain' and 
> 'aspirin' gets annotated in text or if text states 'family history'  this 
> will be noted as well.   Can someone enlighten me as to how cTakes generates 
> this and if it's easily customizable?
>
> Thanks.
>
> Regards,
> Paula

Reply via email to