Natural Language Processing (NLP) is broadly concerned with the interactions between computers and natural (i.e., human) languages; more particularly, it is concerned with the question of how to program computers to process and analyse large amounts of natural language data. Following a review of the essential mathematical and linguistic concepts underlying natural language processing, you will develop skills in important natural language processing sub-tasks including accessing corpora, tokenisation, morphological analysis, word sense disambiguation, part-of speech tagging, and analysing sentence structure. You will then apply these skills in the context of applications such as text categorisation, text clustering, text recommendation, and information retrieval. Where appropriate, both lexical (i.e. dictionary-based) and machine learning approaches will be used.