We just created a very basic chatbot which can understand the user's query and then respond to the customer accordingly. But it is not yet capable of understanding the context because it can not extract information like the product name or places or any other entities.
To build a bot which understands the context (intent) and can also extract the entities, we need an NLP pipeline which can perform intent classification along with NER extraction and then provide an accurate response.
And to do that we will use the open source project called RASA NLU (https://github.com/RasaHQ/rasa_nlu).
Rasa NLU is a Natural Language Understanding tool for understanding the text what is being said in short pieces of text. For example, taking a short message like:
"I'm looking for an Italian restaurant in the center of town"
Then system returns:
intent: search_restaurant
entities:
- cuisine : Italian
- location : center of town
So by harnessing the power of RASA, we can build a chatbot which can do intent classification and NER extraction.
Great, let's do it.