Hay muchas maneras de hacer esto. “Lo mejor” dependerá de cuán inteligente desee que sea el bot y de cuán técnicamente experto sea con las tecnologías necesarias para construirlo.
Quizás el robot más simple aprende de la entrada humana y responde con algo que ha escuchado anteriormente (es decir, sin salida generada por la máquina). He escrito un bot que hace esto, en aproximadamente 600 líneas de código. Puedes probar el bot aquí: Chatbot
El algoritmo básico es:
- Cómo sentirnos cuando la tecnología nos complica la vida
- ¿Qué tecnología espera de la próxima generación de ciudad inteligente?
- ¿Existe un software de presupuesto de enlace de modelado 3D para comunicaciones de radio?
- ¿Cuáles son los gadgets smarthome geniales que salieron de Kickstarter?
- ¿Qué le habría pasado a la Tierra si la tecnología occidental nunca hubiera evolucionado?
- Comience la conversación seleccionando una frase aleatoria de la base de datos, preferiblemente la frase que el bot ha pedido la menor cantidad de veces posible (para que podamos obtener más respuestas a esa frase), y pregúntele al humano. Llamémoslo frase “Q” para preguntas.
- Cuando el humano responde, almacene la respuesta (llamémosla frase “A” para respuesta) en la base de datos (está bien si esa frase ya existe). En otra tabla que rastrea conversaciones individuales, almacene el hecho de que la frase “Q” se puede responder con la frase “A”. (Eventualmente, el bot generará múltiples respuestas posibles para la frase “Q”).
- Aquí es donde sucede la magia: encuentre una frase en la base de datos que coincida más con la frase “A”. (“La mayoría de las coincidencias” se deja como un ejercicio para el lector, pero podría significar “suena como”, “coincide de acuerdo con la función MySQL MATCH ()”, etc.). Luego, consulte la base de datos para encontrar la respuesta más frecuente dada por los humanos a esa frase, que ahora se convierte en su nueva frase “Q”. Haga esa pregunta al humano y regrese al paso 2. ¡Repita hasta el infinito hasta que el humano se aburra!
He omitido algunos detalles adicionales, pero eso es aproximadamente el 95% del algoritmo.