- slightly improved ngrams: splitting via PCRE is faster than iterating over characters
- don't count 1-grams, just split