Trabajo Práctico Inteligencia IE

Embed Size (px)

Citation preview

  • 8/18/2019 Trabajo Práctico Inteligencia IE

    1/28

    LIC. SISTEMAS

    INTELIGENCIAARTIFICIAL:TRABAJO PRÁCTICO

    ENTIDADES ARTIFICIALESCONVERSACIONALES

    ALUMNOS:

    CARELLA FABRICIO GUNTAUE OMAR RIZZUTO FLORENCIA

    PROFESORES:

    GONZALEZ DANIEL POSTAY JUAN

  • 8/18/2019 Trabajo Práctico Inteligencia IE

    2/28

    INTELIGENCIA ARTIFICIAL – ENTIDADES ARTIFICIALES CONVERSACIONALES

    Página 2 de 28

    INDICE

    Introducción ................................................................... 3

    Marco Teórico Histórico .................................................... 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 básico de un Chatbot ....... 14

    Estado del Arte ............................................................. 15

    Desarrollo - Ejemplo Práctico .......................................... 17

    Ejemplo de código tipo ELIZA ....................................... 17

    Cleverscript ................................................................ 20

    Instrucciones ............................................................ 20

    Base de Conocimiento ............................................... 24

    Relación con temas vistos .............................................. 25

    Conclusiones ................................................................. 27

    Bibliografía ................................................................... 28

  • 8/18/2019 Trabajo Práctico Inteligencia IE

    3/28

    INTELIGENCIA ARTIFICIAL – ENTIDADES ARTIFICIALES CONVERSACIONALES

    Página 3 de 28

    Introducción Cuando en 1950 Alan Turing escribió el artículo “Computing machinery

    and intelligence” definió lo que hoy se conoce como el “Test de Turing” cuyoobjetivo es determinar si una maquina era inteligente o no.

    Las ansias por superar esta prueba llevaron al desarrollo de las EntidadesConversacionales Artificiales, incluso a la creación de una competición anual decarácter internacional conocida como Premio Loebner en donde se califican alas entidades participantes de acuerdo a su resolución del Test de Turingesperando que alguna de ellas llegue a superarlo completamente.

    Una Entidad Conversacional Artificial, o también conocido como AgenteConversacional, es un programa que simula mantener una conversación conuna persona. Habitualmente, la conversación se establece a través de un

    teclado, aunque también hay modelos que disponen de una interfaz de usuariomultimedia. Más recientemente, algunos comienzan a utilizar programasconversores de texto a sonido, dotando de mayor realismo a la interacción conel usuario.

    Los Agentes Conversacionales tienen características que son muy similares ala inteligencia humana, tales como la capacidad para aprender, o adaptarse ala nueva información.

    Algunos usan sofisticados sistemas de Procesamiento de Lenguaje Natural,pero muchos simplemente escanean palabras claves en la entrada y emitenuna respuesta con las palabras claves que concuerden, o un patrón de

    redacción muy similar, a partir de una base de datos textual.Los Agentes Conversacionales se han utilizado en aplicaciones muy diversas,como:

    • Comercio electrónico, donde los agentes pueden responder laspreguntas de los usuarios sobre productos y servicios, y finalmenteguiar la venta del artículo e incluso realizar el pedido mediante unsistema web.

    • Help Desk o soporte, que utilizan a los agentes para resolver las dudasde los usuarios sobre ciertos problemas técnicos con un producto o undispositivo.

    • Navegación web, en donde guían a los usuarios para navegar yencontrar información en sitios web complejos con un alto número deenlaces.

    • Educación, donde los agentes enseñan o ser enseñados por losestudiantes en ciertos dominios e incluso sirven como acompañantespara evitar el problema de aislamiento en el uso de plataformas deaprendizaje en línea.

    Prosigamos entonces a ver cómo han evolucionado estas Entidades a lo largode la historia y cuál es su funcionamiento interno. También como se encuentrael desarrollo de esta tecnología el día de hoy con varios ejemplos de estossistemas, y como se relacionan con los temas vistos en la clase.

  • 8/18/2019 Trabajo Práctico Inteligencia IE

    4/28

    INTELIGENCIA ARTIFICIAL – ENTIDADES ARTIFICIALES CONVERSACIONALES

    Página 4 de 28

    Marco Teórico Histórico

    L a Prueba de Tur ing

    Alan Mathison Turing (1912 - 1954) nacido en Londres, Inglaterra, fue unentre otras cosas matemático, lógico, científico de la computación, criptógrafoy filósofo, es considerado uno de los padres de la ciencia computacional.Formalizó los conceptos de algoritmo y computación a través de su famosamáquina de Turing.

    La máquina de Turing fue descrita por Alan Turing como una «máquinaautomática» en 1936 en la revista Proceedings of the London MathematicalSociety, esta consiste en un dispositivo hipotético que manipula símbolossobre una tira de cinta de acuerdo a una tabla de reglas. A pesar de susimplicidad, la máquina de Turing puede ser adaptada para simular la lógicade cualquier algoritmo de computador y es particularmente útil en laexplicación de las funciones de un CPU dentro de un computador.

    Así habiendo primero descrito la máquina de Turing, luego se preguntó si lascomputadoras podían pensar. En 1950 en un artículo (Computing machineryand intelligence) para la revista Mind, se expone El Test de Turing (o Pruebade Turing) la cual es una prueba propuesta por Alan Turing para demostrar laexistencia de inteligencia en una máquina y hasta el día sigue siendo uno delos mejores métodos para los defensores de la Inteligencia Artificial. Sefundamenta en la hipótesis positivista de que, si una máquina se comporta en

    todos los aspectos como inteligente, entonces debe ser inteligente.

  • 8/18/2019 Trabajo Práctico Inteligencia IE

    5/28

    INTELIGENCIA ARTIFICIAL – ENTIDADES ARTIFICIALES CONVERSACIONALES

    Página 5 de 28

    La prueba consiste en un desafío el cual supone a un juez situado en unahabitación, pero a una máquina y a un ser humano en otras. El juez debedescubrir cuál es el ser humano y cuál es la máquina, estándoles a los dospermitido mentir al contestar por escrito las preguntas que el juez les hiciera.La tesis de Turing es que si ambos jugadores eran suficientemente hábiles, el

    juez no podría distinguir quién era el ser humano y quién la máquina,entonces la maquina estaría dotada de inteligencia. Todavía ninguna máquinapuede pasar este examen en una experiencia con método científico.

    Desde el planteamiento de esta prueba uno de los intentos de superarlas hansido las entidades o agentes conversacionales de forma que tengan unaconversación inteligente con el juez de la prueba y logre engañarlo. Veamosentonces que son estas entidades.

  • 8/18/2019 Trabajo Práctico Inteligencia IE

    6/28

    INTELIGENCIA ARTIFICIAL – ENTIDADES ARTIFICIALES CONVERSACIONALES

    Página 6 de 28

    ELIZA

    ELIZA es un programa informático que fue diseñado y desarrollado en el MIT

    entre 1964 y 1966 por Joseph Weizenbaum, un profesor emérito deInformática en el Instituto Tecnológico de Massachusetts a quien se loconsidera uno de los padres de la cibernética. ELIZA fue uno de los primerosprogramas en procesar lenguaje natural. El mismo parodiaba al psicólogo CarlRogers e intentaba mantener una conversación de texto coherente con elusuario. En la literatura actual del tema concuerda en que este fue el primerchatbot programado, si bien el término chatbot no existía en ese momento,del cual muchos de los chatbots actuales se basan hoy en día. El término"chatterbot", o también "chatbot", para referirse a las Entidades ArtificialesConversacionales se origina en el sistema CHATTERBOT el cual corresponde aun personaje de un juego de mazmorras multiusuario (Mauldin, 1994).

    El método de “coincidencia de patrones ” , también llamado coincidencia declaves o reglas, que utiliza ELIZA (copiado por diseñadores de chatbots desdesiempre) implica el reconocimiento de las palabras o frases de referencia en laentrada y la salida de las respuestas pre-definidas o pre-programadascorrespondientes que pueden dar continuidad a la conversación de unamanera que de un significado aparentemente (por ejemplo, respondiendo acualquier entrada que contenga la palabra "MADRE" con "CUENTAME MAS DETU FAMILIA” ). Por lo tanto, se genera una ilusión de comprensión de laconversación, a pesar de que el procesamiento involucrado ha sido meramente

    superficial. ELIZA mostró que tal ilusión es sorprendentemente fácil degenerar, porque los jueces humanos están tan dispuestos a darle el beneficiode la duda cuando las respuestas de conversación son capaces de serinterpretadas como "inteligentes". Así, la técnica de la clave - que caracterizaa un programa como un chatbot en lugar de como un procesamiento dellenguaje natural serio - es el sistema de producción de respuestas que sonsuficientemente vagas y no específicos que pueden ser entendidas como"inteligente" en una amplia gama de contextos conversacionales. El énfasisestá normalmente en la vaguedad y la falta de claridad, más que cualquiertransmisión de información genuina.

    Los diseñadores de la interfaz conversacional de los chatbots, han llegado aapreciar como la disposición de los seres humanos para interpretar la salidadel ordenador como una genuina conversación, incluso cuando en realidad sebasa en algo simple coincidencia de patrones, pueden ser explotados con finesútiles. La mayoría de la gente prefiere interactuar con los programas que sonparecidos a los humanos, y esto da a las técnicas de un chatbot un papelpotencialmente útil en sistemas interactivos que necesitan para obtenerinformación de los usuarios, mientras que la información es relativamentesencilla y caiga en categorías predecibles. Así, por ejemplo, los sistemas deayuda en línea pueden emplear útilmente las técnicas de un chatbot paraidentificar el área de ayuda que requieren los usuarios.

  • 8/18/2019 Trabajo Práctico Inteligencia IE

    7/28

    INTELIGENCIA ARTIFICIAL – ENTIDADES ARTIFICIALES CONVERSACIONALES

    Página 7 de 28

    PARRY

    Después de ELIZA, llegó PARRY, diseñado 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 más primitivas de las emociones humanas como elmiedo y la ira. Esto se logró mediante el uso de una base de datos depatrones que aplicaría valores positivos y negativos a ciertas palabras o frasespara actuar como disparadores para diversas emociones.

    Aparentemente PARRY fue tan exitoso en su rol, así como lo fue ELIZA en elsuyo, que psicólogos profesionales estaban teniendo dificultades para discernira PARRY de una persona real con los mismos problemas.

    Estos robots de charla y otros como ellos no tienen autoaprendizaje de ningúntipo, son completamente dependientes de una base de datos que contiene lospatrones editada totalmente por un humano, sus autores, que pasaron cientosde horas o más, para añadir continuamente contenido de la base de datos desus chatbots.

    Los creadores de los chatterbots siguen utilizando este enfoque, incluso ahora,con algunas excepciones. Una forma muy simplificada y general deaprendizaje se está convirtiendo cada vez más predominante en los proyectosactuales bots. Básicamente, el bot recogerá todos los datos de susconversaciones que tuvieron con la gente durante su tiempo de vida y

    empezará a analizar la entrada y salida de los palabras u oraciones que seutilizan comúnmente de las que no. De esta manera, incluso en su forma másbásica, los creadores de bots pueden ahorrar enormes cantidades de tiempocon sólo mirar a través de los resultados del bot y decidir que debemantenerse y cuáles no. Las preguntas y las respuestas que rara vez serecogen serán las más probablemente menos usadas o erróneas y por lo tantoserán ignoradas o dejados en la parte inferior de una pila, mientras que lasfrases más comunes se colocarán en la parte superior para ser consideradospara su utilización frecuente.

  • 8/18/2019 Trabajo Práctico Inteligencia IE

    8/28

    INTELIGENCIA ARTIFICIAL – ENTIDADES ARTIFICIALES CONVERSACIONALES

    Página 8 de 28

    Premio Loebner

    Siguiendo con la línea de tiempo nació por 1990 el Premio Loebner el cual es

    una competición de carácter anual que concede premios a un programa deordenador que esté considerado por el jurado que lo compone, como el másinteligente de los que se han presentado. El formato de la competición sigue elestándar establecido en el test de Turing. Un juez humano se enfrenta a dospantallas de ordenador, una de ellas que se encuentra bajo el control de unordenador, y la otra bajo el control de un humano. El juez plantea preguntas alas dos pantallas y recibe respuestas. En base a las respuestas, el juez debedecidir qué pantalla es la controlada por el ser humano y cuál es la controladapor 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, enMassachusetts, Estados Unidos. Desde entonces se ha asociado conUniversidad Flinders, el Dartmouth College, el Museo de Historia Natural deLondres, y, más recientemente, la Universidad de Reading. La dirección delcomité organizador del concurso corrió durante las tres primeras ediciones acargo del filósofo Daniel Dennett.

    En el campo de la inteligencia artificial, sobre el Premio Loebner existe unaamplia controversia, y el más prominente de sus críticos, Marvin Minsky, ha

    mantenido que es un mero truco publicitario que no ayuda en nada aldesarrollo de esta ciencia.

  • 8/18/2019 Trabajo Práctico Inteligencia IE

    9/28

    INTELIGENCIA ARTIFICIAL – ENTIDADES ARTIFICIALES CONVERSACIONALES

    Página 9 de 28

    A.L.I.C.E.

    A.L.I.C.E. (Artificial Linguistic Internet Computer Entity) también conocido

    como Alicebot, o simplemente Alice, es un software de procesamiento delenguaje natural, es decir un chatterbot-un programa que involucra en unaconversación con un ser humano mediante la aplicación de un patrónheurístico reglas de coincidencia a la entrada del ser humano. Fue inspiradopor el programa ELIZA de Joseph Weizenbaum pero a diferencia de este yPARRY, ALICE no tiene un propósito particular como ellos (simular a un doctoro a un paciente), sino que sus conversaciones son orientadas a un propósitogeneral.

    Richard Wallace comenzó el desarrollo del programa en 1995, mientras que

    trabajba en la Universidad de Lehigh. El nombre del bot fue elegido porque lacomputadora donde se desarrolló la primera versión del software que sellamaba Alice.

    El programa fue reescrito en Java a partir de 1998 y actualmente la aplicaciónintérprete es llamada Programa D. El programa utiliza un esquema XMLllamado AIML (Artificial Intelligence Markup Language) para especificar lasreglas de conversación heurística.

    Después de 2001, la publicación de una especificación AIML de RichardWallace, muchos otros desarrolladores han tomado lo que Wallace dejó y hanimplementado intérpretes de AIML libres y de código abierto en una granvariedad de lenguajes de programación, publicaron conjuntos de AIML envarios idiomas humanos, y continuaron con la propagación de la tecnologíacomo una empresa libre y de código abierto. Muchas implementaciones deintérpretes de AIML se encuentran subidas a la web pudiendo efectuar charlascon ellas.

    Es uno de los programas más fuertes de su tipo y ha ganado el PremioLoebner, adjudicado a humanoide consumado, robots parlantes, tres veces (en2000, 2001 y 2004). Sin embargo, el programa no es capaz de pasar la

    prueba de Turing, ya que incluso el usuario ocasional menudo expondrá susaspectos mecánicos en conversaciones breves.

    Similar a ELIZA, el Lenguaje Inteligencia Artificial de Marcado (AIML) estádiseñado para robots de estímulo-respuesta, máquinas de coincidencia depatrones, los cuales asignan un patrón con o sin expresiones regulares, a laentrada de cadena y entregar una plantilla de respuesta correspondiente lacual esta guardada en su base de datos. Estas plantillas del mismo modopueden utilizar piezas coincidentes de la entrada como parte de su producción.Contrariamente a ELIZA, el ejemplo de bot AIML más común, el Bot ALICE, esun producto de código abierto, con cerca de 500 desarrolladores y creadores

  • 8/18/2019 Trabajo Práctico Inteligencia IE

    10/28

    INTELIGENCIA ARTIFICIAL – ENTIDADES ARTIFICIALES CONVERSACIONALES

    Página 10 de 28

    de contenido y una igualmente gran capacidad base de datos de más de40.000 pares de patrones-plantilla.

    Debido a su falta de inteligencia codificada explícita o conocimiento, los botscoincidencia de patrones son tan inteligentes dependiendo de cuan amplia essu base de datos. Este es la razón por la cual se puede tener una conversacióndivertida con ALICE al principio, pero se vuelve confusa y aburrida después deun corto tiempo.

    En una forma similar a ELIZA, la más pequeña posible unidad en AIML es lacategoría la cual está compuesta por una regla de descomposición (patrón)combinado una regla de montaje (plantilla). Veamos un ejemplo de esto:

    ME ESTOY SINTIENDO *¿ Por qué te estas sintiendo

    Pero no es sólo una gran base de datos que permite mejores conversacionescon ALICE. Los desarrolladores implementaron características tales como larepetición, anotación de tema de charla, variables y una memoria a cortoplazo, lo que puede hacer que la conversación sea más flexible y causardiferentes estados de diálogo y así simular más realismo.

    Cada una de estas nuevas características quedan codificadas en las categoríasde AIML. Veamos otro ejemplo, una memoria a corto plazo, se integra a travésde XML tag :

    SI¿TE GUSTA LEER LIBROS? ¿Cuáles te gustan más?

    En este ejemplo se muestra una posibilidad de reaccionar a una respuesta sí-no de forma expresiva. Si el patrón incluye sólo "sí" pero sin el tag , elbot sería obligado a generar una respuesta muy general, porque que ya haolvidado su última expresión. Sin embargo con el "que"() del tag elchatbot guarda su última expresión, y por lo tanto es capaz de dar unarespuesta significativa.

    Para un mayor conocimiento de todas las características de AILM es necesarioel estudio de su especificación.

  • 8/18/2019 Trabajo Práctico Inteligencia IE

    11/28

    INTELIGENCIA ARTIFICIAL – ENTIDADES ARTIFICIALES CONVERSACIONALES

    Página 11 de 28

    Cleverbot

    Cleverbot es una aplicación web que utiliza un algoritmo de inteligenciaartificial para conversar con los seres humanos. Fue creado por un científico deIA llamado Rollo Carpenter, quien también creó Jabberwacky, una aplicaciónweb similar predecesor de Cleverbot.

    Es único en el sentido de que se aprende de los seres humanos, recordandolas palabras dentro de su IA. En su primera década Cleverbot ha interactuadoen varios miles de conversaciones con Carpenter y sus asociados. Desde ellanzamiento de la web en 1997, el número de conversaciones ha superado 65millones.

    Si bien su funcionamiento interno sigue siendo el método de coincidencia depatrones, a diferencia de otros chatterbots, las respuestas de Cleverbot noestán programadas. En cambio, "aprende" de la intervención humana; alingresar una oración el sistema encuentra todas las palabras clave o una fraseexacta que coincide con el de entradas de sus conversaciones guardadas,respondiendo a ella mediante la búsqueda de cómo 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.

  • 8/18/2019 Trabajo Práctico Inteligencia IE

    12/28

    INTELIGENCIA ARTIFICIAL – ENTIDADES ARTIFICIALES CONVERSACIONALES

    Página 12 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 unenfoque opuesto a Cleverbot. Cleverscript está orientado a que el público engeneral pueda construir rápidamente y poderosamente conversaciones conguion.

    Cleverscript es "programado" con cualquier aplicación de hoja de cálculo,como Excel. En cuestión de minutos se puede crear un robot que habla conuno mismo. Y en cuestión de horas, puede tener una simple ayudante de enun sitio web automatizado, un agente de servicio al cliente, o en un juegopersonajes con personalidad.

    Los bots Cleverscript se crean utilizando hojas de cálculo. La idea básica esescribir entradas (cosas que Cleverscript puede reconocer) y salidas (cosasque Cleverscript puede decir) en líneas separadas de la hoja de cálculo. Perono acaba de escribir las palabras en sí como "Yo quiero ir a España". En lugarde escribir "Yo ((quiero)) para ir a ((país))" y más tarde en la hoja de cálculo,escribe que ((quiero)) se puede "quiero" o "realmente quiero" o "deseo", y((país)) puede ser España, Francia o Grecia, Canadá o Tailandia. También hayformas de permitir tolerancia, como erratas y faltas de ortografía. De estamanera se puede conseguir muy rápidamente en Cleverscript reconocercientos o incluso millones de cosas diferentes - todo se hace a través de una

    hoja de cálculo. Para los usuarios más avanzados, existe también la posibilidadde la creación y verificación de variables. Para todo ello Cleverscript proveeun completo manual paso a paso que guiará a través de todo el proceso. En elejemplo práctico veremos un sencillo script creado con é l.

    Cleverscript se puede usar para proveer asesoramiento y FAQ’s (PreguntasFrecuentes) en sitios web. Muchas grandes compañías ya usan bots pararesponder preguntas. La gran mayoría son grandes motores de búsqueda.Cleverscript provee una gran cantidad de detalles y ayuda específica. Porejemplo si un usuario pregunta “¿Tenés un local en Caballito?”, en vez de solo

    proveer el link de la página de l os “locales” que puede o no puede tener lainformación 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 sobreun producto en específico, guiando al usuario por el proceso de la orden decompra, respondiendo a preguntas en concreto como “¿para qué sirve la cajaamarilla?”

    Cleverscript puede dar vida a un PNJ (personaje no jugador) en juegos – ensitios Web, aplicaciones e incluso juegos de computadora y consola. MuchosPNJ tienen un puñado de respuestas programadas. Los PNJ en Cleverscriptpueden reconocer y decir cientos o miles de cosas. Pueden estar configurados

  • 8/18/2019 Trabajo Práctico Inteligencia IE

    13/28

    INTELIGENCIA ARTIFICIAL – ENTIDADES ARTIFICIALES CONVERSACIONALES

    Página 13 de 28

    como mini rompecabezas dentro de un juego, así solo una específica preguntacomo “¿Dónde está la llave de Doom?” puede devolver la respuesta que senecesita.

  • 8/18/2019 Trabajo Práctico Inteligencia IE

    14/28

    INTELIGENCIA ARTIFICIAL – ENTIDADES ARTIFICIALES CONVERSACIONALES

    Página 14 de 28

    Arquitectura y Funcionamiento básico de un Chatbot

    A continuación de acuerdo con el funcionamiento que explicamos

    anteriormente en la evolución de las entidades conversacionales vemosgráficamente como seria la arquitectura básica de un chatbot así como lospasos y acciones necesarias para su funcionamiento.

    Módulo de Limpieza

    CadenaPatrón

    CadenaPlantilla

    Modulo de Coincidencia dePatrónes

    Módulo de Selección

    Cadena de texto Cadena de texto

    Entrada

    Base dePatrones-Plantillas

    Salida

    Pasos de Procesamiento Acciones Ejemplo

    Entrada Tomar la entrada del usuario Ey, mira lo q encontré aquí :)Limpieza de Entrada Remover y sustituir

    caracteres y palabras comoemoticones o contracciones

    mira lo que encontré aquí

    Coincidencia de Patrón Buscar en la base de datosun patrón de entrada quecoincida con la entrada yalimpia

    Plantillas de Salida Obtener las plantillas desalidas en la base de datos

    de acuerdo al patrón deentrada encontrado

    Selección Seleccionar una plantilla

    Salida Emitirla en la salida ¡No es interesante!

  • 8/18/2019 Trabajo Práctico Inteligencia IE

    15/28

    INTELIGENCIA ARTIFICIAL – ENTIDADES ARTIFICIALES CONVERSACIONALES

    Página 15 de 28

    Estado del Arte Actualmente el funcionamiento establecido por ELIZA sigue siendo el

    predominante en el desarrollo de los chatbots. El estándar AILM, del cualhablamos en la sección anterior cuando mencionamos a ALICE, es el másestablecido en la comunidad. De hecho existe una plataforma para desarrollary publicar bot basados en ese estándar la cual se llama Pandorabots.

    Pandorabots es la comunidad más grande chatbot en Internet. En ella 166.000bot masters (creadores de bots) registrados que han creado más de 206.000chatbots en varios idiomas. Hasta junio de 2012, más de 1500 millonesinteracciones conversacionales se han producido entre los clientes y los bots, yeste número aumenta rápidamente (se puede ver en la parte superior delcentro de la página principal Pandorabots).

    Los bots publicados en Pandorabots aparecen en páginas web, mensajeríainstantánea y pueden responder al correo electrónico y mensajes en el foro.Se pueden encontrar en Second Life, en los juegos en línea, y en las redessociales como Facebook y Twitter. Cada vez más chatbots de este tipo estánapareciendo en las aplicaciones móviles y mensajes de texto.

    Pandorabots está en desarrollo constante y tiene una gran comunidad activa.Pandorabots se adhiere a los estándares abiertos para la publicación chatbot.Para los posibles Pandorabots medida sí ha sido construido a partir desoftware de código abierto.

    Sin embargo en los últimos años, ha aparecido una nueva tendencia en lacreación de entidades artificiales conversacionales. Los autores del libro

    “Conversationa Agent and Natural Lenguage Interacion ” , Diana Perez-Matin eIsmael Pascual-Nieto procedentes de España, exponen a los sistemas dediálogos como los sucesores de los chatbots textuales, y establecen diferenciasentre 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 más teórico de técnicas de motivación. A menudo se desarrollan de dominio específico, mientras que simulaconversacional sistemas están dirigidos a dominio abierto de laconversación.

    Implementan avanzadas técnicas de procesamiento neurolinguistico,pudiendo diferenciar palabras como cuales serían verbos o sustantivos.

    Se nutren de información de internet, como puede ser Wikipedia,Wordreference.

    A continuación vemos un estrato de las características de un sistema dedialogo desarrollado por la empresa argentina BotGenes, el cual muestra la el

    claro estado actual de esta tendencia.

  • 8/18/2019 Trabajo Práctico Inteligencia IE

    16/28

    INTELIGENCIA ARTIFICIAL – ENTIDADES ARTIFICIALES CONVERSACIONALES

    Página 16 de 28

    Juan Cruz, un Agente Virtual desarrollado por BotGenes, trabaja como AsesorVirtual en la Nueva Escuela de Arte y Diseño; Instituto Superior especializadoen la formación de profesionales para la publicidad, el diseño en todas susvariantes, gráfico publicitario, editorial, interiores, moda, Web, la fotografía,las artes, los dibujos animados, la pintura, escultura, dibujo, etc.

    Él tiene estudios en Periodismo, y disfruta dando información a estudiantes dehabla hispana de todo el mundo sobre el Instituto a los interesados.

    Juan Cruz utiliza el "cerebro artificial" en idioma español más avanzadodesarrollado por BotGenes con más de 500.000 reglas de decisión, lo cual le

    permite manejar miles de regionalismos, errores de tipeo, ortográficos ygramaticales, y contextualizar respuestas.

    Él integra tecnologías de PLN, Procesamiento del Lenguaje Natural, con TTS,Texto a Voz, ofreciendo además de chat, audio streaming y un Avatar 3D.

  • 8/18/2019 Trabajo Práctico Inteligencia IE

    17/28

    INTELIGENCIA ARTIFICIAL – ENTIDADES ARTIFICIALES CONVERSACIONALES

    Página 17 de 28

    Desarrollo - Ejemplo Práctico

    Ejemplo de código tipo ELIZA

    El siguiente código es un ejemplo muy básico de lo que sería un chatbot delestilo de ELIZA desarrolla por un programador canadiense llamado CeneliaGonzales y publicado en la comunidad CodeProject bajo la licencia de proyectode código abierto (CPOL).

    Este utiliza el mismo principio de funcionamiento visto en la sección deArquitectura y Funcionamiento mismo principio de funcionamiento, un motorde inferencia efectúa el método de coincidencia por patrón-plantilla de acuerdoa la entrada del usuario. El código se encuentra comentado para un mayorentendimiento.

    #include #include #include #include //Maximo de respuestas por entradas. Es una constante. const int MAX_RESP = 3;

    typedef std::vector vstring;

    //Definión 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 patrón que el motor de inferencia buscara que entradacoincide 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?" ,

  • 8/18/2019 Trabajo Práctico Inteligencia IE

    18/28

    INTELIGENCIA ARTIFICIAL – ENTIDADES ARTIFICIALES CONVERSACIONALES

    Página 18 de 28

    "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." }}};//Tamaño de la base de conocimiento. size_t nKnowledgeBaseSize = sizeof (KnowledgeBase)/ sizeof (KnowledgeBase[0]);

    //Codigo principal. Es la funcion de entrada al programa. int main() {

    //Inicialización 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

  • 8/18/2019 Trabajo Práctico Inteligencia IE

    19/28

    INTELIGENCIA ARTIFICIAL – ENTIDADES ARTIFICIALES CONVERSACIONALES

    Página 19 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 información 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]);}

    }

  • 8/18/2019 Trabajo Práctico Inteligencia IE

    20/28

    INTELIGENCIA ARTIFICIAL – ENTIDADES ARTIFICIALES CONVERSACIONALES

    Página 20 de 28

    Cleverscript

    A continuación veremos un ejemplo práctico usando Clevescript. Lo que hemos

    desarrollado ha sido una pequeña base de coincidencia de patrones-plantillas yhemos agregado algunas características de Cleverscript como las variables. Elobjetivo de esta práctica es demostrar cómo es una base de datos para estetipo de bots y como se puede conseguir una charla con estas entidades desdealgo muy sencillo. La base de conocimientos utilizada para este ejemplo seencuentra luego de las instrucciones.

    Instrucciones

    1) Navegar al sitio web de Cleverscripthttp://www.cleverscript.com/

    2) Ingresar el usuario y contraseña en el sitio para logearseUsername: Isne8717 Password: 3Ai1KGZLCS6j

    http://www.cleverscript.com/http://www.cleverscript.com/http://www.cleverscript.com/

  • 8/18/2019 Trabajo Práctico Inteligencia IE

    21/28

    INTELIGENCIA ARTIFICIAL – ENTIDADES ARTIFICIALES CONVERSACIONALES

    Página 21 de 28

    3) Hacer click en la sección “Chat”

    4) Elegir el bot J.A.R.V.I.S . y las opciones marcadas a continuación.Luego c likear en “Start Chat”

  • 8/18/2019 Trabajo Práctico Inteligencia IE

    22/28

    INTELIGENCIA ARTIFICIAL – ENTIDADES ARTIFICIALES CONVERSACIONALES

    Página 22 de 28

    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, cuál 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?

  • 8/18/2019 Trabajo Práctico Inteligencia IE

    23/28

    INTELIGENCIA ARTIFICIAL – ENTIDADES ARTIFICIALES CONVERSACIONALES

    Página 23 de 28

    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)

  • 8/18/2019 Trabajo Práctico Inteligencia IE

    24/28

    INTELIGENCIA ARTIFICIAL – ENTIDADES ARTIFICIALES CONVERSACIONALES

    Página 24 de 28

    Base de Conocimiento

  • 8/18/2019 Trabajo Práctico Inteligencia IE

    25/28

    INTELIGENCIA ARTIFICIAL – ENTIDADES ARTIFICIALES CONVERSACIONALES

    Página 25 de 28

    Relación con temas vistos Habiendo visto el funcionamiento y la historia de las entidades artificiales

    conversacionales, podemos ver con facilidad que estas son básicamentesistemas expertos basados en reglas como los vistos en clase.

    Definición de sistema experto: Un sistema experto es un programa o unconjunto de programas que, sobre una base de conocimientos, poseeinformación de uno o más expertos en un área específica

    Podemos relacionar el chat bot es un programa que posee conocimientos

    sobre el área de la conversación.

    Veamos más detenidamente sus partes:

    Motor de Inferencia: también conocido como intérprete de reglas, se encargade las operaciones de búsqueda y selección de las reglas a utilizar en el

    proceso de razonamiento.

    En el caso de los chat bots, el motor de inferencia es el encargado deencontrar la mejor coincidencia entre el patrón y la plantilla, es decir buscarque debe decir el bot ante determinado ingreso del usuario.

    Base de Conocimiento : posee el conocimiento del experto humano formalizadoy estructurado.

    La base de conocimiento en un robot de charla es la compuesta por las reglasde coincidencia entre cada patrón y cada plantilla, es decir la que establece aque patrón le corresponde cada plantilla. Esta es llenada por el expertohumano que serían los programadores del robot

    Base de hechos: o también conocida como memoria de trabajo, es la memoriatemporal que almacena los datos del usuario, los datos del problema y losresultados intermedios obtenidos a lo largo del proceso de resolución.

  • 8/18/2019 Trabajo Práctico Inteligencia IE

    26/28

    INTELIGENCIA ARTIFICIAL – ENTIDADES ARTIFICIALES CONVERSACIONALES

    Página 26 de 28

    En este caso serían las variables utilizadas para reconocer al usuario con elque se está interactuando, como puede ser su nombre, su residencia, etc.

    Interfaz de usuario: son los elementos que gobiernan la interacción y eldialogo entre el sistema y el usuario.

    En una entidad conversacional básica esto sería la entrada manual de texto yla salida por pantalla de las respuestas. En los sistemas de diálogos másavanzados estos podrían estar compuestos por sistemas de reconocimiento devoz, salidas de audio para que el robot hable y representación gráfica de unapersona en pantalla para dotar de vida a la entidad.

  • 8/18/2019 Trabajo Práctico Inteligencia IE

    27/28

    INTELIGENCIA ARTIFICIAL – ENTIDADES ARTIFICIALES CONVERSACIONALES

    Página 27 de 28

    Conclusiones Expuesto el material, podemos concluir que las entidades artificiales

    conversacionales al basar arquitectura en los sistemas expertos estánorientados al área de la comunicación, por lo tanto son muy buenos enaplicaciones específicas tales como:

    • Comercio electrónico

    • Help Desk o soporte

    • Navegación web

    • Educación

    El problema de ellos es que muchos se basan en el método de coincidencias elcual busca en su base de conocimiento una cadena similar a la entrada paraobtener una posible salida. Esto limita a las entidades a no comprenderrealmente lo que el usuario quiere decir, pero las nuevas tendencias desistemas de dialogo intentan suplir estas deficiencias con técnicas avanzadasde procesamiento de lenguaje.

    También comprendimos que hay una evolución en la forma de comunicarsecon estas entidades que ha ido desde entradas de texto e salidas textuales enpantallas, reconocimiento corporal y facial, hasta comunicación por voz y botsdotados de avatares con movimientos y expresiones. Así pudimos ver que segenera una interacción más amena con el usuario.

    Finalizamos concluyendo que el futuro de estas entidades es un granpotencial a explotar y que debe hacerse uso de las tecnologías actuales, comoKinect de Microsoft para reconocimiento de posiciones corporales o faciales, yexprimir el uso de la web como base de conocimiento ya que es la base queinconscientemente las personas han ido cargando a los largo de más de 25años.

  • 8/18/2019 Trabajo Práctico Inteligencia IE

    28/28