IBM Watson as a ChatBot Service

There are a number of chatbot frameworks with different levels of complexity, strategies and purpose. Watson is one cognitive technology that is developed to think like a real human being. It understands, reasons, learns and most importantly interacts. IBM’s Watson is probably one of the oldest and best questioning and answering systems developed so far.

Very many chatbots we interact with today are created with IBM Watson. Slackbot for instance, is developed on Watson platform. Thenorthface guides customers to the right product. Wine4.me app helps you find wine with the help of Watson chatbot technology. It can look through an inventory of products to match up with taste preferences. The CafeWell Concierge app allows users type in questions about diet, nutrition, and exercise. For example, you may ask which products you should use if you want to lose weight.

FRAMEWORK DESCRIPTION

This is how the IBM Watson framework works. Sentences the user inputs into the chatbot are being chunked and broken into separate message objects for Watson to interpret. Initially sentence parts are broken into separate message objects. The bot replies back what is streamed in one reply. The answer is saved for later usage.

The input is cleaned, normalized, parsed and analyzed. First the punctuation is burst, so that the sentence becomes raw. Later on, the sentence is broken into individual words and each word is tagged with the corresponding part of speech. Named entities, dates and numbers are also extracted from the input. Then the input is being checked on whether it is a question or not, as well as senses the message sentiment, whether the input is positive or negative.  All this is conducted with the support of libraries such as pos.js, Normalizer and Qtypes.

What is actually a Normalizer? It is a library that converts British and Canadian spelled words to US English, as well as opens abbreviations and contractions. The Normalizer fixes most misspelled words.

Once the input is normalized, Watson checks whether the input contains a question or not. This is conducted through a library called Qtypes. QTypes distinguishes between Choice or Alternative Question, the most common WH questions (Who, What, Where, etc.), Yes or No questions and Tag Questions.

Watson automatically parses numeric expressions, for example, 2+8=10. It automatically caches the previous answer, if it was an expression. It can also understand and manage roman numeral, binary and hexadecimal conversions. It has also got knowledge of so-called universal truths. Today it supports almost 610000 facts. For instance, if you ask “What color is the Black Sea?” It will answer “Blue”.

There are  a number of plugins elaborated for Watson to be customized for various scenarios. So based on your chatbot purpose you can integrate the needed plugin.

Pros

  • Analyzes data that is unstructured

  • Manages big quantities of data

  • Fills human limitations

  • May act as a a decision support system

  • Has a apparent competitive advantage

  • Continuously learns and Improves

  • Low price

Cons

  • Is available only in English, which limits areas of use

  • Doesn't process structured data in a direct manner

  • Takes time to teach watson to use it to its full potential

Though being one of the oldest frameworks, IBM Watson continually develops and is now one of the best customized tools for chatbots’ development. As compared to most other chatbot creation engines, it allows interacting not only through typing but also through voice conversations.

Watson has big potential to learn and be used for various purposes and in any business vertical.

If you want to understand how to use watson for creating your own chatbot, you have the possibility to sign into IBM Bluemix and get to know to Watson Technology by using its trial. The best thing about Watson Conversation Service is that one does not necessarily need to know coding or understand machine learning to create a chatbot. The easy-to-use interface allows everyone to train the system.

Watson uses various cognitive techniques to define intents and entities to craft a dialog like a real conversation. It can also be refined with other cognitive services to make a more humanlike interaction. Thus, with the help of such supplementary services Watson may find a good answer to a question even without being trained for that beforehand.

And the last but not the least opportunity Watson gives is the possibility to deploy a chatbot in any environment desired: in social media, on mobile and robots, into any website, Slack, SMS and so on and so forth.

Useful links:

NORMALIZER - https://github.com/silentrob/normalizer    

QTYPES - https://github.com/silentrob/qtypes   

CONCEPTNET INTERFACE - https://github.com/silentrob/conceptnet