This course is an introduction to Natural Language Processing (NLP) for students already proficient in programming and machine learning. The aim is to provide a solid background in theory and techniques used to accomplish different NLP tasks such as understanding and generating natural language. As NLP technologies are used by many people every day, and inform many other "AI" systems, special focus will be given to questions of ethics, equity, and the social impact of these technologies.
The course covers a mix of techniques, including rule-based, statistical, and machine learning methods for NLP. Since language data is at the core of many modern NLP techniques, the course will additionally cover assessment of data quality, as well as developing an understanding of complex issues of representation and data ownership.
Basic concepts and methodology from linguistics are introduced, including aspects of how language is constructed and used, and the importance of context. These are used to ground an understanding both of how effective solutions to NLP tasks are constructed, and the challenges of doing so for various languages.
Beyond this theoretical grounding, there will be practical exercises and assignments focusing on applying various techniques to address tasks within NLP. The coursework also includes actively participating in seminars and writing reports.