This document discusses natural language processing (NLP) and how computers can be programmed to understand and communicate with humans using natural human languages like humans do. It covers how humans communicate with each other using languages and how computer systems try to replicate this ability. It then describes some common applications of NLP like speech recognition, sentiment analysis, machine translation and chatbots. It also discusses two key aspects of NLP - natural language understanding (NLU) which involves understanding what users say and their intent, and natural language generation (NLG) which is about generating intelligent conversational responses for users.