Artificial Intelligence and Chatbots

I have been working through the MOOC How to Build Chatbots and Make Money on edX offered by IBM. In this course they give access to use IBM Watson Assistant  to create your own chatbot and try out.

The course asked to create a chatbot that can help an online florist to give suggestions about flowers suitable for various occasions (birthdays, anniversaries, valentines day etc.) for various recipients (mother, girl friend, teacher etc.) and to provide delivery information. However, I tried to use UCEM FAQs specifically the ones relating to “Studying with UCEM” and see how my chatbot, Nikki, will cope.

I picked the name Nikki for my chatbot because I wanted a name that is easy to remember as well as has relevance in more than one region.  Nikki, I thought  would have relevance in the Western world (shorten for Nichola, Nicole) as well as in the East (Nikita, Nikki).

In the first instance, for a chatbot to work you have to identify intent(s). In the course intent was defined as the goal or purpose of the user input. For example, I have named an intent #greetings to encompass “hello”, “hi”, “hey”, “good morning” and “good evening” type of user inputs intended as greetings.

Entities enable IBM Watson to identify details in the user’s input, which can then be used to provide a customised or differentiated responses to the user. For example “Which flowers for birthday?” and “what are best flowers for Valentine’s day?” both express an intention of getting a suggestion about flowers (#flower_suggestions we can name it), but the two questions will need different answers and this differentiation can be made using entities.  Entities have a name and values (a series of values and associated synonyms).

Dialogue defines how the chatbot will respond to the questions posed by the user. Dialogue is structured using the concept of nodes, which has a name, condition and one or more responses. You can have hierarchical nodes (parent nodes and child nodes) and ask user for more information to match conditions to continue with a meaningful dialogue.

In setting up Nikki, I only used intents as the questions and answers I have trained her were of very simple nature. However, I was impressed how good Nikki was in understanding natural language.

For example, I have trained Nikki to give information to student(s) about change of circumstances, something unexpected happening in your life that may affect your studies. These included being unwell, travelling for work etc. In a conversation with Nikki, one colleague typed in “I’m under the weather” and I wasn’t sure what Nikki would say.

Nikki responded to the question "I'm under the weather" correctly directing the user to change of circumstances procedure
Conversation with Nikki the chatbot

Nikki surprised us by correctly identifying the request and with the response to direct the user to change of circumstances procedure.

Another colleague informed Nikki “I am ill” again for which she directed them to the change of circumstances page. Then my colleague typed “death” at which point Nikki said

“Great talking to you. Have a good day.”

Nikki chatbot responds with goodbye to the user who typed death
Second conversation with Nikki the chatbot

If someone is dead they can’t communicate with you anymore so Nikki ended the conversation which was funny and clever. However, I have now taught her to be more empathetic and suggest the response as for change of personal circumstances as it is more likely to be a death in the family that they are talking about. Until I specifically introduce entities to capture different change of circumstances situations Nikki is directing them to the same change of circumstances answer.

I would highly recommend this course if you are looking to get yourself familiar with AI chatbots. It is fun, doesn’t take a long time and most of all it is free.