This document provides an overview of natural language processing (NLP) including:
1. An introduction to NLP and its intersection with computational linguistics, computer science, and statistics.
2. A discussion of common NLP problems like tokenization, tagging, parsing, and their rule-based and statistical approaches.
3. An explanation of machine learning techniques for NLP like language models, naive Bayes classifiers, and dependency parsing.
4. Steps for developing an NLP system including translating requirements, experimentation, and going to production.