Using Powerful Machine Learning from IBM Watson to Empower Users to Self-Diagnose Common Ailments via SMS with Twilio.

Concept:

We set out to make a functional prototype of an SMS public health support application. Using the Twilio platform we created an SMS interface to an automated triage engine developed via IBM’s Watson machine learning APIs and IBM’s Bluemix cloud computing platform. IBM’s Watson machine learning APIs use classic Machine Learning and Artificial Intelligence, as well as proprietary algorithms. This prototype demonstrates the feasibility of using mobile messaging to help address public health concerns such as the Zika virus, flu, lead poisoning, and others.

This project was developed at The College of New Jersey’s Interactive Multimedia Department toward a junior year independent study.


Research:

Calm Computing

  • The goal of calm computing is to reduce the amount of attention needed by the user to use the product.
  • Distill information is a way that can be understood and calming to individuals of all abilities.

Problems with 911

  • This app could potentially relieve some of the strain on the current 911 systems.

Learning Decision Trees

  • Learning Decision Trees can represent any Boolean function. They are used to create a model of possible decisions and possible consequences. They can model a flowchart computationally. They are simple, flexible, and can be combined with other decision methods easily. They learn via information gain, which is the change in the entropy from a prior state.

IBM Bluemix

  • IBM Bluemix is a PaaS provider. Bluemix is used as it integrates with the Watson APIs nicely.

IBM Watson

  • A collection of APIs that provide natural language processing, vision, and data analytics.

Implementation:

This was implemented by first finding a simple flu flowchart to start out with. We picked this one https://www.crengland.com/content/managementservices/flu/flu-decision-tree.pdf. Using this flowchart, we modeled it in a finite state machine.

The SMS information from Twilio is sent to a Node.js server running on Bluemix. The Node.js server processes the request via Watson’s dialog service. The response is then sent to the phone via Twilio.


Demo:

  • Try it out! (856) 924–6200

Next Steps:

  • Expand diseases
  • Make session management more robust. Right now it simply tracks which state each phone number is in and is not time sensitive.
  • Investigate possibility of open sourcing the project
  • Consider implementation of Watson’s other Natural Language Processing services such as Alchemy Language, Natural Language Classifier, or Retrieve and Rank, rather than the naïve scripted conversations provided by the Dialog service. This will allow for less scripted conversations, and more natural and fluent input.

Special Thanks:

  • Prof. Mark Thompson