Natural language processing (NLP) is a subfield of linguistics, computer science, information engineering, and machine learning or artificial intelligence concerned with the interactions between computers and human (natural) languages, in particular how to program computers to process and analyze large amounts of natural language data.