Vous êtes sur la page 1sur 28

LIC.

SISTEMAS
INTELIGENCIA
ARTIFICIAL:
TRABAJO PRCTICO

ENTIDADES ARTIFICIALES
CONVERSACIONALES
ALUMNOS:
CARELLA FABRICIO
GUNTAUE OMAR
RIZZUTO FLORENCIA
PROFESORES:
GONZALEZ DANIEL
POSTAY JUAN

INTELIGENCIA ARTIFICIAL ENTIDADES ARTIFICIALES CONVERSACIONALES

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

INTELIGENCIA ARTIFICIAL ENTIDADES ARTIFICIALES CONVERSACIONALES

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

INTELIGENCIA ARTIFICIAL ENTIDADES ARTIFICIALES CONVERSACIONALES

Marco Terico Histrico


La Prueba de Turing

Alan Mathison Turing (1912 - 1954) nacido en Londres, Inglaterra, fue un


entre otras cosas matemtico, lgico, cientfico de la computacin, criptgrafo
y filsofo, es considerado uno de los padres de la ciencia computacional.
Formaliz los conceptos de algoritmo y computacin a travs de su famosa
mquina de Turing.
La mquina de Turing fue descrita por Alan Turing como una mquina
automtica en 1936 en la revista Proceedings of the London Mathematical
Society, esta consiste en un dispositivo hipottico que manipula smbolos
sobre una tira de cinta de acuerdo a una tabla de reglas. A pesar de su
simplicidad, la mquina de Turing puede ser adaptada para simular la lgica
de cualquier algoritmo de computador y es particularmente til en la
explicacin de las funciones de un CPU dentro de un computador.
As habiendo primero descrito la mquina de Turing, luego se pregunt si las
computadoras podan pensar. En 1950 en un artculo (Computing machinery
and intelligence) para la revista Mind, se expone El Test de Turing (o Prueba
de Turing) la cual es una prueba propuesta por Alan Turing para demostrar la
existencia de inteligencia en una mquina y hasta el da sigue siendo uno de
los mejores mtodos para los defensores de la Inteligencia Artificial. Se
fundamenta en la hiptesis positivista de que, si una mquina se comporta en
todos los aspectos como inteligente, entonces debe ser inteligente.

Pgina 4 de 28

INTELIGENCIA ARTIFICIAL ENTIDADES ARTIFICIALES CONVERSACIONALES

La prueba consiste en un desafo el cual supone a un juez situado en una


habitacin, pero a una mquina y a un ser humano en otras. El juez debe
descubrir cul es el ser humano y cul es la mquina, estndoles a los dos
permitido mentir al contestar por escrito las preguntas que el juez les hiciera.
La tesis de Turing es que si ambos jugadores eran suficientemente hbiles, el
juez no podra distinguir quin era el ser humano y quin la mquina,
entonces la maquina estara dotada de inteligencia. Todava ninguna mquina
puede pasar este examen en una experiencia con mtodo cientfico.
Desde el planteamiento de esta prueba uno de los intentos de superarlas han
sido las entidades o agentes conversacionales de forma que tengan una
conversacin inteligente con el juez de la prueba y logre engaarlo. Veamos
entonces que son estas entidades.

Pgina 5 de 28

INTELIGENCIA ARTIFICIAL ENTIDADES ARTIFICIALES CONVERSACIONALES

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

INTELIGENCIA ARTIFICIAL ENTIDADES ARTIFICIALES CONVERSACIONALES

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

INTELIGENCIA ARTIFICIAL ENTIDADES ARTIFICIALES CONVERSACIONALES

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

INTELIGENCIA ARTIFICIAL ENTIDADES ARTIFICIALES CONVERSACIONALES

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

INTELIGENCIA ARTIFICIAL ENTIDADES ARTIFICIALES CONVERSACIONALES

de contenido y una igualmente gran capacidad base de datos de ms de


