Think 2021: New tools have the developer ecosystem and IBM building together Learn more

Classify ICD-10 data with Watson


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.


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 the 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.



  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.


Find the detailed steps for this pattern in the README. Those steps will show you how to:

  1. Clone the project.
  2. Install the app’s dependencies.
  3. Copy the env.example file.
  4. Update the .env file with your NLC credentials.
  5. Run python
  6. Access the running app in a browser.