Natural Language Processing
Course options and guidance for the Natural Language Processing topic area.
What will I learn from courses in this topic?
Language technology (including both speech and text processing) plays an increasingly important role in everyday computer applications. Examples include machine translation, speech recognition, search and question-answering systems, sentiment analysis of text. Developing such systems requires understanding the properties of linguistic data as well as the computational methods used to process it.
The Natural Language Processing specialist area aims to provide students with the linguistic and computational knowledge and skills needed for entry into PhD programmes or employment focussed on research or development of language technology.
How can I best prepare for these courses?
If you haven't programmed in Python before, we recommend you start to learn it before you arrive. Find an online (or local college) tutorial at your level. The Computer Programming for Speech and Language Processing starts from scratch, but learning to program well takes time: starting early will help, and will leave you more time to devote to other aspects of the programme.
Depending on the courses you choose, the level of required mathematical knowledge can vary widely. Nevertheless, the most common refrain we hear from students is "I wish I had spent more time preparing for the maths I would need."
At a minimum, to prepare for the semester 1 courses you should go through the material on Sharon Goldwater's maths preparation page, which covers important basics including probability theory.
Other courses may require additional knowledge (especially of linear algebra); if you click on the course link below you should see these requirements listed in the "other requirements" box of the course descriptor.
The Semester 1 course Accelerated Natural Language Processing uses a textbook which is now mostly available online: Speech and Language Processing, 3rd Edition, by Jurafsky and Martin. Any reading you do from this text before you arrive will help you get started. (The 2nd edition is available from many libraries and can also be fine for preparation.)
What courses are available?
Edinburgh has strong programmes in both speech and text processing. You can take courses in one or both of these areas. Depending on your background and interests, you can also choose to supplement these with courses on human language processing.
We offer three courses focusing on text data:
- Accelerated Natural Language Processing (ANLP) (20 credits, Semester 1)
- Natural Language Understanding, Generation, and Machine Translation (NLU+) (20 credits, Semester 2)
- Text Technologies for Data Science (TTDS) (20 credits, full year)
ANLP and NLU+ form a two-semester sequence. You may not register for NLU+ without doing ANLP. The only exception is if you have taken a course elsewhere that covers the same topics as ANLP (which few students have). If you think you qualify for an exemption, first check the ANLP web page for the list of topics, then speak to the ANLP or NLU+ lecturer.
ANLP and NLU+ cover more linguistic content than TTDS and a broader range of topics. Their programming and maths requirements should be suitable for anyone on our degrees, but you will find them much easier with a bit of preparation -- see "Preparation advice" above.
TTDS focuses more closely on information retrieval. It assumes more programming and maths background than ANLP, with students doing more implementation.
Together with the School of Philosophy, Psychology, and Language Sciences (PPLS), we offer three courses focusing on speech data:
- Speech Processing(20 credits, Semester 1)
- Automatic Speech Recognition (10 credits, Semester 2)
- Speech Synthesis (10 credits, Semester 2)
Speech Processing is recommended as a prerequisite for the Semester 2 options. Its programming and maths requirements should be suitable for anyone on our degrees.
Human language processing
These courses are offered by the School of Philosophy, Psychology, and Language Sciences (PPLS), so it is a good idea to check with the course organiser to make sure you have the right background for them. Some courses in PPLS only run for half of the Semester (a single "teaching block").
Register as early as possible for these courses. They may have size quotas or earlier registration deadlines than Informatics, and course materials on Learn are only available after registering.
Semester 1 courses:
- Pragmatics (20 credits Semester 1)
Other courses in PPLS may be relevant for some students. You can browse their course catalogue to see.
NLP can be naturally combined with courses from some other topics. The most relevant ones are listed below.