40.000 pares de patrones-plantilla.
Debido a su falta de inteligencia codificada explcita o conocimiento, los bots
coincidencia de patrones son tan inteligentes dependiendo de cuan amplia es
su base de datos. Este es la razn por la cual se puede tener una conversacin
divertida con ALICE al principio, pero se vuelve confusa y aburrida despus de
un corto tiempo.
En una forma similar a ELIZA, la ms pequea posible unidad en AIML es la
categora la cual est compuesta por una regla de descomposicin (patrn)
combinado una regla de montaje (plantilla). Veamos un ejemplo de esto:
<category>
<pattern>ME ESTOY SINTIENDO *</pattern>
<template> Por qu te estas sintiendo </star></template>
</category>
Pero no es slo una gran base de datos que permite mejores conversaciones
con ALICE. Los desarrolladores implementaron caractersticas tales como la
repeticin, anotacin de tema de charla, variables y una memoria a corto
plazo, lo que puede hacer que la conversacin sea ms flexible y causar
diferentes estados de dilogo y as simular ms realismo.
Cada una de estas nuevas caractersticas quedan codificadas en las categoras
de AIML. Veamos otro ejemplo, una memoria a corto plazo, se integra a travs
de XML tag <that>:
<category>
<pattern>SI</pattern>
<that>TE GUSTA LEER LIBROS? </that>
<template>Cules te gustan ms?</template>
</category>
En este ejemplo se muestra una posibilidad de reaccionar a una respuesta sno de forma expresiva. Si el patrn incluye slo "s" pero sin el tag <that>, el
bot sera obligado a generar una respuesta muy general, porque que ya ha
olvidado su ltima expresin. Sin embargo con el "que"(<that>) del tag el
chatbot guarda su ltima expresin, y por lo tanto es capaz de dar una
respuesta significativa.
Para un mayor conocimiento de todas las caractersticas de AILM es necesario
el estudio de su especificacin.

Pgina 10 de 28

INTELIGENCIA ARTIFICIAL ENTIDADES ARTIFICIALES CONVERSACIONALES

Cleverbot

Cleverbot es una aplicacin web que utiliza un algoritmo de inteligencia


artificial para conversar con los seres humanos. Fue creado por un cientfico de
IA llamado Rollo Carpenter, quien tambin cre Jabberwacky, una aplicacin
web similar predecesor de Cleverbot.
Es nico en el sentido de que se aprende de los seres humanos, recordando
las palabras dentro de su IA. En su primera dcada Cleverbot ha interactuado
en varios miles de conversaciones con Carpenter y sus asociados. Desde el
lanzamiento de la web en 1997, el nmero de conversaciones ha superado 65
millones.
Si bien su funcionamiento interno sigue siendo el mtodo de coincidencia de
patrones, a diferencia de otros chatterbots, las respuestas de Cleverbot no
estn programadas. En cambio, "aprende" de la intervencin humana; al
ingresar una oracin el sistema encuentra todas las palabras clave o una frase
exacta que coincide con el de entradas de sus conversaciones guardadas,
respondiendo a ella mediante la bsqueda de cmo un ser humano respondi
a esa entrada cuando se le pregunt, en parte o en su totalidad, por
Cleverbot. De esta manera Cleverbot va generando las reglas de coincidencia.

Pgina 11 de 28

INTELIGENCIA ARTIFICIAL ENTIDADES ARTIFICIALES CONVERSACIONALES

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

INTELIGENCIA ARTIFICIAL ENTIDADES ARTIFICIALES CONVERSACIONALES

como mini rompecabezas dentro de un juego, as solo una especfica pregunta


como Dnde est la llave de Doom? puede devolver la respuesta que se
necesita.

Pgina 13 de 28

INTELIGENCIA ARTIFICIAL ENTIDADES ARTIFICIALES CONVERSACIONALES

Arquitectura y Funcionamiento bsico de un Chatbot


A continuacin de acuerdo con el funcionamiento que explicamos
anteriormente en la evolucin de las entidades conversacionales vemos
grficamente como seria la arquitectura bsica de un chatbot as como los
pasos y acciones necesarias para su funcionamiento.
Cadena de texto

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

Buscar en la base de datos


