Skip to content

Este es un simple buscador que permite encontrar palabras clave similares a una palabra buscada. Para realizar esto, verifica los caracteres que coinciden entre ambas utilizando el algoritmo Needleman-Wunsch.

License

Notifications You must be signed in to change notification settings

lozaeric/pymsearch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

PymSearch - Buscador aproximado desarrollado en PHP

Descripción:

El buscador fue diseñado para permitir la búsqueda aproximada dentro de un conjunto de palabras clave. Esto se realiza asignando un "puntaje" para cada palabra clave con respecto a la palabra buscada. Este puntaje es en realidad la cantidad de caracteres en común entre ambas palabras y se calcula utilizando el algoritmo Needleman-Wunsch. Ya con todos los puntajes calculados, se elije la palabra clave con mayor similitud a la buscada. Hay excepciones porque tenemos casos donde esta operación produce resultados inesperados. Por ejemplo, si busco una palabra breve será vinculada con otra más larga que contenga sus caracteres. Un ejemplo sería buscar "gps" y que exista la palabra clave "camara anti golpes". Esto no es un comportamiento esperable. Por otro lado, tenemos otra complicación, el puntaje debe ser representativo de la palabra buscada. No puedo asociar la palabra "wire" con "walk" si únicamente tienen un caracter en común.

Para resolver estos dos problemas existen dos ratios: el primero relaciona el puntaje con la longitud de la palabra (por defecto es 0.75) y el segundo se refiere a la longitud de la clave y la palabra (por defecto es 2). En resumen, para que una clave sea una respuesta valida, debe cumplir estas condiciones:

  • longitud_palabra * 0.75 < puntaje_clave
  • longitud_palabra * 2 > longitud_clave

Instalación:

	require_once "buscador.php";

Instanciación:

Usando los valores por defecto:

	$palabras_clave = ["tablet", "drone", "smartwatch", "camara anti golpes", "gps"];
	$buscador = new Buscador($palabras_clave);

Asignando valores a los ratios:

	$palabras_clave = ["tablet", "drone", "smartwatch", "camara anti golpes", "gps"];
	$buscador = new Buscador($palabras_clave, 0.5, 3);

Utilización:

	$palabra = "gps";
	print_r ($buscador->obtener_palabra_clave($palabra));

About

Este es un simple buscador que permite encontrar palabras clave similares a una palabra buscada. Para realizar esto, verifica los caracteres que coinciden entre ambas utilizando el algoritmo Needleman-Wunsch.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages