1 4 package org.javabb.lucene.analysis; 5 6 7 import java.io.Reader ; 8 import java.util.HashSet ; 9 import java.util.Set ; 10 11 import org.apache.lucene.analysis.Analyzer; 12 import org.apache.lucene.analysis.LowerCaseFilter; 13 import org.apache.lucene.analysis.StopFilter; 14 import org.apache.lucene.analysis.TokenStream; 15 import org.apache.lucene.analysis.standard.StandardFilter; 16 import org.apache.lucene.analysis.standard.StandardTokenizer; 17 18 19 49 public class PortugueseAnalyzer extends Analyzer { 50 51 54 public static final String [] STOP_WORDS = new String [] { "0", "1", "2", 55 "3", "4", "5", "6", "7", "8", "9", "a", "ainda", "alem", "algum", 56 "alguma", "alguns", "ali", "além", "ambas", "ambos", "ano", "anos", 57 "antes", "ao", "aonde", "aos", "apenas", "apos", "aquela", 58 "aquele", "aqueles", "as", "assim", "ato", "até", "b", "bem", 59 "boa", "bom", "c", "cada", "cargo", "carta", "casa", "com", "como", 60 "consta", "contra", "contudo", "cuja", "cujas", "cujo", "cujos", 61 "d", "da", "daquele", "dar", "das", "data", "de", "dela", "dele", 62 "deles", "demais", "depois", "desde", "desta", "deste", "deu", 63 "dia", "dias", "dispoe", "dispoem", "dito", "diversa", "diversas", 64 "diversos", "diz", "do", "dois", "dos", "dr", "duas", "durante", 65 "e", "ela", "elas", "ele", "eles", "em", "enfim", "entao", "entre", 66 "então", "era", "eram", "essa", "essas", "esse", "esses", "esta", 67 "estas", "estava", "este", "estes", "f", "fazer", "fez", "ficou", 68 "fim", "foi", "foram", "fr", "g", "gente", "geral", "h", "ha", 69 "havia", "hoje", "há", "i", "isso", "isto", "j", "já", "k", "l", 70 "lhe", "lhes", "logo", "lugar", "m", "maior", "mais", "mas", "me", 71 "mediante", "menos", "mesma", "mesmas", "mesmo", "mesmos", "muito", 72 "muitos", "n", "na", "nao", "nas", "nem", "nesse", "nesta", 73 "neste", "no", "nome", "nos", "nossa", "nosso", "nossos", "nova", 74 "novo", "não", "nós", "o", "onde", "ordem", "os", "ou", "outra", 75 "outras", "outro", "outros", "p", "para", "parte", "pela", "pelas", 76 "pelo", "pelos", "perante", "pois", "por", "porque", "portanto", 77 "porém", "pouco", "propios", "proprio", "q", "quais", "qual", 78 "qualquer", "quando", "quanto", "que", "quem", "quer", "r", "rua", 79 "s", "se", "segundo", "seja", "sem", "sempre", "sendo", "ser", 80 "seu", "seus", "sob", "sobre", "sua", "suas", "são", "só", "sôbre", 81 "t", "tal", "tambem", "também", "tanto", "tem", "tendo", "ter", 82 "teu", "teus", "teve", "tinha", "tinham", "toda", "todas", "todo", 83 "todos", "três", "tua", "tuas", "tudo", "tão", "u", "um", "uma", 84 "umas", "uns", "v", "veio", "vem", "vez", "vê", "w", "x", "y", "z", 85 "à", "às", "é", "êle" }; 86 87 private Set stopWords = new HashSet (); 88 89 92 public PortugueseAnalyzer () { 93 94 this(STOP_WORDS); 95 96 } 97 98 101 public PortugueseAnalyzer ( String [] stopWords ) { 102 103 this.stopWords = StopFilter.makeStopSet(stopWords); 104 105 } 106 107 110 public PortugueseAnalyzer ( String words ) { 111 112 this(makeArray(words)); 113 114 } 115 116 124 public TokenStream tokenStream( String fieldName, Reader reader ) { 125 126 TokenStream result = new StandardTokenizer(reader); 127 128 result = new StandardFilter(result); 129 result = new LowerCaseFilter(result); 130 result = new StopFilter(result, stopWords); 131 result = new SpecialCharFilter(result); 132 133 return result; 134 135 } 136 137 144 private static String [] makeArray( String words ) { 145 146 String [] split = words.split(", "); 147 String [] result = new String [split.length]; 148 149 for (int i = 0; i < split.length; i++) { 150 151 result[i] = split[i].trim().toLowerCase(); 152 153 } 154 155 return result; 156 157 } 158 159 } 160 | Popular Tags |