un patrn de entrada que
coincida con la entrada ya
limpia
Obtener las plantillas de
salidas en la base de datos
de acuerdo al patrn de
entrada encontrado

<MIRA LO QUE ENCONTRE>

Seleccin

Seleccionar una plantilla

<NO ES INTERESANTE!>

Salida

Emitirla en la salida

No es interesante!

Plantillas de Salida

Pgina 14 de 28

<QUE ENCONTRASTE?>
<NO ES INTERESANTE!>

INTELIGENCIA ARTIFICIAL ENTIDADES ARTIFICIALES CONVERSACIONALES

Estado del Arte


Actualmente el funcionamiento establecido por ELIZA sigue siendo el
predominante en el desarrollo de los chatbots. El estndar AILM, del cual
hablamos en la seccin anterior cuando mencionamos a ALICE, es el ms
establecido en la comunidad. De hecho existe una plataforma para desarrollar
y publicar bot basados en ese estndar la cual se llama Pandorabots.
Pandorabots es la comunidad ms grande chatbot en Internet. En ella 166.000
bot masters (creadores de bots) registrados que han creado ms de 206.000
chatbots en varios idiomas. Hasta junio de 2012, ms de 1500 millones
interacciones conversacionales se han producido entre los clientes y los bots, y
este nmero aumenta rpidamente (se puede ver en la parte superior del
centro de la pgina principal Pandorabots).
Los bots publicados en Pandorabots aparecen en pginas web, mensajera
instantnea y pueden responder al correo electrnico y mensajes en el foro.
Se pueden encontrar en Second Life, en los juegos en lnea, y en las redes
sociales como Facebook y Twitter. Cada vez ms chatbots de este tipo estn
apareciendo en las aplicaciones mviles y mensajes de texto.
Pandorabots est en desarrollo constante y tiene una gran comunidad activa.
Pandorabots se adhiere a los estndares abiertos para la publicacin chatbot.
Para los posibles Pandorabots medida s ha sido construido a partir de
software de cdigo abierto.
Sin embargo en los ltimos aos, ha aparecido una nueva tendencia en la
creacin de entidades artificiales conversacionales. Los autores del libro
Conversationa Agent and Natural Lenguage Interacion, Diana Perez-Matin e
Ismael Pascual-Nieto procedentes de Espaa, exponen a los sistemas de
dilogos como los sucesores de los chatbots textuales, y establecen diferencias
entre ellos:
Tienen sistema de reconocimiento de voz
Poseen personalidad
Reconocen expresiones del cuerpo y faciales
Son representados mediante un avatar en 3D
Hacen uso de ms terico de tcnicas de motivacin.
A menudo se desarrollan de dominio especfico, mientras que simula
conversacional sistemas estn dirigidos a dominio abierto de la
conversacin.
Implementan avanzadas tcnicas de procesamiento neurolinguistico,
pudiendo diferenciar palabras como cuales seran verbos o sustantivos.
Se nutren de informacin de internet, como puede ser Wikipedia,
Wordreference.
A continuacin vemos un estrato de las caractersticas de un sistema de
dialogo desarrollado por la empresa argentina BotGenes, el cual muestra la el
claro estado actual de esta tendencia.

Pgina 15 de 28

INTELIGENCIA ARTIFICIAL ENTIDADES ARTIFICIALES CONVERSACIONALES

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

INTELIGENCIA ARTIFICIAL ENTIDADES ARTIFICIALES CONVERSACIONALES

Desarrollo - Ejemplo Prctico


