A lot of chat bots focus on answering the users question. Which is great, but it still can make it feel a little bit clinical. You can mitigate this by defining the personality, tone and positioning of the system.
But there are nuances of conversation that can make it feel more human when talking to it.
Take this example:
The user got an answer, but they were not really asking a question. They were just telling the system something about themselves. People can do this sometimes to initiate a conversation and make a connection.
Now to give it more of a human touch you might want the chat bot to acknowledge the statement before giving the answer.
First let’s understand what is a question. The question mark is the most obvious, but is not always the case. For this example, we will use some sample phrases that denote a possible question, and put them in an entity called @Question.
You may be wondering is that I haven’t met every criteria to determine if it’s a question. Well you can add your own. 😉 But really worst case scenario, you should err on the side of answering an utterance as a question.
You can also improve question detection by building contextual entities from your intents.
Once you have this done, you can start on the dialog.
(1) Create a folder that looks for the absence of a question entity using !@Question.
(2) For statements you are interested in, you can just look for the same intent. We acknowledge the statement, then continue on to find the answer.
Important! Always be data driven. What I mean is don’t just create statements for every single intent. Just do the ones that are exhibited by your end users, or have a meaning.
(3) It’s not possible to jump to a folder. So the first instinct is to jump to the first dialog node in the folder. This can actually cause problems if you add new intents at the top of the tree. So this dummy node is to force the flow into the next folder naturally.
When we run it this time we get the following:
… And there you have it. Very simple, but will add a more natural feeling. It can also make the user surprised (in a good way) when a chat bot goes slightly off script.
I’ve included a sample workspace you can play with.