Cómo crear un chat-bot inteligente? [cerrado]


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

Tengo un modelo (supongamos que es la memoria del bot), y diferentes palabras están asociadas con diferentes objetos en el modelo. Hablar con el bot es como ejecutar consultas sql con una base de datos. El lenguaje es un protocolo formalizable muy difícil. Y no podemos escribir un millón de líneas de código para implementar un 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 "de pocas palabras"? Sólo quiero escuchar tus ideas.

En realidad, el inglés es un idioma muy estricto y es uno de los idiomas más fáciles para experimentar con IA. Muchos otros idiomas le permiten cambiar el orden de las palabras (por ejemplo). Y en algunos casos el orden cambiado puede cambiar todo el significado o simplemente añadir alguna entonación. Me realmente no tengo ninguna idea de cómo enseñar a un bot para estas cosas.

Author: Janusz, 2009-11-17

6 answers

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

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

(y perdóname decir, la pregunta no sugiere que tengas una visión tan extensa del asunto [y no estás solo, cuenta conmigo; -)])

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

He personalmente intentado-en varias y múltiples ocasiones!- el enfoque ingenuo o el enfoque de segundo año para abordar problemas ampliamente definidos. Con el enfoque ingenuo, uno no tiene más que una ligera idea de la verdadera naturaleza y alcance del problema. El segundo año nos ve mejor equipados con el conocimiento del 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 mal-leer/mal-entender el nuevo material que se nos ofrece y también mal uso de 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 la 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 es no realmente un experto"
       "Él es realmente no un experto"
    (pequeño guiño a la referencia de la OP al orden de la palabra en el idioma inglés)
  • Vivimos en tiempos tan emocionantes, en cuanto a tecnología y conocimiento: Poder de procesamiento, lenguaje y herramientas de programación, técnicas matemáticas, disponibilidad de corpus asequibles... por nombrar algunos de estos cosas que hacen que este momento en el tiempo sea tan especial.

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

  • proporcionar algunos marcos de referencias (de nuevo, incluso si su intención es "pensar fuera de estas cajas")
  • tal vez te tiente a redefinir el problema, por ejemplo, limitándolo a dominios particulares de conversación (deportes, o salud, o vida en un campus universitario en particular...) o centrándose en un aspecto particular del problema (conciencia semántica, gramática suave y natural, uso de formas coloquiales...)

Buena suerte; -)

 22
Author: mjv,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-25 14:16:36

Echa un vistazo a La implementación de MegaHAL para algunas ideas. Hemos usado una variante de este bot durante años en un canal de IRC nuestro, y en ocasiones parece ser la mezcla inteligente de muchas de nuestras personalidades dominantes.

 8
Author: Cory Petosky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-17 13:36:12

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

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

 6
Author: Dani,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-17 13:36:36

Hay una gran descripción de Eliza{[2] {} en[3]}Paradigmas de IA Programación. Usted debe ser capaz de implementar un simple bot Eliza en unos pocos días de trabajo.

Esto no es un algoritmo de aprendizaje, pero es sorprendente lo realistas que pueden ser las respuestas a partir de algo tan simple.

 4
Author: Jeff Foster,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-17 13:41:25

Puedes crear tu propio chat bot en BOT libre, http://www.botlibre.com .

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

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

 -1
Author: James,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-12-30 20:05:42

AIML del proyecto AliceBot puede ayudarte. Es un esquema XML completo (si eso no lo desanima) para la rama de IA que le interesa.

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.

 -3
Author: Chris S,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-17 13:50:11