Ejemplo de cdigo tipo ELIZA
El siguiente cdigo es un ejemplo muy bsico de lo que sera un chatbot del
estilo de ELIZA desarrolla por un programador canadiense llamado Cenelia
Gonzales y publicado en la comunidad CodeProject bajo la licencia de proyecto
de cdigo abierto (CPOL).
Este utiliza el mismo principio de funcionamiento visto en la seccin de
Arquitectura y Funcionamiento mismo principio de funcionamiento, un motor
de inferencia efecta el mtodo de coincidencia por patrn-plantilla de acuerdo
a la entrada del usuario. El cdigo se encuentra comentado para un mayor
entendimiento.
#include <iostream>
#include <string>
#include <vector>
#include <ctime>
//Maximo de respuestas por entradas. Es una constante.
const int MAX_RESP = 3;
typedef std::vector<std::string> vstring;
//Definin de las firma de las funciones.
vstring find_match(std::string input);
void copy(char *array[], vstring &v);
//Estrutura de de la base de conocimiento.
//El puntero input es el patrn que el motor de inferencia buscara que entrada
coincide con el.
//El puntero response es son las 3 posibles plantillas de respuestas.
typedef struct {
char *input;
char *responses[MAX_RESP];
}record;
//Esta es la base de conocimiento.
record KnowledgeBase[] = {
{"WHAT IS YOUR NAME",
{"MY NAME IS CHATTERBOT.",
"YOU CAN CALL ME CHATTERBOT.",
"WHY DO YOU WANT TO KNOW MY NAME?"}
},
{"HI",
{"HI THERE!",
"HOW ARE YOU?",
"HI!"}
},
{"HOW ARE YOU",
{"I'M DOING FINE!",
"I'M DOING WELL AND YOU?",

Pgina 17 de 28

INTELIGENCIA ARTIFICIAL ENTIDADES ARTIFICIALES CONVERSACIONALES

"WHY DO YOU WANT TO KNOW HOW AM I DOING?"}


},
{"WHO ARE YOU",
{"I'M AN A.I PROGRAM.",
"I THINK THAT YOU KNOW WHO I'M.",
"WHY ARE YOU ASKING?"}
},
{"ARE YOU INTELLIGENT",
{"YES,OF COURSE.",
"WHAT DO YOU THINK?",
"ACTUALY,I'M VERY INTELLIGENT!"}
},
{"ARE YOU REAL",
{"DOES THAT QUESTION REALLY MATERS TO YOU?",
"WHAT DO YOU MEAN BY THAT?",
"I'M AS REAL AS I CAN BE."}
}
};
//Tamao de la base de conocimiento.
size_t nKnowledgeBaseSize = sizeof(KnowledgeBase)/sizeof(KnowledgeBase[0]);
//Codigo principal. Es la funcion de entrada al programa.
int main() {
//Inicializacin de la variables.
srand((unsigned) time(NULL));
std::string sInput = "";
std::string sResponse = "";
//Ciclo infinito para esperar entradas del usuario.
while(1) {
//Limpia la entrada.
std::cout << ">";
//Modulo de entrada. Obtiene la entrada escrita por el usuario.
std::getline(std::cin, sInput);
//LLama a la funcin que actua como Motor de Inferencia.
//Se encarga de encontrar la coincidencia mas adecuada.
vstring responses = find_match(sInput);
//Condicin de salida del ciclo.
if(sInput == "BYE") {
std::cout << "IT WAS NICE TALKING TO YOU USER, SEE YOU NEXTTIME!" <<
std::endl;
break;
}
//Si no se encuentra ninguna coincidencia en la base de de conocimientos,
//se imprime una respuesta por dafault.
else if(responses.size() == 0) {
std::cout << "I'M NOT SURE IF I UNDERSTAND WHAT YOU ARE TALKING
ABOUT." << std::endl;
}
//Modulo de salida.
else {
//Seleciona una de las 3 respuestas posibles.
int nSelection = rand() % MAX_RESP;
//Imprime la salida.
sResponse =
responses[nSelection]; std::cout << sResponse <<
std::endl;
}
}
//Termina el programa.

Pgina 18 de 28

INTELIGENCIA ARTIFICIAL ENTIDADES ARTIFICIALES CONVERSACIONALES

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

INTELIGENCIA ARTIFICIAL ENTIDADES ARTIFICIALES CONVERSACIONALES

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

INTELIGENCIA ARTIFICIAL ENTIDADES ARTIFICIALES CONVERSACIONALES

3) Hacer click en la seccin Chat

