public static bool IsEnglish(string text) { Lucene.Net.Store.Directory directoryBR = new RAMDirectory(); Lucene.Net.Store.Directory directoryEN = new RAMDirectory(); IndexWriter iwriterBr = new IndexWriter(directoryBR, brazilAnalyzer, true, new IndexWriter.MaxFieldLength(25000)); IndexWriter iwriterEn = new IndexWriter(directoryEN, englishAnalyzer, true, new IndexWriter.MaxFieldLength(25000)); Document doc = new Document(); doc.Add(new Field("detectLang", text,Field.Store.NO, Field.Index.ANALYZED)); iwriterBr.AddDocument(doc); iwriterEn.AddDocument(doc); iwriterBr.Dispose(); iwriterEn.Dispose(); //SE O Nº DE TERMOS ANALIZADOS EM INGLÊS FOR MAIOR QUE EM PORTUGUÊS QUER DIZER QUE NÃO ELIMINOU AS STOPWORDS, LOGO É PORTUGUÊS TermEnum termsBr = new IndexSearcher(directoryBR, true).IndexReader.Terms(); string term; int x=0; while (termsBr.Next()) { term= termsBr.Term.ToString() ; ++x; } TermEnum termsEn = new IndexSearcher(directoryEN, true).IndexReader.Terms(); int y=0; while (termsEn.Next()) { term = termsEn.Term.ToString(); ++y; } return y < x; }