Showing posts with label cTAKES. Show all posts
Showing posts with label cTAKES. Show all posts

Wednesday, December 5, 2012

ytex-Clinical NLP, Semantic Similarity, Data Mining


Project Information
 Starred by 14 users
 Members
Featured
 Downloads
 Wiki pages
Links

Introduction

YTEX is:
  • Clinical NLP: A robust, general-purpose clinical natural language processing system based on the Clinical Text Analysis and Knowledge Extraction System (cTAKES). We also provide extensions to MetaMap, and an integration of MetaMap with cTAKES.
  • Semantic Similarity: YTEX provides a framework for computing the similarity between pairs of concepts; this is integrated with clinical NLP, Data Mining, and Feature Engineering tools.
  • Data Mining: YTEX provides tools to export UIMA annotations to machine learning packages, including Weka, R, Matlab, SAS, Libsvm, SVMLight, and others.
  • Feature Engineering: YTEX provides tools that utilize the taxonomical structure of the Unified Medical Language System (UMLS) to improve feature ranking. YTEX implements semantic kernels to integrate semantic similarity measures with machine learning algorithms for document classification.

Clinical NLP

In addition to cTAKES' rich feature set YTEX provides the following:
  • Store annotations in a relational database: This allows you to view and extract annotations easily using the structured query language.
  • Export annotations to data mining toolkits: YTEX provides tools to declaratively export annotations to WEKA, R, Matlab, and other toolkits/platforms.
  • Semantic Search Engine: A web service that enables users to find documents based on contained concepts and their negation status.
  • Negation Detection: YTEX uses Negex for negation detection.
  • Sectionizer: YTEX identifies document sections using configurable regular expressions.
  • Named Entity Recognition: In addition to a dictionary lookup algorithm, YTEX identifies named entities using configurable regular expressions.
  • Word Sense Disambiguation (WSD): Named entities may be ambiguous and can be assigned multiple concepts. We've implemented a WSD Annotator that utilizes semantic similarity measures to identify the best concept for a word.
For a high-level overview, refer to our paper: Garla, V. et al. The Yale cTAKES extensions for document classification: architecture and application. Journal of the American Medical Informatics Association (2011). doi:10.1136/amiajnl-2011-000093

Semantic Similarity

YTEX provides a generalizable framework for the computation of semantic similarity measures from any domain ontology; we have tested SNOMED-CT, MeSH, and the UMLS Metathesaurus, and provides programmatic, command line, and a RESTful and XML web services interfaces to users to compute similarity measures. We provide a publicly available web service to compute semantic similarity measures:http://informatics.med.yale.edu/ytex.web/.
For a high-level overview of the semantic similarity methods we've implemented, refer to our paper: Garla, V and Brandt, C. Semantic similarity in the biomedical domain: an evaluation across ontologies and application to word sense disambiguation (submitted).

Data Mining Integration

Data mining tools and statistics packages can access document annotations directly from the database. To support machine learning approaches, YTEX provides tools to extract document features in a bag-of-words representation for use with various data-mining platforms.

Feature Engineering

For a high-level overview of the feature engineering methods we've developed, refer to our paper: Garla, V and Brandt, C. Ontology-Guided Feature Engineering for Clinical Text Classification (2012) http://dx.doi.org/10.1016/j.jbi.2012.04.010.
We developed novel information-theoretic techniques that utilize the taxonomical structure of the Unified Medical Language System (UMLS) to improve feature ranking, and we developed a semantic similarity measure that projects clinical text into a feature space that improves classification. We improved the performance of the top-ranked machine learning-based system from the I2B2 2008 challenge with these methods.
These feature engineering tools are included in YTEX. We illustrate their usage on the I2B2 2008 Challenge dataset; refer toFeature Engineering for a detailed explanation on how to apply these tools.

Semantic Seach

