21. The computer program product of claim 20 , where identifying array locations further comprises: identifying a particular array of a plurality of arrays associated with the received n-gram, where each array of the plurality of arrays includes a distinct group of n-grams of a collection of n-grams.
20. A computer program product, encoded on a computer-readable medium, operable to cause data processing apparatus to perform operations comprising: searching for one or more parameter values associated with an n-gram, including: receiving the n-gram; identifying a fingerprint corresponding to the received n-gram; performing a composite hash on the n-gram; identifying array locations corresponding to the composite hash values; and combining the values of the array locations with the fingerprint value to identify one or more n-gram parameter values.