Chatbots are computer programs that can interact with human users in conversations. They must be useful and usable. Although they merely realize the task for which they are designed, they can not be considered as intelligent chatbots.
This ability can be attributed to bots via artificial intelligence platforms. It is intelligence that makes complex conversation easy and effortless.
AI chatbots reside in users’ preferred environment (messaging applications), converse with users in natural language and understand what people want. That’s what science fiction has promised us for decades.
Machines Learning can help the chatbot to identify the intention of the message and to extract named entities. They are very powerful but require a lot of data to form the learning model. The evolution of natural language processing platforms has allowed chatbots to behave more humanly.
According to my humble experience around bots and how to provide them with a nature close to human, I will introduce some platforms of Natural Language Processing NLP.
Some NLP technologies that will make your robots intelligent:
Wit Ai is a natural language interface for applications that can transform sentences into structured data. It is a combination of Pattern Recognition and Machine Learning. Wit. was bought by Facebook in January 2015.
It is simple to use considering its refined tools. It allows to extract structured information from a message as well as the follow-up of the interactions between the users and the chatbot.
The Wit API allows HTTP GET calls to return the extracted meaning of a given sentence based on the examples learned by the application. The API returns JSON formatted responses.
Dialogflow is a natural language tool dedicated to designing unique conversation scenarios, degenerating corresponding actions and analyzing interactions with users.
Dialogflow provides a platform that allows developers to design and implement conversation interfaces that can be embedded in external applications like bots.
Functionally, Dialogflow includes activities such as speech recognition, execution and a robust set of management tools.
Dialogflow provides integration with several bot platforms and is particularly popular in the Slack community.
The Google Cloud Natural Language API reveals the structure and meaning of text by providing powerful models for automatic learning in an easy-to-use REST API. It offers features such as intentional entity detection, sentiment analysis, content classification and relationship graphs.
It can be used to extract information about people, places, events and much more, mentioned in textual documents, news articles or blog posts. It can be used to understand the feelings of users on social networks regarding a product or to analyze the intent of a conversation in an email application.
Here is an example of an analysis of the sentence: “Google, headquartered in Mountain View, unveiled the new Android phone at the Consumer Electronic Show.
In addition to the analysis of the entities contained in the sentence, in this case: PERSON, LOCATION, ORGANIZATION … One finds the analysis of the Feelings as well as the Syntax of the sentence.
LUIS: Language Understanding Intelligence Service from Microsoft
LUIS offers a fast and efficient way to add natural language processing to applications. Pre-existing, world-class, pre-built models from Bing and Cortana can be used whenever they suit the need — and when specialized models are needed, LUIS has a fast build process.
LUIS relies on Machine Learning and NLP from Microsoft Research and Bing, including Microsoft Research for Interactive Learning (PICL) platform. LUIS is part of a Microsoft Cognitive Services project.
It is in beta and free to use.
Watson Conversation combines a number of cognitive techniques to help developers build and train bots defining intentions and dialogue entities and crafts to simulate conversation. The system can then be refined with additional technologies to make the system more human-like or give it a greater chance of returning the correct answer. Watson Conversation Service is generally used in conjunction with other Watson NLP services such as Alchemy Language or Natural Language Classifier.
I looked at Wit.ai, Google NL and Api.ai. The Api.ai console is easier to use and seems to produce applications that learn much faster than the one on Wit.ai. Although this last bug when the scenarios get complicated with less learning, its strategies are strong and the interface is great.
Wit and LUIS do not have a good option to create synonyms for entities. This is a must if you need a good interpretation of natural language and dialogue.
The problem with Api.ai is that it tries to use only the existing sentence structures limiting true growth. Also filling the context for each intention is not ideal.
The Google NL documentation is not really clean but the result is always convincing. The only problem with Google NL is that we do not have the right to create our own entities. We are satisfied with what exists.
One of these platforms would surely meet your needs. You just have to identify the right one according to the use-case.