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

Como buscar un nombre con errores de ortografia

Estas en el tema de Como buscar un nombre con errores de ortografia en el foro de Bases de Datos General en Foros del Web. Tengo un problema, estoy haciendo un script en php el cual por medio de html pido el apellido el cual quiero buscar en mi BD, ...
  #1 (permalink)  
Antiguo 21/06/2004, 13:22
Avatar de padrino  
Fecha de Ingreso: mayo-2004
Ubicación: Aguascalientes, Ags. la tierra de la gente buena
Mensajes: 161
Antigüedad: 20 años
Puntos: 0
Exclamación Como buscar un nombre con errores de ortografia

Tengo un problema, estoy haciendo un script en php el cual por medio de html pido el apellido el cual quiero buscar en mi BD, pero si lo escriben mal quiero que me muestre lo que mas se aproxime a este ejmplo escribo el apellido gonsales y en mi BD esta como gonzalez, quiero que me muestre el mas parecido o los mas parecidos que en este caso seria gonzalez, la sentencia sql like no me sirve ya que dinamicamente no se en que parte podria ser un error.



CHALE ESPERO TENGA SOLUCION

ATTE

EL PADRINO
  #2 (permalink)  
Antiguo 21/06/2004, 15:55
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
haz que te liste los 2 o 3 nombres que iran adelante y atras del nombre solicitado.
  #3 (permalink)  
Antiguo 22/06/2004, 07:55
Avatar de padrino  
Fecha de Ingreso: mayo-2004
Ubicación: Aguascalientes, Ags. la tierra de la gente buena
Mensajes: 161
Antigüedad: 20 años
Puntos: 0
De acuerdo Creeo Que No

GRACIAS POR DARME TU OPINION TE LO AGRADESCO MUCHO, PERO HBER SI TE ENTENDI, ME DAN UN NOMBRE UGO <original HUGO> (UN ERROR BURDO PERO PASA), OKEY SI PONGO MI SENTECIA SQL ASI (SELECT nombre FROM nametable WHERE nombre LIKE '_$vargetname%'), funcionaria OK, PERO EN EL PEOR DE LOS CASOS ESCRIBE JABIER <originalmente JAVIER aunque a quie en mexico existe el nombre de jabier, pero en este caso quiso escriobir el original> NO ME SIRVE, ESO ES LO QUE YO TE ENTENDI, NO SE SI TU PUNTO DE VISTA ES DIFERENTE SI ES ASI TE PIDO DE FAVOR QUE SEAS MAS EXPLICITA, UNA SOLUCION QUE ME DIJERON ERA CREAR LA FUNCION, ESTOY TRATANDO DE PROGRAMARLA, PERO SI EXISTE OTRO CAMINO MENOS PIEDRERO SE LOS AGRADESCO, PERO SI NO EXISTE Y TERMINO LA FUNCION SE LAS DISTRIBUYO.

GRACIAS

ATTE
CLI. JOSE MANUEL GONZALEZ DOMINGUEZ
  #4 (permalink)  
Antiguo 22/06/2004, 10:07
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Si estas usando como BD sql server te puede servir la funcion SOUNDEX, que precisamente hace lo que estas buscando..pero me imagino que estas usando mysql verdad..??

Voy a seguir checando de todas formas haber si encuentro algo parecido..

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #5 (permalink)  
Antiguo 22/06/2004, 10:38
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Yo había pensado también en el SOUNDEX RootK, es más existe en MySQL y en la mayoría de BD 13.3 String Functions. Pero ahora viene la pregunta del millón... ¿Cómo aplicarías el SOUNDEX de un extracto para buscar en una frase? o sea,

El usuario escribió "jabier" y en la BD tenemos estos valores:

"Carlos Javier"
"Jabier Alfonso"
"Javiera Maria"

¿Cómo aplicarias el soundex? no funcionaría ya que el soundex agarraría la ocurrencia de TODA la cadena y no de una parte.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #6 (permalink)  
Antiguo 22/06/2004, 11:04
Avatar de padrino  
Fecha de Ingreso: mayo-2004
Ubicación: Aguascalientes, Ags. la tierra de la gente buena
Mensajes: 161
Antigüedad: 20 años
Puntos: 0
De acuerdo Casi

