Sistema de patrones para alice bot en castellano

Anuncio
6LVWHPDGHSDWURQHVSDUDDOLFHERWHQFDVWHOODQR$OLFHHVS;
Arturo Chozas Álvarez Villabol
Procesamiento del lenguaje natural
C\ Sanchidrián, 28-1.
28224 Madrid, España,
arturoch@airtel.net
Julio Viñas Setién
Procesamiento de lenguaje natural
C\ Liverpool, 11.
28922 Madrid, España,
juliovs@airtel.net
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,
soa@airtel.net
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
Descargar