Natural language processing (NLP) is a field of computer science, artificial intelligence and computational linguistics concerned with the interactions between computers and human (natural) languages, and, in particular, concerned with programming computers to fruitfully process large natural language corpora. Challenges in natural language processing frequently involve speech recognition, natural language understanding, natural language generation, connecting language and machine perception, dialog systems, or some combination thereof.
NLP techniques include Tokenization, Acronym normalization and tagging, Lemmatization/Stemming, Decompounding, Entity extraction, Regex extraction, Dictionary extraction, Complex pattern-based extraction, Statistical extraction, Phrase extraction, Part of speech tagging, Statistical phrase extraction, etc.