G22.2590  Natural Language Processing

Spring 1998 -- Prof. Grishman

This course addresses the problems of analyzing and generating natural language, such as English.  While there has been research on natural language processing since the beginning of the computer era, two recent developments have made this area increasingly important:

This course looks at the question of how we can take advantage of the structure of natural languages to create programs to search text for particular types of information, to respond to natural language commands, and to translate text from one language to another.  It examines several levels of structure, including syntactic structure, semantic structure, and discourse structure.  It considers how knowledge of language structure can be encoded by hand, and also how knowledge can be learned automatically from text.


The course requires small weekly written assignments, some assignments using existing natural language analysis tools, and a term project.  The term project normally involves extending or creating a language analysis tool, although research papers are also possible.


In addition to a solid knowledge of data structures, some familiarity with formal languages (regular and context-free languages) and logic (propositional and predicate calculus) is helpful, although these topics will be briefly reviewed in the course.  Some of the tools which will be provided will be in Common Lisp, so some knowledge of Lisp will be helpful to understand and use these tools.


Computational Linguistics, An Introduction.  Ralph Grishman.  Cambridge University Press.

For further information, send mail to grishman@cs