I recently got re-interested* in natural language processing, in conjunction with working on a taxonomy/ontology and reading about applications for taxonomies and ontologies.
I found a course with all materials on GitHub that looked pretty interesting: Applied Natural Language Processing, and thought I'd give the exercises a go in my free time.
But. But. From day one, the coursework emphasizes functional programming. And it's like starting from square one!
Even capturing parameters from the command line stumped me. I felt like a total dope, until I went home and talked to my spouse, who, keep in mind, is getting a PhD in computational and applied math.
"Ohhh...yeah, functional programming is really academically interesting but hard," he says. Then he starts talking about lambda calculus and provable code, and I get a bit lost.
"Wait...so what's the advantage of functional programming for natural language processing?" I ask.
"Good question; I don't know."
So, the next day I spend time trying to answer that question, and I suppose I have a little bit of an answer--it's good for cleanly defining mappings and therefore good for tree manipulation(?)
However, it felt like a bit much to learn functional programming and a little bit of linguistics and programming tasks in the NLP domain in my free time. So after a bit more sleuthing, I stumbled across Python's Natural Language Toolkit (NLTK), and was bowled over by the resources--there's an entire book online!
So I've temporarily abandoned Scala and I'm currently in the second chapter of the Python NLTK book. It hasn't gotten hard yet and is still a ton of fun.
* Actually, I've been interested in NLP for a while, but when I checked out Coursera's NLP class a couple years ago, I got discouraged--it seemed very mathy! Coming back to it now, I feel more confident in my technical skills in general, and I've started to incompletely connect the dots between NLP and less-mathy linguistics--this post in particular encouraged me by arguing that the math that computational linguists need to know is 'not that hard'.
No comments:
Post a Comment