This course focuses on the computational treatment of meaning in natural language. We will review perspectives on meaning based on truth and those based on use, and explore the issues which arise for computational systems of each, including representations and algorithms. Specific topics we will cover include the use of first-order logic and the lambda calculus in formal models, functors and applicative functors for semantic interpretation across different possible situations, monads and continuations for representing linguistic context, and statistical and machine learning methods for modeling the distributions of words. This is new.
Course Prerequisite(s)
COSI 10A or COSI 12b or equivalent (introductory-level programming or higher, does not have to be in Python or Java), and COSI 121b (functional programming, does not have to be in Scheme) or LING 130a (semantics), or permission of the instructor. If you do not meet the criteria listed above but are still interested in the course, you are encouraged to talk to us, to see if we can make the course work for you.
Learning Goals
Upon completion of the course, students will be able to:
- appreciate the different ways one can represent and compute meaning in natural language,
- implement these computational systems using tools from functional programming and machine learning,
- read, understand, and communicate effectively about contemporary work in computational semantics, and
- integrate the above knowledge and skills in the form of a final project.
Credit Hours
Success in this four-credit course is based on the expectation that students will spend a minimum of nine hours of study time per week in preparation for class (readings, assignments, etc.).
This is a course for advanced undergraduate students and first-year graduate students, which focuses on the computational treatment of core semantic phenomena in language. Topics covered will include a preliminary formal introduction including first-order logic, lambda calculus, and compositionality. Additionally, we will address these topics:
- Questions, including the semantics of questions, question-answer systems, dialogue and discourse, selection of variables, inference in language, summarization, entailment issues, and commonsense knowledge;
- Meaning Update and Revision, including pragmatics and updates;
- Generative Lexicon Theory;
- Computational Lexical Semantics, including VerbNet and FrameNet;
- Computational Event Theory;
- Discourse Representation Theory.
For each core topic, we will initially discuss the relevant facts and approaches from theoretical linguistics, and will then explore the issues which arise for a computational system, including representations and algorithms. Assignments for the course will be done in Haskell.
The lectures and material in this course will be coordinated and integrated with a course taught by Martha Palmer at University of Colorado Boulder, LING 7800/CSCI 7000.
Textbooks
There is one required text for this course. We will be using Jan van Eijck and Christina Unger’s book, Computational Semantics (2010). This book is available in the campus bookstore.
A programming reference for Haskell is Learn You a Haskell for Great Good!. The entire text is available online.
Grading Information
Your grade for this class is based on several problem sets, a project, and class participation. The breakdown is as follows:
Problem Sets (5-6) – 60%
Project – 30%
Class Participation – 10%
Late Policy: Problem sets and projects are due at 11:59pm on the due date unless otherwise stated. For each day your assignment is late, you will lose 5%. No extensions will be granted on the due date without a documented reason.