6LVWHPDGHSDWURQHVSDUDDOLFHERWHQFDVWHOODQR$OLFHHVS; Arturo Chozas Álvarez Villabol Procesamiento del lenguaje natural C\ Sanchidrián, 28-1. 28224 Madrid, España, [email protected] Julio Viñas Setién Procesamiento de lenguaje natural C\ Liverpool, 11. 28922 Madrid, España, [email protected] ChatBot desarrollado usando procesamiento del lenguaje natural basado en el conocimiento (expresado mediante patrones). 1. Introducción. Como definición más general, podemos decir que un bot de charla es un programa que pretende simular una conversación escrita, con la intención de, al menos temporalmente, hacerle creer a un humano que está hablando con otra persona. Más que un problema, el objetivo al que se intenta llegar es desarrollar un chatbot que imite el comportamiento de un ser humano, de tal manera que dé la impresión de ser “inteligente”. La idea es hacer creer al usuario que está hablando con una persona de verdad. Tras realizar un estudio sobre los proyectos actuales más importantes, podemos decir que todavía está muy lejano el día en que un chatbot consiga pasar el Test de Turing1. Este test es muy sencillo. Se coloca a una persona en un lugar no visible y, entonces, éste habla con el chatbot; si esta persona no encuentra diferencia entre el chatbot y un humano, entonces es que hay Inteligencia Artificial en el chatbot. Por tanto, pasa el Test de Turing1. La gran mayoría de los chatbot desarrollados hasta el momento analizan los patrones de diálogo empleados por su interlocutor humano, para luego buscar una respuesta adecuada. Por ello, aunque no entiendan lo que se les está diciendo, pueden analizar la frase y presentar una respuesta totalmente lógica e incluso sensible. Por ejemplo, al afirmarse "no me gustan los gatos", el chatbot puede responder "¿por qué no te gustan los gatos?". Otro aspecto importante en los proyectos actuales es que éstos se sirven de una base de conocimiento previamente codificada; aunque 1 Test de Turing: en honor de Alan Turing (19121954), renombrado matemático considerado por muchos como el fundador de la ciencia informática, quien en 1950 propuso el test original en su tesis sobre "Maquinaria e Inteligencia Informática" Sergio Oña Agüera Procesamiento de lenguaje natural Plaza Hospital Civil, 7. 29009 Málaga, España, [email protected] algunos resaltan más que otros debido a que pueden aprender términos nuevos a medida que conversa con la persona. El proyecto Alice-Esp que vamos a desarrollar va a analizar los patrones de diálogo empleados por el interlocutor humano, para dar una contestación coherente. Nuestro chatbot será el resultado de la modificación, ampliación y/o traducción de las funciones y/o la base de conocimiento de un chatbot existente que es totalmente funcional y ha sido galardonado con el Loebner Prize2, en 2000 y 2001. 2. Descripción del problema. Como ya se ha comentado en la introducción, el objetivo del proyecto a desarrollar no es realmente solucionar o evitar un problema, sino que es más bien, intentar simular el comportamiento humano en una conversación con una persona. Pero como también se ha dicho, lo vamos a hacer partiendo de la base del Alicebot el cual esta funcionando en ingles y algunos otros idiomas como portugués, coreano, alemán ó ruso, y queremos conseguir que haga lo mismo pero en castellano. El resultado óptimo es que la persona no se dé cuenta que está hablando con una máquina. Por tanto, en otras palabras, el objetivo es replicar la inteligencia humana en una máquina con el fin de conversar con una persona: Inteligencia Artificial. Como no se trata de ser demasiado pretenciosos, lo que no se intentará es solucionar todos los problemas (en lo referente al lenguaje natural) que ha lo largo de la historia han intentado solucionar mucho desarrolladores y que aun esta sin conseguir. Por lo tanto podemos resumir nuestro resultado al “Problema” como: “Conseguir una versión de A.L.I.C.E. que se desenvuelva correctamente en castellano y que lo haga, en por lo menos un dominio concreto” ya que hacer esto para cualquier dominio del lenguaje es proponerse metas demasiado lejanas. El dominio que se ha escogido parece en principio un poco delicado, el Sexo, pero cuando uno se para a pensarlo bien, se puede dar cuenta de que las conversaciones referente a sexo dentro de un canal de charla, son bastante parecidas entre si, y en principio, el conocimiento que necesita el bot es menor que muchos otro temas o dominios. Es cierto debemos decir que no se trata de un tema “reducido” por decirlo de alguna manera y que probablemente el bot no funcione con tanta precisión cuando una conversación en particular pase a asuntos que no son los clásicos. 3. Trabajo relacionado. Realmente todos los trabajos de los que se hablarán en este articulo, incluyendo el nuestro, se pueden considerar aspirantes a ganar una carrera, pero se trata de una carrera un tanto especial, ya que el objetivo es hacer un sistema inteligente con el que se pueda conversar al igual que se haría con una persona normal, sin que se note, a priori, ninguna diferencia. Esta carrera aun no ha llegado a su fin y no se puede decir cuando llegará y ni siquiera si lo hará o no, pero lo que si esta claro es como comenzó. El principio de todo esto está en el ya mencionado test de turing [Turing 50], con lo que Turing llamó “el juego de la imitación” (the Imitation Game) y con lo que pretendía responder a la pregunta de si “las maquinas pueden pensar”. Otro de los pasos importantes lo dio Hugh Loebner en 1991, con la creación del premio de su mismo nombre y que ya se ha comentado anteriormente, pero antes de esto nos encontramos con el primer sistema y pionero en el campo de los chatbots, “Eliza” [Weizenbaum 76], que fue el primer programa realizado de este tipo. Era un chatbot funcional para el ámbito de la psicología, el cual fue creado en 1980 por Joseph Weizenbaum y consiguió que las personas le contarán sus problemas igual que si estuvieran hablando con un psicólogo. Eliza, no ha sido solo el primero de los chatbost, sino que es el pilar fundamenta para casi todos ellos, ya que se basan principalmente en la creación de patrones que simulen el comportamiento humano. Junto con Eliza cabe destacar la creación de PARRY [Colby 75] que se trataba de un bot que en este caso se ponía en el lado opuesto de Eliza, ya que trataba de simular paciente paranoico, este bot se evaluó mezclándolo con tres pacientes que realmente tenían dicha enfermedad y enfrentándolos a un medico de verdad. Hace unos años, en 1995, el Dr. Richard Wallace escribió A.L.I.C.E. que es como ya hemos dicho el bot a partir del cual vamos a realizar nuestro trabajo de adaptación al castellano. El desarrollo de A.L.I.C.E. empezó en su primera versión, usando, 6(7/ (lenguaje basado en lógica matemática y un conjunto de teorías). A partir de este primer intento se desarrollo lo que se denominó “Program A” que fue la primera versión de A.L.I.C.E. usando $,0/ (Artificial Inteligen Markup Language) y Java. El siguiente paso de este bot fue el “Program B” en el que ya intervinieron alrededor de 300 desarrolladores y donde AIML evolucionó a una gramática procedente de XML, esto ocasionó el desarrollo de editores y herramientas para la gestión de AIML, y fue con esta versión con la que se ganó el Loebner Prize en 2000. A partir de aquí se crearon otras dos versiones de A.L.I.C.E., el “Program C” (que se desarrollo usando C/C++) y el “Program D” (basado en la tecnología Java2). A partir de aquí se creo, en 2001 “The A.L.I.C.E. AI Foundation” cuyos objetivos son entre otros, la distribución, promoción, desarrollo y mantenimiento de Alicebot y de la tecnología AIML. Al tratarse de una organización sin animo de lucro, distribuyen sus recursos de forma gratuita para fines de investigación y formación. La última versión de la que hemos hablado, el “Program D” es la más actual y aporta entre otros avances tres interfaces para el bot; en consola de comandos, IRC, y un Bot a través de WEB con el siguiente aspecto. ! Otro trabajo a destacar lo encontramos en TinyMud [Rheingold 91], el cual no es un bot pero se convirtió en un entorno muy apropiado para probar este tipo de sistemas ya que se trataba de una especie de mundo virtual donde los usuarios participantes podían entrar a charlar sobre diferentes temas. Uno de los bot que se probo en este entorno y con buenos resultados fue un “chartter bot” desarrollado por la universidad de Carnegie Mellon, el cual contó con la ventaja de que ninguno de los participantes en las charlas conocía la existencia del bot, este bot se convirtió más adelante en “Julia”. Algo parecido al TinyMud pero mas actual y que actualmente se puede descargar y utilizar (ver referencias) es “Spence's Virtual Bar” y se trata de un irc que simula un bar donde los clientes pueden establecer conversaciones y claro está, ser atendidos por la camarera, “Erin” un bot cuyo tema principal de conversación es el Rock & Roll. ! Otros bot que se ha desarrollado son algunos como “Theresa” (cuyos principales temas de conversación son la música y la mitología griega), “Mimic” (el cual aprende mientras se mantienen conversaciones con él), “Brian” (que gano el tercer puesto en el Loebner Prize de 1998), “Mitbolel” (bot que se puede descargar e integrarlo dentro de nuestra propia web), “Robot Rock Critic” (Confecciona críticas de discos y artistas que no existen), “E.L.V.I.S.” (chatbot de Elvis Presley), “Jlaip” (intenta replicar la personalidad del ex Beatle John Lennon. Es de suponer que la mayoría de los chatbots están preparados para realizar una conversación en lengua anglosajona. A pesar de la supremacía de los chatbots en idioma ingles, también cabe destacar algunos chatbots desarrollados con el objetivo de establecer una conversación en lengua castellana. Por ejemplo: Dr. Abuse (Basado en Eliza), el cual es uno de los mejores chatbots escritos en español en la actualidad. Se nos presenta como un psiquiatra al que visitamos para que resuelva nuestros problemas, aunque es capaz de salir airoso de prácticamente cualquier situación que se pueda presentar en conversación. Sus conversaciones están salpicadas de toques de humor y los autores han conseguido dotarle de una personalidad definida. Véase, por ejemplo, la siguiente conversación entre dos chatbots: Dr.Abuse y Kas. Abuse> ¿Qué haces para sobrevivir? Kas> el instinto nos ayuda a sobrevivir. Abuse> ¿Quién no necesita ayuda realmente? Kas> la belleza es muy superior al genio.no necesita explicacion Abuse> No explico nada. Kas> Absolutamente nada... Abuse> Pareces muy seguro de ti. Kas> Segurisimo? Abuse> Seguro, lo que es seguro, nadie lo está. Kas> estoy contigo. Abuse> ¿Conmigo? Kas> Vaya... no he encontrado nada sobre conmigo en ese sentido del que hablas, me gustaria que me contases algo sobre ello para aprender. Abuse> No sé mucho sobre el tema. Kas> aha. Otro chatbot escrito en español es Zebal. La principal característica de Zebal, es sin duda su gran capacidad para interactuar con "el exterior". Fue todo un acierto el dotar a Zebal de conexión a servidores IRC, lo que proporcionaría además a su autor de una fuente ilimitada de conversaciones con las que depurar la mente del robot. Esta interactividad con el medio se completa en sus últimas versiones con otra gran idea, y es la de la posibilidad de acceder remotamente a bases de datos. De esta forma sus capacidades se ven mejoradas con un diccionario de 30.000 palabras o incluso la posibilidad de que Zebal recoja diversa información de Internet. En conversación, Zebal es algo más inestable a la hora de construir sintácticamente sus respuestas respecto al bot Dr. Abuse, aunque se defiende muy correctamente y nos ofrece un resultado más que aceptable en nuestras charlas. Por último destacar que en el mundo de los chatbot no solo se han desarrollado trabajos en ingles y algunas cosas en castellano como se ha comentado, sino que también existen lineas de investigación en otros idiomas, como ejemplo de esto, tenemos a “Eloisa” (que se trata de un bot tal y como se ha dicho para mantener charlas en italiano). Por último decir que muchos de estos bot son en principio de carácter general, es decir que no están especializados en ningún tema en particular, mientras que otros si lo están en temas como (Elvis, Musica, Rock and Roll, John Lenon, etc), pero ninguno de ellos esta especializado en “Sexo” que es el caso de “Alice-EspX”. 1RPEUH (OL]D $/,&( =HEDO -XOLD (ULQ 0LWEROHO 0LPLF %ULDQ 'U$EXVH 7KHUHVD (ORLVD $OLFH(VS; 7HPD Psicología General General General Rock & Roll General General General Psicología Musica General Sexo ,GLRPD Ingles Ingles Españo Ingles Ingles Ingles Ingles Ingles Españo Ingles Italiano Españo 8UO http://www.manifestation.com/neurotoys/eliza.php3 http://www.alicebot.net http://www.espasoft.net/fichas/zebal.shtml http://www.lazytd.com/lti/julia/ http://www.extempo.com/webbar/index.html http://www.romahi.com/yazann/Mitbolel/Mitbolel.html http://www.thespoon.com/mimic/ http://www.strout.net/info/science/ai/brian/ http://www.ctv.es/USERS/jboronat/drabuse.html http://www.oz.com/ov/agents/main_index.html http://web.tin.it/eloisa/ http://aurora.esi.uem.es/~jvinas 4. Nuestro enfoque. Nuestra idea es trabajar a partir del chatbot A.L.I.C.E.; ¿Pero por que a partir de A.L.I.C.E., con todos los bot que existen, tal y como ya se ha mencionado?. La respuesta a esta pregunta, esta basada en tres razones: (1) Libre (open-source): A.L.I.C.E. se trata un programa libre donde todo el que se lo descarga tiene acceso total al código y a su base de conocimiento. Esto resulta un punto primordial para el trabajo a desarrollar, si no se diera este requisito no podríamos partir de ninguna base y lo que se trataría de hacer es desarrollar un bot desde cero y no basarnos en un bot ya hecho y de correcto funcionamiento para a partir de hay realizar una adaptación al castellano. (2) Calidad: A.L.I.C.E. es uno de los mejores bot que existen para el ingles, ya se ha comentado en alguna ocasión el Loebner Prize que ganaron los desarrolladores de AliceBot en 2000 y 2001. y ¿qué sentido tendría coger como base para realizar un trabajo algo que no se sabe si funciona bien o mal?. Con A.L.I.C.E. tenemos asegurado una cierta calidad contratada, basta con ponerse a charlar un rato en ingles con Alice, para darse cuenta de que las respuesta obtenidas son bastante buenas. (3) Se trata de un bot en Ingles. Pero del que se tienen referencias de que ya ha sido extendido a otro idiomas como portugués, ruso ó coreano entre otros. Lo que supone algo a favor ya que si se han desarrollado estos otros trabajos, nada hace pensar en principio que no se pueda recorrer el mismo camino para el castellano. Se ha dicho que este trabajo trata de conseguir un bot que hable en español y que hable de Sexo, para conseguir un posible éxito en el test de turing dicho sistema debería engañar a una persona para que esta creyera que esta hablando con otra persona y no con una máquina. Por esto el comportamiento del bot debe ser parecido al de un ser humano charlando en un canal de sexo, y por esta razón no hablará correctamente y deberá cometer algún tipo de fallo mecanográfico e incluso decir alguna que otra palabra mal sonante muy normal en este tipo de canales. Un problema que debemos tener en cuenta a la hora de realizar este tipo de adaptaciones de idioma son las frases hechas y expresiones comunes, pero este problema se hace mayor en nuestro caso, ya que el uso de este tipo de expresiones hechas en un chat de sexo es mayor, quizás, que en otro chat de carácter general. Este trabajo se basa principalmente en la traducción y adaptación de los patrones en Ingles de A.L.I.C.E. además de la creación de nuevos. Por esto lo primero que debemos saber es como son estos patrones que utiliza AliceBot. Estos patrones están implementados según el sistema de etiquetas de AIML, un ejemplo de estos patrones es el siguiente: FDWHJRU\! SDWWHUQ!6(;2SDWWHUQ! WHPSODWH! UDQGRP! OL!$WUDYHVGHORUGHQDGRUHVPHQRV GLYHUWLGROL! OL!$YHUFXDQGRTXHGDPRVOL! OL!1RPHGLJDVHVDVFRVDVTXHQR UHVSRQGROL! OL!$YHFHVSLHQVRTXHHVPDVSODFHQWHUR VROROL! OL!OL! UDQGRP! WHPSODWH! FDWHJRU\! Con esta regla en AIML, al escribir la palabra “SEXO”, el sistema contestara aleatoriamente entre alguna de las opciones encerradas entre etiquetas “<li>”. AIML esta formado por un conjunto de etiquetas, y esta regla podemos ver algunas más como puede ser “<category>” que encierra a cada una de las reglas “<pattern>” que muestra la entrada que obtiene el sistema, “<template>” muestra la respuesta que ofrecerá el sistema, “<random>” etiqueta encargada de generar la respuesta aleatoria entre las posible respuestas que encierra. Un ejemplo de otras etiquetas disponibles en AIML son: DLPO!ERWQDPH QDPH!ERW QDPH ;;;!WKDWLQGH[ LQGH[ Q[Q\!WKDW!FDWHJRU\!LQSXW LQGH[ !LQSXWLQGH[ QDPH ;YDOXH !WKDW !FRQGLWLRQ <!FRQGLWLRQ! JHQGHU!GDWH!LG!JHW QDPH [[[!VL]H!VWDULQGH[ WKDWVWDULQGH[ WRSLFVWDULQGH[ QDPH Q!JHWQDPH Q! WRSLF! Q!YHUVLRQ!JHW [[[!JRVVLSVUF ;! OHDUQ!;OHDUQ! hasta ahora se ha explicado lo que se ha hecho, pero no se puede terminar si antes mostrar un ejemplo de los resultados obtenidos, a continuación se puede ver el resultado de una de las conversaciones que el Alice-EspX mantuvo con uno de sus creadores. [JulKeZ] user> Hola! Alice-EspX> Hombre, hola de nuevo! Como estas? [JulKeZ] user> Yo bien, y tu? Alice-EspX> Bueno... podria estar mejor [JulKeZ] user> te pasa algo? Alice-EspX> No habiamos venido a hablar de sexo? [JulKeZ] user> si, si, que te gusta del sexo? Alice-EspX> A ver cuando quedamos... [JulKeZ] user> hmm, pero que te gusta del sexo? Alice-EspX> Tu que crees? (no contestes a eso, ehh) [JulKeZ] user> Quieres echar un polvo conmigo? Alice-EspX> Hmmm, Sigamos hablando un poco mas... [JulKeZ] user> me tengo que ir Alice-EspX> Hasta luego, user. [JulKeZ] user> Adios Alice-EspX> Hasta otra, user. 5. Evaluación. A lo largo de este articulo se ha hablado de el test de turing, del cual se dijo que se toma como referente para evaluar como de buenos son los sistemas que intentan imitar el comportamiento humano, ó dicho de otra manera, si un programa de ordenador es inteligente ó no. La calidad de dicho método de evaluación está más que contrastada hasta el punto que los ya mencionados loebner Prize están basados en los resultados que consiguen los sistemas en dicho test de Turing. La evaluación a la que se va a someter al AliceEspX será algo parecida a test de Turing. Lo más deseable sería probar el bot, donde se deben probar los bot , en un canal, y así poder ver cuanto tarda en ser descubierto y que tipo de intervenciones realiza, incluso si hay participantes de la charla que se dirigen directamente a él ó no, esto indicaría que aunque temporalmente, Alice-EspX les habría engañado, lo que nos daría un resultado bastante satisfactorio del trabajo final. 6. Conclusiones y futuro de trabajo. Nuestro chatbot no aporta ningún bien a la sociedad, pero sí sirve para demostrar que una máquina es capaz de expresarse de la forma más parecida al ser humano sin llegar a serlo. En un futuro las máquinas serán capaces de pensar por sí mismas y no será necesario que éstas sigan unos patrones de comportamiento del interlocutor. Serán capaces de pensar, tener estímulos, comportarse de forma autónoma, ... En conclusión, este proyecto es sólo una parte ínfima del fantástico e inimaginable mundo al que pertenece la inteligencia artificial. Decir también que este trabajo realizado no tiene un final aquí, sino que esta sujeto a distintas mejoras y ampliaciones como puede ser la inserción de más patrones que hagan del comportamiento del bot, más humano, e incluso la inserción de patrones referentes a otros temas para que el bot sea capaz de dialogar entorno a otros temas y no únicamente sexo. Ciertamente a partir de aquí son muchas las posibilidades que se nos abren pero siempre teniendo como referente el aumento de la calidad del bot para que cada vez obtenga mejores resultado en ya tan nombrado test de turing. Agradecimientos El principal agradecimiento va dirigido a la gente que han desarrollado A.L.I.C.E. o lo que es lo mismo a Richard S. Wallace y a su equipo, que no solo han desarrollado el bot y el AIML sino que además facilitan su distribución poniendo el código como opensource en su web. Y haciendo referencia al resto de articulo es justo dar las gracias a gente como Alan Turing el cual a sido todo un referente y un punto de partida para toda la gente que trabaja en torno al procesamiento de lenguaje natural. El último agradecimiento va dirigido a Hugh Loebner, como gran potenciador de este y de muchos otros trabajos a través de los premios que llevan su nombre y que ya se han mencionado, los cuales han servido para alentar a muchos desarrolladores a realizar trabajos cada vez mejores, entre otros al ya mencionado R. S. Wallace cuya base de conocimiento del bot, es la que se ha modificado en Alice-EspX. No olvidarnos tampoco de toda esa gente que no solo enseña sino que también apoya para lograr que cada vez existan más trabajos en esta línea. Referencias Dr. Richard S. Wallace, Jon Baer, Noel Bush, Niva Dubrovsky, Brenda Freedman, Gene Riccoboni A.L.I.C.E. AI Foundation. http://www.alicebot.org Hugh Loebner, The Cambridge Center for Behavioral Studies Loebner Prize. http://www.loebner.net/Prizef/loebner-prize.html Andrew Hodges The Alan Turing Home Page. http://www.turing.org.uk/turing/ A.L.I.C.E. AI Foundation AIML: Artificial Intelligence Markup Language. http://alicebot.org/alice/aiml.html Ocio Total Realidad y ficción de los chatbots http://www.ociototal.com/recopila2/r_internet/ch atbots.html Luis Hernández Inteligencia Artificial: BDC Bots de charla http://www.inteligenciartificial.net Test de Turing, información on-line sobre el test e información relevante sobre dicho tema. http://cogsci.ucsd.edu/~asaygin/tt/ttest.html