Read this book to learn about the principles of human language and the latest computational methods for processing it. Readers with knowledge of computing will be able to understand what natural language processing (NLP) is, where it is useful, and how they can deploy it using modern software tools. The book covers the core topics of modern NLP, including an overview of the syntax and semantics of English, benchmark tasks for computational language modelling, and higher level tasks and applications that analyze or generate language. It takes the perspective of a computer scientist. The primary themes are abstraction, data, algorithms, applications, and impacts. The book also presents history and trends that are important for understanding why things have been done the way that they have.