De una consulta de usuario como entrada a los resultados de búsqueda como salida: Búsqueda en Lenguaje Natural

Inbenta tiene una ratio de autoservicio insuperable gracias a su motor de búsqueda semántica basada en el lenguaje natural. El motor de búsqueda semántica permite establecer una correspondencia entre las consultas de usuario sin estructurar y los errores ortográficos con títulos de FAQs concretos y estructurados para que los usuarios encuentren la información que buscan de manera rápida y fácil, de una manera sin precedentes.
Uno de los principales retos del Procesamiento en Languaje Natural es tratar la ambigüedad característica del lenguaje natural.
Tomemos como ejemplo la frase “tomar medidas“.  La palabra “tomar” a menudo se refiere al acto de ingerir comida o bebida, pero en este contexto en concreto significa “hacerse cargo”.  La diferencia es obvia para un humano familiarizado con el castellano, pero no para un ordenador.
Incluso aunque un ordenador sea capaz de analizar la sintaxis de una frase como “tomar medidas“, seguirá sin detectar la diferencia entre esta frase y la frase “tomar cerveza”- a pesar de que el significado de estas dos frases sea completamente distinto.
La búsqueda semántica de Inbenta da un paso más y analiza el significado contextual de las palabras, de manera que se selecciona la mejor definición de la palabra “tomar” aun cuando la sintaxis y la misma palabra son iguales.
Este documento explica de manera sucinta el funcionamiento de este proceso.
Pongamos que una empresa de telecomunicaciones debe crear una serie de FAQs, una base de conocimiento, que sirva para que sus clientes encuentren información relacionada con sus dudas.
Para este ejemplo en concreto, hay una FAQ que describe el coste y los planes de llamadas a otros países con el título:
“¿Cuánto cuestan las llamadas internacionales?”
Todo parece correcto, ¿no? Sin embargo, el problema radica en que la probabilidad de que tus clientes busquen esta FAQ utilizando las mismas palabras clave que aparecen en el contenido es remota.
En su lugar, escribirán preguntas como:
“how much wll me cost to call to francw” (¿cuánto me costrá llamar a francia?)
Los usuarios siempre utilizarán frases de búsqueda que describan su situación particular, de manera que sus palabras serán diferentes a las empleadas en la FAQ, porque éstas siempre describen una situación más general.
Lo primero que hace Inbenta es aplicar un sofisticado algoritmo de corrección ortográfica.

Spelling

En el ejemplo citado “wll” no es una palabra en inglés, así que no forma parte de nuestro extenso diccionario y necesita corregirse.
Podríamos arreglar la ortografía con “will”, “well” o “wall”. No obstante, la corrección más probable sería “will” ya que ésta es la que se ajusta en mayor medida al significado de toda la frase
En cuanto al otro error ortográfico:  “francw”.  las posibles correcciones serían “francs”, “franc” y “France”, aunque la más acertada en este caso sería el nombre del país. Decir “la más acertada” es una decisión fácil para los humanos, pero es muy difícil para un ordenador. El diccionario de Inbenta que está en diversas lenguas (castellano, catalán, euskera, gallego, inglés y francés, entre otras) contiene información sobre posibles combinaciones de palabras, basándose en las particularidades de la base de conocimiento en cuestión así como en las características generales del idioma en concreto.

Search

A partir de este punto, Inbenta deja de tratar la pregunta de usuario con errores ortográficos y encuentra resultados para la versión corregida de la pregunta:
El siguiente paso es resolver cualquier ambigüedad en la frase (y en lenguaje natural siempre hay ambigüedades)
“how much will it cost to call to France?”

Ambiguity

Para ello, Inbenta utiliza varias herramientas: diccionario, análisis sintáctico, gramáticas locales y funciones léxicas.
Llevar a cabo un correcto análisis sintáctico y semántico es crucial para encontrar respuestas relevantes.
Mediante el análisis sintáctico Inbenta determina la función específica de cada palabra en esa pregunta en particular. El resultado de este análisis es el siguiente:

Speech

