More spam filtering
Free space before pickling classifier
Force garbage collection at specific points

I haven't seen this help yet with memory consumption, but it doesn't
hurt either.
Don't classify twice in evaluate()

nltk.classify.util.accuracy() runs the classification function on every
member of the test set, which we already do a couple of lines earlier.