viernes, 20 de mayo de 2011

Definición ChatBot

Según Wikipedia 
"... Un bot de charla o bot conversacional (ChatBot) es un programa que simula mantener una conversación con una persona. Habitualmente, la conversación se establece a través de un teclado, aunque también hay modelos que disponen de una interfaz de usuario multimedia. Más recientemente, algunos comienzan a utilizar programas conversores de texto a sonido (CTV), dotando de mayor realismo a la interacción con el usuario.
Para establecer una conversación han de utilizarse frases fácilmente comprensibles y que sean coherentes, aunque la mayoría de los bot conversacionales no consiguen comprender del todo. En su lugar, tienen en cuenta las palabras o frases del interlocutor, que les permitirán usar una serie de respuestas preparadas de antemano. De esta manera, el bot es capaz de seguir una conversación con más o menos lógica, pero sin saber realmente de qué está hablando.
Quizás comenzaron como un juego, pero hoy en día están muy extendidos. Muchos tienen su razón de ser e incluso esa razón es de bastante utilidad para todos. Los bots más clásicos y tempranos son Eliza, SmarterChild, Parry y SHRDLU; entre los más recientes se encuentran Racter, A.L.I.C.E o Jabberwacky y Dr. Abuse (de Barres&Boronat) muy parecido a Eliza.
Los más avanzados, son programas capaces de mantener una conversación lógica y pseudo inteligente en un determinado idioma. Algunos de los más complejos están programados en C++, Delphi o similares, y otros más sencillos en Action Script, PHP, VBScript, etc. Incluso, algunos de ellos pueden ser consultados vía web. Existen muchos otros con amplia presencia en redes de IRC, donde son conocidos como bots de charla o bots de chat. ..."


Para mi y de una forma muy sencilla, un ChatBot "Clásico" es un programa que ante unas serie de frases de entrada es capaz de responder de forma aleatoria a cada frase de entrada con una frase de salida de un conjunto de frases de salida, de modo que simulan cierta capacidad de conversación.


Actualmente creo que debemos llegar más allá y además de simular capacidad de conversación debemos ser capaces de enriquecerlos con más capacidades que simulen más inteligencia. Este tipo de ChatBots es lo que considero de "Segunda Generación".

GreenBot Un ChatBot de Segunda Generación

Ultimamente he estado investigando y programando en C# un ChatBot que he llamado de "Segunda Generación". Actualmente está en estado Beta y en breve subire una versión estable para que vayais probándola y comenteis las mejoras que se podrían realizar. GreenBot, así he llamado al ChatBot, está basado en el SDK de reconocimiento de lenguaje natural Verbot 5 (http://verbots.sourceforge.net/) y en los cerebros AIML (http://www.alicebot.org/aiml.html) traducidos, modificados y ampliados. Lo he considerado de segunda generacíón pues además de las funciones tipicas de los ChatBots pretendo dotarlo de cierta inteligencia adicional.