Carl Sable

Professor of Computer Engineering

ECE 467: Natural Language Processing

Catalog Data:

This course focuses on computational applications involving the processing of written or spoken human languages. Content may vary from year to year. Theoretical subtopics will likely include word statistics, formal and natural language grammars, computational linguistics, hidden Markov models, and various machine learning methods. Applications covered will likely include information retrieval, information extraction, text categorization, question answering, summarization, machine translation and speech recognition. Course work includes programming projects and tests.


  1. Course Introduction.
  2. Regular Expressions, Finite-State Automata, and Transducers.
  3. Morphology.
  4. N-grams.
  5. Part-of-speech tagging.
  6. Information Retrieval and Text Categorization.
  7. Question Answering and Summarization.
  8. Natural Language Grammars.
  9. Parsing.
  10. Probablistic Parsing.
  11. Semantics.
  12. Lexical Semantics.
  13. Information Extraction.
  14. Word Embeddings.
  15. Recurrent Neural Networks and Machine Translation.

Course Outcomes:

  1. Knowledge of various subtopics of natural language processing, some in depth.
  2. Familiarity with many important NLP algorithms and methodologies.
  3. Experience developing two large NLP projects.

Assessment Methods:

The two large programming projects test in-depth understanding of two or more important NLP algorithms. A final exam is used to evaluate various levels of knowledge of other NLP topics.