To simplify document retrieval, YTEX includes a semantic search engine, implemented as a web service. This search engine enables document retrieval based on UMLS Concepts and their negation status, patient id, document date, and document type. Try our demo search app: http://informatics.med.yale.edu/ytex.web/semanticSearch.iface
Find UMLS Concepts: 
Search Results: 

Text Processing

Negation Detection with Negex

YTEX provides the NegexAnnotator, a drop-in replacement for the cTAKES Negation Detection Annotation algorithm. This annotator is based on the Negex source from the Java GeneralNegex package. Advantages over the cTAKES algorithm include:
  • long-range negation
  • configurable pre- and post- negation triggers

SegmentRegexAnnotator

To identify document sections in flat files, YTEX includes an annotator that identifies section headings and boundaries based on regular expressions. This relies on a configurable table of regular expressions and segment ids.

NamedEntityRegexAnnotator

The DictionaryLookup algorithm of cTAKES relies on a lookup table that contains the lexical variants of a named entity. Some concepts have far too many lexical variants to be captured in a lookup table. To address this issue, YTEX includes an annotator that uses regular expressions to identify named entities.

DBConsumer

YTEX tools stores document annotations in a relational database, thereby simplifying document feature extraction: annotations can be retrieved using the structured query language (SQL).
UIMA annotations are limited in complexity and obey a strict class hierarchy. These restrictions on the structure of UIMA annotations facilitate a high-fidelity relational representation. YTEX currently supports MS SQL Server, Oracle, and MySQL.

DBAnnotationViewer

YTEX includes a modified UIMA AnnotationViewer to view document annotations directly from the database. In addition to the relational representation; the DBConsumer stores the XML representation of the UIMA CAS of each document in the database. The DBAnnotationViewer simply retrieves the XML CAS for viewing.

cTAKES GUI


source: 
This is the home of the Related Project - NLP cTAKES Project space.
News: cTAKES is now incubating as an Apache Software Foundation Project!

There is a wealth of information within the plain text clinical narrative.  The purpose of this cell is to harness the unstructured information by allowing i2b2 users to query and join that information with existing i2b2 concepts.  Currently, the entire note is commonly stored as a single row in the observation_blob field in the observation_fact table in i2b2.  One of NLP cTAKES’ features is its capability to ‘read’ through and extract concepts from plain text notes and transform them into structured and normalized information.  The purpose of this cell is to incorporate cTAKES and i2b2 by formatting the output of cTAKES into the i2b2 observation_fact table format (facts, concepts, modifiers, and values) which can then be easily queried by existing i2b2 interfaces.
There will be 2 main components:

  • An administrative tool (cTAKES GUI) that will allow users to specify the input DataSource of the note(s), the output of the notes(s), and the NLP pipeline to be used.  The cTAKES GUI will be designed to be a web interface in a self contained package using Jetty- just run startup.sh or startup.bat. (However, it can also be packaged a war file to be easily deployed to other standard servlet containers such as Tomcat).  The configuration information will be stored and could be reused for future experiments.  The output in this case will be specially formatted in the observation_fact format. 
 
  • An interface for users to query the extracted data.  We plan to reuse the existing i2b2 web client tool by adding an ‘NLP’ ontology which contains all of the concepts that could be used to filter and joined with other ontologies such as demographics or codified data. 

Documentation

Quick Start Guide:
In addition to deploying the cTAKES GUI as a war file to a managed servlet container such as JBoss or Tomcat, cTAKES provides a standalone web server version running Jetty out of the box.
  1. Java JDK (not JRE) 1.6+ is required.  Feel free to download and install the Java JDK from:http://www.oracle.com/technetwork/java/javase/downloads/index.html
  2. Download the cTAKES GUI code (currently in beta) from https://ohnlp.svn.sourceforge.net/svnroot/ohnlp/branches/cTAKES-GUI-0.0.1/ctakes-gui-0.0.1.zip
  3. Unzip the contents to a local directory
  4. If required, modify the startup.bat or startup.sh with the path to your JAVA_HOME environment variable.  Also available as an environment variable is the JETTY_PORT (defaults to 9998).
  5. Open a command line window/terminal and execute startup.sh or startup.bat
  6. Wait for the message "Jetty running on http://localhost:9998/index.jsp"
  7. Open your favorite web browser and point the url to: http://localhost:9998/index.jsp
  8. cTAKES GUI Quick Reference Guide.pdf


