This is a very much delayed series of posts related the yearly module I give on Python programming for Natural Language Processing. The purpose of this module is to teach students how to use Python for processing corpora and for other Natural Language Processing (NLP) related tasks. The background of students is different from year to year, but in general students come with non-computer science related backgrounds. This makes the module a bit challenging because in about 12 weeks, I need to bring these students from zero to an intermediate level.
I have been teaching this module for 10 years. This means the module has gone through a number of revisions and refinements. I gave a condensed version of this module at Dublin City University in 2017 and the slides are available on my GitHub account. I use the same repository to post updates of my slides.
Structure of the module
When I teach, I have only about 10 teaching weeks to cover all the material. In general, the module has roughly the following structure:
Weeks 1-5 Basic Python notions (data structures, python syntax, how to analyse a problem and design an algorithm etc.), learn what we can do with NLTK
Week 6 Catch up with any topics that were not clear enough. Ensure that all the students are comfortable with basic Python. Tackle more complicated problems.
Week 7 More about functions and explore more advanced notions such as list comprehension and functional programming in Python.
Week 8 Regular expressions: how to use regular expressions to match patterns in text and clean “messy” texts
Week 9 Processing XML files: learn how to read information from XML files and how to produce them
Week 10 Processing other types of files (e.g. reading and creating JSON and CSV files). Accessing information from APIs.
Week 11: Stop and recap/mock in-class test. Use Python to solve more complicated problems. Have a look at SpaCy.
Quite often, I end up updating this schedule depending on the students’ interest and the speed in which I manage to cover each topic. In the context of these posts, the week numbers are not too meaningful. I will use them largely to order the material.
Where I can learn more about Python
Each year, I am contacted at the beginning of each academic year by eager students who want to start learning python before the year starts. Assuming that I will be organised enough, this series of posts will provide the necessary background. Alternatively, you can consider the following links to articles about how to start learning Python:
- My Favorite Free Courses to Learn Python In-Depth: discusses a number of python courses for beginners and intermediate programmers. The courses are hosted by a number of MOOC providers and many of them are free.
- The Best Way to Learn Python As A Beginner: provides links to books, online courses and tutorials related to learning python.
Real python also contains numerous tutorials that are very useful for learning Python. For beginners, the articles tagged as basic can be useful.