lozaeric / pymsearch

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.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

License:MIT License


Languages

Language:PHP 100.0%