Chatbot

A chatbot is a software to simulate conversation using Natural Language Understanding (NLU) that is a part of Artificial Intelligence (AI). There are three main components of chatbot; Conversation / Dialog / Flow Manager, Natural Languange Understanding / Processing (NLU / NLP), and Content / Data.

Conversation / Dialog / Flow Manager

A basic component. It is a software to decide or manage responses to users based on what the user has said as input, to place the user in a specific conversation flow, and also depends on the circumstances the user has.

Natural Languange Understanding / Processing (NLU / NLP)

NLU and NLP are similar. NLU is a piece of software of AI to decide the intents and entities of the context or sentence. NLP is about how NLU works. It converts the unstructured data to structured data with a value of confidence (from zero to one) to the intents and entities.

Content / Data

The content or data is needed to train the NLU for deciding the intents and entities. The content is sentences of a lot of (sample) conversations as input and output.

Conclusion

A chatbot is a conversation software with NLP. Conversation software is a piece of software with multiple if-else and switch statements. The content is templates as actions or outputs, and data to train the NLU.

Tools

I built some chatbots from scratch, but I have some tools that I used and recommend:

References: