How IBM Watson Assistant Is Correcting User Input For Chatbots

How IBM Watson Assistant Is Correcting User Input For Chatbots

And Why Auto Correction & Fuzzy Matching of Entities Don’t Clash


There are various methods and approaches to managing a conversation from a chatbot perspective. These can include:

  • Disambiguation
  • Digression
  • Fallback Prompts & Dialogs
  • Graphic Conversational Components
  • Forms / Slot Filling
Demo of IBM Watson Assistant Disambiguation

These elements have something in common…

All of these elements are employed as part of an active dialog exchange between the user and the chatbot. Hence it involves the user.

One element which can be implemented which does not require user involvement is detecting anomalies in user input and automatically correcting user input prior to issuing the input to the NLU.

In this story I am looking at autocorrection and fuzzy matching. And why the two do not clash…

Correcting User Input

One element the chatbot can use to manage and advance the conversation is by correcting user input without consultation. Obviously there is a fine line here; correcting user input with a relative level of confidence that the correct intent and entity will be targeted.

Two ways of correcting user input are:

  • Auto Correction
  • Fuzzy Matching

Auto Correction

Autocorrection, as we all know, corrects words misspelled when a user enters an utterance to the chatbot. Hence, when autocorrection is enabled, the misspelled words in the utterance are corrected on the fly; without user intervention or consultation.IBM Cloud DocsSupported Languages for

Autocorrection needs to be explicitly activated in your skill and secondly, it needs to be noted that this feature is only supported in certain languages.

Image for post
Activation of Autocorrection within an IBM Watson Assistant Skill

There might be instances where autocorrection is not desirable.

Image for post
Example utterance in the test pane with two spelling errors. Automatic correction is applied.

You will see from the example here, in the test pane, a sentence is entered with two spelling errors.

When the words from the input are misspelled, they are corrected automatically, and an “A” icon is displayed.

The corrected utterance is underlined and can be reviewed.

Below is a list of input types which is not corrected, to avoid overcorrection.

Also, words that belong in this skill, meaning words that have implied significance because they occur in entity values, entity synonyms, or intent user examples are also not corrected.

To avoid overcorrection, your assistant does not correct the spelling of the following types of input:

~ Capitalized words

~ Emojis

~ Location entities, such as states and street addresses

~ Numbers and units of measurement or time

~ Proper nouns, such as common first names or company names

~ Text within quotation marks

~ Words containing special characters, such as hyphens (-), asterisks (*), ampersands (&), or at signs (@), including those used in email addresses or URLs.

Because the the following sentence is an intent example for the #Cancel intent;

"intents": [
"intent": "Cancel",
"examples": [
"text": "can you please cacnel it"
"description": "Cancel the current request"

When entering the misspelled word “cacnel”, it is not corrected.

Fuzzy Matching

Fuzzy matching needs to be activated within individual entities. This increases the ability of Watson to recognize misspelled entity values.

Image for post
Activating fuzzy matching within the entity

Fuzzy matching within Watson Assistant uses a dictionary lookup approach to match a word from the user input to an existing entity value or synonym in the skill’s training data.

Fuzzy matching can be deactivated or activated on specific entities based on the likelihood that the chatbot’s performance will be enhanced by it.

Image for post
Example of fuzzy matching on the input “christmass daay”

In this example, the entity is @holiday with a few examples. Amongst which the utterance of christmas day exist.

So, for example, if the user enters christmass daay fuzzy matching picks up that the two utterances mean the same thing.

When fuzzy matching is toggled off for this entity; Watson will automatically retrain the model.

After training, if the same input is given, christmass daay. And no entity is detected.

It is advisable to test a sample of data and make small iterative changes. You will notice that the spelling is not corrected, yet correctly matched.

Can Both Be Used In A Skill?

The short answer, is yes…you can use both.

But two things need to be noted.


If autocorrection and fuzzy matching are both enabled, priority is given to fuzzy matching and thereafter autocorrection is actioned.


Fuzzy matching will be employed to identify the most appropriate entity, but the word or words are not corrected. I have found this true to some extend, if the word’s spelling is too far off; autocorrection kicks in.

Image for post
Left ~ Slight variations in spelling enforces fuzzy matching without autocorrection. Right ~ Bigger variations in spelling invokes fuzzy matching & autocorrection is employed.

Looking at the image here; on the left, a slight variations in spelling enforces fuzzy matching without autocorrection. However, on the right, bigger variations in spelling invokes fuzzy matching & autocorrection is employed.

When you see this, you might think there is inconsistencies in your chatbot. But, this is not the case. You can see this as each of the features playing their part in assisting the chatbot to understand the meaning of the user input.


When features are enabled within the skill or assistant, it is of essence to understand the ramifications within the conversational environment. Perceived inconsistencies can be introduced which in fact is just a lack of understanding regarding the features activated.

I always like to create a small prototype, and by means of iterative augmentation and testing, functionality can be enhanced. With a full understanding of each change’s impact.

Read More…

Cobus GreylingHi, I’m Cobus… Currently I conceptualize, mock-up, wire-frame, prototype and develop final products. Primarily…

Cobus Greyling – MediumRead writing from Cobus Greyling on Medium. NLP/NLU, Chatbots, Voice, Conversational UI/UX, CX Designer, Developer…

IBM Cloud DocsCorrect User

Watson Assistant | IBM CloudWatson Assistant is an AI assistant for business. It is the industry leading enterprise AI technology enabling business…

Leave a Reply

Your email address will not be published. Required fields are marked *