Syllabus
- Course Information
- Instructor Contact Information
- Course Mailing List
- Prerequisites
- Syllabus
- Text
- Exams and Assignments
- Philosophy and Goal
- Content Overview
- Course Requirements
- Deadline Policy
- Academic Dishonesty Policy
- Notice about students with disabilities
- Notice about missed work due to religious holy days
Course Information
Course Name: Natural Language Processing
Course Number: CS 378 / LIN 353N
Semester: Fall 2013
Time: Tues/Thurs 2:00-3:30
Room: ENS 145 UPDATED
Instructor Contact Information
Dan Garrette
office hours: Wed/Thurs 9:30-10:30, or by appointment
office hours location: GDC 1.302
office: GDC 3.504A
email: dhg@cs.utexas.edu
TA: Lewis Fishgold
office hours: Mon/Thurs 4:30-5:30
office hours location: GDC 1.302
email: lewfish@cs.utexas.edu
Course Mailing List
Please register for the course mailing list:
https://piazza.com/utexas/fall2013/cs388
Prerequisites
Proficiency in at least one programming language. Students should have taken LIN 350 (Words in a Haystack: Methods and Tools for Working with Corpora, Introduction to Computational Linguistics), or CS 310 and CS 315, or obtain consent from the instructor.
Syllabus
This website serves as the syllabus for this course.
A tentative schedule for the entire semester is posted on the schedule page. The planned schedule, readings, and assignments will be refined and updated as the course progresses.
Text
The official course text book:
- Daniel Jurafsky and James H. Martin. Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition, Second Edition, Upper Saddle River, NJ: Prentice-Hall, 2008.
NOTE: The first edition of Jurafsky and Martin is not appropriate – the second edition is a major update, and you’ll need to have that one, not the first.
Selected readings from this text will be suggested, and are indicated in the schedule with “JM”. Additional readings will made available for download.
Manning and Schuetze will be useful as an extra resource:
- Christopher D. Manning and Hinrich Schuetze. Foundations of Statistical Natural Language Processing. Cambridge, MA: MIT Press.
Exams and Assignments
There will be one midterm exam and one final exam. The midterm will consist of the material covered in the first half of the class, and the final will consist of material primarily from the second half.
Assignments will be updated on this website. Assignments may be visible on this website ahead of when they are assigned, but they are all subject to change up to the date that they are officially assigned.
Programming assignments must be completed in Scala.
Philosophy and Goal
The foremost goal of this course is to expose the student to advanced techniques and applications of natural language processing (NLP), especially those involving statistical approaches. The course will address both theoretical and applied topics.
Some specific goals of the course are to enable students to:
- understand core algorithms and data structures used in NLP
- utilize corpora and annotations added to them
- build statistical NLP components, such as n-gram language models, text classifiers and part-of-speech taggers, that learn from such corpora
- evaluate the merits of different machine learning methods for given NLP tasks
- appreciate the relationship between linguistic representations and computational applications
This course presents an opportunity for students to gain experience with models and algorithms used in computational linguistics that underly practical applications while gaining an appreciation for the theoretical questions of the field. It will thus help prepare the student both for jobs in the industry and for doing original research in computational linguistics.
Content Overview
Natural Language Processing (NLP) is concerned with automatically processing human language. Applications include machine translation, search, automatic summarization, and dialog systems. NLP has proved to be a hard task, among other things because of the complexity of the structure of human language, and because of the massive amount of world knowledge that humans use in language understanding.
The field of computational linguistics has experienced significant growth in the last ten years. In addition to the hard work of researchers in the field in general, some of the most important factors behind this include the use of statistical techniques, the availability of large (sometimes annotated) corpora (including the web itself), and the availability of relatively cheap and powerful computers. Together, these factors have played a major part in making computational linguistics very relevant in applied settings.
This course provides a broad introduction to NLP with a particular emphasis on core algorithms, data structures, and machine learning for NLP. Techniques we will study include:
- using corpora
- n-gram language models
- hidden markov models
- distributional models
- topic models
- probabilistic classifiers
- experimental methodology in NLP
Applications discussed in the course will include:
- sentiment analysis
- part-of-speech tagging
- spelling correction
- word sense disambiguation
- machine translation
With respect to content, the goal of this course is to give the student an appreciation for the broad research topics currently being pursued in the field of computational linguistics. By the end of the course, the student should be able to
- identify and discuss the characteristics of different NLP techniques
- identify and discuss the characteristics of machine learning techniques used in NLP
- implement a naive Bayes classifier
- implement a hidden Markov model for part-of-speech tagging
- understand what constitutes a probabilistic language model and understand the difference in assumptions between different types of such models (e.g. bag-of-words, n-gram, HMM, topic model)
- create features for probabilistic classifiers to model novel NLP tasks
Course Requirements
- Assignments (70%): A series of assignments will be given out during the semester. Most of these assignments will have a programming component—these must be completed using the Scala programming language.
- Midterm Exam (15%): There will be a midterm exam over the material covered during the first half of the semester.
- Final Exam (15%): There will be a final exam covering all course material.
Deadline Policy
Homework must be turned in by the date and time specified in order to receive full credit.
Written assignments will always be due by the time the lecture starts on the due date. This means that you should absolutely not be late to class. Any assignments turned in even a minute after the start of the lecture will be considered a day late, and will be subject to penalization as such.
Programming assignments that are submitted electronically will always be due two hours before the start of class on the due date. If you submit your assignment even 1 hour and 59 minutes before the start of class, it will be considered a day late. This is to discourage you from working on the assignment right up until the start of class, and then walking in late to the lecture.
Credit will be deducted for lateness: 10% for every 24-hour period past the deadline. For example, an assignment due at 2pm on Tuesday will have 10% deducted if it is turned in late but before 2pm on Wednesday. It will have 20% deducted if it is turned in by 2pm Thursday, etc.
Late submissions will not be accepted if they are more than 5 days past the deadline. No points will be received in this case.
Programming takes time. You are highly encouraged to start working on assignments as soon as they are announced to make sure you have enough time to complete them.
Penalty-free extensions will be considered on a case-by-case basis and only if the student asks for the extension before the deadline. In most cases they will not be granted. The greater the advance notice of a need for an extension, the greater the likelihood of leniency.
Academic Dishonesty Policy
You are encouraged to discuss assignments with classmates. But all written work must be your own. If in doubt, ask the instructor.
Students who violate University rules on academic dishonesty are subject to disciplinary penalties, including the possibility of failure in the course and/or dismissal from the University. Since such dishonesty harms the individual, all students, and the integrity of the University, policies on academic dishonesty will be strictly enforced. For further information please visit the Student Judicial Services Web site: http://deanofstudents.utexas.edu/sjs.
Notice about students with disabilities
The University of Texas at Austin provides appropriate accommodations for qualified students with disabilities. To determine if you qualify, please contact the Dean of Students at 512-471-6529 or UT Services for Students with Disabilities. If they certify your needs, we will work with you to make appropriate arrangements.
UT SSD Website: http://www.utexas.edu/diversity/ddce/ssd
Notice about missed work due to religious holy days
A student who misses an examination, work assignment, or other project due to the observance of a religious holy day will be given an opportunity to complete the work missed within a reasonable time after the absence, provided that he or she has properly notified the instructor. It is the policy of the University of Texas at Austin that the student must notify the instructor at least fourteen days prior to the classes scheduled on dates he or she will be absent to observe a religious holy day. For religious holy days that fall within the first two weeks of the semester, the notice should be given on the first day of the semester. The student will not be penalized for these excused absences, but the instructor may appropriately respond if the student fails to complete satisfactorily the missed assignment or examination within a reasonable time after the excused absence.