Natural Language Processing Class Materials Michael Wojcik

These are materials I created for CSE 842, Natural Language Processing, taught by Joyce Chai at Michigan State University in Spring 2011.

Classwork

I have a Javascript implementation of the standard dynamic-programming Minimum Edit Distance algorithm. The page includes a link to a pretty-printed version of the source, for anyone wishing to study it. I recently (spring 2013) noticed a bug: if you change the weight for the insertion operation, those aren't reflected in the values for the first column and row of the matrix. Fixing this is left as an exercise for the reader, unless and until I bother to do it.

When I created my implementation of the Earley parser, I added support for it to write out the final chart as HTML, both as an aid for debugging and because it's pretty cool. I've included the Earley Parser chart created by one of my test inputs. I don't currently post the source for the parser because it's a fairly common assignment, and getting it right isn't trivial, but if someone really wants it they can email me; I'll probably respond eventually.

Sentiment in ELI

For the final course project I experimented with sentiment analysis of student peer reviews of student writing, taken from the Eli system developed by MSU's WIDE center. There's more information in the project proposal (PDF), the project presentation (available in ODF, with animations, or PDF, without), and the report (PDF). I also used this project as the basis for my final paper in my professional writing course.