El mejor analizador de idiomas cruzados para usar con el índice de luceno [cerrado]

StackOverflow https://stackoverflow.com/questions/1001003

  •  05-07-2019
  •  | 
  •  

Pregunta

Estoy buscando comentarios sobre qué analizador usar con un índice que tiene documentos de varios idiomas. Actualmente estoy usando el analizador simple, ya que parece manejar la mayor cantidad de idiomas. La mayoría de los documentos que se indexarán serán en inglés, pero también habrá un idioma ocasional de doble byte indexado.

¿Hay alguna otra sugerencia o debería seguir con el analizador simple?

Gracias

¿Fue útil?

Solución

SimpleAnalyzer es realmente simple, todo lo que hace es en minúsculas los términos. Pensé que StandardAnalyzer daría mejores resultados que SimpleAnalyzer incluso con datos que no están en inglés. Tal vez podría mejorarlo ligeramente al proporcionar una lista personalizada de palabras de detención además de las predeterminadas en inglés.

Otros consejos

De su descripción, supongo que tiene un documento de varios idiomas, pero cada documento tiene texto en un solo idioma.

Para este caso, puede usar la identificación de idioma de Nutch para obtener el idioma del documento. Luego use el analizador de idioma respectivo para indexar. Para obtener los resultados correctos para la búsqueda, debe aplicar la identificación del idioma a la consulta de búsqueda y usar ese analizador.

Lo bueno aquí es que podrás usar stemmer y amp; palabras clave, elevando la calidad de la búsqueda. La sobrecarga adicional durante la indexación debe ser aceptable. Sin embargo, las consultas de búsqueda donde la identificación del idioma no puede identificar el idioma correcto pueden verse afectadas. He usado este par de años atrás y los resultados fueron mejores de lo esperado.

Para CJK, puede aplicar una técnica similar pero las herramientas pueden ser diferentes.

He usado StandardAnalyzer con palabras que no están en inglés y funciona bien. Incluso trata con caracteres acentuados. Si el idioma es CJK (chino, japonés, coreano), ruso o alemán, puede tener problemas, pero sospecho que la mayoría de los problemas estarán relacionados con la derivación de las palabras. Si no tiene habilitada la derivación, probablemente será adecuada.

Evidencia puramente anecdótica, pero utilizamos una versión (personalizada, pero no relevante) de StandardAnalyzer para nuestro sistema. Nuestros documentos pueden no solo estar en diferentes idiomas entre sí, sino que también pueden contener fragmentos de diferentes idiomas (por ejemplo, imagine un artículo escrito en japonés con comentarios en inglés), por lo que es difícil oler el idioma.

La mayoría de nuestros documentos están en inglés, pero un número significativo está en chino y japonés, con un número menor en francés, español, portugués y coreano.

¿Resultado final? Usamos StandardAnalyzer , y tenemos muy pocas quejas de personas que usan el sistema en idiomas no romanos sobre la forma en que funciona nuestra búsqueda. Nuestro sistema es algo "forzado" en sus usuarios, por cierto, por lo que no es que la gente no se queje sino que se mude a otro lado; si son infelices, generalmente lo sabemos.

Entonces, en base al hecho de que no estoy abrumado por las quejas de los usuarios (muy ocasionales, principalmente sobre chino, pero nada serio y se explican fácilmente) parece ser "lo suficientemente bueno" para muchos casos.

La respuesta correcta depende de su idioma principal (si corresponde).

Para un mejor rendimiento de IR en varios idiomas, iría con un analizador de 4/5 gramos, se ha demostrado que funciona muy bien en muchos idiomas. Incluso podría funcionar mejor que SimpleAnalyzer para inglés también. Consulte http://www.eecs.qmul.ac. uk / ~ christof / html / publications / inrt142.pdf por ejemplo.

He investigado esto , pero desde otro ángulo. Parece que no hay un analizador general: cada idioma necesita su propio enfoque para obtener los mejores resultados.

Primero, ¿debes saber cuál es tu idioma? Por ejemplo, mis documentos están en Inglés, japonés o persa. puede encontrar que el idioma de su documento por proceso en Caracteres UTF-8.

Luego, cuando encuentre que su documento está en qué idioma, puede analizarlo con Analizador específico.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top