K-Site Fuzzy

K-Site Fuzzy es el sistema completo de búsqueda aproximada sobre bases de datos desarrollado por Daedalus. A diferencia de STILUS Fuzzy, que devuelve alternativas palabra a palabra de la consulta de usuario, las sugerencias de K-Site Fuzzy son registros completos almacenados en dicha base de datos.

K-Site Fuzzy es tanto un programa ejecutable independiente, al que se puede consultar como un servicio en un puerto local (socket) de la máquina, como una biblioteca software integrable de forma sencilla en cualquier aplicación para complementar su funcionalidad.

Características

Internamente, K-Site Fuzzy se basa en unas estructuras muy eficientes de almacenamiento de datos, puesto que el tiempo de respuesta del sistema va a ser directamente proporcional al de acceso a la información de índices. En este caso los índices se almacenan en una estructura de datos llamada trie, cuyo nombre proviene de "reTRIEval" (en inglés se pronuncia como "tree") y básicamente consiste en una estructura de árbol para almacenar cadenas, en la que cada letra se sitúa en un nodo.  

En un trie, las operaciones de búsqueda resultan muy rápidas porque son independientes del número de entradas almacenadas. Además, las operaciones relacionadas con la búsqueda de prefijos pueden realizarse de forma especialmente eficiente, debido al modo en que se almacenan las cadenas de texto, compartiendo entre las diferentes palabras los caracteres iniciales comunes.

El sistema hace uso de las funciones de STILUS Fuzzy que implementan la búsqueda borrosa de términos individuales (palabras). Esta clase recibe como entrada una cadena con el término que se quiere buscar y como resultado proporciona una lista de sugerencias (términos "parecidos") junto con un valor de penalización (esto es, la distancia de cada sugerencia al término original), desde 0.0 (término original correcto) a un máximo dependiente del número máximo de operaciones de edición configuradas (cada operación en media penaliza 10.0).

Los fenómenos lingüísticos que se tratan en STILUS Fuzzy son:

  • Errores de omisión de caracteres (presidente -> *pesidente)
  • Errores de transposición de caracteres (construcción -> *cosntrucción)
  • Errores de sustitución de caracteres (música -> *múzica)
  • Errores de adición de caracteres (altavoz -> *altiavoz)
  • Errores de concatenación de palabras (San Sebastián -> *Sansebastián)

K-Site Fuzzy implementa la búsqueda borrosa de entradas completas. Recibe como entrada una cadena con la consulta que se quiere buscar y como resultado proporciona una lista de las entradas de la base de datos "que más se parecen" a la consulta original.

Los fenómenos lingüísticos que se tratan en este nivel son:

  • Errores de segmentación de palabras (Fuenlabrada -> *Fuen Labrada)
  • Eliminación de palabras de parada
  • Sustitución de alias de números (siglo 21 -> siglo veintiuno)
  • Sustitución de abreviaturas (Hermanos -> Hnos)

El proceso de búsqueda es el siguiente:

  1. Segmentación de la consulta en términos
  2. Obtención de sugerencias de cada término (llamando a STILUS Fuzzy)
    1. Solo el término, o concatenándolo con los siguientes
    2. Si el término tiene un alias o es un alias ("Fco." -> "Francisco"), añadir su correspondencia como sugerencia
  3. Ordenación de las sugerencias de cada término, por penalización ("distancia lingüística" de cada sugerencia al término original), de menor a mayor, y selección de los primeros términos
  4. Búsqueda de entradas completas, con todos los términos:
    1. Si el término no es palabra de parada, el término o cualquiera de sus alternativas debe aparecer en la entrada
    2. Si el término es palabra de parada, el término o cualquiera de sus alternativas puede aparecer o no

Por tanto, las entradas completas se seleccionan con un AND entre todos los términos que no sean de parada, y considerando cada término como un OR de sí mismo y todas sus alternativas.

  1. Búsqueda parcial de entradas completas: en el caso de que no haya sugerencias de entrada completa y la consulta tenga más de un término, se buscan entradas en las que no aparecen todos los términos
  2. Ordenación de las entradas por penalización, de menor a mayor, y selección de las "NumeroDeSugerencias" primeras entradas (configurable por parámetro)

La penalización ("distancia lingüística") de cada entrada se calcula como la suma para todos los términos de la penalización menor de cada término individual, más la ponderación por un número de factores (definibles mediante parámetro) tales como penalización por alias, por frecuencia de palabra y/o de entrada o un factor dependiente de la longitud de la entrada.

Si desea más información sobre este producto no dude en ponerse en contacto con nosotros. También puede acceder a la demostración disponible en nuestro sitio web de demostraciones, Showroom.

White paper sobre Tecnologías Avanzadas de Búsqueda

Descárgalo >>

Showroom

Pruebe nuestros productos...

Showroom >>