The very first chatbot, ELIZA, was developed 50 years ago at the Massachusetts Institute of Technology. It simulated a Rogerian psychotherapist, someone who just repeats the human user’s words back to the human; it is not very good. In the following decades, chatbots were mostly of academic interest. But in recent years, smartphone-based chatbots have gained wide interest from the industry with high profile products such as the Apple Siri, Amazon Echo, and China’s WeChat.
Now let’s look at some messaging platforms where you can build bots.
Slack is a group messaging platform for work-related teams. Slack is one the pioneers in the current wave of chatbot renaissance. Slack provides one of the first “bot stores” in the industry so that teams can discover and install bots easily.
Facebook Messenger is one of the most popular messaging platforms with more than 1 billion monthly active users. Within a few months of Facebook opening its bot platform to developers, over 23,000 developers were building bots. They have launched over 18,000 bots so far
Kik messenger is a popular messaging application with over 200 million monthly active users. A key feature of Kik is its anonymity.
Telegram is a relatively new messaging application. It was launched in 2013 and now has 100 million monthly active users. A key differentiator of Telegram is its advanced security and encryption features.
Skype is a messaging platform with over 300 million monthly active users. Besides text messaging, Skype’s traditional focus is on voice and video calls.
Twitter is a public messaging platform with approximately 300 million monthly active users. Bots have always been a part of Twitter as “non-human” users. By using the Twitter API, a bot can follow people and send out Tweets.
As a chatbot developer, it can feel overwhelming to develop and target so many messaging SDKs at the same time. Bot frameworks are software frameworks that abstract away much of the manual work that is involved in building chatbots.
However, although many bot frameworks boast “write once deploy anywhere,” you are more likely to create a separate chatbot for each of your target messaging platforms.
This is because one-size-fits-all solutions must conform to the lowest common denominator of all the bot platforms they support. That often creates a less optimal user experience, especially in the early days of the ecosystem when the native bot platforms themselves are fast evolving and constantly adding new features.
Furthermore, framework solutions are not great for beginners to learn about chatbot development. They try to automate too much and obscure the underlying mechanism for starters. They constrain you to the UI features they support, but their innovation is at least one step behind the native messaging platforms.
For effective learning, I propose an “open source lightweight framework” approach. It establishes a simple request- and response-based programming convention for all bots.
Four important types of AI services are related to natural language.
- Rule-based pattern recognition: Examples of this type include date, email, phone number, quantity, and trigger words.
- Natural language classifier: This AI service type is used to detect and classify intent of a user command.An example of this is the Watson Natural Language Classifier
- Rule-based conversation manager: Based on the user’s intent and data that is associated with the intent (called entities), such as location and time, the service can apply rules and generate scripted responses.
Speech recognition: Although many high-end smartphones today have speech recognition that is built right into their text input methods, third-party voice recognition is still important. IBM Watson provides a text-to-speech service and a speech-to-text service in seven international languages.