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

¿ Manera eficiente de búsqueda ?

Estas en el tema de ¿ Manera eficiente de búsqueda ? en el foro de Mysql en Foros del Web. Me presento cordialmente ante ustedes y espero ser de gran ayuda en el foro. y comienzo con una duda, sobre PHP y MYSQL para una ...
  #1 (permalink)  
Antiguo 22/04/2013, 08:56
Avatar de meizerherzen  
Fecha de Ingreso: abril-2013
Ubicación: Panamá
Mensajes: 2
Antigüedad: 11 años, 6 meses
Puntos: 0
Sonrisa ¿ Manera eficiente de búsqueda ?

Me presento cordialmente ante ustedes y espero ser de gran ayuda en el foro.

y comienzo con una duda, sobre PHP y MYSQL para una búsqueda eficiente y rápida, generalmente tengo un programa que es muy parecido a un BOT de inteligencia artificial en donde no utilizo de nlp,wordnet ni java, simplemente pura información almacenada en la base de datos,

la lemantizacion es llevar la conjuncion del verbo a su manera original o masculina

tablas de verbos
tablas de lemantizacion
tablas de ortografia
tabla de posibles preguntas
tabla de posibles respuestas

y entre otras, y al pasar la pregunta insertada por todos los puntos como

limpieza, ortografia, lemantización llega a ser una pregunta totalmente limpia y valida para buscarla con una posible pregunta, y tengo una tabla que contiene 100,000 posibles preguntas lemantizadas y esto puede ser un poco complejo ya que he tenido experiencia con FULL TEXT / INSTR pero ellas generalmente me ocacionan daños o resultado incorrectos ¿porque?

por esto:

Pregunta: estoy buscando el perro::
Pregunta filtrada: yo buscar perro.

Pregunta en la base de datos: buscar perro julio, buscar perro perrera, buscar perro.

es posible que las funciones de MYSQL me devuelvan unas de ellas y cada una de ella contiene respuestas diferentes, de esta manera se vuelve ineficiente y no preciso, la manera que lo hago es

trayendo la información por FETCH() y revisar con STRPOS [[ stpos(Pregunta, ' '.basededatos.' ') ]] y cuando la encuentre haga break, pero todos sabemos que este metodo es bruto y ineficiente ya que tiene que traer todos los registros para revisarlos.

Ejemplo

Q1 = Q->query(SELECT pregunta FROM tabla);
WHILE(r1 = Q1->fetch()):
stpos(Pregunta, ' '.basededatos.' ') // TRUE OR FALSE
endwhile;


Si no me explique o no me entiendes me pueden decir para expresarme mejor.
  #2 (permalink)  
Antiguo 22/04/2013, 09:09
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 13 años, 4 meses
Puntos: 181
Respuesta: ¿ Manera eficiente de búsqueda ?

Hola, aunque solo trabaje a modo teorico esto de las busquedas de palabras (mas en concreto me refiero a audio, no letras) me acuerdo que uno podria empezar a utilizar arboles de busqueda para lograr mejores métodos de búsqueda. Los arboles basicamente entre mas ramas tiene mayor sera el nivel de precisión de la búsqueda (lo cual hara que encuentre menos resultados) y entre mas general encontrara mas resultados.

Si bien no se como opera el algoritmo de FULL TEXT supongo que se debe basar en alguna manera en algun algoritmo de estos.

Como ves es un poco teorico porque desconozco si a nivel practico en PHP la gente ha desarrollado este tipo de algoritmos. Si alguien conoce sobre el tema que nos pegue una mano, yo tratare de buscar algo mas practico si me queda tiempo.

p.s. He encontrado esto de tipo mas practico. Te tocaria a ti crear las reglas para eliminar prefijos y sufijos de las palabras y apoyarte con sql para refinar tu busqueda. Estoy crudo en el tema porque llevo ya varios años sin trabajarlo. Te tocaria conseguir mas información teórica para lograr arboles con mejores reglas, es algo mas academico.

https://gist.github.com/thinkphp/1448754
__________________
Blog de humor http://elcuasatar.net63.net/

Última edición por cuasatar; 22/04/2013 a las 09:16
  #3 (permalink)  
Antiguo 22/04/2013, 09:33
Avatar de meizerherzen  
Fecha de Ingreso: abril-2013
Ubicación: Panamá
Mensajes: 2
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: ¿ Manera eficiente de búsqueda ?

ya lo solucioné, gracias por todo. voy a publicar post de NLP y wordnet para el foro, gracias por todo.

Etiquetas: bot, php
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 06:40.