1. A method for translating a text, comprising: receiving the text in a source language; partitioning the text into a plurality of segments; obtaining, for each segment, one or more candidate translations in a target language; for each of a plurality of possible n grams in each candidate translation: identifying a respective partition of a language model containing the n gram, wherein each partition includes a subset of all n grams in the target language and statistical data for the same subset of n grams, each n gram being a sequence of n tokens in the target language, wherein n is a positive integer, and wherein each partition is maintained by a different server of a plurality of servers; sending a lookup request to the server maintaining the respective partition containing the n-gram; obtaining, from the server maintaining the respective partition containing the n-gram, statistical data for the n gram; and determining, for each segment of the text, a best candidate translation of the one or more candidate translations based on the obtained statistical data.