Traditionally linguistic analysis was done largely by hand, but computer-based methods and tools are becoming increasingly widely used in contemporary research. This course provides an introduction to skills and resources that can assist the linguist in performing fast, flexible, and accurate quantitative analyses. Students will learn a programming language (Python) along with techniques for processing human language data. No previous programming experience is required: we will teach you the basics of programming and computational linguistics along with some good software engineering practices.
Schedule
Week | Date | Topic | Notes |
1 | 12 Aug | What is Computational Linguistics? Why do it? Why use Python? | |
2 | 19 Aug | Basic Types and Data Structures; Using Python to Count Things | |
3 | 26 Aug | Assignment, Expressions, and Control | |
4 | 02 Sep | Text Corpora and Conditional Frequencies | notebook |
5 | 09 Sep | Lexical Resources and WordNet | notebook |
6 | 16 Sep | Processing Raw Text | notebook |
7 | 23 Sep | Mid-review; Working with Software Projects | group project |
– | 30 Sep | Recess | |
8 | 07 Oct | Regular Expressions | notebook |
9 | 14 Oct | N-Grams and Collocations | notebook |
10 | 21 Oct | Part-of-speech Tagging | notebook |
11 | 28 Oct | Classification | notebook |
12 | 04 Nov | Exploring Software Libraries, Language Models, Ethics in CL | notebook |
13 | 11 Nov | Review | notebook (completed) |
Course Pages
- Environment Setup – instructions for setting up your computer for HG2051
- Using Visual Studio Code – how to get, complete, and submit assignments
- Midterm Review – review of midterm topics in the course
- Final Review – review of final topics in the course
- Glossary – definitions of some technical terms
Grading Criteria
This course is graded with continuous assessment as follows:
- Assignments –
40%35% - Group Project – 20%
- Mid-term Exam – 15%
- Final Exam –
15%20% - Participation – 10%
You may also get 1–5% extra credit (not exceeding 100% in the course) by submitting a contribution (e.g., code or documentation) to an open-source project. Contact me for details.
Resources
- Python – https://www.python.org/
- The Python Tutorial (official docs) – https://docs.python.org/3/tutorial/
- The Python Standard Library (official docs) – https://docs.python.org/3/library/index.html
- Learn Python in 10 Minutes (quick guide) – https://www.stavros.io/tutorials/python/
- Dive Into Python 3 (free ebook) – https://diveintopython3.problemsolving.io/
- Git – https://git-scm.com/
- Official documentation (manuals, cheat sheets, videos) – https://git-scm.com/doc
- GitHub – https://github.com/
- GitHub Guides – https://guides.github.com/
- Visual Studio Code – https://code.visualstudio.com/
- Documentation – https://code.visualstudio.com/docs
- Using Python in VS Code – https://code.visualstudio.com/docs/python/python-tutorial
- Working with Jupyter Notebooks in Visual Studio Code – https://code.visualstudio.com/docs/python/jupyter-support
- NLTK – http://www.nltk.org/
- Natural Language Processing with Python (free ebook) – http://www.nltk.org/book/
- StackOverflow (popular programming Q&A site)– https://stackoverflow.com/
Acknowledgments
Previous years of this course were taught by: