These are instructions for installation of cTAKES 2.5 for developers. NOTE: For the latest version of cTAKES, see Apache cTAKES (incubating).
With these instructions you can set up your development environment with cTAKES code, change or extend the code, compile the code, and deploy. If you simply want to be a user of the software, refer to the cTAKES 2.5 User Install Instructions.
Knowledge about what the cTAKES components do is not supplied by the install instructions. This is found in the cTAKES 2.5 Component Use Guide. There is no training or documentation (except for code comments) on the code itself. You must familiarize yourself with the components and then study the code on your own to be able to extend it.
In order to modify the source code for a cTAKES component, developers must utilize either an IDE, such as Eclipse, or another editor of your choice. Compiles are then performed in the IDE or with Ant. Follow the appropriate sections here depending upon your developer preferences.
Once you have compiled the code you can process documents with the cTAKES components. The documents upon which you can run cTAKES will take many forms. An example of doing this is covered in the Processing Documents section.
1. All forms of development require the Java SDK 1.6+. You can get it from java.com.
on any command line to see what version you have now.
2. It is possible that some commands and programs can find the Java runtime that you want to be used but it is best to set the JAVA_HOME environment variable. Set the value of JAVA_HOME to the absolute path of the root of the Java Runtime environment that you want UIMA to use.
If you are going to use Eclipse for development then follow these instructions.
1. Download and install Eclipse if you don't already have it.
2. Find UIMA Eclipse plug-ins.
3. Install UIMA Eclipse plug-ins.
These install instructions depend upon the installation of these plug-ins.
Preparing Command Line Tools
If you are going to use command line only to compile then you will need these tools.
1. Navigate to the Ant download site on apache.org and install Ant 1.7.1+
2. Download Ant 1.7.1+. Unzip the file you downloaded to a local directory. We will call this <ANT_HOME> Follow the instructions for installing Ant on apache.org. This will include changing the PATH and ANT_HOME environment variables.
Compile the latest stable release in Eclipse
A tested and stable release is delivered as a ZIP file. The cTAKES source code is included in the file as well as UIMA.
1. Navigate to the source downloads for a released version on SourceForge.net
NOTE: For the latest version of cTAKES, see Apache cTAKES (incubating) and follow the install instructions there.
Even without the full LVG data, cTAKES is about 790 MB when compressed.
2. Download the latest version.
3. Unzip the file you downloaded into a directory that you want to be the cTAKES install location. It will expand to about 1.4GB.
4. Set UIMA_HOME. UIMA requires a special environment variable for its commands to run.
5. Edit PATH. This will be used for any command line access to binaries.
6. In Eclipse use File > New > Java Project ...
7. Remove unnecessary JAR files.
8. Add cTAKES folders as class resources.
9. Add JAR files from <cTAKES_HOME>/lib.
10. Close the User Libraries dialog.
11. If you have Eclipse set to build automatically it will do so and you may continue to run and debug from Eclipse.
Compile with commands only
The UIMA command to generate the type system through the command line (JCasGen) is not shipped with cTAKES at this time. The common type system has already been generated for you. If you need, for some reason, to generate this then you will need to use the method described for Eclipse or install the entire UIMA SDK.
1. Follow the first steps of the "Compile the latest stable release in Eclipse" (which do not require Eclipse) until you get to the part about creating a new project in Eclipse.
2. Obtain the relevant build.xml file from SVN, placing it into <cTAKES_HOME>
3. To compile cTAKES, change to the <cTAKES_HOME> directory and simply run:
Compile a development release from SVN in Eclipse
If you know what you are doing with the cTAKES code and you must get the latest code currently under development (potentially unstable), then you need to use an SVN connection to retrieve the code.
1. Install subversion or a suitable plug-in for your IDE.
2. Check-out the code to a local directory, such as:
This folder we will call <cTAKES_HOME>. You will need to refer to the directory later.
If you are checking out via Subclipse in Eclipse, make sure to check out each project separately.
3. In Eclipse use File > Import... > General > Existing Projects into Workspace
It may be necessary to import each project one by one!
4. Install UIMA 2.4. Make note of UIMA_HOME.
5. Add UIMA JARs to the build path configuration in Eclipse. Add all JARs from:
6. Generate the common type system.
Process documents using cTAKES
You can now launch or debug the cTAKES components that you have built. You could run commands from a command prompt, as found in the user install instructions, but you can launch them from within Eclipse now instead. Launching the CAS Visual Debugger (CVD) and the Collection processing engine (CPE) from Eclipse is as simple as following this step.
1. In Eclipse, launch the tools using their main program.
The cTAKES 2.5 Component Use Guide will help you to understand in great detail each of the cTAKES components that have been installed. In some cases you can learn how to improve the components. However, before you go on to process text in production you will need to consider dictionaries and models.
cTAKES includes the complete UMLS (SNOMED-CT and RxNorm) dictionaries.
- An rxnorm_index database (a Lucene index) containing drug names from RxNorm
- A UMLS database (using two hsqldb tables) containing anatomical sites, procedures, signs/symptoms, and disorders/diseases from SNOMED-CT (umls_ms_2011ab)
To use them, you must have a UMLS username and password, and an Internet connection.
If you do not have a UMLS username and password, you may request one at UMLS Terminology Services
In order to use the UMLS dictionaries shipped with cTAKES you will need to do two things:
(1) Change the UMLSUser and UMLSPW <nameValuePair> strings in these descriptor files with your UMLS username and password.
- Dictionary Lookup: <cTAKES_HOME>/cTAKESdesc/lookupdesc/analysis_engine/DictionaryLookupAnnotatorUMLS.xml
- (optional) Drug NER: <cTAKES_HOME>/cTAKESdesc/drugnerdesc/analysis_engine/DictionaryLookupAnnotatorUMLS.xml
The following shows where in the files you would make the changes. (Do not change the <configurationParameters> by the same name.)
(2) Include the DictionaryLookupAnnotatorUMLS.xml Analysis Engine within your aggregate Analysis Engine or switch to the ones provided by cTAKES. cTAKES has provided duplicates of shipped Analysis Engine descriptors, put UMLS in the name, and placed DictionaryLookupAnnotatorUMLS.xml within them for these components:
- Dictionary Lookup
- Clinical Documents pipeline
- Drug NER
- Side Effect
So you simply need to switch to using those descriptors. For example, if you were using AggregateCdaProcessor.xml in the Clinical Documents pipeline you would switch to using AggregateCdaUMLSProcessor.xml instead and you will now hook into the complete dictionaries.
You can, of course, modify your own aggregate Analysis Engine files and place the DictionaryLookupAnnotatorUMLS.xml Analysis Engine within them.
Since this is an in-memory database implementation, please be patient during the initial load as it could take approximately 20-30 seconds for the database to initialize.
If you would like to go back to using the small sample dictionaries that do not require a UMLS username, use the DictionaryLookupAnnotator.xml (UMLS is not in the file name) Analyis Engine descriptor in your aggregate. Just removing your password from the DictionaryLookupAnnotatorUMLS.xml files will not switch you back to the small sample dictionaries.
We have successfully tested the 2008 release of the full LVG data. In order to use this release of the full LVG data you should:
- Download either the full version or the lite version from NIH Lexical Tools
- Extract the TGZ file that you downloaded with a tool like 7-zip (available online) to a temporary directory. On some operating systems, like Windows, this may need to be done in two steps, 1) to uncompress and 2) to unzip.
- Replace the directory <cTAKES_HOME>/resources/lvgresources/lvg/data/HSqlDb with data/HSqlDb from your extracted download. Replacing the entire directory is appropriate.
- In the future, you can upgrade to later versions of LVG by editing the <cTAKES_HOME>/resources/lvgresources/lvg/data/config/lvg.properties file, replacing "lvg2008" with the name of the new release.
To install customized dictionaries for RxNorm, SNOMED-CT, or other vocabularies that are available through the UMLS, see the following posts on the cTAKES forums:
Some models included in cTAKES may not represent your data distribution well. If you want to build or train your own models, please read the cTAKES 2.5 Component Use Guide, particularly:
- Training a sentence detector model
- Training a Part of Speech (POS) tagger model (Building a model Obtaining training data)
- Creating a Part of Speech (POS) tag dictionary (Building a tag dictionary)
- Training a chunker model (Building a model - Prepare GENIA training data)
- Training a dependency parser (Dependency Parser)