Teaching Notes - Teaching about 'What is NLP?'
This post is a continuation from my previous posts on teaching a 100-level undergraduate course called Language and Computers. As mentioned earlier, it is a very diverse class, and I use this textbook: Language and Computers by Marcus Dickinson, Chris Brew and Detmar Meurers. After finishing 4/8 topics in the textbook, I decided to take a break for 2 weeks from its content. One of these weeks was dedicated to introducing the general idea of Natural Language Processing and talking about typical tasks involved, where they are useful etc. 2nd Week mostly consisted of mid-term group presentations (totally enjoyed - more on them in the next post). So, what can we talk about NLP in a 100-level course? This post is my reflections on that.
In the very first or second class, I quickly described some NLP applications using a couple of examples. This week, I spent time discussing why these are hard problems. I first started talking about how language is diverse and ambiguous, and how computers may lack the world knowledge that humans have, which makes it difficult for them to understand human language. Examples of different ambiguities (of which some are confusing even to humans e.g., “I saw a man on the hill with a telescope”) was useful to get the point through (I think!). I also talked about some accessible NLP tasks such as word collocations, pattern extraction with regular expressions - that they are already familiar with, and mentioned about other tasks such as POS tagging, parsing, WSD, SRL, NER etc very briefly (not too the extent of intimidating!).
I then briefly touched upon how these kind of problems with language can potentially be solved using some examples. The NACLO problem BrokEnglish and Madly Ambiguous game from OSU helped me illustrate how seemingly simple things need to be considered carefully when making a computer do that. The Madly Ambiguous game was also very useful in talking about how a computer deals with ambiguity, as they had a nice writeup on that part. I actually cannot believe I showed Word2vec visualizations in a 100 level course - some people were atleast nodding, and they are not all from CS background. So, something worked, at least.
How should I do this next time? I think I should perhaps look for more demos such as Madly Ambiguous first. Absolutely loved using it as a pedagogical tool, and the students also seemed to have understood better. Also, perhaps I should take one application everyone uses (e.g., Siri like thing), and talk about all these different tasks, instead of talking about them one by one.