stemmer spanish lemmatize example entre diferencia and java lucene elasticsearch nlp morphological-analysis

java - spanish - Palabras decrecientes stemming/lemmatization



nltk snowball stemmer (1)

Actualmente uso ''lucene'' y ''elasticsearch'', y tengo el siguiente problema. Necesito obtener la forma o lema derivado para diminutivo palabra. Por ejemplo :

  • perrito -> perro
  • gatito -> gato

etc.

Pero obtengo los siguientes resultados:

  • perrito -> doggi
  • gatito -> kitti

¿Hay alguna forma (biblioteca importante no lista para usar, cualquier algoritmo, enfoque, etc.) de obtener la forma raíz / palabra original para las formas diminutas de las palabras?

Idioma de destino: Ruso. Por ejemplo :

  • собачка -> собака
  • кошечка -> кошка

¡Gracias por adelantado!


En primer lugar, como nota al margen: lo que estás tratando de hacer no se suele llamar stemming o lematización.

Su primer problema sería mapear el token observado (por ejemplo, собачка ) a su forma normalizada (por ejemplo, собака ) - Ingenuamente, esto podría hacerse mediante la creación de un SynonymFilter que utiliza un SynonymMap Mapping SynonymMap a sus formas canónicas. Sin embargo, es probable que tenga problemas con cualquier lenguaje natural porque no todas las derivaciones son inequívocas: por ejemplo, en alemán, Mädel (''niña'' / ''muchacha'') podría ser una forma diminuta de Magd (una palabra arcaica que significa ''joven mujer ''/'' mucama '') o de Made ('' maggot '').

Una forma de desambiguar estas dos formas sería calcular la probabilidad de que cada forma canónica aparezca en el contexto dado (p. Ej., La historia de las n fichas precedentes) y luego reemplazar la forma dimunitiva con la forma canónica más probable (usando una forma personalizada) TokenFilter para hacerlo) - Ver, por ejemplo, la entrada de Wikipedia para la desambiguación del sentido de la palabra para diferentes enfoques.