Recent announcements of a bot framework for Skype from Microsoft and Messaging Platform for Messenger from Facebook just heated up the space around chat as a new platform that goes after mobile apps. More and more developers are coming up with an idea to make their own bot for Slack, Telegram, Skype, Kik, Messenger and, probably, several other platforms that might pop up in the next couple of months.
Thus, we have a rising interest in the yet to be explored field of making smart bots with AI capabilities and conversational human-computer interaction as the main paradigm.
In order to build a good conversational interface we need to look beyond a simple search by a substring or regular expressions that we usually use while dealing with strings.
The task of understanding spoken language and free text conversation in plain English is not as straightforward as might seem from the first look.
Below we look at possible dialogue structure, how to understand the concepts behind advanced natural language processing tools, and look into details on the platforms that we can use for our bots today through the API – LUIS from Microsoft, Wit.ai from Facebook, Api.ai from Assistant team, Watson from IBM and Alexa Skill Set from Amazon.
A Dialogue Example
Let’s look at the ways we can ask a system to find ‘asian food near me.’ The variety of search phrases and utterances could look similar to this:
- Asian food near me please
- Food delivery place not far from here
- Thai restaurants in my neighborhood
- Indian restaurant nearby
- Sushi express places please
- Places with asian cuisine
But if we are curious enough we can also ask Google Keyword Planner for other related ideas and extend our list by about 800 phrases related to the search term “asian food near me”. We use Keyword Planner for such tasks here because it is a great source of aggregated searches that users regularly do in Google.
Google Keywords ideas to for extending the bot dictionary
Of course, not all of this is directly related to the original search intent, asian food near me. But given the results we see, they are still highly relevant to the service that we want to provide to the users; let’s say, for example, a curated list of Asian Food places.
So therefore we can try to steer the conversation towards the desired ‘asian food’ topic with the help of questions and suggestions from the bot.
Consider the next dialogue examples and a way to direct the conversation:
Examples of dialogues with a conversational bot
From the example above we can see how broad the variations of utterances can be that user can use for the intent to find food.
Also notice how users can say ‘Yes‘ and ‘No‘ during the dialogue for confirmation or decline of the suggested option.
Yes/No answers variations
As we just saw, we need some way to understand the language and conversational phrases that are more sophisticated than just a simple text search by phrase or even regular expressions.