Homenaje al primer ChatBot
Introducción
En el capítulo anterior hemos visto cómo se puede crear interacción entre el hombre y la máquina con la ayuda de medios sofisticados, como la detección de formas y el reconocimiento de letras usando redes neuronales circunvolucionales.
Sin embargo, no podíamos despedirnos sin haber rendido homenaje al primer ChatBot que también hizo posible este encuentro entre el hombre y la máquina con medios técnicos mucho más sencillos. Además, este ChatBot fue el que, hace unos diez años y por una lectura casual, creó en mí el deseo de descubrir qué era la inteligencia artificial. Por eso hemos querido compartir con usted lo que, para nosotros, marcó el punto de partida de una gran aventura.
Eliza
Escrito por Joseph Weizenbaum (Alemania) entre 1964 y 1966, el programa Eliza fue el primer ChatBot que desempeñó el papel de un psiquiatra, donde el usuario del programa era el paciente.
En comparación con los ChatBots actuales, Eliza parece insignificante. Pero, a pesar de su funcionamiento sencillo basado en la sustitución de palabras clave, muchos usuarios creyeron que hablaban con un doctor auténtico.
1. ¿Cómo funciona Eliza?
Cuando se le propone una frase a Eliza, el algoritmo busca en ella una palabra clave que conozca y luego propone una respuesta en función de esta palabra clave. En la mayor parte de los casos, esta respuesta es una pregunta abierta para provocar que el usuario continúe con la conversación.
Por ejemplo:
-
El usuario hace la siguiente afirmación: "Quiero un coche".
Al algoritmo se le ha dado la información de que cuando reconozca la palabra clave "Quiero", extraiga el texto situado después de esta palabra clave y lo utilice en una frase de respuesta:
(
r'Quiero (.*)',
(
"¿Puedes explicarme por qué has elegido %1?",
"¿Por qué quieres %1?",
"¿Por qué %1?",
"¿Quién más sabe que quieres 1 %?",
),
),
La respuesta debe elegirse al azar entre las cuatro posibles; las respuestas emitidas por Eliza pueden ser:
-
¿Puedes explicarme por qué has elegido un coche?
-
¿Por qué quieres un coche?
-
¿Por qué un coche?
-
¿Quién más sabe que quieres un coche?
Le invitamos a sustituir la palabra "coche" por la frase "saber cómo funcionas" para que sea consciente del límite de este funcionamiento:
-
¿Puedes explicarme por qué has elegido saber cómo funcionas?
La complejidad de este ChatBot no reside en su programación o en la comprensión de su funcionamiento, sino en la creación de las distintas palabras clave y sus respuestas asociadas porque deben estar en concordancia con el caso práctico de ChatBot (medicina, agencia de viajes…). Todo ello mientras...
Otros ChatBots
El submódulo Chat del módulo NLTK (Natural Language Toolkit) ofrece la implementación de distintos ChatBots como Eliza, Rude y otros que funcionan basándose en el principio de la reflexión, es decir, la búsqueda de palabras clave y la construcción de respuestas a partir de esta palabra clave.
Si lo desea, puede introducir estas líneas de programa en un archivo de Python nuevo para probarlas. Atención, el ChatBot Rude corre el riesgo de molestarle con sus respuestas.
Las conversaciones con los ChatBots deben hacerse obligatoriamente en inglés.
from __future__ import print_function
from nltk.chat.util import Chat
from nltk.chat.eliza import eliza_chat
from nltk.chat.iesha import iesha_chat
from nltk.chat.rude import rude_chat
from nltk.chat.suntsu import suntsu_chat
from nltk.chat.zen import zen_chat
bots = [
(eliza_chat, 'Eliza (Psiquiatra)'),
(iesha_chat, 'Iesha (Adolescente drogadicto)'),
(rude_chat, 'Rude (ChatBot incorrecto)'),
(suntsu_chat, 'Suntsu (Proverbios chinos)'),
(zen_chat, 'Zen (Perlas de sabiduría)'),
]
def chatbots():
...
Ya hemos llegado al final
Este caso práctico también suena a final de este libro. A medida que avanzaba en su lectura y a través de casos concretos, ha podido descubrir los aspectos de Machine Learning y de Deep Learning. Hemos intentado simplificar conceptos complejos y esperamos haberlo conseguido.
Como ya hemos mencionado en la presentación de este libro, ante todo este debe ser considerado como un punto de entrada a la comprensión y la implementación de proyectos que giran en torno a la inteligencia artificial. Intentando no ofender a los especialistas, muchos conceptos han sido abordados de manera escueta, pero ahora este enfoque le permite continuar con su aventura teniendo en cuenta los principios fundamentales que le permitirán, entre otras cosas, comprender los distintos artículos y tutoriales que lea en Internet o en libros especializados.
¿Qué hacer a continuación? Ahora tiene que lanzarse a la realización de proyectos de Machine Learning y de Deep Learning. Para conseguirlo, le invitamos a realizar los retos que aparecen en el sitio web de Kaggle. Estos ejercicios le permitirán asentar sus habilidades y adquirir otras nuevas. Sin olvidar las posibilidad que puede brindarle el intercambio con una gran cantidad de personas de todo el mundo que trabajan en el campo de la inteligencia artificial. Eso le permitirá obtener una visión sobre su trabajo. Por supuesto, somos...