- 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;
- 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.
- Slip days: You will have a total of 6 free slip days that you can use throughout the semester. You can choose how many days you want to use, and however you want to distribute them; e.g., you can use one slip day per assignment, or 4 days for one assignment and none for others. Slip days cannot be used fractionally: submitting an assignment 1 hour late incurs 1 slip day, 25 hours late incurs 2 slip days, etc.
- Extension permissions: Beyond the slip days, extensions may be granted on a case-to-case basis due to medical emergency or other circumstances that are extraordinary or emergencies in nature. You must reach out to the instructor to obtain an extension before the deadline in question.
- Late penalty: If you have used up your free slip days and did not obtain a permission on extension, then by default, 10 points (out of 100) will be deducted for lateness, plus an additional 5 point for every 24-hour period beyond 2 that the assignment is late. Resubmissions of assignments are allowed; extension penalty applies for post-deadline resubmissions.
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.
Sharing of Course Materials is Prohibited
No materials used in this class, including, but not limited to, lecture hand-outs, videos, assessments (quizzes, exams, papers, projects, homework assignments), in-class materials, review sheets, and additional problem sets, may be shared online or with anyone outside of the class unless you have my explicit, written permission. Unauthorized sharing of materials promotes cheating. It is a violation of the University’s Student Honor Code and an act of academic dishonesty. I am well aware of the sites used for sharing materials, and any materials found online that are associated with you, or any suspected unauthorized sharing of materials, will be reported to Student Conduct and Academic Integrity in the Office of the Dean of Students. These reports can result in sanctions, including failure in the course.
FERPA and Class Recordings
Class recordings are reserved only for students in this class for educational purposes and are protected under FERPA. The recordings should not be shared outside the class in any form. Violation of this restriction by a student could lead to Student Misconduct proceedings.
To help keep everyone at UT and in our community safe, it is critical that students report COVID-19 symptoms and testing, regardless of test results, to University Health Services, and faculty and staff report to the HealthPoint Occupational Health Program (OHP) as soon as possible. Please see this link to understand what needs to be reported. In addition, to help understand what to do if a fellow student in the class (or the instructor or TA) tests positive for COVID, see this University Health Services link.
Schedule is tentative and subject to change.
- Week 1
- 1/19 Introduction
- 1/21 Python review
- Week 2
- 1/25 Homework 0 due midnight
- 1/28 Probability review
- 1/30 Distributions and maximum likelihood
- Week 3
- 2/2 Decision Trees
- 2/4 Python session: decision trees
- Week 4
- 2/8 Homework 1 due midnight
- 2/9 Naive Bayes
- 2/11 Linear Algebra Review, Python session
- Week 5
- 2/16 Class canceled; stay safe!
- 2/18 Class canceled; stay safe!
- Week 6
- 2/23 Class canceled; stay safe!
- 2/25 Naive Bayes/Language models
- Week 7
- 3/2 Naive Bayes, Linear Regression
- 3/4 Logistic regression
- Week 8
- 3/8 Homework 2 due midnight
- 3/9 Python session: feature vectorization, Perceptrons
- 3/11 Perceptron, SVMs, Evaluation
- Week 9
- Week 10
- 3/23 Project presentations
- 3/25 Project presentations
- 3/26 Project proposal due midnight
- Week 11
- 3/29 Homework 3 due midnight
- 3/30 Unsupervised learning
- 4/1 PCA/Deep learning: multi-layer perceptrons
- Week 12
- 4/6 Multi-layer perceptrons/Neural language models
- 4/8 Neural language models/Word embeddings
- Week 13
- 4/13 Word embeddings/Recurrent neural nets
- 4/15 Keras RNN demo/Sequence-to-sequence models
- Week 14
- 4/19 Homework 4 due midnight
- 4/20 Attention, Transformers
- 4/22 Transformers/Structured Prediction
- Week 15
- 4/27 Topics in NLP
- 4/29 Topics in NLP
- Week 16
- 5/4 Project presentations
- 5/6 Project presentations
- Project writeup due: Friday May 14 by midnight
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.
- 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.