Marked possible improvements

Small changes to weight calculations for correctness, and commented
where iterations through n-grams could be reduced by inlining more
calculations.

Execution time is now about <40s, but the goal is near NLTK's
performance of <6s on 3MB of training data.