public string GetLanguage(string paragraph, char[] chars)
        {
            Dictionary <string, Dictionary <string, NGram <char> > > ngram_group = new Dictionary <string, Dictionary <string, NGram <char> > >();

            string[] words = paragraph.Split(chars, StringSplitOptions.RemoveEmptyEntries);
            foreach (string word in words)
            {
                NGramModel_Letter.ParseStoreGram(word.ToCharArray(), ngram_group, mN);
            }
            string selected_language = null;
            double min_distance      = double.MaxValue;
            double distance          = 0;

            foreach (string language in mLangModels.Keys)
            {
                NGramModel_Letter model = mLangModels[language];
                distance = model.GetDistanceSq(ngram_group);
                if (distance < min_distance)
                {
                    min_distance      = distance;
                    selected_language = language;
                }
            }

            return(selected_language);
        }