El análisis de la frase dependerá de muchos factores, el diccionario, reglas de desambiguación, contexto, etc.
 Por ejemplo, la palabra “call” es un nombre que puede tener varios significados que no están relacionados con llamadas telefónicas- “urge”, “decision”, “cry” etc. pero como verbo, y en el contexto de las telecomunicaciones, sin duda “call” se refiere a llamar por teléfono.
A continuación, Inbenta realiza un análisis semántico para determinar la importancia relativa de cada palabra en la frase. Los usuarios suelen añadir cantidad de información en la pregunta que no es esencial para encontrar una respuesta relevante. Las palabras de búsqueda adicionales introducidas por el usuario se denominan “ruido” y con frecuencia conducen a resultados irrelevantes. Sin embargo, nuestro sistema es capaz de determinar las palabras importantes que llevan carga semántica. A partir de una base de conocimiento específica y del exclusivo algoritmo semántico basado en la estadística, Inbenta asignará un peso semántico específico a cada palabra de la pregunta de usuario:

Percentage

Como se puede comprobar, no todas las palabras en la pregunta de usuario tienen la misma importancia. En este caso, “cost” y “France” contienen casi el 70% del total de “peso semántico” de la pregunta de usuario. Ahora nos acercamos a obtener una respuesta relevante para esta pregunta.
Inbenta posee un extenso diccionario que contiene cientos de miles de términos y muchos tipos de relaciones semánticas denominadas “Funciones Léxicas”. Estas funciones léxicas abarcan relaciones sencillas, como los sinónimos, y además relaciones más complejas que dependen del contexto donde aparezca la palabra.
Gracias al diccionario y a las funciones léxicas, Inbenta es capaz de reconocer frases con el mismo significado pero expresadas con distintas palabras.
Finalmente, con el “algoritmo de significado” somos capaces de detectar el grado de proximidad de esas frases desde el punto de vista del significado.
Entre otras muchas, el diccionario contiene las funciones léxicas siguientes:
  • La palabra “international” está relacionada con “country”, y con los nombres de los distintos países. De este modo, “France” y “international” son palabras que de algún modo están relacionadas en términos de significado.

Semantic Tree

  • Asimismo, este usuario en concreto preguntó por “cost”, es decir, la cantidad que se paga por un servicio. Sin embargo, el autor de la FAQ utilizó el término “price”, que es básicamente el mismo concepto, pero desde la perspectiva de la persona a la que se le paga, no de la persona que paga.  De este modo, “cost” y “price” están relacionados.

Paraphrase

Mediante estas dos funciones léxicas, Inbenta sabe que la consulta de usuario está relacionada con los conceptos de ‘pricing’ e ‘international’, a pesar de que la consulta no utilice estas palabras.
El léxico aumenta a diario mediante el trabajo de los Lingüistas Computacionales.
En este caso en concreto, nuestro “Algoritmo de Coincidencia Semántica” patentado, en combinación con el extenso léxico nos permite interpretar que la pregunta de usuario y esta FAQ en concreto tienen una “coincidencia semántica” de exactamente el 57,49%.
Si no hay otra FAQ con mejor puntuación de coincidencia semántica, la FAQ titulada “What is the price for international calls?” aparecerá como primer resultado.
El autor de la FAQ sólo escribió “What is the price for international calls?“; no tuvo que añadir paráfrasis, etiquetas, editar ficheros de sinónimos, o revisar alternativas de vocabulario.
En Inbenta creemos que los creadores y editores de la base de conocimiento sólo deberían preocuparse de CUÁL es el contenido, y no de CÓMO se encuentra ese contenido. Inbenta se encarga de esto, para que el gestor de conocimiento tenga tiempo de escribir MÁS y MEJORES contenidos.
Asimismo, es importante tener en cuenta que nuestro motor de búsqueda semántico debe tener un tiempo de respuesta extraordinario, a pesar de tener que buscar entre miles de FAQs y de que miles de usuarios preguntan de manera distinta exactamente al mismo tiempo.
En este ejemplo, nuestro motor de búsqueda tardó sólo 0,0033376097679138 segundos en encontrar la respuesta correcta a esta pregunta en una base de más de 2500 FAQs.