- 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.
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.
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
- 1/21 Introduction
- 1/23 Python review
- Week 2
- 1/28 Probability and stats review
- 1/30 Linear Algebra review
- Week 3
- 2/4 Decision Trees, Random Forests
- 2/6 Python session: text processing
- Week 4
- 2/11 Python session: text processing
- 2/13 Naive Bayes
- Week 5
- 2/18 Guest lecture: Kyle Mahowald
- 2/20 Python session
- Week 6
- 2/25 Logistic Regression
- 2/27 Python session
- Week 7
- 3/3 Perceptron, evaluation
- 3/5 Evaluation/Python session
- Week 8
- 3/10 Unsupervised learning
- 3/12 Unsupervised learning 2
- Week 9
- Week 10
- 3/24 Project proposal presentations
- 3/26 Deep learning: multi-layer perceptrons
- 3/27 Project proposal writeup due midnight
- Week 11
- 3/31 Neural language models
- 4/2 Word embeddings
- Week 12
- 4/7 Neural architectures
- 4/9 Neural architectures and applications
- Week 13
- 4/14 Python session: Keras tutorial
- 4/16 Crowdsourcing
- Week 14
- 4/21 Structured Prediction
- 4/23 Structured Prediction 2
- Week 15
- 4/28 Topics in NLP: Dialog systems
- 4/30 Topics in NLP: Summarization
- Week 16: Project presentations
- Project writeup due: Tuesday May 12 by 11:59pm
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.