Changed to all trigrams rather than 1-,2-,3-,and 4-grams.  Any n less than the greatest is redundant, and I don't think there's enough data to justify n>3.
changed n-gram to a frequency distribution (and dict) rather than one long list of tuples with duplicates