Chatbots
Chatbots are classified into two broad categories
- Goal oriented dialogs
- chitchats
Types of chatbots
- Exact answer or FAQ bot
- Flow based bot
- Open-ended bot
A Pipeline for Building Dialog systems
Building Conversational bots with RASA
RASA is a Task oriented dialogue system. It is a framework that makes it easier to build custom chatbots
There are two mechanisms inside Rasa to drive conversational AI:
- NLU
- Dialog Policy
NLU
It accepts text and turn it into intents and entities. It can be rule based or based on neural networks.
Rule based
Using Regular Expressions. It Can’t handle things they haven’t seen before.It is more lightweight and require domain knowledge.
Neural Network Based
Transformer based model (DIET) that sorts text into intents and entities based on examples it’s been provided. It require more compute and training examples. It is good at handling thins they haven’t seen before.
Dialogue Policies
It predicts the next action to take. The next action is determinec by current intent and entire conversation so far.
It is again based on rules or neural networks.
Rule based
Rule based - Traditional method. Can’t handle digressions and are difficult to extend
Neural Network Based
Neural - Transformers (TED) picks the next best turn based on conversation so far and all the conversations it’s been trained on.
How to make conversations work
It works better with more high quality data. we have to manually Review and annotate the conversations. correct any errors made by the bot and add them to the training data, retrain and redeploy. This approach is called Conversation Driven Development.
Annotation Framework
Wrapper frameworks are available for Rasa, which eases the data annotation process to generate large-scale dialog datasets. Chatette
is such a framework