source open gratis chattypeople chatfuel botsify artificial-intelligence chatbot

artificial intelligence - open - ¿Cómo crear un chat inteligente bot?



chatfuel (6)

Hay una gran descripción de Eliza en Paradigmas de la Programación de IA . Debería poder implementar un bot simple de Eliza en unos pocos días de trabajo.

Este no es un algoritmo de aprendizaje, pero es sorprendente cómo pueden ser las respuestas realistas a partir de algo tan simple.

Sé que sigue siendo un problema abierto, así que no espero ver respuestas completas aquí. Solo quiero encontrar algunos enfoques para resolver el siguiente problema:

Tengo un modelo (supongo que es la memoria de bot), y diferentes palabras están asociadas con diferentes objetos en el modelo. Hablar con el bot es como ejecutar sql-consultas con un DB. El lenguaje es un protocolo formalizable muy difícil. Y no podemos simplemente escribir un millón de líneas de código para implementar algún lenguaje real. Pero creo que es absolutamente posible implementar algún mecanismo de autoaprendizaje. ¿Cómo se puede implementar? ¿Es posible implementar el aprendizaje "desde cero" o "a partir de pocas palabras básicas"? Solo quiero escuchar tus ideas.

De hecho, el inglés es un lenguaje muy estricto y es uno de los idiomas más fáciles para experimentar con AI. Muchos otros idiomas le permiten cambiar el orden de las palabras (por ejemplo). Y en algunos casos, el cambio de orden puede cambiar todo el significado o simplemente agregar algo de entonación. Realmente no tengo ninguna idea de cómo enseñar un bot para estas cosas.


Mira la implementación de MegaHAL para algunas ideas. Hemos usado una variante de este robot durante siglos en un canal IRC nuestro, y en ocasiones parece ser la mezcla inteligente de muchas de nuestras personalidades dominantes.


Puede crear su propio bot de chat en BOT libre, http://www.botlibre.com .

Los bots aprenden, pueden ser entrenados, pueden ser guionados, y tu puedes programarlos, o dejar que se programen ellos mismos.

El sitio de Thew admite la inserción de su bot en su propio sitio, tiene acceso a la API REST, Android, IRC, Twitter. Alojamiento gratuito, incluso para bots comerciales.


Usted "entrena" al bot - cada vez que el bot responde, clasifica (o el probador) la respuesta - si la respuesta es buena / lógica - otorgue un rango alto, si la respuesta es mala ... rango bajo / negativo.

usa el ranking en el futuro para elegir la respuesta, y así es como aprende el bot ...


AIML del proyecto AliceBot puede ayudarte. Es un esquema XML completo (si eso no lo desanima) para la rama de AI con la que se trata.

Un ejemplo de Wikipedia:

<category> <pattern>WHAT IS YOUR NAME</pattern> <template>My name is <bot name="name"/>.</template> </category>

RebbeccaAIML es una implementación bastante bien documentada.


El primer paso para llevar este juego al siguiente nivel es ...

... tener una visión muy clara del estado de la técnica

(y perdóname por decir que la pregunta no sugiere que tengas una idea tan amplia del asunto [y no estás solo, cuéntame ;-)])

Incluso, y tal vez en particular, si su intención es aplicar técnicas y modelos completamente novedosos, parece importante revisar la literatura sobre prácticas actuales y pasadas . Además de la posible identificación de elementos que pueden ser adaptados o reutilizados en una nueva implementación, una encuesta del dominio proporcionará una gran comprensión de la naturaleza del problema [s].

¡ Personalmente he intentado -en varias y múltiples ocasiones! - el enfoque ingenuo o el enfoque de segundo orden para abordar problemas ampliamente definidos. Con el enfoque ingenuo, uno tiene una ligera idea de la verdadera naturaleza y alcance del problema. El sophomoric nos ve mejor equipados con conocimientos de dominio y también con herramientas relacionadas, pero esto también puede ser engañoso porque, sin una comprensión más profunda, tendemos a leer mal / entender mal el nuevo material que se nos ofrece y también a utilizar algunas de las herramientas ( un poco como el tipo que es "bueno con un martillo" para quien muchas cosas parecen un clavo ...)

Es particularmente fácil cometer estos errores en el campo de PNL. Eso es porque

  • El sentido común parece ser todo lo que se requiere: después de todo, un niño, cuya lengua materna es el inglés, entiende sutilezas como
    "Él no es realmente un experto"
    " Realmente no es un experto"
    (pequeño guiño a la referencia del PO al orden de las palabras en inglés)
  • Vivimos en tiempos tan emocionantes, tecnología y conocimiento sabio: poder de procesamiento, lenguaje de programación y herramientas, técnicas matemáticas, disponibilidad de corpora asequible ... por nombrar algunas de estas cosas que hacen que este momento en el tiempo sea tan especial.

Lejos de mí, la idea de desanimarte en tu tarea de chat-bot, solo espero que esta exposición larga y genérica te anime a mirar antes de saltar, ya que esto realmente te ahorrará tiempo en el largo plazo, creo que en dos caminos:

  • proporcionarle marcos de referencia (una vez más, incluso si su intención es "pensar fuera de estos recuadros")
  • tal vez tentarlo a redefinir el problema, por ejemplo, limitándolo a dominios particulares de conversación (deportes, salud o vida en un campus universitario en particular ...) o centrándose en un aspecto particular del problema (conciencia semántica, sin problemas). , gramática que suena natural, uso de formas coloquiales ...)

Buena suerte ;-)