jueves, 17 de abril de 2008

¿Qué es un chatterbot?

Un chatterbot es un simulador de conversación realizado como un programa de computadora que da la apariencia de conversar con los usuarios en lenguaje natural tipeado. Decimos tipeado porque al ser los chatterbots softbots, estos, es su mayoría, no tienen la capacidad de escuchar ni hablar, por lo que la idea es mantener una conversación tipeando.
¿Cómo funciona el lenguaje? Una de las disciplinas de la IA es el estudio del lenguaje natural. Los lingüistas tratan de proveer una descripción general de cómo el lenguaje humano esta estructurado y basarlo en modelos teóricos y matemáticos.
La pregunta es ¿que dice la gente? La otra disciplina estudia la naturaleza del comportamiento como una explicación del proceso mental y la comunicación entre individuos.

¿Cómo funcionan?

La forma de responder de la mayoría de los chatterbots es simple y casi no ha cambiado desde la primera aparición de ELIZA: el programa busca patrones en la entrada del usuario y responde con salidas predeterminadas si el patrón coincide.

¿Cómo se implementan?

La mayoría de los chatterbots implementan un modulo de conversación como un conjunto ordenado de patrones de entrada en donde cada elemento posee un conjunto de posibles respuestas. Este modulo esta compuesto por:
  • Repuestas de alta prioridad: son las que se dan cuando hay una consulta común tal que los patrones clave se pueden resolver sin problemas.
  • Respuestas de baja prioridad: son aquellas respuestas que el robot debe conocer acerca de el mismo (¿donde vivís? ¿Quien te hizo? etc.).
  • Respuestas de disculpas: son las que se dan cuando no se encuentran las consultas ingresadas (continua…, ¿entonces?, ¿que queres decir con eso? etc.).
  • Red de activación: es la codificación de la red de respuestas que se deben dar ante cierta tendencia de la conversación.

¿Cómo funciona la red de activación?

Es una especie de árbol donde cada nodo tiene los siguientes atributos:
  • Activación: cada nodo comienza con un nivel de activación que va de 0.0 a 1.0
  • Patrones: uno o mas patrones (con peso) son comparados con la entrada del usuario, si hay coincidencia, el nodo se activa por el monto indicado.
  • Respuesta: una línea de texto que se utiliza como respuesta si el nodo tiene el nivel más alto de activación.
  • Incremento: si este nodo es utilizado como respuesta, se incrementa el nivel de activación a todos los nodos nombrados en este atributo.
  • Inhibición: si este nodo es utilizado como respuesta, se decrementa el nivel de activación a todos los nodos nombrados en este atributo.

Estrategias y trucos de los programas

  • Dar la ilusión de escuchar: esto se logra incluyendo subcadenas de la entrada del usuario en la respuesta.
  • Admitir ignorancia: el programa puede decir “no lo se” como respuesta.
  • Cambiar de tema: por ejemplo preguntando ¿Por qué preguntas eso?
  • Declaraciones polémicas: como por ejemplo “la gente no tiene gatos” es una manera de arrastrar al usuario a la conversación que el programa quiere, en lugar de dejar que el usuario sea quien la elija.
  • Hacer chistes: es una forma de que el programa parezca más humano.
  • Estar de acuerdo con el usuario, a veces, es mejor que ser neutral.
  • Simular tipeo incluyendo retardos realísticos entre caracteres, imitando el ritmo de escritura de una persona.

¿Para qué se utilizan los chatterbots?

Hoy en día los chatterbots están siendo utilizados en muchas páginas web de compras y de comercio electrónico. Otros están funcionando como enciclopedias interactivas parlantes. Se pueden encontrar también administrando canales de IRC actuando como moderadores con habilidad, incluso de expulsar y banear usuarios. Pero en la actualidad, la mayoría de los chatterbots son un experimento de cómo engañar a las personas haciéndolos creer que la computadora puede pensar.

Dr. Abuse

Dr. Abuse es un programa de Inteligencia Artificial que demuestra apariencia humana.Se trata de un chatterbot con el que se puede mantener una conversación divertida y más o menos inteligente. Dr. Abuse ha sido entrenado en cientos de conversaciones con usuarios humanos o robóticos a través de Internet y otros medios.