Esempio n. 1
0
        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;
        }