Natural Language Processing

Information on the Natural Language Processing specialist area.

What will I learn from this specialist area?

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 the specialist 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.

More about Python


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 core semester 1 courses you should go through the material on Sharon Goldwater's maths preparation page, which covers important basics including probability theory.

Sharon Goldwater's maths preparation page

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.

Other preparation

The Semester 1 core 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.)

Read 'Speech and Language Processing' online

What courses should I take?

You should select at least fifty credit points from the courses listed below, including the core courses. We recommend you include a machine learning course amongst your selections if you have the appropriate mathematical background to do so.

The notes below provide a rough guide to the background required for each course, but please click through to check the "other requirements" in the descriptor of each course to be sure it is suitable for you.  


Semester 1 Semester 2
Core Courses (see notes below)

Accelerated Natural Language Processing (20 credits)

Computer Programming for Speech and Language Processing

Speech Processing

Natural Language Understanding, Generation, and Machine Translation (20 credits)

Main Optional Courses (see notes below)

Introductory Applied Machine Learning (20 credits)

Machine Learning and Pattern Recognition (20 credits)

Automatic Speech Recognition

Speech Synthesis

Machine Learning Practical (20 credits, full year)

Text Technologies for Data Science (20 credits, full year)

Further Optional Courses (see notes below)

Psycholinguistics (20 credits)


Language Production

Discourse Comprehension

Pragmatics (20 credits)

Sentence Comprehension

Notes on core courses

  • Accelerated Natural Language Processing is core for all students.
  • Computer Programming for Speech and Language Processing should be taken rather than another programming course, to fulfill the programming requirement (unless exempted by your Personal Tutor).
  • Speech Processing is core for students wishing to study both speech and text processing.

These courses assume little to no previous programming experience, and should be suitable for anyone admitted to the programme. However, you will find them much easier with a bit of preparation -- see "Preparation advice" above.

Notes on main optional courses

The Semester 1 optional courses all assume previous programming experience and more mathematical background than the core courses. If you have the appropriate background, it is recommended to include IAML or MLP in your course choices for this specialist area. MLPR is only suitable for students with especially strong mathematical background. You may wish to consult the Machine Learning specialist area page for more information about machine learning courses.

Machine Learning specialist area page

The Semester 2 optional courses are all designed to be suitable for students who have taken the core courses in semester 1.

Notes on further optional courses

These courses are in other schools.  Register as early as possible for them. They can have limited numbers, earlier deadlines than Informatics, and course materials on Learn are only available after registering.

The courses are taken from degrees in Language Sciences and Psychology and cover topics in statistics, speech processing, and psycholinguistics. Other courses in those departments may also be relevant. Some of these courses only run for half of the Semester (a single "teaching block").

More about Language Sciences

More about Psychology

These courses generally require little to no previous programming experience, but may assume previous background in linguistics or psychology.

Related links

Informatics sortable course list

Informatics course timetable