18. A computer readable storage medium including instructions which, when implemented, cause a computer to perform language identification, the instructions comprising: a first module adapted to access, for each of a plurality of natural languages, a feature list and expected probability values associated with each of the listed features, each feature in the feature list being a unique feature associated with the natural language; and a second module adapted to receive a text sample written in an unidentified natural language, count a total number of features in the text sample, and determine actual occurrences of each of a plurality of unique features in the feature lists in at least one window of characters in the text sample, the second module being further adapted to calculate probability values associated with each of the plurality of unique features given the total number of features of the text sample, stored expected probability values for each of the plurality of unique features and the actual occurrences of each of the plurality of unique features, the second module being further adapted to calculate language scores for each of the plurality of languages, said calculation comprising estimating a joint probability of seeing all of the plurality of unique features by multiplying the probability values associated with each of the plurality of unique features, and wherein the second module identifies at least one language for the text sample from among the plurality of natural languages based on the language scores.
18. A computer readable storage medium including instructions which, when implemented, cause a computer to perform language identification, the instructions comprising: a first module adapted to access, for each of a plurality of natural languages, a feature list and expected probability values associated with each of the listed features, each feature in the feature list being a unique feature associated with the natural language; and a second module adapted to receive a text sample written in an unidentified natural language, count a total number of features in the text sample, and determine actual occurrences of each of a plurality of unique features in the feature lists in at least one window of characters in the text sample, the second module being further adapted to calculate probability values associated with each of the plurality of unique features given the total number of features of the text sample, stored expected probability values for each of the plurality of unique features and the actual occurrences of each of the plurality of unique features, the second module being further adapted to calculate language scores for each of the plurality of languages, said calculation comprising estimating a joint probability of seeing all of the plurality of unique features by multiplying the probability values associated with each of the plurality of unique features, and wherein the second module identifies at least one language for the text sample from among the plurality of natural languages based on the language scores. 19. The computer readable storage medium of claim 18 , and further comprising a module adapted to determine confidence scores for the identified natural languages and to rank natural languages based on the confidence scores.