4) Elegir el bot J.A.R.V.I.S. y las opciones marcadas a continuacin.


Luego clikear en Start Chat

Pgina 21 de 28

INTELIGENCIA ARTIFICIAL ENTIDADES ARTIFICIALES CONVERSACIONALES

5) Guion de charla

6) Guion de charla con el bot J.A.R.V.I.S. (para seguir paso a paso)


J.A.R.V.I.S: J.A.R.V.I.S hablando, cul es su nombre?
Usuario: (ingresas tu nombre o con el que queres que te llame el bot)
J.A.R.V.I.S: Hola (tu nombre ingresado anteriormente) que necesita?
Usuario: Jarvis dime que dia es?
J.A.R.V.I.S: (Jarvis te dice en que dia de la semana estamos)
Usuario: Jarvis dime que hora es?
J.A.R.V.I.S: El horario de mi servidor es (hora:minutos), (tu nombre)
Usuario: que edad tenes?
J.A.R.V.I.S: No tengo edad sino que poseo version de software, (tu nombre)
Usuario: Que version de software sos Jarvis?

J.A.R.V.I.S: (la version de software)


Usuario: Jarvis llama a mi mama

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

INTELIGENCIA ARTIFICIAL ENTIDADES ARTIFICIALES CONVERSACIONALES

Usuario: (ingresas el nombre de tu mama)

J.A.R.V.I.S: Guardando registro en base de datos a (nombre de tu mama) como tu mama.


Pero al parecer no poseo una interfaz adecuada para poder llamar (tu nombre)
Usuario: Jarvis hazme acordar que te desarrolle una interfaz de llamado

J.A.R.V.I.S: Se lo recordare (tu nombre)

Pgina 23 de 28

INTELIGENCIA ARTIFICIAL ENTIDADES ARTIFICIALES CONVERSACIONALES

Base de Conocimiento

Pgina 24 de 28

INTELIGENCIA ARTIFICIAL ENTIDADES ARTIFICIALES CONVERSACIONALES

Relacin con temas vistos


Habiendo visto el funcionamiento y la historia de las entidades artificiales
conversacionales, podemos ver con facilidad que estas son bsicamente
sistemas expertos basados en reglas como los vistos en clase.

Definicin de sistema experto: Un sistema experto es un programa o un


conjunto de programas que, sobre una base de conocimientos, posee
informacin de uno o ms expertos en un rea especfica
Podemos relacionar el chat bot es un programa que posee conocimientos
sobre el rea de la conversacin.
Veamos ms detenidamente sus partes:
Motor de Inferencia: tambin conocido como intrprete de reglas, se encarga
de las operaciones de bsqueda y seleccin de las reglas a utilizar en el
proceso de razonamiento.
En el caso de los chat bots, el motor de inferencia es el encargado de
encontrar la mejor coincidencia entre el patrn y la plantilla, es decir buscar
que debe decir el bot ante determinado ingreso del usuario.
Base de Conocimiento: posee el conocimiento del experto humano formalizado
y estructurado.
La base de conocimiento en un robot de charla es la compuesta por las reglas
de coincidencia entre cada patrn y cada plantilla, es decir la que establece a
que patrn le corresponde cada plantilla. Esta es llenada por el experto
humano que seran los programadores del robot
Base de hechos: o tambin conocida como memoria de trabajo, es la memoria
temporal que almacena los datos del usuario, los datos del problema y los
resultados intermedios obtenidos a lo largo del proceso de resolucin.
Pgina 25 de 28

INTELIGENCIA ARTIFICIAL ENTIDADES ARTIFICIALES CONVERSACIONALES

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

INTELIGENCIA ARTIFICIAL ENTIDADES ARTIFICIALES CONVERSACIONALES

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

INTELIGENCIA ARTIFICIAL ENTIDADES ARTIFICIALES CONVERSACIONALES

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

Conversational Agents and Natural Language, Interaction


Techniques and Effective Practices - Diana Perez-Marin, Ismael
Pascual-Nieto Madrid 2011

Pgina 28 de 28