BUENO, LA VERDAD ESTOY CON ORACLE 9i Y PHP, YA HABIA PROVADO ESTA INSTRUCCION PERO SEGUN TENGO ENTENDIDO TE BUSCA COMO SUENA, NO SE SI ESTOY EQUIVOCADO EN ESTO, O COMO SE PRONUNCIA (SEGUN YO), PERO SI ESTOY EQUIVOCADO ME PUEDES DECIR COMO LO IMPLEMENTARIA.

SUPONIENDO QUE TENGO UNA TABLA PRUEBA CON CAMPOS (NOMBRE)
los datos que tengo son

BLANCA ESTELA BAILON QUINONEZ
BLANCA ESTELA TORRES EZPARZA
BLANCA ESTHELA DURAN CHAVEZ
BLANCA ESTHELA HERNANDEZ SEGOVIA


quiero buscar BLANCA ESTHELA DURAN CHAVEZ

pero el usuario se equivoca y pone para buscar "BLANCA ESTELA" yo quiero mostrarle estas 4 opciones para que si fue un error ortografico pueda verlo.
  #7 (permalink)  
Antiguo 22/06/2004, 12:02
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Padrino, el escribir en MAYÚSCULA es considerado "mala educación" en foros o chat (se interpreta como GRITAR). Además, es más dificil y cansado leer. Por favor no lo hagas.

Respondiendo a tu problema, el error humano no lo vas a poder controlar, eso es un hecho. Para eso tendrías que hacer un cursor complejo que descomponga cada parte del nombre y vaya comparando con el SOUNDEX. Si lo haces de esa forma, la consulta va a ser muy pesada (tiempo de respuesta) y puede que no funcione.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #8 (permalink)  
Antiguo 22/06/2004, 12:31
Avatar de padrino  
Fecha de Ingreso: mayo-2004
Ubicación: Aguascalientes, Ags. la tierra de la gente buena
Mensajes: 161
Antigüedad: 20 años
Puntos: 0
perdon

perdon, no me habia puesto a analizar el comentario que me haces BrujoNic, gracias por el consejo lo tendre muy en cuenta, y estas en lo sierto con respecto a las mayusculas suena muy logico, por otra parte yo tengo la filosofia de que nada es imposible en este mundo, que el porpio hombre define el fin o el limite de algo, el objetivo de mi pregunta es para saber si ya esta construida la rueda para no perder tiempo en reconstruirla, pero si no esta pues invertir tiempo en construirla, creeo que a muchas personas les puede interesar este problema, podemos empesar solucionando el problema parcialmente no contemplar todos los casos y poco a poco incorporando mayor funcionalidad, no crees, ciertamente todo en esta vida tiene un costo en este caso es el rendimiento de respuesta y saturacion de peticiones al servidor, pero creeo que seria de gran utilidad realizar esta funcion, y tratar de perfeccionarla.

desgraciadamente el tiempo me come,(no porque este viejo digo tengo 22), si no porque tengo hasta noviembre para desarrollar este sistema, solo que esta parte se la quiero poner como un plus, y pues en si me falta mucho por desarrollar, pero le dedicare el mayor tiempo que pueda y alguien me puede ayudar se lo agradesco mucho si no pues tratare de reolver este problema y lo compartire con ustedes....

¡VIVA MEXICO, MI PATRIA QUERIDA, EL ORGULLO DE TODA LA NACION!
  #9 (permalink)  
Antiguo 22/06/2004, 13:00
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
Pero ahora viene la pregunta del millón... ¿Cómo aplicarías el SOUNDEX de un extracto para buscar en una frase?
Estoy de acuerdo contigo BrujoNic porque si uno se pone a crear una funcion que deconponga la frase y vaya comparando con SOUNDEX c/u de las palabras el performace sería demasiado bajo.

Aunque en este problema sería interesante encontrar una buena solución.

Salu2
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




La zona horaria es GMT -6. Ahora son las 20:15.