Human-bot interactions are more successful when bots are able to hide they are bots. There are many aspects that can help a bot look more like a human (beyond, passing the Turing test 🙂 ). Obviously, the first one is making sure that the bot (and the NLU engine behind it) has high accuracy when classifying the intentions of the human user.
But beyond training more (and better) the chatbot, there are two simpler ways to make sure the user has a more familiar sensation when dealing with a bot: randomness and delays. Think about it. When you talk with another person, does that person always answers the same way? and do they do it immediately or there is a short delay in the response while the person considers what to reply?.
Most chatbots offer fixed answers at such a high response turnaround that to a human, it’s obvious they are bots. And the point is not really to trick the user to think there is another person on the other end (this requires a more ethical consideration and it can be even illegal) but to create a conversational environment that feels more natural and comfortable and facilitates the interaction between the two.
We have plenty of examples of such kind of adaptation in other domains. Indeed, any new revolutionary technology requires some adaptation time until we become familiar with it and integrate it into our daily lives. Even if this implies making the technology worse (or “fake” it is worse). A few examples:
- Electric vehicles integrate fake engine sounds to make them safer as we’re not used to silent cars. So many times I’ve crossed a street without actually looking both ways but just relying on the fact there was no engine sound alerting me of a coming car.
- Confort noise is added to voice or radio communications to fill the silence. When digital communications started to become widespread, telecommunication companies quickly realized that a perfect silense was often interpreted as a sign of the communication being lost.
- Chess and other strategy games introduced randomness in their movements when several playing options had a similar value. Also, the computer does not always assume the human will do a perfect choice on his end.
Let’s now see how we can introduce randomness and delays in our chatbot experience with the help of Xatkit. As the examples above, this may sound counterintuitive (why would you like to force when so many of our efforts are aimed towards improving the performance of any aspect of your life?) but your users will appreciate it.
Randomness in a chatbot conversation
Adding randomness is as easy as writing a switch that chooses a reply for the same intent depending on the value of a randomly generated value. As a very simple example, let’s assume that we want to greet the user in a different way every time she starts a conversation. We would write something like this:
where we basically assign a 25% chance to each reply to make our bot look less “robotic”.
Delays in a chatbot reply
This is even easier to implement with Xatkit as the platform offers a global configuration parameter you can set to introduce an artificial delay:
xatkit.message.delay = 500 will introduce a half a second delay (value is in milliseconds) to all bot replies.
By the way, these new features will be part of the next Xatkit release, so make sure you watch/star our release repository to get notified as soon as it’s out (hint: it will be very very soon!).
And, of course, there are other ways to keep moving towards this goal of human-like chatbots. Another one in our agenda is to introduce sentiment analysis to adapt the tone of the chatbot response to the emotional state of the user. Make sure you subscribe to our newsletter so that we can keep you posted on our new developments in this area!.