2016 fue proclamado el año de los chatbots en su momento. Pasó lo mismo con el 2017 y, ahora, en 2018 vuelve a pasar lo mismo: escuchamos hablar de chatbots por todos lados. Cada vez son más las compañías tanto grandes como pequeñas que se unen al uso de estos agentes informáticos. Si quieres saber qué son los chatbots y por qué se han vuelto tan populares, sigue leyendo esta entrada.
Un chatbot (o simplemente bot) es una agente informático programado para participar en conversaciones escritas o grabadas emulando a un humano. Las funciones que puede desempeñar son muy diversas y, por tanto, el enfoque que se les puede dar también; sin embargo, el uso principal que se le ha dado hasta ahora es el de servicio al cliente.
La complejidad para crear un chatbot ha disminuido considerablemente a comparación de hace unos años. Actualmente, por ejemplo, es bastante sencillo ir a la red social Facebook y, sin necesidad de grandes habilidades en programación, poder programar nuestro propio bot en un tiempo irrisorio. El avance constante de la tecnología ha hecho que, lo que antes era una tarea titánica, ahora con tantas APIs, módulos y herramientas, nos podemos centrar en otras cosas más importantes y no tanto en hacer que el agente funcione.
Orígenes de los chatbots
ELIZA fue uno de los primeros programas de computadoras para el procesamiento del lenguaje natural o NLP por sus siglas en inglés. Este software fue uno de los primeros programas capaces de pasar la prueba de Turing para medir la capacidad de las máquinas para exhibir comportamientos inteligentes similares a los del ser humano. A pesar que el funcionamiento de ELIZA era solamente distinguir unas pocas palabras claves y a partir de ellas elaborar una respuesta previamente programada, en su momento ese fue un gran avance para los chatbots que, hasta hoy en día, siguen utilizando un sistema de procesamiento de lenguaje similar al que ELIZA utilizó en su momento.
¿Cómo funciona un chatbot?
Un chatbot necesita ser entrenado previo a ponerse en funcionamiento con ayuda de logs de conversaciones. Estos logs son de especial utilidad para que el agente sea capaz de identificar qué es lo que intentaba comunicar un usuario al escribir cierta cadena de texto, e incluso el estado de humor con el que lo hacía. En este proceso se utilizan modelos de Machine Learning para que el bot también sea capaz de identificar preguntas que nunca fueron hechas pero que estaban implícitas en las respuestas contenidas en dichos logs.
Cualquier chatbot debería de ser capaz de entrenarse a sí mismo a partir de las conversaciones que tiene una vez que ya está funcionando, es por eso que los algoritmos de Machine Learning son fundamentales. También puede valerse de preguntas nuevas para lograr relacionar ideas nuevas con conceptos ya existentes y viceversa. Además, después del problema que hubo en 2016 cuando Tay el bot de Microsoft que se volvió racista, misógino y anti-semita conforme aprendía, quedó claro que los bot también deben de tener respuestas que no deberían de cambiar independientemente de cuánto se le entrene.
Cuando una cadena de texto ingresa a un bot, este necesita encontrar patrones en ella. De nuevo se utiliza procesamiento de lenguaje natural (NPL). Las reglas para encontrar patrones en conversaciones pueden ser almacenadas en archivos estructurados derivados de XML como puede ser AIML:
<category> <pattern>Quién es Nikola Tesla</pattern> <template>Nikola Tesla fué un inventor, ingeniero eléctrico, ingeniéro mecánico y físico conocido por sus grandes contribuciones al diseño de fuentes de energía basadas en corriente alterna.</template> </category>
Una vez que el chatbot ha sido entrenado, es capaz de aprender y utilizar reglas de reconocimiento de patrones, el siguiente paso es aplicar un algoritmo para localizar la mejor respuesta para cada situación. Este proceso puede ser muy exigente computacionalmente hablando. Popularmente se ha optado por soluciones reduccionistas para lograr tomar estas decisiones. Las redes neuronales multicapa han sido solo una de esas soluciones; primero se detectan ciertas palabras claves que en seguida son ingresadas a estas redes.
Al finalizar el procesamiento en la red neuronal, el agente (chatbot) selecciona la mejor respuesta para la conversación actual.
Software para su desarrollo
Los chatbots son una tecnología en crecimiento, por tanto, las grandes y medianas empresas han aprovechado la demanda de mercado para ofrecer, en su mayoría, alternativas de pago para su creación. Otras compañías como Telegram o Facebook ofrecen APIs gratuitas para crear chatbots pero para uso exclusivos dentro de sus plataformas.
Algunas otras opciones como Botpress o Watson de IBM sirven para crear bots de uso general de forma gratuita con ciertas limitaciones; si quisiéramos las versiones completas de dichas herramientas, sería necesario pagar. Si solamente te interesa aprender sobre chatbots o quieres comenzar a usarlos pero no a gran escala, estas son de especial utilidad ya que no se limitan al uso dentro de una sola plataforma y puedes comenzar usando la versión gratuita.