8. The system of claim 4 in which generating the trie further comprises using a third vector and a fourth vector, where the first vector identifies each distinct left word for each distinct context in the collection, the second vector identifies a count of distinct left words for each context in the collection, the third vector identifies each distinct predicted word for a given context in the collection, and the fourth vector identifies a count of distinct predicted words for each context in the collection.
8. The system of claim 4 in which generating the trie further comprises using a third vector and a fourth vector, where the first vector identifies each distinct left word for each distinct context in the collection, the second vector identifies a count of distinct left words for each context in the collection, the third vector identifies each distinct predicted word for a given context in the collection, and the fourth vector identifies a count of distinct predicted words for each context in the collection. 11. The system of claim 8 , further comprising: dividing the trie into a plurality of shards, each shard including a cluster of n-grams; and storing one or more shards on each computer of a plurality of computers in a distributed system.