- Instructor: Jessy Li; email: firstname.lastname@example.org
- Office hours: TTH 3:30PM-5:00PM, RLP 4.728 (Mar 30 onwards: head to Canvas to join via Zoom)
- TA: Laura Manor; email: email@example.com
- Office hours: M 1:00PM-3:00PM, TH 10:00AM-11:00AM, RLP 4.400, desk E3 (Mar 30 onwards: head to Canvas to join via Zoom)
- Readings are provided via hyperlinks under Schedule.
- Exercises, code, etc. will be posted on Canvas.
- For your Python distribution, I suggest the Anaconda distribution of Python 3.
Course overview and objectives
Technology that automatically analyzes text has made amazing strides, and lets us do things like automatically translate from Chinese to English, summarize what people on Twitter think about some current political topic, or find clues on who the author is of some classic piece of literature. Machine learning plays a central role in this technology: software that can learn from experience. This course provides an overview of basic statistical methods for machine learning, with an emphasis on applications that have to do with text. This is a very hands-on course in which we are going to be using the Python programming language.
We will start with foundations including basic probability/statistics and python programming. The bulk of the course focuses on machine learning methods and applying them to analyze data, much of which textual. The later portion of the course will shift to surveying several tasks in natural language processing and to class projects, which will be a major component of the course. These projects will allow you to pursue your own interests (and conduct new research in so doing!).
Topics of this course include:
- Python programming for data analysis (including relevant libraries for modeling + data munging)
- Supervised and unsupervised learning
- Text processing and workflows for text analysis
Acknowledgement: I thank Byron Wallace for sharing his syllabus, materials, and experiences from his course Applied Data Mining.
This course carries the Quantitative Reasoning flag. Quantitative Reasoning courses are designed to equip you with skills that are necessary for understanding the types of quantitative arguments you will regularly encounter in your adult and professional life. You should therefore expect a substantial portion of your grade to come from your use of quantitative skills to analyze real-world problems.
This course also carries the Independent Inquiry flag. Independent Inquiry courses are designed to engage you in the process of inquiry over the course of a semester, providing you with the opportunity for independent investigation of a question, problem, or project related to your major. You should therefore expect a substantial portion of your grade to come from the independent investigation and presentation of your own work.
- Four homeworks, 60%
- These will involve programming, and you will be required to turn in your code.
- Class project, 40%
- This will be an open-ended project about a predictive model you would like to build, or a task you would like to accomplish (e.g., predicting the pragmatic function of swear words, summarizing news documents, etc.). Work with the instructor to find a topic that (importantly!) you are interested in or excited about.
- Course projects should be done by teams of 2 students. Project groups consisting of 1 or 3 students are possible only with prior approval of the instructor.
- An initial presentation and a 1-2 page written proposal of your project (The proposal presentation is canceled due to COVID-19 related schedule changes);
- Final project presentation;
- Project writeup (3-4 pages) and source code.
- The course will use plus-minus grading, using the following scale:
Attendance is not required, and it is not used as part of determining the grade.
Extensions will be considered on a case-by-case basis, but in most cases they will not be granted. If an extension has not been agreed on beforehand, then for assignments, by default, 5 points (out of 100) will be deducted for lateness, plus an additional 1 point for every 24-hour period beyond 2 that the assignment is late. The maximum extension penalty is 40 points if handed in before the last day of class. Resubmissions of assignments are allowed; extension penalty applies for post-deadline resubmissions.
Note that there are always some points to be had, even if you turn in your assignment late. So if you would like to know if you should still turn in the assignment even though it is late, the answer is always yes.
Academic dishonesty policy
You are encouraged to discuss assignments with classmates. But all coding/written work must be your own. Students caught cheating will automatically fail the course. If in doubt, ask the instructor.
Notice about students with disabilities
The University of Texas at Austin provides upon request appropriate academic accommodations for qualified students with disabilities. Please contact the Division of Diversity and Community Engagement, Services for Students with Disabilities, 512-471-6259.
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.
Senate Bill 212 and Title IX Reporting Requirements
Under Senate Bill 212 (SB 212), the professor and TAs for this course are required to report for further investigation any information concerning incidents of sexual harassment, sexual assault, dating violence, and stalking committed by or against a UT student or employee. Federal law and university policy also requires reporting incidents of sex- and gender-based discrimination and sexual misconduct (collectively known as Title IX incidents). This means we cannot keep confidential information about any such incidents that you share with us. If you need to talk with someone who can maintain confidentiality, please contact University Health Services (512-471-4955 or 512-475-6877) or the UT Counseling and Mental Health Center (512-471-3515 or 512-471-2255). We strongly urge you make use of these services for any needed support and that you report any Title IX incidents to the Title IX Office.
Emergency evacuation policy
Occupants of buildings on The University of Texas at Austin campus are required to evacuate buildings when a fire alarm is activated. Alarm activation or announcement requires exiting and assembling outside. Familiarize yourself with all exit doors of each classroom and building you may occupy. Remember that the nearest exit door may not be the one you used when entering the building. Students requiring assistance in evacuation shall inform their instructor in writing during the first week of class. In the event of an evacuation, follow the instruction of faculty or class instructors. Do not re-enter a building unless given instructions by the following: Austin Fire Department, The University of Texas at Austin Police Department, or Fire Prevention Services office. Information regarding emergency evacuation routes and emergency procedures can be found at http://www.utexas.edu/emergency.
Schedule is tentative and subject to change.
- Week 1
- Week 2
- 1/27 Homework 0 due
- 1/28 Probability and stats review (slides; code)
- 1/30 Distributions, Maximum Likelihood (slides; code)
- Week 3
- 2/4 Decision Trees (slides)
- 2/6 Random Forests, Linear Algebra Review (slides; code) / Python session (code)
- Week 4
- 2/11 Python session: text processing
- Homework 1 due before class
- 2/13 Naive Bayes (slides)
- Week 5
- 2/18 Guest lecture: Kyle Mahowald (code)
- 2/20 Python session: OOP, feature vectorization (code)
- Week 6
- 2/25 Linear Regression, Logistic Regression (slides; code)
- 2/27 Python session: logistic regression (code)
- Week 7
- 3/3 Perceptron, SVMs (slides)
- 3/5 Evaluation (slides); Python session: feature combination (code)
- Week 8
- 3/10 Clustering (slides)
- 3/12 Dimensionality reduction (slides)
- Week 9
- Week 10
- Extended spring break due to COVID-19
- 3/24 Homework 3 due midnight
- Week 11
- 3/31 Topic modeling demo (code)/Deep learning: multi-layer perceptrons (slides)
- Project proposal writeup due midnight (firm deadline)
- Readings: Sections 7.1-7.4, Jurafsky & Martin
- 4/2 Multi-layer perceptrons/Neural language models
- Week 12
- 4/7 Neural language models/Word embeddings (Slides; code)
- 4/9 Recurrent neural nets (slides)
- Week 13
- 4/14 Sequence-to-sequence models, Machine Translation, and Attention (slides)
- 4/16 Topics in NLP: sentiment analysis (slides)/Python session: Keras tutorial (code)
- Optional reading from Eric Holgate’s talk:
- Expressively vulgar: The socio-dynamics of vulgarity and its effects on sentiment analysis in social media: paper, slides, data/code
- Why Swear? Analyzing and Inferring the Intentions of Vulgar Expressions: paper, video, data
- Homework 4 due midnight
- Week 14
- 4/21 Python session: Keras tutorial/Structured Prediction (slides)
- 4/23 Structured Prediction (slides)
- Week 15
- 4/28 Topics in NLP: Crowdsourcing (slides)
- 4/30 Topics in NLP: Chatbots (slides)/Summarization (slides)
- Week 16: Project presentations
- Project writeup due: Friday May 15 by 11:59pm (firm deadline)
Please refer to the grading policy for a high level overview about the project and requirements.
- Sentiment analysis: extend our existing investigations of the Sentiment140 dataset or the Movie Reviews dataset to consider more features, fancier models, and/or more detailed analysis.
- Pragmatic function of vulgar expressions in social media: here is a collection of tweets containing vulgar words. Build a model to predict the pragmatic function (emphatic, expressing emotions, etc) of each vulgar word.
- Congressional floor debates is a dataset containing transcripts of U.S. floor debates in the House of Representatives in 2005. Build a model to predict the vote (“yea” vs “ney”) from the speaker of each segment.
- Specificity captures the level of details in a text. Here is a set of tweets marked with their specificity levels. Build a regression model to predict specificity given a tweet.
- Running topic models and analyzing topics across a corpus of text, e.g., the Brown corpus (available with NLTK).
- Multi-document summarization aims to extract the most important sentences from a set of documents under the same topic. Explore unsupervised ways to create such summaries. Here are several sets of articles, along with human summaries for each set. To evaluate the summaries you generate against human summaries, use ROUGE; python wrappers here or here.
- The CNN/Daily Mail dataset is often used for extractive summarization: generating highlights from scratch given a news article.
- The DailyDialog dataset contains a series of dialogs with labeled topics, dialog acts and emotions. Create models to predict them! Of course, you can also try to generate responses given the inputs and create a chatbot.
- Project proposal:
- A written proposal (1-2 pages) that describes:
- What the project is about, and why is this interesting/important?
- What data/resources will you use?
- What type of machine learning algorithms or models that you plan to apply?
- How do you plan to evaluate your system? If applicable, describe quantitative metrics you will use.
- If you are working in a group: who does what.
- (The proposal presentation is canceled due to COVID-19 related schedule changes) A proposal presentation (3-4 minutes) that summarizes the above.
- Final project deliverables:
- A written final report (3-4 pages) that builds on your proposal:
- What the project is about, and why is this interesting/important?
- What data/resources will you use?
- What type of machine learning algorithms or models you applied?
- Results: Describe as clearly as possible what it is your system can (and cannot) do. You can show examples of things your system is getting correct and of errors it is making. If applicable, measure performance by some performance measure.
- If you are working in a group: separate section describing who did what.
- Source code needs to be submitted along with the final report.
- A final presentation (6 minutes) that summarizes the above.