Chatbots
-
A chatbot is a conversational AI system that is able to communicate with a human in a natural language.
-
It can be integrated into websites, messaging platforms, and devices.
-
Companies can delegate routine tasks to a chatbot
- which will be able to process multiple user requests simultaneously
-
Chatbots are always available to assist the users and provide huge labor cost savings.
Two groups of chatbots
-
Rule Based
- Rely on predefined commands and templates.
- Each of these commands should be written by a chatbot developer using regular expressions and textual data analysis
-
Data-Driven
- Rely on machine learning (ML) models pre-trained on dialogue data.
Main parts of the chatbot
-
Natural Language Understanding (NLU)
- chatbot needs to understand utterances in a natural language
- NLU translates a user query from natural language into a labeled semantic representation.
- Example: The following in English:
What is the rental price in Boston?
- will be translated into:
rent_price("Boston")
-
Then chatbot has to decide what is expected of it
-
Dialogue Manager (DM)
- keeps track of the dialogue state and decides what should be answered to the user.
-
Natural Language Generator (NLG)
- translates a semantic representation back into human language
- Example:
rent_price_in_USD("Boston") = 2500
- will be translated to:
The average rent price in Boston is around $2,500
Let us build a chatbot
The smallest building block of the library is Component. Component stands for any kind of function in an NLP pipeline. It can be implemented as:
- a neural network
- a non-neural ML model
- a rule-based system. Besides that, Component can have a nested structure, i.e. Component can include other Components.
Components can be joined into Skill.
- Skill solves a larger NLP task compared to Component. However, in terms of implementation Skills are not different from Components.
Agent is supposed to be a multi-purpose dialogue system that comprises several Skills and can switch between them. It can be a dialogue system that contains a goal-oriented and chatbot skills and chooses which one to use for generating the answer depending on an user input.
openAI Chat
References
- Einstein
- Google Contact Center AI
- DEEPPAVLOV
- RASA