Introducción a los chatbots

¿Qué se cuece dentro de Siri?

Por Alberto Fernández Valiente

¿Cómo llegamos a los chatbots?

  • Alan Turing
  • 1950 - Articulo "Computing Machinery and Intelligence"
  • ¿Pueden las máquinas "pensar"?
  • ¿Pueden las máquinas ganar el "juego de la imitación"?

El test de Turing

  • Dos sujetos, un ordenador y un humano
  • Un evaluador independiente aislado de ellos
  • Canal de comunicación textual
  • ¿Puede el evaluador identificar cuál de los dos es la máquina?
  • Premio Loebner, sin ganador desde 1991

Eliza

  • 1966
  • Joseph Weizenbaum (MIT)
  • Búsqueda de patrones y sustituciones
  • Interacciones programadas en guiones (DOCTOR)

A.L.I.C.E.

  • 1995
  • Richard Wallace
  • Procesamiento de lenguaje natural y reglas heurísticas
  • Desarrollado en Java
  • Reglas almacenadas en XML (AIML)

Cleverbot

  • 1997
  • Rollo Carpenter
  • Heredero de Jabberwacky de 1988
  • Búsqueda de palabras claves y frases
  • Base de datos con conversaciones previas
  • Accesible en Cleverbot

Watson

  • 2006
  • Jeopardy!
  • Procesamiento de lenguaje natural y aprendizaje automático
  • 90 servidores, 2880 núcleos, 16TB de RAM
  • Búsqueda de soluciones en paralelo

Siri

  • 2010
  • Asistente virtual
  • Reconocimiento del lenguaje hablado y aprendizaje automático
  • Adaptación al usuario mediante el uso continuado

Bots para Telegram

  • 2015
  • Aplicación de mensajería instantánea
  • Plataforma abierta al desarrollo de terceros
  • Buena documentación y facilidad para crear un bot

El flujo de un chatbot

  1. El usuario contacta con el chatbot, saludo inicial
  2. El usuario hace una pregunta en lenguaje natural
  3. El chatbot analiza el texto y devuelve una respuesta
  4. Vuelta al punto 2

Los tres ejes básicos

  • Detección de la intención del usuario
  • Extracción de entidades
  • Flujo de diálogo

¿Que podemos utilizar para crear un chatbot?

  • Procesamiento del lenguaje natural
  • Técnicas de aprendizaje automático

Procesamiento del lenguaje natural

  • Tokenización de palabras
  • Análisis de la estructura sintáctica
  • Creación de un corpus lingüístico propio

Técnicas de aprendizaje automático

  • Clasificador
  • Word2Vec
  • Creación de un conjunto de entrenamiento

¿Cómo construimos las respuestas?

  • Base de datos de respuestas
  • Ampliación de respuestas con contenido propio

¿Qué necesitamos para montar un chatbot?

  • Orquestador
  • Framework de desarrollo del entorno
  • Diseño de la infraestructura necesaria

Enlaces

NLTK

spaCy

Watson Assistant

Amazon Lex

Dialogflow