SISTEMAS
INTELIGENCIA
ARTIFICIAL:
TRABAJO PRCTICO
ENTIDADES ARTIFICIALES
CONVERSACIONALES
ALUMNOS:
CARELLA FABRICIO
GUNTAUE OMAR
RIZZUTO FLORENCIA
PROFESORES:
GONZALEZ DANIEL
POSTAY JUAN
INDICE
Introduccin ................................................................... 3
Marco Terico Histrico .................................................... 4
La Prueba de Turing ...................................................... 4
ELIZA .......................................................................... 6
PARRY ......................................................................... 7
Premio Loebner ............................................................. 8
A.L.I.C.E. ..................................................................... 9
Cleverbot ................................................................... 11
Cleverscript ................................................................ 12
Arquitectura y Funcionamiento bsico de un Chatbot ....... 14
Estado del Arte ............................................................. 15
Desarrollo - Ejemplo Prctico .......................................... 17
Ejemplo de cdigo tipo ELIZA ....................................... 17
Cleverscript ................................................................ 20
Instrucciones ............................................................ 20
Base de Conocimiento ............................................... 24
Relacin con temas vistos .............................................. 25
Conclusiones ................................................................. 27
Bibliografa ................................................................... 28
Pgina 2 de 28
Introduccin
Cuando en 1950 Alan Turing escribi el artculo Computing machinery
and intelligence defini lo que hoy se conoce como el Test de Turing cuyo
objetivo es determinar si una maquina era inteligente o no.
Las ansias por superar esta prueba llevaron al desarrollo de las Entidades
Conversacionales Artificiales, incluso a la creacin de una competicin anual de
carcter internacional conocida como Premio Loebner en donde se califican a
las entidades participantes de acuerdo a su resolucin del Test de Turing
esperando que alguna de ellas llegue a superarlo completamente.
Una Entidad Conversacional Artificial, o tambin conocido como Agente
Conversacional, es un programa que simula mantener una conversacin con
una persona. Habitualmente, la conversacin se establece a travs de un
teclado, aunque tambin hay modelos que disponen de una interfaz de usuario
multimedia. Ms recientemente, algunos comienzan a utilizar programas
conversores de texto a sonido, dotando de mayor realismo a la interaccin con
el usuario.
Los Agentes Conversacionales tienen caractersticas que son muy similares a
la inteligencia humana, tales como la capacidad para aprender, o adaptarse a
la nueva informacin.
Algunos usan sofisticados sistemas de Procesamiento de Lenguaje Natural,
pero muchos simplemente escanean palabras claves en la entrada y emiten
una respuesta con las palabras claves que concuerden, o un patrn de
redaccin muy similar, a partir de una base de datos textual.
Los Agentes Conversacionales se han utilizado en aplicaciones muy diversas,
como:
Comercio electrnico, donde los agentes pueden responder las
preguntas de los usuarios sobre productos y servicios, y finalmente
guiar la venta del artculo e incluso realizar el pedido mediante un
sistema web.
Help Desk o soporte, que utilizan a los agentes para resolver las dudas
de los usuarios sobre ciertos problemas tcnicos con un producto o un
dispositivo.
Navegacin web, en donde guan a los usuarios para navegar y
encontrar informacin en sitios web complejos con un alto nmero de
enlaces.
Educacin, donde los agentes ensean o ser enseados por los
estudiantes en ciertos dominios e incluso sirven como acompaantes
para evitar el problema de aislamiento en el uso de plataformas de
aprendizaje en lnea.
Prosigamos entonces a ver cmo han evolucionado estas Entidades a lo largo
de la historia y cul es su funcionamiento interno. Tambin como se encuentra
el desarrollo de esta tecnologa el da de hoy con varios ejemplos de estos
sistemas, y como se relacionan con los temas vistos en la clase.
Pgina 3 de 28
Pgina 4 de 28
Pgina 5 de 28
ELIZA
ELIZA es un programa informtico que fue diseado y desarrollado en el MIT
entre 1964 y 1966 por Joseph Weizenbaum, un profesor emrito de
Informtica en el Instituto Tecnolgico de Massachusetts a quien se lo
considera uno de los padres de la ciberntica. ELIZA fue uno de los primeros
programas en procesar lenguaje natural. El mismo parodiaba al psiclogo Carl
Rogers e intentaba mantener una conversacin de texto coherente con el
usuario. En la literatura actual del tema concuerda en que este fue el primer
chatbot programado, si bien el trmino chatbot no exista en ese momento,
del cual muchos de los chatbots actuales se basan hoy en da. El trmino
"chatterbot", o tambin "chatbot", para referirse a las Entidades Artificiales
Conversacionales se origina en el sistema CHATTERBOT el cual corresponde a
un personaje de un juego de mazmorras multiusuario (Mauldin, 1994).
El mtodo de coincidencia de patrones, tambin llamado coincidencia de
claves o reglas, que utiliza ELIZA (copiado por diseadores de chatbots desde
siempre) implica el reconocimiento de las palabras o frases de referencia en la
entrada y la salida de las respuestas pre-definidas o pre-programadas
correspondientes que pueden dar continuidad a la conversacin de una
manera que de un significado aparentemente (por ejemplo, respondiendo a
cualquier entrada que contenga la palabra "MADRE" con "CUENTAME MAS DE
TU FAMILIA). Por lo tanto, se genera una ilusin de comprensin de la
conversacin, a pesar de que el procesamiento involucrado ha sido meramente
superficial. ELIZA mostr que tal ilusin es sorprendentemente fcil de
generar, porque los jueces humanos estn tan dispuestos a darle el beneficio
de la duda cuando las respuestas de conversacin son capaces de ser
interpretadas como "inteligentes". As, la tcnica de la clave - que caracteriza
a un programa como un chatbot en lugar de como un procesamiento del
lenguaje natural serio - es el sistema de produccin de respuestas que son
suficientemente vagas y no especficos que pueden ser entendidas como
"inteligente" en una amplia gama de contextos conversacionales. El nfasis
est normalmente en la vaguedad y la falta de claridad, ms que cualquier
transmisin de informacin genuina.
Los diseadores de la interfaz conversacional de los chatbots, han llegado a
apreciar como la disposicin de los seres humanos para interpretar la salida
del ordenador como una genuina conversacin, incluso cuando en realidad se
basa en algo simple coincidencia de patrones, pueden ser explotados con fines
tiles. La mayora de la gente prefiere interactuar con los programas que son
parecidos a los humanos, y esto da a las tcnicas de un chatbot un papel
potencialmente til en sistemas interactivos que necesitan para obtener
informacin de los usuarios, mientras que la informacin es relativamente
sencilla y caiga en categoras predecibles. As, por ejemplo, los sistemas de
ayuda en lnea pueden emplear tilmente las tcnicas de un chatbot para
identificar el rea de ayuda que requieren los usuarios.
Pgina 6 de 28
PARRY
Despus de ELIZA, lleg PARRY, diseado por Kenneth Colby en 1971. PARRY
fue pensado para reflejar la mente de un enfermo mental grave paranoico y,
como tal, se basa en las ms primitivas de las emociones humanas como el
miedo y la ira. Esto se logr mediante el uso de una base de datos de
patrones que aplicara valores positivos y negativos a ciertas palabras o frases
para actuar como disparadores para diversas emociones.
Aparentemente PARRY fue tan exitoso en su rol, as como lo fue ELIZA en el
suyo, que psiclogos profesionales estaban teniendo dificultades para discernir
a PARRY de una persona real con los mismos problemas.
Estos robots de charla y otros como ellos no tienen autoaprendizaje de ningn
tipo, son completamente dependientes de una base de datos que contiene los
patrones editada totalmente por un humano, sus autores, que pasaron cientos
de horas o ms, para aadir continuamente contenido de la base de datos de
sus chatbots.
Los creadores de los chatterbots siguen utilizando este enfoque, incluso ahora,
con algunas excepciones. Una forma muy simplificada y general de
aprendizaje se est convirtiendo cada vez ms predominante en los proyectos
actuales bots. Bsicamente, el bot recoger todos los datos de sus
conversaciones que tuvieron con la gente durante su tiempo de vida y
empezar a analizar la entrada y salida de los palabras u oraciones que se
utilizan comnmente de las que no. De esta manera, incluso en su forma ms
bsica, los creadores de bots pueden ahorrar enormes cantidades de tiempo
con slo mirar a travs de los resultados del bot y decidir que debe
mantenerse y cules no. Las preguntas y las respuestas que rara vez se
recogen sern las ms probablemente menos usadas o errneas y por lo tanto
sern ignoradas o dejados en la parte inferior de una pila, mientras que las
frases ms comunes se colocarn en la parte superior para ser considerados
para su utilizacin frecuente.
Pgina 7 de 28
Premio Loebner
Siguiendo con la lnea de tiempo naci por 1990 el Premio Loebner el cual es
una competicin de carcter anual que concede premios a un programa de
ordenador que est considerado por el jurado que lo compone, como el ms
inteligente de los que se han presentado. El formato de la competicin sigue el
estndar establecido en el test de Turing. Un juez humano se enfrenta a dos
pantallas de ordenador, una de ellas que se encuentra bajo el control de un
ordenador, y la otra bajo el control de un humano. El juez plantea preguntas a
las dos pantallas y recibe respuestas. En base a las respuestas, el juez debe
decidir qu pantalla es la controlada por el ser humano y cul es la controlada
por el programa de ordenador.
El concurso se inici por primera vez en 1990, patrocinado por Hugh Loebner
junto con el Centro de Estudios del Comportamiento de Cambridge, en
Massachusetts, Estados Unidos. Desde entonces se ha asociado con
Universidad Flinders, el Dartmouth College, el Museo de Historia Natural de
Londres, y, ms recientemente, la Universidad de Reading. La direccin del
comit organizador del concurso corri durante las tres primeras ediciones a
cargo del filsofo Daniel Dennett.
En el campo de la inteligencia artificial, sobre el Premio Loebner existe una
amplia controversia, y el ms prominente de sus crticos, Marvin Minsky, ha
mantenido que es un mero truco publicitario que no ayuda en nada al
desarrollo de esta ciencia.
Pgina 8 de 28
A.L.I.C.E.
A.L.I.C.E. (Artificial Linguistic Internet Computer Entity) tambin conocido
como Alicebot, o simplemente Alice, es un software de procesamiento de
lenguaje natural, es decir un chatterbot-un programa que involucra en una
conversacin con un ser humano mediante la aplicacin de un patrn
heurstico reglas de coincidencia a la entrada del ser humano. Fue inspirado
por el programa ELIZA de Joseph Weizenbaum pero a diferencia de este y
PARRY, ALICE no tiene un propsito particular como ellos (simular a un doctor
o a un paciente), sino que sus conversaciones son orientadas a un propsito
general.
Richard Wallace comenz el desarrollo del programa en 1995, mientras que
trabajba en la Universidad de Lehigh. El nombre del bot fue elegido porque la
computadora donde se desarroll la primera versin del software que se
llamaba Alice.
El programa fue reescrito en Java a partir de 1998 y actualmente la aplicacin
intrprete es llamada Programa D. El programa utiliza un esquema XML
llamado AIML (Artificial Intelligence Markup Language) para especificar las
reglas de conversacin heurstica.
Despus de 2001, la publicacin de una especificacin AIML de Richard
Wallace, muchos otros desarrolladores han tomado lo que Wallace dej y han
implementado intrpretes de AIML libres y de cdigo abierto en una gran
variedad de lenguajes de programacin, publicaron conjuntos de AIML en
varios idiomas humanos, y continuaron con la propagacin de la tecnologa
como una empresa libre y de cdigo abierto. Muchas implementaciones de
intrpretes de AIML se encuentran subidas a la web pudiendo efectuar charlas
con ellas.
Es uno de los programas ms fuertes de su tipo y ha ganado el Premio
Loebner, adjudicado a humanoide consumado, robots parlantes, tres veces (en
2000, 2001 y 2004). Sin embargo, el programa no es capaz de pasar la
prueba de Turing, ya que incluso el usuario ocasional menudo expondr sus
aspectos mecnicos en conversaciones breves.
Similar a ELIZA, el Lenguaje Inteligencia Artificial de Marcado (AIML) est
diseado para robots de estmulo-respuesta, mquinas de coincidencia de
patrones, los cuales asignan un patrn con o sin expresiones regulares, a la
entrada de cadena y entregar una plantilla de respuesta correspondiente la
cual esta guardada en su base de datos. Estas plantillas del mismo modo
pueden utilizar piezas coincidentes de la entrada como parte de su produccin.
Contrariamente a ELIZA, el ejemplo de bot AIML ms comn, el Bot ALICE, es
un producto de cdigo abierto, con cerca de 500 desarrolladores y creadores
Pgina 9 de 28
Pgina 10 de 28
Cleverbot
Pgina 11 de 28
Cleverscript
Luego de haber creado Cleverbot, Carpenter fund una empresa dedicada a la
IA en 2008 llamada Existor. Esta empresa creo Cleverscript el cual adopta un
enfoque opuesto a Cleverbot. Cleverscript est orientado a que el pblico en
general pueda construir rpidamente y poderosamente conversaciones con
guion.
Cleverscript es "programado" con cualquier aplicacin de hoja de clculo,
como Excel. En cuestin de minutos se puede crear un robot que habla con
uno mismo. Y en cuestin de horas, puede tener una simple ayudante de en
un sitio web automatizado, un agente de servicio al cliente, o en un juego
personajes con personalidad.
Los bots Cleverscript se crean utilizando hojas de clculo. La idea bsica es
escribir entradas (cosas que Cleverscript puede reconocer) y salidas (cosas
que Cleverscript puede decir) en lneas separadas de la hoja de clculo. Pero
no acaba de escribir las palabras en s como "Yo quiero ir a Espaa". En lugar
de escribir "Yo ((quiero)) para ir a ((pas))" y ms tarde en la hoja de clculo,
escribe que ((quiero)) se puede "quiero" o "realmente quiero" o "deseo", y
((pas)) puede ser Espaa, Francia o Grecia, Canad o Tailandia. Tambin hay
formas de permitir tolerancia, como erratas y faltas de ortografa. De esta
manera se puede conseguir muy rpidamente en Cleverscript reconocer
cientos o incluso millones de cosas diferentes - todo se hace a travs de una
hoja de clculo. Para los usuarios ms avanzados, existe tambin la posibilidad
de la creacin y verificacin de variables. Para todo ello Cleverscript provee
un completo manual paso a paso que guiar a travs de todo el proceso. En el
ejemplo prctico veremos un sencillo script creado con l.
Cleverscript se puede usar para proveer asesoramiento y FAQs (Preguntas
Frecuentes) en sitios web. Muchas grandes compaas ya usan bots para
responder preguntas. La gran mayora son grandes motores de bsqueda.
Cleverscript provee una gran cantidad de detalles y ayuda especfica. Por
ejemplo si un usuario pregunta Tens un local en Caballito?, en vez de solo
proveer el link de la pgina de los locales que puede o no puede tener la
informacin que requiere, Cleverscript puede proveer con un Si tenemos,
nuestro local de caballito esta en Av. Rivadavia
Cleverscript puede ayudar a vender productos respondiendo preguntas sobre
un producto en especfico, guiando al usuario por el proceso de la orden de
compra, respondiendo a preguntas en concreto como para qu sirve la caja
amarilla?
Cleverscript puede dar vida a un PNJ (personaje no jugador) en juegos en
sitios Web, aplicaciones e incluso juegos de computadora y consola. Muchos
PNJ tienen un puado de respuestas programadas. Los PNJ en Cleverscript
pueden reconocer y decir cientos o miles de cosas. Pueden estar configurados
Pgina 12 de 28
Pgina 13 de 28
Entrada
Mdulo de Limpieza
Cadena de texto
Cadena
Patrn
Cadena
Plantilla
Salida
Mdulo de Seleccin
Modulo de Coincidencia de
Patrnes
Base de
Patrones-Plantillas
Pasos de Procesamiento
Entrada
Limpieza de Entrada
Acciones
Tomar la entrada del usuario
Remover y sustituir
caracteres y palabras como
emoticones o contracciones
Ejemplo
Ey, mira lo q encontr aqu :)
mira lo que encontr aqu
Coincidencia de Patrn
Seleccin
<NO ES INTERESANTE!>
Salida
Emitirla en la salida
No es interesante!
Plantillas de Salida
Pgina 14 de 28
<QUE ENCONTRASTE?>
<NO ES INTERESANTE!>
Pgina 15 de 28
Juan Cruz, un Agente Virtual desarrollado por BotGenes, trabaja como Asesor
Virtual en la Nueva Escuela de Arte y Diseo; Instituto Superior especializado
en la formacin de profesionales para la publicidad, el diseo en todas sus
variantes, grfico publicitario, editorial, interiores, moda, Web, la fotografa,
las artes, los dibujos animados, la pintura, escultura, dibujo, etc.
l tiene estudios en Periodismo, y disfruta dando informacin a estudiantes de
habla hispana de todo el mundo sobre el Instituto a los interesados.
Juan Cruz utiliza el "cerebro artificial" en idioma espaol ms avanzado
desarrollado por BotGenes con ms de 500.000 reglas de decisin, lo cual le
permite manejar miles de regionalismos, errores de tipeo, ortogrficos y
gramaticales, y contextualizar respuestas.
l integra tecnologas de PLN, Procesamiento del Lenguaje Natural, con TTS,
Texto a Voz, ofreciendo adems de chat, audio streaming y un Avatar 3D.
Pgina 16 de 28
Pgina 17 de 28
Pgina 18 de 28
return 0;
}
//Toma la entrada del usuario y busca la mejor coincidencia de la entrada
//con alguno de los patrones de la base de conocimiento.
vstring find_match(std::string input) {
vstring result;
//Recorre la base de conocimientos buscando una coincidencia.
for(int i = 0; i < nKnowledgeBaseSize; ++i) {
//Si se encuentra un coincidencia se llama la funcion de
//copiado para obtener las posibles respuestas.
if(std::string(KnowledgeBase[i].input) == input) {
copy(KnowledgeBase[i].responses, result);
return result;
}
}
return result;
}
//Copia la informacin de las plantillas para mostrar en la salida.
void copy(char *array[], vstring &v) {
for(int i = 0; i < MAX_RESP; ++i) {
v.push_back(array[i]);
}
}
Pgina 19 de 28
Cleverscript
A continuacin veremos un ejemplo prctico usando Clevescript. Lo que hemos
desarrollado ha sido una pequea base de coincidencia de patrones-plantillas y
hemos agregado algunas caractersticas de Cleverscript como las variables. El
objetivo de esta prctica es demostrar cmo es una base de datos para este
tipo de bots y como se puede conseguir una charla con estas entidades desde
algo muy sencillo. La base de conocimientos utilizada para este ejemplo se
encuentra luego de las instrucciones.
Instrucciones
1) Navegar al sitio web de Cleverscript
http://www.cleverscript.com/
2) Ingresar el usuario y contrasea en el sitio para logearse
Username: Isne8717
Password: 3Ai1KGZLCS6j
Pgina 20 de 28
Pgina 21 de 28
5) Guion de charla
J.A.R.V.I.S: (tu nombre) no tengo registros de quien es tu mama, como se llama tu mama?
Pgina 22 de 28
Pgina 23 de 28
Base de Conocimiento
Pgina 24 de 28
En este caso seran las variables utilizadas para reconocer al usuario con el
que se est interactuando, como puede ser su nombre, su residencia, etc.
Interfaz de usuario: son los elementos que gobiernan la interaccin y el
dialogo entre el sistema y el usuario.
En una entidad conversacional bsica esto sera la entrada manual de texto y
la salida por pantalla de las respuestas. En los sistemas de dilogos ms
avanzados estos podran estar compuestos por sistemas de reconocimiento de
voz, salidas de audio para que el robot hable y representacin grfica de una
persona en pantalla para dotar de vida a la entidad.
Pgina 26 de 28
Conclusiones
Expuesto el material, podemos concluir que las entidades artificiales
conversacionales al basar arquitectura en los sistemas expertos estn
orientados al rea de la comunicacin, por lo tanto son muy buenos en
aplicaciones especficas tales como:
Comercio electrnico
Help Desk o soporte
Navegacin web
Educacin
El problema de ellos es que muchos se basan en el mtodo de coincidencias el
cual busca en su base de conocimiento una cadena similar a la entrada para
obtener una posible salida. Esto limita a las entidades a no comprender
realmente lo que el usuario quiere decir, pero las nuevas tendencias de
sistemas de dialogo intentan suplir estas deficiencias con tcnicas avanzadas
de procesamiento de lenguaje.
Tambin comprendimos que hay una evolucin en la forma de comunicarse
con estas entidades que ha ido desde entradas de texto e salidas textuales en
pantallas, reconocimiento corporal y facial, hasta comunicacin por voz y bots
dotados de avatares con movimientos y expresiones. As pudimos ver que se
genera una interaccin ms amena con el usuario.
Finalizamos concluyendo que el futuro de estas entidades es un gran
potencial a explotar y que debe hacerse uso de las tecnologas actuales, como
Kinect de Microsoft para reconocimiento de posiciones corporales o faciales, y
exprimir el uso de la web como base de conocimiento ya que es la base que
inconscientemente las personas han ido cargando a los largo de ms de 25
aos.
Pgina 27 de 28
Bibliografa
http://es.wikipedia.org/wiki/Bot_conversacional
http://en.wikipedia.org/wiki/Chatterbot
http://es.wikipedia.org/wiki/Procesamiento_de_lenguajes_naturales
http://es.wikipedia.org/wiki/Test_de_Turing
http://www.loebner.net/Prizef/loebner-prize.html
http://es.wikipedia.org/wiki/Premio_Loebner
http://www.chatbots.org/
http://www.alicebot.org/
http://www.pandorabots.com/botmaster/en/home
http://www.cleverscript.com/
http://www.cleverbot.com/
http://www.cleverscript.com/CSL/CleverScriptManual.pdf
http://www.codeproject.com/Articles/36106/Chatbot-Tutorial
Pgina 28 de 28