Aunque los primeros chatbots se desarrollaron hace más de diez años[1], su aplicación como asistentes virtuales ha sido muy limitada debido a que el resto de tecnologías asociadas para su desarrollo no estaban maduras (como se ha visto en el apartado anterior). Su conocimiento básico para emitir preguntas y responder cuestiones se definía a través de reglas sintácticas y lenguajes de scripting diseñados específicamente para este propósito. Sin embargo, la aplicación de las técnicas de NLP (Procesamiento del Lenguaje Natural) junto al machine learningha permitido que los chatbots diesen un salto cualitativo, por lo que en la actualidad coexisten dos tipos de chatbot que se dividen dependiendo de si la característica dominante es texto hardcodeado del tipo preguntas / respuesta o si por el contrario lo es la Inteligencia Artificial.
El primer tipo de chatbots, que denominaremos estructurados o retrieval-based, usa un repositorio de respuestas predefinidas y su manera de seleccionar las respuestas correctas está basada en la interacción y el contexto. Este tipo de chatbots parte de un conjunto de preguntas / respuestas codificadas. Por lo tanto, tiene una base de conocimiento y un juego de habilidades reducidos y sólo puede proporcionar la respuesta correcta a instrucciones específicas. Esto significa que nuestras preguntas deben ajustarse a la programación que se les ha dado. Por ejemplo, la pregunta «¿a qué hora abre el museo mañana?» podría ser contestada fácilmente al igual que a un amplio espectro de variantes. No obstante, si en repositorio de entidades no han sido incluidos los errores tipográficos más comunes, por ejemplo una pregunta potencial simple como ‘horairo de mañana’, en la que está mal escrita la palabra “horario”, puede hacer que el chatbot responda con una respuesta de tipo «Lo siento, no entendí la pregunta».
El segundo tipo de chatbots son los generativos, ya que no dependen de respuestas predefinidas y generan nuevas respuestas al vuelo haciendo uso de técnicas avanzadas de inteligencia artificial y machine learning, siendo sus componentes básicos los siguientes:
- Sistema de Inteligencia artificial que incluye algoritmos de machine learning que son capaces de identificar relaciones y extraer información de datos no estructurados y reconocer patrones. Los sistemas más avanzados pueden incluir algoritmos de reconocimiento de sentimientos.
- Un clasificador que incorpora un sistema de Natural Language processing (NLP) y de Named Entity Recognizer (NER) capaz de llevar a cabo un análisis y desambiguación de los términos iniciales en base a probabilidades y relaciones conceptuales proporcionadas por una ontología.
- Un SDK (Kit de desarrollo de software) formado por un conjunto de herramientas de desarrollo de software que le permite al programador o desarrollador de software conectar con una API (Aplication Programming Interface) con la que podemos utilizar un servicio web provisto por un tercero.
- Un controlador o configurador de canal que conecta el modelo con un canalde comunicación tipo chat (endpoint) a través de una interfaz entre los bots y los humanos.
- Un sistema de ejecución de flujo de diálogo a través del que podemos comunicarnos de voz a texto o de texto a voz con el chatbot, es decir, una interfaz de usuario donde se construye el diálogo del bot en función del contexto y de un conjunto de variables, que cambia y evoluciona según el contenido y el contexto del diálogo.
Los chatbots de primera generación (que funcionan en base a preguntas y respuestas estructuradas codificadas) son menos complejos y sólo pueden ser tan inteligentes como la programación que se le ha dado, mientras que los de segunda generación (dotados de cierto poder de comprensión en un proceso de machine learning que mejorará cada vez que se interactúe con los bots) no necesitan ser tan específicos. Siguiendo el ejemplo anterior, un chatbot con IA descubrirá que ‘horairo’ es un error tipográfico, devolviendo como respuesta la hora de apertura.
Sin embargo, para crear los contenidos que integren ese conocimiento, el chatbot necesita ayudarse de una representación del conocimiento suficiente como para cubrir lamayor parte de posibles preguntas y respuestas que los usuarios puedan ofrecer, y ahí es donde entran en juego las ontologías de la Web semántica como representación del conocimiento, proporcionando un salto cualitativo sobre el potencial de los chatbots.
[1] Entre las tecnologías de chatbot más populares, podemos mencionar ALICE, siglas de Artificial Linguistic Internet Computer Entity (Wallace 2005) y Chatscript. La tecnología ALICE está basada en AIML (Artificial Intelligence Markup Language), un tipo de lenguaje de marcado como el XML. (D. Mori et al., 2013).