Created
March 16, 2011 11:03
-
-
Save emedina/872322 to your computer and use it in GitHub Desktop.
Custom analyzer for Spanish
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.io.Reader; | |
import java.util.Arrays; | |
import java.util.HashSet; | |
import org.apache.lucene.analysis.Analyzer; | |
import org.apache.lucene.analysis.ASCIIFoldingFilter; | |
import org.apache.lucene.analysis.LowerCaseFilter; | |
import org.apache.lucene.analysis.StopFilter; | |
import org.apache.lucene.analysis.TokenStream; | |
import org.apache.lucene.analysis.snowball.SnowballFilter; | |
import org.apache.lucene.analysis.standard.StandardFilter; | |
import org.apache.lucene.analysis.standard.StandardTokenizer; | |
import org.apache.lucene.util.Version; | |
public class SpanishAnalyzer extends Analyzer { | |
// Sacadas de http://members.unine.ch/jacques.savoy/clef/spanishSmart.txt | |
private String SPANISH_STOP_WORDS[] = { | |
"él", | |
"ésta", | |
"éstas", | |
"éste", | |
"éstos", | |
"última", | |
"últimas", | |
"último", | |
"últimos", | |
"a", | |
"añadió", | |
"aún", | |
"actualmente", | |
"adelante", | |
"además", | |
"afirmó", | |
"agregó", | |
"ahí", | |
"ahora", | |
"al", | |
"algún", | |
"algo", | |
"alguna", | |
"algunas", | |
"alguno", | |
"algunos", | |
"alrededor", | |
"ambos", | |
"ante", | |
"anterior", | |
"antes", | |
"apenas", | |
"aproximadamente", | |
"aquí", | |
"así", | |
"aseguró", | |
"aunque", | |
"ayer", | |
"bajo", | |
"bien", | |
"buen", | |
"buena", | |
"buenas", | |
"bueno", | |
"buenos", | |
"cómo", | |
"cada", | |
"casi", | |
"cerca", | |
"cierto", | |
"cinco", | |
"comentó", | |
"como", | |
"con", | |
"conocer", | |
"consideró", | |
"considera", | |
"contra", | |
"cosas", | |
"creo", | |
"cual", | |
"cuales", | |
"cualquier", | |
"cuando", | |
"cuanto", | |
"cuatro", | |
"cuenta", | |
"da", | |
"dado", | |
"dan", | |
"dar", | |
"de", | |
"debe", | |
"deben", | |
"debido", | |
"decir", | |
"dejó", | |
"del", | |
"demás", | |
"dentro", | |
"desde", | |
"después", | |
"dice", | |
"dicen", | |
"dicho", | |
"dieron", | |
"diferente", | |
"diferentes", | |
"dijeron", | |
"dijo", | |
"dio", | |
"donde", | |
"dos", | |
"durante", | |
"e", | |
"ejemplo", | |
"el", | |
"ella", | |
"ellas", | |
"ello", | |
"ellos", | |
"embargo", | |
"en", | |
"encuentra", | |
"entonces", | |
"entre", | |
"era", | |
"eran", | |
"es", | |
"esa", | |
"esas", | |
"ese", | |
"eso", | |
"esos", | |
"está", | |
"están", | |
"esta", | |
"estaba", | |
"estaban", | |
"estamos", | |
"estar", | |
"estará", | |
"estas", | |
"este", | |
"esto", | |
"estos", | |
"estoy", | |
"estuvo", | |
"ex", | |
"existe", | |
"existen", | |
"explicó", | |
"expresó", | |
"fin", | |
"fue", | |
"fuera", | |
"fueron", | |
"gran", | |
"grandes", | |
"ha", | |
"había", | |
"habían", | |
"haber", | |
"habrá", | |
"hace", | |
"hacen", | |
"hacer", | |
"hacerlo", | |
"hacia", | |
"haciendo", | |
"han", | |
"hasta", | |
"hay", | |
"haya", | |
"he", | |
"hecho", | |
"hemos", | |
"hicieron", | |
"hizo", | |
"hoy", | |
"hubo", | |
"igual", | |
"incluso", | |
"indicó", | |
"informó", | |
"junto", | |
"la", | |
"lado", | |
"las", | |
"le", | |
"les", | |
"llegó", | |
"lleva", | |
"llevar", | |
"lo", | |
"los", | |
"luego", | |
"lugar", | |
"más", | |
"manera", | |
"manifestó", | |
"mayor", | |
"me", | |
"mediante", | |
"mejor", | |
"mencionó", | |
"menos", | |
"mi", | |
"mientras", | |
"misma", | |
"mismas", | |
"mismo", | |
"mismos", | |
"momento", | |
"mucha", | |
"muchas", | |
"mucho", | |
"muchos", | |
"muy", | |
"nada", | |
"nadie", | |
"ni", | |
"ningún", | |
"ninguna", | |
"ningunas", | |
"ninguno", | |
"ningunos", | |
"no", | |
"nos", | |
"nosotras", | |
"nosotros", | |
"nuestra", | |
"nuestras", | |
"nuestro", | |
"nuestros", | |
"nueva", | |
"nuevas", | |
"nuevo", | |
"nuevos", | |
"nunca", | |
"o", | |
"ocho", | |
"otra", | |
"otras", | |
"otro", | |
"otros", | |
"para", | |
"parece", | |
"parte", | |
"partir", | |
"pasada", | |
"pasado", | |
"pero", | |
"pesar", | |
"poca", | |
"pocas", | |
"poco", | |
"pocos", | |
"podemos", | |
"podrá", | |
"podrán", | |
"podría", | |
"podrían", | |
"poner", | |
"por", | |
"porque", | |
"posible", | |
"próximo", | |
"próximos", | |
"primer", | |
"primera", | |
"primero", | |
"primeros", | |
"principalmente", | |
"propia", | |
"propias", | |
"propio", | |
"propios", | |
"pudo", | |
"pueda", | |
"puede", | |
"pueden", | |
"pues", | |
"qué", | |
"que", | |
"quedó", | |
"queremos", | |
"quién", | |
"quien", | |
"quienes", | |
"quiere", | |
"realizó", | |
"realizado", | |
"realizar", | |
"respecto", | |
"sí", | |
"sólo", | |
"se", | |
"señaló", | |
"sea", | |
"sean", | |
"según", | |
"segunda", | |
"segundo", | |
"seis", | |
"ser", | |
"será", | |
"serán", | |
"sería", | |
"si", | |
"sido", | |
"siempre", | |
"siendo", | |
"siete", | |
"sigue", | |
"siguiente", | |
"sin", | |
"sino", | |
"sobre", | |
"sola", | |
"solamente", | |
"solas", | |
"solo", | |
"solos", | |
"son", | |
"su", | |
"sus", | |
"tal", | |
"también", | |
"tampoco", | |
"tan", | |
"tanto", | |
"tenía", | |
"tendrá", | |
"tendrán", | |
"tenemos", | |
"tener", | |
"tenga", | |
"tengo", | |
"tenido", | |
"tercera", | |
"tiene", | |
"tienen", | |
"toda", | |
"todas", | |
"todavía", | |
"todo", | |
"todos", | |
"total", | |
"tras", | |
"trata", | |
"través", | |
"tres", | |
"tuvo", | |
"un", | |
"una", | |
"unas", | |
"uno", | |
"unos", | |
"usted", | |
"va", | |
"vamos", | |
"van", | |
"varias", | |
"varios", | |
"veces", | |
"ver", | |
"vez", | |
"y", | |
"ya", | |
"yo" | |
}; | |
@SuppressWarnings({ "unchecked", "rawtypes" }) | |
public TokenStream tokenStream(String fieldName, Reader reader) { | |
TokenStream result = new StandardTokenizer(Version.LUCENE_30, reader); | |
result = new StandardFilter(result); | |
result = new LowerCaseFilter(result); | |
result = new ASCIIFoldingFilter(result); // Mi cambio | |
result = new StopFilter(false, result, new HashSet(Arrays.asList(SPANISH_STOP_WORDS))); | |
result = new SnowballFilter(result, "Spanish"); | |
return result; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment