Apache cTAKES is a Natural Language Processing (NLP) platform for clinical text.

Clone this repo:
  1. 4a29abd Jdk 17 upgrades by Sean Finan · 5 days ago main
  2. 9a38025 Upgrade to jdk 17 source, target, release. by Sean Finan · 8 days ago
  3. 2a6abbc Upgrade to jdk 11 source, target, release. by Sean Finan · 12 days ago
  4. 3a62ac5 Simple readme and piper doc changes by Sean Finan · 2 weeks ago
  5. df3b453 Updating main branch to version 6.0.0-SNAPSHOT by Sean Finan · 5 weeks ago

Apache cTAKES™


The Apache™ clinical Text Analysis and Knowledge Extraction System (cTAKES™) focuses on extracting knowledge from clinical text through Natural Language Processing (NLP) techniques.

cTAKES is engineered in a modular fashion and employs leading-edge rule-based and machine learning methods.

cTAKES has standard features for biomedical text processing software, including the ability to extract concepts such as symptoms, procedures, diagnoses, medications and anatomy with attributes and standard codes.

More powerful components can perform tasks as complex as identifying temporal events, dates and times – resulting in placement of events in a patient timeline.

Components are trained on gold standards from the biomedical as well as the general domain. This affords usability across different types of clinical narrative (e.g. radiology reports, clinical notes, discharge summaries) in various institution formats as well as other types of health-related narrative (e.g. twitter feeds), using multiple data standards (e.g. Health Level 7 (HL7), Clinical Document Architecture (CDA), Fast Healthcare Interoperability Resources (FHIR), SNOMED-CT, RxNORM).

cTAKES is the NLP platform for many initiatives across the world covering a variety of research purposes and large datasets. Contributors include professionals at medical and commercial institutions, NLP and Machine Learning researchers, Medical Doctors, and students of many disciplines and levels. We encourage people from all backgrounds to get involved! (link)

Supported Environments

  1. Java 1.8 is required to run cTAKES. Run this command to check your Java version:
$ java -version
  1. Maven 3 is required to build cTAKES. Run this to command to check your Maven version:
$ mvn -version
  1. A license for the Unified Medical Language System (UMLS) is required to use the named entity recognition module (dictionary lookup) with the default dictionary.
  2. Python 3 is required to use cTAKES Python Bridge to Java (PBJ). Run this to command to check your Python version:
$ python -V

Getting Started

New Users

The easiest way for new users to get a jump start running cTAKES is to use the Standard Pipeline Installation Facility. The Standard Pipeline Installation Facility is a tool that can install cTAKES configured to run the most popular cTAKES pre-built pipelines. You can then use the Piper File Submitter GUI to submit jobs or submit them from the command line.

For access to all cTAKES capabilities, download a zip or tar.z file containing a fully-built installation of the most recent cTAKES release. Then, after obtaining a UMLS license, use the UMLS Package Fetcher GUI to install a copy of the default dictionary for Named Entity Recognition (NER) using cTAKES Fast Dictionary Lookup.

New Developers

Notice: cTAKES 6.0.0-SNAPSHOT requires jdk 17 to build and run.

All source code for cTAKES versions 5+ is available from the cTAKES GitHub repository.

  1. Clone this repository
$ git clone https://github.com/apache/ctakes.git
  1. Open your local copy of the repository in an IDE of your choice.
  2. Run directly from the code (link).
  3. Build a binary installation (link), and
  4. Run a binary installation (link).

More information

Much more information can be found on the cTAKES wiki.

You can also write to the cTAKES user and developer mailing lists: user at ctakes.apache.org and dev at apache.ctakes.org and find answers to previously asked questions by searching the user and developer mail archives.