As humans we are adept in understanding the meaning of texts and conversations. We can also perform tasks such as summarize a set of documents to focus on key information, answer questions based on a text, and when bilingual, translate a text from one language into fluent text in another language. Natural Language Engineering (NLE) aims to create computer programs that perform language tasks with similar proficiency.

This course provides a strong foundation to understand the fundamental problems in NLE and also equips students with the practical skills to build small-scale NLE systems. Students are introduced to three core ideas of NLE: a) gaining an understanding the core elements of language--- the structure and grammar of words, sentences and full documents, and how NLE problems are related to defining and learning such structures, b) identify the computational complexity that naturally exists in language tasks and the unique problems that humans easily solve but are incredibly hard for computers to do, and c) gain expertise in developing intelligent computing techniques which can overcome these challenges.

The aim of this module is to introduce key ideas and techniques used in the design and implementation of natural language engineering applications. We will primarily cover statistical methods, and will look at the use of such methods in applications.

Learning Outcomes

After completing this module, students will be expected to be able to:

1. Describe and formalize how language problems can be solved computationally.
2. Understand and implement techniques for language modelling, speech tagging, and syntactic parsing.
3. Understand and implement techniques for computational semantics and discourse processing.
4. Understand, implement and use algorithms such as Viterbi decoding, and basic supervised classification.
5. Understand how NLE techniques can be used to design and implement applications such as text summarization, sentiment analysis and writing quality prediction.


Outline Syllabus

Language models
Topic classification and topic modeling
Part-of-speech tagging
Sentiment analysis and text classification
Lexical semantics 
NLE applications such as text summarization, and identifying writing quality