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
- El usuario contacta con el chatbot, saludo inicial
- El usuario hace una pregunta en lenguaje natural
- El chatbot analiza el texto y devuelve una respuesta
- 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