Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

¿Cómo se usa Soundex?

Estas en el tema de ¿Cómo se usa Soundex? en el foro de Mysql en Foros del Web. Buenas, He estado leyendo sobre Soundex, pero no sé muy bien como aplicarlo a la práctica, ¿cómo hago para sacar resultados similares en la base ...
  #1 (permalink)  
Antiguo 20/06/2008, 03:01
Avatar de pempas  
Fecha de Ingreso: diciembre-2003
Ubicación: Barcelona
Mensajes: 985
Antigüedad: 20 años, 11 meses
Puntos: 6
¿Cómo se usa Soundex?

Buenas,
He estado leyendo sobre Soundex, pero no sé muy bien como aplicarlo a la práctica, ¿cómo hago para sacar resultados similares en la base de datos con una consulta?

Gracias.
  #2 (permalink)  
Antiguo 20/06/2008, 08:07
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: ¿Cómo se usa Soundex?

Como imagino que ya has leído bastante sobre el tema, más allá de lo que dice la wikipedia sobre las reglas, y estarás al tanto de los problemas de soundex en MySQL: que está pensado para el inglés; y que no funciona con codificación utf-8, sólo te daré alguna información práctica. También sabrás que existen otros algoritmos fonéticos más evolucionados, como metaphone, pero del que no se sirve, que yo sepa, MySQL.
Vamos a un ejemplo práctico:
en un formulario para búsquedas el cliente escribe casi de cualquier manera: se confunden vocales, se escriben mal consonantes, se hace una escritura fonética, etc. Pues bien, para resolver problemas como ese se podría usar soundex, si hiciera su trabajo para nuestra lengua o lenguas como lo hace para el inglés.
imaginemos que alguien quiere buscar 'paco' pero escribe por error o confusión 'pago', 'paso', 'pazo' o 'pajo'.
Una sintaxis de consulta sobre una tabla donde escribes en el campo nombre el nombre tal como esta:

SELECT nombre FROM `tutabla` WHERE soundex( 'pazo' ) = soundex( nombre )

te encontraría 'paco'; y, si tuvieras pago, paso, pazo, etc. también. Naturalmente, en lugar de 'pazo' estaría la variable de búsqueda traída del formulario.
Si analizas los resultados con unas pocas pruebas o estudiando las reglas del algoritmo soundex, podrás hacer consultas muy variadas para controlar errores o confusiones (por ej., la b y la v, si no se trata de inicial, tienen el mismo valor). Muchos de los programas en los que al escribir una palabra mal se te muestra la palabra que probablemente buscabas funcionan con algoritmos fonéticos como soundex, levensthein, metaphone, etc. Pero eso que nos lo digan los técnicos.
Finalmente, si manejas otros programas podrías recurrir a metaphone, de la que creo que existen scripts adaptados a lenguas distintas del inglés.
Probablemente ya sabías todo esto, pero por si acaso... y sirve de orientación.

Última edición por jurena; 20/06/2008 a las 09:31
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 03:07.