Natural Language Processing, usually shortened as NLP, is a branch of artificial intelligence that deals with the interaction between computers and humans using the natural language. 

The ultimate objective of NLP is to read, decipher, understand, and make sense of the human language. Most NLP techniques rely on machine learning to deal with diverse languages and communicative situations.

A chatbot, equipped with NLP, must understand the user’s intentions, determine which response or action is appropriate, and produce a correct message in human language. Sometimes picking up meta-information, sometime analysing the user’s mood.