This document summarizes a lecture on natural language processing (NLP). It began with defining NLP as the technology that allows machines to understand, analyze, manipulate, and interpret human language. It then discussed the different layers of language from phonology to discourse. The lecture covered the main components of NLP, including natural language understanding and natural language generation. It also summarized several applications of NLP like machine translation, question answering, and sentiment analysis. Finally, the document outlined the typical phases of an NLP pipeline and discussed why NLP remains a difficult problem due to ambiguity and uncertainty in human language.