Open Health Natural Language Processing (OHNLP) Consortium

source: https://wiki.nci.nih.gov/display/VKC/Open+Health+Natural+Language+Processing+(OHNLP)+Consortium



Skip to end of metadata
Go to start of metadata

Open Health Natural Language Processing (OHNLP) Consortium

What is the Goal of NLP?

The goal of the Open Health Natural Language Processing Consortium is to establish an open source consortium to promote past and current development efforts and to encourage participation in advancing future efforts. The purpose of this consortium is to facilitate and encourage new annotator and pipeline development, exchange insights and collaborate on novel biomedical natural language processing systems and develop gold-standard corpora for development and testing. The Consortium promotes the open source UIMA framework and SDK as the basis for biomedical NLP systems. Applications created within UIMA consist of software components (referred to as annotators) and their associated configuration files and external resources. Within the framework, one can also create complete pipelines composed of a sequence of annotators and the data flow between them.

Why use NLP?

The clinical and research medical community creates, manages and uses a wide variety of semi-structured and unstructured textual documents. To perform research, to improve standards of care and to evaluate treatment outcomes easily — and ideally, in an automated fashion — access to the content of these documents is required. The knowledge contained in unstructured textual documents (e.g., pathology reports, clinical notes), is critical to achieving all of these goals. For instance, clinical research usually requires the identification of cohorts that follow precisely defined patient- and disease-related inclusion and exclusion parameters. Biomedical NLP systems extract structured information from textual reports, facilitating searching, comparing and summarization.

What is NLP?

Natural language processing (NLP) is a field of computer science and linguistics concerned with the interactions between computers and human (natural) languages. Natural language generation systems convert information from computer databases into readable human language. Natural language understanding systems convert samples of human language into more formal representations such as parse trees or first order logic that are easier for computer programs to manipulate.
NLP is used to classify, extract, encode and summarize from text documents. An NLP application will unlock the text to be used for decision support, outbreak detection and quality review.
NLP applications in the biomedical domain include:
  • mining of information from biomedical documents and publications
  • retrieval of information from large, unorganized collections
  • communication with clinicians, patients, and scientists through natural language
Examples of NLP tasks are:
  • classifying chief complaints into syndrome categories, for example the chief complaint of cough or SOB into the category of respiratory system
  • extracting a problem list from a history and physical examination of patient
  • determining change in a tumor size over a period of time (example of encoding)
  • summarizing pages of past clinical notes such as family history, chronic conditions, new complaints and test results
Use application examples of NLP include:
  • identifying unreported MRSA infections
  • extracting information on pacemaker implantation procedures
  • identifying family history diagnoses
  • generating a problem list
  • identifying adverse events
  • matching patients to clinical trials
There are two main approaches to NLP use application, the symbolic approach and the statistical approach.
Symbolic NLP includes:
  • Morphological Knowledge (how words are created)
  • Lexical Knowledge (string matching)
  • Syntactic Knowledge (how words can be combine to form sentences)
  • Semantic Knowledge (what words mean)
  • Pragmatic Knowledge (how sentences are used in different situations)
  • Discourse Knowledge (how the preceding sentences affect interpretation of next sentences)
Statistical NLP includes:
  • Modeling document content as bag-of-words (if “cough” appears > fluid)
  • Modeling probabilistic relationships among words and phrases (“purulent discharge” > fluid; “upon discharge > release)
  • Modeling probabilistic relationships between words and concepts (caries, cavity, abrasion > caries)

Where do I find out more?

cTAKES Overview

https://wiki.nci.nih.gov/download/attachments/63996717/CTAKES_overview.ppt?version=1&modificationDate=1320409954000