Natural Language Processing (NLP) is a subfield of artificial intelligence (AI) that is concerned with computers understanding text and speech and processing it to respond in a way that humans do. It involves training a system with data that the system is designed to process. In fact, even humans process natural language to understand what you say and respond. If someone does not understand your language, you may be unable to converse with them and the reason people understand a language is that they’ve learned it over the years. Similarly, chatbots are apps that understand what you’re saying and respond to you using NLP. They can converse with you if they understand your language, and the process of training the chatbot to understand your language and respond appropriately is called natural language processing.
How to train a chatbot?
A chatbot first needs to identify your intent. The intent is nothing but your intention behind asking a question and every question has an intent. For example, what is the weather like in Bangalore?
In this question, the intent is simple. The user wants to know about the weather. However, one can ask the same question in many ways:
- What’s the temperature in Bangalore?
- Is it hot in Bangalore?
- Is the weather in Bangalore good?
- Should I bring warm clothes to Bangalore?
All the above questions have the same intent of knowing about the weather. But the beauty of natural language is many questions can have the same meaning. The different ways of asking the same question are called ‘Utterances’. Now, the chatbot needs to learn different ways the user can ask the same question, and therefore, we train the chatbot with utterances. Any chatbot-building platform will offer you the option to create an intent and train utterances into it. Intent must be trained with a good number of utterances to improve the chatbot’s understanding. So, the first step in training your chatbot would be to create an intent and train it with utterances.
Once this is done, you may also need to create entities depending on the nature of the question you are expecting the users to ask. There are primarily 2 types of questions: Static and Dynamic.
A static question will have an absolute answer which will be a fact. If India was the only country in the world, the question- ‘Who is the prime minister?’ would be static because there would be only one Prime Minister.
However, the question ‘Who is the chief minister?’ is not static. The answer to this question would depend on the state I’m referring to and will change for each state. Such questions are dynamic and to answer dynamic questions, you will need to tell your chatbot about the dynamic element of the question, which is called ‘Entity’. Hence, the second step in training your chatbot would be to create an entity if the question is going to be dynamic.
Continuing with the first example of ‘What is the weather like in Bangalore?’. This is a dynamic question, where ‘what is the weather’ is an intent and ‘Bangalore’ is an entity.
After training the chatbot with intent and entity, it is all set to understand the user’s question. But how would it know the answer to that? It is simple! Chatbot-building platforms give you the option to add a response against each intent. Once an intent and its entity are identified, backend algorithms ‘fetch’ the response configured for that intent, and your chatbot would use that as an answer. So, the third and final step in training of your chatbot would be to add a response.
Now, you are all set to build a simple chatbot. Just open the chatbot building platform you want to use and start creating intents, entities, and add responses.
Although you can start with your journey of building a chatbot using Natural Language Processing, there is a lot more to it before you can advance to the next level. It is important to learn concepts like entity fulfilment, entity values, different types of responses, and best practices for training a chatbot, which we will talk about in the upcoming blogs.