2009-09-14 9 views
13

He estado estudiando soundex, metaphony y otras técnicas de búsqueda de cuerdas los últimos días, y en mi comprensión ambos algoritmos funcionan bien en el manejo de palabras no inglesas transliteradas al inglés.Habilitando soundex/metaphone para caracteres no ingleses

Sin embargo, el requisito que tengo es que dicha búsqueda funcione en los idiomas originales, sin traducir, que incluyan alfabetos como el alemán, el noruego e incluso el alfabeto cirílico.

¿Hay algún algoritmo de búsqueda capaz de manejar estos alfabetos por completo? ¿O es mejor utilizar bibliotecas de búsqueda de texto completo de terceros como Lucene? En consecuencia, la pregunta entonces se convierte en '¿Lucene maneja alfabetos no ingleses?'

+1

Si su caso de uso es solo una búsqueda textual en idiomas distintos del inglés, es posible que no necesite soundex. Necesitas a Lucene con un Analizador adecuado, como lo dijo ire_and_curses. Si desea manejar diferentes variantes de escritura de la misma palabra, necesitará un algoritmo de coincidencia fonética. ¿Puedes decir más sobre tu caso de uso? –

Respuesta

15

No soy un experto en esta área, pero sus requisitos me parecen bastante difíciles. Soundex fue diseñado específicamente para sonidos en inglés así como también para personajes. No creo que funcione bien para idiomas que no sean inglés. Ver por ejemplo las respuestas al this related question.

Double-Metaphone es un intento de manejar variaciones mucho más complejas que Soundex o Metaphone, y fue diseñado para manejar irregularidades en una variedad de idiomas. Puede ser suficiente para sus necesidades. Hay una lista de implementaciones de biblioteca en la página vinculada.

Soporte para otros idiomas en Lucene se basa en el concepto de Analyzers. Lucene viene con un conjunto de analizadores para diferentes idiomas (aunque no pude encontrar la lista predeterminada), pero la calidad puede ser quite variable.

+0

Parece que los analizadores Lucene + es lo que realmente estoy buscando, gracias. :) –

+0

¿qué pasa con los idiomas chino, japonés, árabe e indio? – Sharique

0

Hay algunas buenas referencias en Wikipedia, a partir del artículo Soundex. No sé si existen bibliotecas diseñadas para manejar una gran variedad de idiomas.

+0

Las referencias allí apuntan hacia algoritmos que manejan deletreos Anglicized de nombres europeos. No he visto ninguno que realmente maneje los caracteres especiales tal como están, a menos que los entienda mal. –

+1

Pensé que tal vez algunas de las variantes de Soundex estaban diseñadas para funcionar mejor con otros idiomas, pero están enfocadas en la ortografía inglesa o anglosajona. No sería difícil escribir algo como SOundex para cada uno de esos idiomas, pero es probable que necesites la ayuda de un lingüista, si no eres un hablante nativo. –

Cuestiones relacionadas