Classify ICD-10 data with Watson  

Leverage Watson Natural Language Classifier to tag medical classification codes

Last updated | By Steve Martinelli, Scott D’Angelo

Description

This app was built to demonstrate IBM’s Watson™ Natural Language Classifier. It uses the Watson Python SDK to create the classifier, list classifiers, and classify the input text. We also make use of the freely available ICD-10 API, which, given an ICD-10 code, returns a name and description.

Overview

DISCLAIMER: This application is used for demonstrative and illustrative purposes only and does not constitute an offering that has gone through regulatory review. It is not intended to serve as a medical application. There is no representation as to the accuracy of the output of this application and it is presented without warranty.

ICD-10 is the 10th revision of the International Statistical Classification of Diseases and Related Health Problems. In short, it is a medical classification list by the World Health Organization (WHO) that contains codes for diseases, signs and symptoms, abnormal findings, complaints, social circumstances, and external causes of injury or diseases. Hospitals and insurance companies alike could save time and money by leveraging Watson to properly tag ICD-10 codes.

This application was built to demonstrate IBM’s Watson Natural Language Classifier. The data set we will use, ICD-10-GT-AA.csv, contains a subset of ICD-10 entries. When you have completed this pattern, you will understand how to:

  • Create a Natural Language Classifier service and use it in a Python application.
  • Train a Natural Language Classifier model using CSV data.
  • Deploy a web app with Flask to allow the model to be queried.
  • Quickly get a classification of a disease or health issue using the trained model.

Flow

  1. CSV files are sent to the Natural Language Classifier service to train the model.
  2. The user interacts with the app UI running locally or in the cloud.
  3. The application sends the user’s input to the Natural Language Classifier model to be classified.
  4. The information containing the classification is returned to the web app.

Related Blogs

Learn how to create a Python web app that uses Watson Natural Language Classifier

Natural language classification (NLC) is related to the field of natural language processing (NLP), and other related technologies include natural language understanding (NLU) and natural language generation (NLG). IBM Watson™ provides a cloud-based service aptly called Watson Natural Language Classifier, which allows a developer to create classifiers for text, and using cognitive computing techniques, it...

Continue reading Learn how to create a Python web app that uses Watson Natural Language Classifier

Jax 2018 – Just An Awesome Experience

What a week! From 23rd to 27th April our Berlin team attended the Jax conference in Mainz, Germany. We had such a great time sharing our fresh perspectives, in the form of a rousing keynote and two informative sessions. The concept of this annual event with over 2,000 participants, revolves around innovating with Java, architecture,...

Continue reading Jax 2018 – Just An Awesome Experience

CloudNativeCon and KubeCon are coming to Copenhagen!

With May just around the corner, mark your calendars for an exciting event, CloudNativeCon/KubeCon, in Denmark’s capital city of Copenhagen. Many of us in the Cloud Native community already visited this beautiful city for DockerCon EU last year and we’re excited to be able to take in all of the wonderful sites again this year....

Continue reading CloudNativeCon and KubeCon are coming to Copenhagen!

Related Links

Watson Python SDK

Check out the client library to use the IBM Watson services in Python.

Ryan Anderson’s original work

Read International Statistical Classification of Diseases and Related Health Problems – Ground Truth and Experimental R Code for NLC.

ICD-10 API

Learn more about the ICD-10 API, a lightweight web service that validates ICD-10 coding.

Tutorial

Walk through the steps for creating the service, downloading a dataset, creating a classifier, and attempting to classify a few strings of natural language text.