Due at 9:30am on July 27
With this lab, you will explore text classification with data from a variety of speech and text sources. The task is to classify which of the 7 genres a document is associated with:
The task is to classify each test document as one of these genres. You can download the data from link. Training and test partitions are specified. There is no dev set, so if your explore different options then you will need to evaluate alternatives by holding out part of the training set, or doing cross validation on the training set. Do not run multiple configurations on the test set. The data is organized in directories by genre, so that provides your answer key.
You may explore any approach for classification that you want, but a simple method is to use a Naive Bayes classifier with word counts as features. There are several options available in the RAINBOW text classification toolkit:
http://www.cs.cmu.edu/~mccallum/bow/rainbow/,
which is easy to use, but there are other toolkits that you are welcome to try. Some options include:
A modified version of the rainbow source code is available here http://ssli.ee.washington.edu/people/brianhutchinson/src/bow-20020213-patched.tar.gz if you want to use RAINBOW and are having trouble compiling with a recent version of gcc.
The simplest approach would be to use word counts as features, but you may want to try POS tags. A tagger is available at: http://nlp.stanford.edu/software/tagger.shtml
Using punctuation as "words" may be useful. The documents are truncated in length, so don't use document length as a feature.
What to turn in:
For those who are not so familiar with NLP tools, I sentence segmented, word tokenized, and part-of-speech tagged the data. You can download the tagged data from the following link.
http://www-nlp.stanford.edu/danj/genre-tok.tgz
http://www-nlp.stanford.edu/danj/genre-pos.tgz
'genre-tok.tgz' contains non-tagged tokenized data and 'genre-pos.tgz' contains pos-tagged data. Each file in 'genre-pos.tgz' follows the following format.
FILE ::= (SENTENCE)+ SENTENCE ::= TOKEN(<SP>TOKEN)* TOKEN ::= FORM_POS <SP> ::= space FORM ::= word-form (including punctuation) POS ::= part-of-speech tag of the word
You can find the list of part-of-speech tags from the following link: http://www.ling.upenn.edu/courses/Fall_2003/ling001/penn_treebank_pos.html