tesis de master “integraciÓn de un chatbot como...

136
UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INGENIERÍA DE SISTEMAS Y AUTOMÁTICA TESIS DE MASTER TESIS DE MASTER TESIS DE MASTER TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO HABILIDAD “INTEGRACIÓN DE UN CHATBOT COMO HABILIDAD “INTEGRACIÓN DE UN CHATBOT COMO HABILIDAD “INTEGRACIÓN DE UN CHATBOT COMO HABILIDAD DE UN ROBOT SOCIAL CON GESTOR DE DIÁLOGOS” DE UN ROBOT SOCIAL CON GESTOR DE DIÁLOGOS” DE UN ROBOT SOCIAL CON GESTOR DE DIÁLOGOS” DE UN ROBOT SOCIAL CON GESTOR DE DIÁLOGOS” Autor: Juan Carlos Cobos Torres. Directores: Javier Fernández de Gorostiza Luengo. y Fernando Alonso Martin. MASTER OFICIAL EN ROBÓTICA Y AUTOMATIZACIÓN. LEGANÉS, MADRID OCTUBRE 2013

Upload: nguyenkhanh

Post on 18-Oct-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID

DEPARTAMENTO DE INGENIERÍA DE SISTEMAS Y AUTOMÁTICA

TESIS DE MASTERTESIS DE MASTERTESIS DE MASTERTESIS DE MASTER

“INTEGRACIÓN DE UN CHATBOT COMO HABILIDAD “INTEGRACIÓN DE UN CHATBOT COMO HABILIDAD “INTEGRACIÓN DE UN CHATBOT COMO HABILIDAD “INTEGRACIÓN DE UN CHATBOT COMO HABILIDAD

DE UN ROBOT SOCIAL CON GESTOR DE DIÁLOGOS”DE UN ROBOT SOCIAL CON GESTOR DE DIÁLOGOS”DE UN ROBOT SOCIAL CON GESTOR DE DIÁLOGOS”DE UN ROBOT SOCIAL CON GESTOR DE DIÁLOGOS”

Autor: Juan Carlos Cobos Torres.

Directores: Javier Fernández de Gorostiza Luengo.

y Fernando Alonso Martin.

MASTER OFICIAL EN

ROBÓTICA Y AUTOMATIZACIÓN.

LEGANÉS, MADRID

OCTUBRE 2013

Page 2: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que
Page 3: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID MASTER OFICIAL EN ROBÓTICA Y AUTOMATIZACIÓN

El tribunal aprueba la tesis de Master titulada ““““INTINTINTINTEGRACIÓN DE EGRACIÓN DE EGRACIÓN DE EGRACIÓN DE UN CHATBOT COMO HABILIDAD DE UN ROBOT SOCIAL CON UN CHATBOT COMO HABILIDAD DE UN ROBOT SOCIAL CON UN CHATBOT COMO HABILIDAD DE UN ROBOT SOCIAL CON UN CHATBOT COMO HABILIDAD DE UN ROBOT SOCIAL CON GESTOR DE DIÁLOGOSGESTOR DE DIÁLOGOSGESTOR DE DIÁLOGOSGESTOR DE DIÁLOGOS”””” realizado por Juan C. CobosJuan C. CobosJuan C. CobosJuan C. Cobos....

Fecha: octubre 2013

Tribunal: _____________________________________________

Presidente

_____________________________________________ Vocal

_____________________________________________ Secretario

Page 4: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que
Page 5: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

Al recuerdo de mis Abuelitos que siempre los llevo en mi corazón.

“El que tiene fe en sí mismo no necesita que los

demás crean en Él”

Miguel de Unamuno.

Page 6: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que
Page 7: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

V

ÍNDICE GENERALÍNDICE GENERALÍNDICE GENERALÍNDICE GENERAL

ÍNDICE GENERAL .........................................................................................V

ÍNDICE ILUSTRACIONES .......................................................................... XI

AGRADECIMIENTOS .................................................................................. XV

RESUMEN ................................................................................................... XIX

ABSTRACT ................................................................................................. XXI

CAPÍTULO: PRELIMINARES. ............................................................. 1

1.1. Introducción. .................................................................................. 1

1.2. Objetivos. ........................................................................................ 2

1.2.1 Generales. ............................................................................................ 2

1.2.2 Específicos. .......................................................................................... 2

1.3. Estructura del documento. ........................................................... 3

CAPÍTULO: ESTADO DEL ARTE. ....................................................... 7

2.1. Reseña Histórica. ........................................................................... 7

2.2. Agentes Conversacionales o Chatbots. ...................................... 9

2.2.1. Características de los Chatbots. ................................................. 10

2.2.2. Aplicaciones. ................................................................................ 12

2.2.3. Arquitectura de los Chatbots. .................................................... 12

2.2.4. Evaluación de Chatbots. ............................................................. 15

2.3. Plataformas de desarrollo de chatbots. .................................... 18

2.3.1. AIML. ............................................................................................ 18

2.3.2. RiveScript. .................................................................................... 19

2.3.3. Aerolito. ........................................................................................ 20

2.4. Comparación de plataformas de desarrollo de chatbots. ...... 20

2.5. Justificación de elección. ............................................................. 21

Page 8: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

VI

CAPÍTULO: ANÁLISIS DE CHATBOTS ACTUALES. ................... 25

3.1. Análisis de Chatbots existentes. ............................................... 25

3.1.1. Jabberwacky, George y Joan...................................................... 26

3.1.2. Cleverbot. ..................................................................................... 28

3.1.3. Akinator (2007). ........................................................................... 29

3.1.4. Elbot (2001). ................................................................................. 31

3.1.5. Pandorabots. ................................................................................ 33

3.1.6. BotGenes. ..................................................................................... 34

CAPÍTULO: EVALUACIÓN DE CHATBOTS. ................................ 41

4.1. Evaluación de Chatbots. ............................................................ 41

4.1.1. Tabulación de Datos. .................................................................. 41 4.1.2. Análisis de resultados. ................................................................... 47

CAPÍTULO: PLATAFORMA DE INTEGRACIÓN DE CHATBOTS. .......................................................................................................................... 51

5.1. Integración a gestor de diálogos. .............................................. 51

4. ....................................................................................................... 52

5.1.1. Nodo ASR. ................................................................................... 52

5.1.2. Nodo eTTS. .................................................................................. 52

5.2. Diseño del sistema. ..................................................................... 52

5.2.1. Plataforma de integración del chatbot George. ...................... 53

5.2.2. Desarrollo del Prototipo. ........................................................... 54

5.3. Plataforma de integración chatbot Diego. ............................... 55

5.3.1. Desarrollo del Prototipo. ........................................................... 57

5.4. Plataforma para el desarrollo del chatbot local. ..................... 58

5.4.1. Desarrollo del Prototipo. ........................................................... 59

5.5. PyAIML (Inteligencia Artificial Mark-up Language). ........... 67

CAPÍTULO: PRUEBAS EXPERIMENTALES. .................................. 73

6.1. Introducción. ............................................................................... 73

6.2. Ejecución general de Plataformas. ............................................ 73

6.2.1. Ejecución de Plataforma Diego. ................................................ 76

6.2.2. Ejecución de Plataforma George. .............................................. 77

Page 9: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

VII

6.2.3. Ejecución de Plataforma Local. ................................................. 78

6.2.4. Autoevaluación de la plataforma Bot Local. ........................... 79

6.2.4.1. Fluidez verbal semántica. ........................................................... 80

6.2.4.2. Fluidez verbal fonológica. .......................................................... 81

6.2.4.3. Denominación a definiciones. ................................................... 81

6.2.4.4. Denominación de objetos. ¿Qué es esto? ................................. 81

6.2.4.5. Fluidez verbal de nombres propios y Denominación de nombres propios. ¿Cómo se llama…?. ................................................... 82

6.2.4.6. Recuerdo de una persona. (Presentación de conocido). ........ 82

6.2.4.7. Cantidad y Capacidad de cálculo. ............................................ 83

6.2.4.8. Ambigüedad. ............................................................................... 83

6.2.4.9. Ubicación temporal. .................................................................... 83

6.2.4.10. Capacidad lingüística. ................................................................ 84

6.2.4.11. Razonamiento lógico y Capacidad crítica, .............................. 84

CAPÍTULO: CONCLUSIONES Y TRABAJOS FUTUROS. ............ 87

7.1. Conclusiones. ............................................................................... 87

7.2. Aportaciones ................................................................................ 88

7.3. Trabajos Futuros. ......................................................................... 89

7.4. Recomendaciones. ....................................................................... 90

CAPÍTULO: ANEXOS. ........................................................................ 93

8.1. Lenguaje AIML (Inteligencia Artificial Mark-up Language). .................................................................................................. 93

BIBLIOGRAFÍA ........................................................................................... 109

Page 10: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que
Page 11: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

IX

ÍNDICE TABLASÍNDICE TABLASÍNDICE TABLASÍNDICE TABLAS

Tabla 1 Aplicaciones de los chatbots. __________________________________ 12

Tabla 2. Comparación de plataformas de desarrollo de chatbots. __________ 21

Tabla 3 Código de Base de Conocimiento AIML. ________________________ 67

Tabla 4 Estructura motor de inferencia PyAIML. ________________________ 69

Tabla 5 Propiedades de un Chatbot en AIML. __________________________ 97

Page 12: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que
Page 13: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

XI

ÍNDICE ILUSTRACIONESÍNDICE ILUSTRACIONESÍNDICE ILUSTRACIONESÍNDICE ILUSTRACIONES

Ilustración 1 Premio Loebner Medalla de Oro.1 __________________________ 9

Ilustración 2 Estructura básica de un chatbot. ___________________________ 13

Ilustración 3 Estructura ampliada de un chatbot. ________________________ 14

Ilustración 4 Test de Turing. _________________________________________ 15

Ilustración 5 Experimento de la habitación China. _______________________ 17

Ilustración 6 Lenguaje de programación AIML para chatbots. ____________ 18

Ilustración 7 Lenguaje de programación RiveScript para chatbots. _________ 19

Ilustración 8 Chatbot Jabberwacky. ___________________________________ 26

Ilustración 9 Chatbot George. ________________________________________ 27

Ilustración 10 Chatbot Joan. __________________________________________ 28

Ilustración 11 Chatbot Cleverbot. _____________________________________ 28

Ilustración 12 Chatbot de entretenimiento Akinator. _____________________ 29

Ilustración 13 Chatbot Elbot. _________________________________________ 31

Ilustración 14 Chatbot Ana de IKEA. __________________________________ 32

Ilustración 15 Comunidad Pandorabots________________________________ 33

Ilustración 16 Empresa BotGenes. _____________________________________ 34

Ilustración 17 Chatbot Claudio Matos. _________________________________ 35

Ilustración 18 Chatbot María Martínez. ________________________________ 36

Ilustración 19 Chatbot Diego Perez. ___________________________________ 37

Ilustración 20 Proceso del gestor de diálogos. ___________________________ 51

Ilustración 21 Diseño General del Sistema. _____________________________ 53

Ilustración 22 Diseño del Sistema George. ______________________________ 54

Ilustración 23 Código Fuente de Sistema George. _______________________ 55

Ilustración 24 Diseño del Diego. ______________________________________ 56

Page 14: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

XII

Ilustración 25 Código Fuente de Sistema Diego. ________________________ 58

Ilustración 26 Diseño del Sistema del bot local. _________________________ 59

Ilustración 27 Código Fuente de Sistema Bot local. ______________________ 61

Ilustración 28 Motor de tratamiento de Datos PyAIML. __________________ 68

Ilustración 29 Estructura PyAIML. ____________________________________ 70

Ilustración 30 Ejecución nodos ad_core y ad_servers. ____________________ 74

Ilustración 31 Ejecución de nodo ASR. _________________________________ 74

Ilustración 32 Ejecución de nodo eTTS. ________________________________ 75

Ilustración 33 Nodos Activos ROS. ____________________________________ 76

Ilustración 34 Ejecución del nodo Bot_Diego. ___________________________ 77

Ilustración 35 Nodos activos en la plataforma del chatbot Diego. __________ 77

Ilustración 36 Ejecución del nodo Bot_George. __________________________ 78

Ilustración 37 Nodos activos en la plataforma del Bot George. ____________ 78

Ilustración 38 Ejecución del nodo Bot_Local. ___________________________ 79

Ilustración 39 Nodos activos en la plataforma del Bot Local. ______________ 79

Ilustración 40 Lenguaje de programacion AIML para Chatbots. ___________ 93

Ilustración 41 Etiquetas AIML. _______________________________________ 95

Ilustración 42 Uso de etiquetas Set, Get y Think. ________________________ 99

Ilustración 43 Esquema de etiquetas AIML. ___________________________ 101

Ilustración 44 Tipos de categorías AIML. _____________________________ 103

Ilustración 45 Uso de etiquetas Pattern y Template. ____________________ 104

Ilustración 46 Uso de etiqueta Topic. _________________________________ 105

Ilustración 47 Diagrama de Flujo etiqueta That. ________________________ 106

Ilustración 48 Uso de etiqueta That. __________________________________ 107

Page 15: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que
Page 16: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que
Page 17: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

XV

AGRADECIMIENTOS Quería agradecer a mis tutores Javier Fernández de Gorostiza y Fernando

Alonso Martin por el esfuerzo realizado para que yo realizase con éxito el

máster, por su amistad sincera y colaboración, pero sobre todo por su apertura a

trabajar conmigo, con infinita paciencia, capacidad de reflexión y sobre todo su

siempre positivo estado de ánimo.

Al Profesor Miguel Angel Salichs le agradezco, por sus concejos y la motivación

para que continúe mis estudios y especialización con mi doctorado. Gracias.

Además a mi país, mi lindo Ecuador, por brindarme la actual beca de estudios y

darme la oportunidad de prorrogarla para continuar con mis estudios.

También a mis padres (Papitos Gonzalo, Alexandra y Carlitos) y hermanos

(Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que a lo largo de estos años

a pesar de la distancia han sido mi apoyo y estímulo, siempre presentes en los

malos y buenos momentos, sabiendo sacar en cada momento lo mejor de mí.

Pero sobre quería dedicar esta tesis a mi amiga, compañera, el amor de mi vida

mi Esposa mi hermosa Carlita y a mi pequeño Patojito la razón de mi vida

Juanito que han sido mi pilar y compañía en esta aventurado en tierras lejanas.

No quería olvidarme a mis compañeros de laboratorio:

David, el manitas que con sus concejos y guía me daba ánimos día a día para

seguir avanzando con el presente proyecto.

Page 18: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

XVI

Alberto que con su experiencia y conocimientos me guiaba y seguramente

gracias a él he sido capaz de completar este trabajo con éxito. Estoy convencido

de que sin su ayuda en los momentos en que no lograba algo no hubiera podido

avanzar.

Víctor con sus grandes conocimientos sobre Python que a pesar de estar casi

siempre ocupado, saco tiempo para ayudarme y aconsejarme.

Por último, gracias a todos los que me rodean, mi familia que nunca me olvida

y a pesar de la distancia siempre están presentes y estoy seguro de que sin su

apoyo, su colaboración, esta tesis no hubiese sido posible.

Page 19: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que
Page 20: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que
Page 21: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

XIX

RESUMENRESUMENRESUMENRESUMEN La proliferación de Robots Sociales en la actualidad como sistemas de

interacción hombre-máquina, con capacidades cada vez más semejantes a los

humanos, está generando una gran variedad de puntos de vista y enfoques en

la incorporación de agentes virtuales como parte del sistema de interacción; por

eso en este trabajo de fin de máster se presenta la plataforma de integración de

un chatbot como habilidad de un Robot Social, se desarrolla con la reunión de

tres chatbots que permitirá al robot contar con temas extensos y variados de

conversación.

Esta tesis aborda esta problemática desde el punto de vista de la evaluación de

los chatbots que dialoguen en idioma castellano existentes en la actualidad y

que han sido reconocidos por sus logros y aptitudes, para esto se ha realizado

un estudio del análisis de los niveles lingüísticos, generando un sistema de

evaluación por tareas en los distintos niveles lingüísticos del Procesamiento de

Lenguaje Natural. Una vez evaluados y seleccionados se procede a su

integración, además se plantea la creación y desarrollo de un chatbot local que

alcance cualidades similares a los chatbots evaluados, será la base para

posteriores mejoras y trabajos de investigación en el área del Procesamiento de

Lenguaje.

Como herramienta que ayudara a relacionar los chatbots al Robot Social, se

diseña un paquete en el Sistema Operativo Robotico ROS, sistema que trabaja

bajo el lema “divide y vencerás” con lo cual podemos trabajar con módulos ya

existentes como reconocimiento automático del habla y síntesis de voz del

habla, que nos permitirá la interacción con el Robot Social de forma verbal.

Page 22: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

XX

El paquete contiene tres nodos de conexión a los diferentes chatbots. Se ha

trabajado bajo el lenguaje Python por sus características de programación pero

sobre todo por su programación orientada a objetos, para esto se utiliza el nodo

Rospy. Los chatbots seleccionados son: Diego de la compañía argentina

Botgenes y George del programador Británico Rollo Carpenter que funcionan

bajo enlace a Internet y como dijimos el tercer chatbot es el desarrollado para

que funcione de manera local, bajo el lenguaje de programación AIML, que fue

seleccionado por contar con una comunidad que diariamente está trabajando

en Bases de Conocimiento, más extensas y complejas a nivel mundial. El enlace

a Python se realizó mediante el intérprete Pyaiml.

Finalmente se realiza una autoevaluación del chatbot local, mediante la

experimentación en las tareas planteadas en la evaluación de los niveles

lingüísticos, para plantear futuras mejoras y detallar todas sus funcionalidades.

En este trabajo, por tanto, se detalla el funcionamiento, desarrollo de esta

plataforma de integración de chatbots como habilidad de un Robot Social.

Page 23: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

XXI

ABSTRACTABSTRACTABSTRACTABSTRACT

The proliferation of Social Robots today as systems of human-computer

interaction, with increasing capabilities similar to humans, is generating a

variety of views and approaches to the incorporation of virtual agents as part

of the interaction; so in this master's thesis presents the integration platform as

a chatbot ability of a Social Robot, is developing three chatbots the meeting will

enable the robot to have extensive and varied topics of conversation.

This thesis addresses this issue from the point of view of the evaluation of

chatbots engage in dialogue in Spanish language exist today and have been

recognized for their achievements and skills, for this has made a study of the

analysis of linguistic levels, generating a system of evaluation in different

linguistic levels in Natural Language Processing. Once evaluated and selected

their integration proceeds also proposes the creation and development of a

powerful local chatbot -like qualities evaluated chatbots, which will be the basis

for further improvements and research in the area of Language Processing.

As a tool to help relate the chatbots the Social Robot, designing a package in

ROS Robotic Operating System, a system that works under the motto "divide

and conquer" with which we can work with existing modules such as automatic

speech recognition and synthesis speech voice, allowing us to interact with the

Social Robot verbally.

The package contains three nodes connecting to different chatbots. He has

worked under the Python language for programming characteristics but

especially for object-oriented programming, so this node is used Rospy. The

selected chatbots are: Diego of the company Botgenes Argentina and George of

Page 24: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

XXII

the British programmer Rollo Carpenter link operating under Internet and as

we said the third chatbot is developed to work locally, under the AIML

programming language, which was selected by have a community that is

working daily in Knowledge Bases, more extensive and complex worldwide.

The link to Python was performed by the interpreter Pyaiml.

Finally carried out a self-assessment of Local chatbot, by experimenting in the

tasks set in the evaluation of linguistic levels, to raise future enhancements and

detailing all its features. In this paper, therefore, describes the operation and

development of this integration platform skill chatbots as a Social Robot.

Page 25: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

Capítulo 1Capítulo 1Capítulo 1Capítulo 1 PreliminaresPreliminaresPreliminaresPreliminares....

“Desde que se inventó la imprenta, la libertad de

prensa es la voluntad del dueño de la imprenta.”

Rafael Correa.

Page 26: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que
Page 27: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

CapítuloCapítuloCapítuloCapítulo: : : : PPPPreliminaresreliminaresreliminaresreliminares....

1.1.1.1.1.1.1.1. IntroducciónIntroducciónIntroducciónIntroducción....

En la actualidad el uso de los Agentes Conversacionales o chatbots es muy

común, pues se han vuelto instrumentos de usos múltiples en disciplinas

variadas desde simples supervisores de conversaciones o chat, atención al

cliente, ayudantes, hasta mantener una conversación de cualquier tema

específico con la capacidad de emular el diálogo que un usuario mantendría

con un agente real. Los agentes son programas basados en Inteligencia

Artificial, son entidades capaces de percibir su entorno, procesar lo que

perciben y tener una reacción, es decir, una respuesta o actuar en su entorno

de manera racional. En esta tesis, se presenta un análisis de Agentes

Conversacionales que trabajen en idioma castellano. Resultado de éste

trabajo se diseña e implementa un Agente Virtual como una habilidad de

un Robot Social con gestor de diálogos, que proporciona información

mediante lenguaje natural.

1111

Page 28: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 2

1.2.1.2.1.2.1.2. Objetivos.Objetivos.Objetivos.Objetivos.

1.2.1 Generales.1.2.1 Generales.1.2.1 Generales.1.2.1 Generales.

Realizar un análisis y evaluación sobre chatbots en castellano existentes

en la actualidad, mediante una revisión sistemática de bots disponibles

en la Web y un análisis comparativo, para implementar una plataforma

para chatbots como una habilidad de un Robot Social.

1.2.2 Específicos.1.2.2 Específicos.1.2.2 Específicos.1.2.2 Específicos.

- Analizar, explicar aspectos relevantes y conceptos de procesamiento

de lenguaje necesarios para desarrollar un chatbot.

- Identificar los puntos débiles que existen en el desarrollo de los

chatbots, para lograr su mejora.

- Proponer un proceso que permita medir y evaluar los chatbots que

trabajen en idioma castellano.

- Realizar la integración del chatbot como una habilidad de un Robot

Social.

Objetivos.

Page 29: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Preliminares.

JUAN C. COBOS T. 3

1.3.1.3.1.3.1.3. Estructura del documento.Estructura del documento.Estructura del documento.Estructura del documento.

En ésta sección se describe cómo está organizado éste documento, así

como la Información que contiene cada uno de los capítulos.

Capítulo 2, presenta el Estado del Arte que da fundamento al presente

trabajo. Se revisan los conceptos básicos sobre agentes conversacionales, sus

características, aplicaciones, arquitectura, así como las plataformas de

desarrollo, su comparación y la justificación para la elección del lenguaje

seleccionado para la creación del chatbot local.

Capítulo 3, describe los chatbots existentes en la actualidad, detallando sus

características y atributos más destacados.

Capítulo 4, se evalúa a dos chatbots, los más destacados por sus logros,

premiaciones, características y que dialogan en idioma español.

Capítulo 5, se describe la metodología y las fases realizadas en el

desarrollo del prototipo experimental.

Capítulo 6, detalla la ejecución de la plataforma propuesta y los resultados

obtenidos relacionados con el desempeño del chatbot local.

Page 30: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que
Page 31: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

Capítulo 2.Capítulo 2.Capítulo 2.Capítulo 2. Estado del Arte.Estado del Arte.Estado del Arte.Estado del Arte.

“Tanto más libre es un pueblo, cuanto más

ilustrado”

Juan Montalvo.

Page 32: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que
Page 33: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

Capítulo:Capítulo:Capítulo:Capítulo: Estado del Arte.Estado del Arte.Estado del Arte.Estado del Arte.

2.1.2.1.2.1.2.1. Reseña Histórica.Reseña Histórica.Reseña Histórica.Reseña Histórica.

En la década de los 50 se empieza a utilizar el término “Artificial”, en el

análisis desarrollado por A. M. Turing en su artículo Máquinas de

Computación e Inteligencia que propuso un experimento hoy conocido

como Test de Turing, con la intención de definir una prueba estándar por el

que una máquina podría catalogarse como "sensible" o "sintiente” en cierta

medida, considerarse inteligentes, los avances en este campo han sido

cuantiosos. Algunos de estos avances se han realizado en el área del

lenguaje natural, centrándose en conseguir que una máquina sea capaz de

interpretar el lenguaje natural y generar una respuesta coherente y

apropiada.

El programa ELIZA fue escrito a finales de los años sesenta por el profesor

Joseph Weizenbaum del Massachusetts Institute of Technology. Lo diseñó

como una ayuda al análisis del lenguaje. Este programa, que es considerado

el primer bot conversacional, era muy sencillo, pero sin embargo era capaz

de obtener resultados muy convincentes dependiendo de las frases

introducidas. Eliza, sirvió de modelo para los chatbots actuales, se basan en

la creación de patrones que simulen el comportamiento humano. PARRY,

en cambio fingía ser un humano paranoico y sirvió para evaluar sus

conversaciones con tres pacientes que sufrían de paranoia y posteriormente

se los afronto con un médico.

La evolución de este tipo de programas ha sido incesante, y con el paso de

los años fueron apareciendo muchos nuevos diseños que intentaban

mejorar los resultados de sus antecesores, con más o menos suerte. Desde

2222

Page 34: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Estado del Arte.

JUAN C. COBOS T. 8

1990 se celebra el concurso Loebner basado en el test de Turing que ofrece

$100,000 y una medalla de oro para el primer ordenador que sea capaz de

pasar este test. Esta medalla está aún sin ser entregada, Ilustración 1. Es un

certamen de carácter anual dedicado a valorar la calidad de los bots

conversacionales.

En 1995, el Dr. Richard Wallace escribió A.L.I.C.E., en su primera versión,

uso SETL, un lenguaje basado en lógica matemática, pero sin mucho exito.

Luego se desarrolló la segunda versión de A.L.I.C.E el “Program A”, esta

versión se desarrolló usando AIML y Java. La tercera version el “Program

B” con la colaboracion de 300 desarrolladores tomando como estándar

AIML en base a XML, esta versión permitió a A.L.I.C.E ganar el Loebner

Prize del año 2000. Se han creado dos versiones de A.L.I.C.E., el “Program

C” desarrolló en base C/C++ y el “Program D” desarrollado en tecnología

Java2. En 2001 se fundó “The A.L.I.C.E. AI Foundation” organización sin

ánimo de lucro con la vocación de distribuir, promocionar, desarrollar y

mantenimiento de Alicebot para fines de investigación y formación.

Pero aunque el camino para la perfección aún está lejos, las mejoras

tecnológicas actuales tanto a nivel de hardware como en la calidad del

software, invitan a pensar que probablemente se conseguirá el objetivo de

que los chatbots entiendan y no solo repitan patrones. Con suerte estaremos

aquí para verlo.

Page 35: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 9

Ilustración Ilustración Ilustración Ilustración 1111 Premio Loebner Medalla de Oro.Premio Loebner Medalla de Oro.Premio Loebner Medalla de Oro.Premio Loebner Medalla de Oro.1111

2.2.2.2.2.2.2.2. Agentes ConversacionAgentes ConversacionAgentes ConversacionAgentes Conversacionales o Chatbots.ales o Chatbots.ales o Chatbots.ales o Chatbots.

Un agente conversacional es un programa de software que interpreta y

responde a las declaraciones realizadas por los usuarios en lenguaje natural

corriente. Se integra técnicas de lingüística computacional y la

comunicación se puede establecer a través de Internet, Mensajes

instantáneos, e-mail, foros, etc.

El término “agente conversacional” puede ser analizado por las dos

palabras que lo componen. La palabra “agente” es un sistema software, el

cual, viene definido por su flexibilidad, entendiendo por flexible que un

agente sea:

• Reactivo, responda al entorno en que se encuentra.

• Proactivo, que sea capaz de intentar cumplir sus propios objetivos.

• Social, sea capaz de comunicarse con otros agentes mediante algún

tipo de lenguaje” (Wooldridge & Jennings, 1995)

La palabra conversacional significa “Perteneciente o relativo a la

conversación.”. (DRAE, n.d.), entonces un agente conversacional es una

Agentes Conversacionales.

Page 36: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Estado del Arte.

JUAN C. COBOS T. 10

entidad artificial diseñada para tener conversaciones con seres humanos u

otros agentes conversacionales.

Los agentes conversacionales son llamados chatbot, bots, chatterbots, V-

personas o persona virtual. En la actualidad existen muchos agentes

conversacionales con variadas características, utilidades, complejidad y

capacidad de respuesta. Podemos encontrar desde sencillos chatbots

pensados como juego y diversión, que pretenden responder de forma más o

menos cómica, hasta otros muy complejos y técnicos en algún campo que

tienen un uso práctico elevado o simplemente que han sido construidos con

fines comerciales.

2.2.1.2.2.1.2.2.1.2.2.1. Características de los Chatbots.Características de los Chatbots.Características de los Chatbots.Características de los Chatbots.

Cada agente, tiene sus propias características, pero las que diferencian

a los agentes conversacionales son las siguientes:

AutonomíaAutonomíaAutonomíaAutonomía: un agente es completamente autónomo si es capaz

de actuar basándose en su experiencia. El agente es capaz de

adaptarse aunque el entorno cambie severamente, puede

brindar diferentes formatos (o estilos) de respuesta,

dependiendo del tipo de usuario, del tipo de pregunta realizada,

etc.

Sociabilidad:Sociabilidad:Sociabilidad:Sociabilidad: este atributo permite a un agente comunicar con

otros agentes o incluso con otras entidades, la cual sería la

característica diferenciadora de los chatbots.

RacionalidadRacionalidadRacionalidadRacionalidad: el agente siempre realiza lo correcto a partir de los

datos que percibe del entorno, sabe formular respuestas,

Page 37: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 11

analizando la frase introducida, son capaces de generar la

respuesta más apropiada

ReactividadReactividadReactividadReactividad: un agente actúa como resultado de cambios en su

entorno. En este caso, un agente percibe el entorno y esos

cambios dirigen el comportamiento del agente. Pueden

proporcionar respuestas de diversa naturaleza. Es decir, no

tienen que limitarse a brindar frases como respuestas. Pueden

proporcionar enlaces dentro de la web o incluso recursos

electrónicos como respuesta.

ProProProPro----actividadactividadactividadactividad: un agente es pro-activo cuando es capaz de

controlar sus propios objetivos a pesar de cambios en el entorno.

Pueden ser programados para comprender el contexto de la

conversación y situar la pregunta en el mismo.

AdaptabiliAdaptabiliAdaptabiliAdaptabilidaddaddaddad: está relacionado con el aprendizaje que un

agente es capaz de realizar y si puede cambiar su

comportamiento basándose en ese aprendizaje. Se encuentra en

fase de desarrollo, pero ya con avances promovedores.

MovilidadMovilidadMovilidadMovilidad: capacidad de un agente de trasladarse a través de

una red telemática.

VeracidadVeracidadVeracidadVeracidad: asunción de que un agente no comunica información

falsa a propósito.

PersonalidadPersonalidadPersonalidadPersonalidad: cada agente es único y depende del programador

las características que quiera darle como emociones,

comportamiento no verbal, entre otros.

Estas son sólo algunas de las características generales de este tipo de

agentes conversacionales.

Características de los Chatbots.

Page 38: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Estado del Arte.

JUAN C. COBOS T. 12

2.2.2.2.2.2.2.2.2.2.2.2. AplicacionesAplicacionesAplicacionesAplicaciones....

En la actualidad los agentes conversacionales se han diversificado y

masificado en su uso, pues se están convirtiendo en herramientas de

mucha utilidad en diversas áreas, a continuación en la Tabla 1 se da un

detalle.

Tabla Tabla Tabla Tabla 1111 Aplicaciones de los chatbots.Aplicaciones de los chatbots.Aplicaciones de los chatbots.Aplicaciones de los chatbots.

2.2.3.2.2.3.2.2.3.2.2.3. Arquitectura de los Chatbots.Arquitectura de los Chatbots.Arquitectura de los Chatbots.Arquitectura de los Chatbots.

La estructura básica de un chatbot se puede observar en la Ilustración 2, el

proceso es:

•Educación.

•Idiomas.

•Psicología.

•Arte.

•Historia.

Académico y científico.

•Atención al Cliente.

Asistentes virtuales.

•Estudio de Mercado.

•Ventas.

•Marketing.

•Campañas.

•Turismo.

Empresariales.

•Entretenimiento.

•Juguetes

•Sexuales.

•Religiosos.

•Redes Sociales

Diversión

Page 39: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 13

1. El conocimiento del experto humano debe introducirse en la base

del conocimiento, en función a las plantillas, patrones y reglas.

(Ingeniería del conocimiento).

2. El usuario introduce la entrada mediante la interfaz, está la envía al

motor de inferencia.

3. El motor de inferencia analiza las situaciones, establece los objetivos

y obtiene la respuesta de acuerdo a la base de conocimiento,

enviándola de vuelta a la interfaz del usuario.

Ilustración Ilustración Ilustración Ilustración 2222 Estructura básica de un cEstructura básica de un cEstructura básica de un cEstructura básica de un chatbot.hatbot.hatbot.hatbot.

“Los datos están agrupados en lo que denominaremos base de hechos, se

utilizan sistemas de representación del conocimiento de tipo declarativo que

forman la Base de Conocimientos, el control es independiente y se denomina

Motor de Inferencia, por último la entrada y salida de datos es similar a los

programas tradicionales”. (Ruiz Tadeo, 2009)

Arquitectura de los Chatbots.

Page 40: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Estado del Arte.

JUAN C. COBOS T. 14

Podemos desglosar más la estructura del chatbot, en el cual se verifica la

estructura de la oración, errores ortográficos, entre otros. El proceso se presenta

en la Ilustración 3.

Ilustración Ilustración Ilustración Ilustración 3333 Estructura ampliEstructura ampliEstructura ampliEstructura ampliada de un cada de un cada de un cada de un chatbot.hatbot.hatbot.hatbot.

• Incorporación del texto a través del usuario:

• Eliminación de datos erróneos, espaciados.

• Dividir en las posibles múltiples oraciones, de existir más de una. Análisis por separado.

• Diferenciar entre postulado - pregunta: • Buscar signos de preguntas o

buscar datos comunes en preguntas

• Reducción de los datos de entrada: • Eliminación de puntuaciones

incensarais. Las oraciones mono silábicas: SI, NO, etc. pueden obviarse

Entrada

• Análisis estructural (postulado y pregunta)

• Asocian a su significado estructural (Sujeto, verbo, nexo, articulo, etc.) o través de la deducción por modelos típicos.

• La oración es convertida en un modelo de la base de conocimiento

• Unificación • Si no se puede analizar lo que el

usuario ingreso, se pregunta al usuario y se agrega el nuevo conocimiento.

Análisis del texto

• Postulado • Análisis avanzado con respecto a

registros. • Se genera una Salida, dependiendo

de los resultados • Pregunta

• Se busca una respuesta entre los postulados

• Se genera una Salida Respuesta

Análisis lógico

• Estilización de la salida para cada proceso

• A través de modelos típicos de preguntas, respuestas, razonamientos lógicos, se adornan las salidas del robot de modo que este se parezca a una persona al hablar

Salida

Page 41: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 15

2.2.4.2.2.4.2.2.4.2.2.4. Evaluación de Chatbots.Evaluación de Chatbots.Evaluación de Chatbots.Evaluación de Chatbots.

El test de Turing se basa en la inferencia simple: un juez se sitúa en una

habitación y comienza a realizar preguntas a un ser humano y un

ordenador, ambos situados en otra habitación, y en caso de que el juez

no sea capaz de distinguir con certeza cuáles son las respuestas de la

máquina y cuáles las de la persona, entonces se puede considerar que la

máquina del experimento es inteligente, se ve esquematizado en la

Ilustración 4.

Ilustración Ilustración Ilustración Ilustración 4444 Test de Turing.Test de Turing.Test de Turing.Test de Turing.1111

A día de hoy ninguna máquina ha conseguido superar el test de Turing,

aunque de los resultados del premio Loebner podemos decir que vamos

en buen camino, en el año 2010, por primera vez en los veinte años de

historia del premio, un juez confundió al programa Suzette con una

persona.

1 http://www.alanturing.net/turing_archive/pages/reference%20articles/theturingtest.html

Evaluación de Chatbots.

Page 42: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Estado del Arte.

JUAN C. COBOS T. 16

“Se trató de una situación especial y algo confusa, confiesa Bruce

Wilcox, creador del programa y ganador por dos veces del premio

Loebner. El juez se empeñó en hablar de política y en repetir las

preguntas, explica, de modo que el enfado de Suzette resultó totalmente

creíble y perfectamente humano. Pero la confusión sentó un

precedente.” (Martínez Ron & Fernández, 2012)

Suzette a pesar de ser uno de los chatbots más potentes en la actualidad

su programador comenta: "En realidad un chatbot no entiende lo que le

dices" (Wilcox, 2013), en el presente los chatbots trabajan buscando

únicamente similitud entre el patrón de entrada y el patrón contenido

en su base de datos y en base a eso responde, por eso Searle2 ha

rechazado siempre la idea de que la mente humana sea un computador

digital; o, en otras palabras, que la mente sea un programa de

ordenador. Insiste en que los ordenadores trabajan como sistema

manipuladores de símbolos (sistema binario) en función de unas reglas

(programación). Los programas son enteramente sintácticos; sin

embargo, las mentes tienen contenidos semánticos. Por consiguiente, la

pura gramática no es suficiente para justificar los contenidos

semánticos.

“Imagine un hablante nativo de Inglés que no conoce el chino encerrado

en una habitación llena de cajas de símbolos chinos (una base de datos),

junto con un libro de instrucciones para la manipulación de los símbolos

(el programa). Imagina que la gente fuera de la sala envíen otros

símbolos chinos que, sin que la persona en la habitación, son preguntas

2 Filosofo de la Universidad de California, Berkeley, reconocido por sus contribuciones a la filosofía del lenguaje, a la filosofía de la mente y de la conciencia. Muy conocido por el desarrollo de un experimento mental llamado el argumento de la "habitación china". Lo creó para demostrar que el pensamiento humano no se compone de simples procesos computacionales.

Page 43: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 17

en chino (la entrada). Además imagine que, siguiendo las instrucciones

del programa del hombre en la habitación es capaz de pasar a los

símbolos chinos que son respuestas correctas a las preguntas (de la

salida). El programa permite a la persona en el espacio para pasar el Test

de Turing para la comprensión de chino, pero él no entiende una

palabra de chino.” (Cole, 2004)

Se puede ver el experimento de la habitación china en ilustración a

continuación:

Ilustración Ilustración Ilustración Ilustración 5555 Experimento de la habitación China.Experimento de la habitación China.Experimento de la habitación China.Experimento de la habitación China.3333

Otra metodología para evaluar chatbots, es utilizar el Test de Folstein o

MMSE, (Mini Mental Status Examination), que es utilizado por

psiquiatras para tener un acercamiento del estado cognitivo de los seres

humanos.

“Este mismo test fue utilizado con éxito en Julio de 2011§§“4 ”para

evaluar la capacidad de un Agente Virtual. Claudia, el Agente Virtual

3 http://sapereaudek3d.blogspot.com.es/2011/08/la-habitacion-china.html 4 “§§ Se utilizó un Agente Virtual que utiliza el BG200K desarrollado por BotGenes.”

Evaluación de Chatbots.

Page 44: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Estado del Arte.

JUAN C. COBOS T. 18

sometido al test, dio respuesta satisfactoria a los mismos requerimientos

a los que es sometido un ser humano.” (Mazza, 2011).

En todo caso es un test, que evalúa el estado cognitivo del paciente, pero

no al procesamiento de lenguaje natural, por lo cual más adelante

desarrollaremos un test, que nos permita realizar una evaluación en

todos los niveles del análisis lingüístico.

2.3.2.3.2.3.2.3. Plataformas de desarrollo de cPlataformas de desarrollo de cPlataformas de desarrollo de cPlataformas de desarrollo de chatbots.hatbots.hatbots.hatbots.

2.3.1.2.3.1.2.3.1.2.3.1. AIML.AIML.AIML.AIML.

Como ya hemos hablado tenemos el lenguaje de programación AIML,

es una adaptación de una gramática XML y formó la base para el primer

Alicebot, ALICE, podemos ver su logotipo en la Ilustración 6.

AIML, describe una clase de objetos de datos llamados objetos AIML y

describe parcialmente el comportamiento de los programas de

ordenador que los procesan. AIML objetos se componen de unidades

llamadas temas y categorías, que contienen datos analizados o no

analizados.

Ilustración Ilustración Ilustración Ilustración 6666 LengLengLengLenguaje de uaje de uaje de uaje de programaciónprogramaciónprogramaciónprogramación AIML para cAIML para cAIML para cAIML para chatbots.hatbots.hatbots.hatbots.5555

5 http://www.meta-guide.com/home/bibliography/google-scholar/aiml-2005

Page 45: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 19

AIML es concebido como un lenguaje de scripts que define una base de

conocimiento de pregunta-respuesta, la cual es utilizada como software

para chatbots basados en texto. En AIML, una interacción entre el agente

y su usuario se define dentro de la unidad categoría (category), mientras

las posibles expresiones del usuario se encuentran definidas en las

etiquetas de patrones (pattern) y la respuesta del agente se encuentra

definida dentro de las etiquetas de plantillas (template).

2.3.2.2.3.2.2.3.2.2.3.2. RiveScript.RiveScript.RiveScript.RiveScript.

RiveScript comenzó originalmente como un módulo de Perl llamado

Chatbot :: Alfa en 2004, programado por Casey Kirsle, quien durante

años había estado trabajando con chatterbots en RunABot.com en AIML

y al ver que este no brindaba la posibilidad de integración a MSN

Messenger comenzó a desarrollar RiveScript en Perl, siendo un nuevo

lenguaje, basado en texto plano. No mucho después, Chatbot :: Alfa fue

abandonada en favor de un sustituto, programado desde cero. La nueva

versión del lenguaje de scripting se parecía a código Alfa, que se

convirtió en un módulo Perl llamado Chatbot :: RiveScript. Vemos su

logo en la ilustración a continuación:

Ilustración Ilustración Ilustración Ilustración 7777 Lenguaje de programación RiveScript para chatbots.Lenguaje de programación RiveScript para chatbots.Lenguaje de programación RiveScript para chatbots.Lenguaje de programación RiveScript para chatbots.6666

6 http://www.rivescript.com

Plataformas de desarrollo de chatbots

Page 46: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Estado del Arte.

JUAN C. COBOS T. 20

El desarrollo de Chatbot :: RiveScript es continuo, ha sido renombrado

como "RiveScript". El módulo se estabilizó en la versión 1.03 en julio de

2006. En 2008 se ha creado un nuevo estándar para RiveScript en la

versión 2.0 con un aumento la potencia y flexibilidad.

2.3.3.2.3.3.2.3.3.2.3.3. AerolitoAerolitoAerolitoAerolito....

Aerolito es un lenguaje de marcas basado YAML con una fuerte

influencia de AIML y RiveScript. La motivación es tener un lenguaje

más limpio y fácil que AIML sin crear un nuevo formato de archivo,

como RiveScript. Su autor es Renato de Pontes Pereira. Pero cuenta con

muy poco desarrollo y en la actualidad se puede decir que casi esta

extinto pues no cuenta con mejoras, un grupo ni página oficial.

2.4.2.4.2.4.2.4. Comparación de platComparación de platComparación de platComparación de plataformas de desarrollo de chatbotsaformas de desarrollo de chatbotsaformas de desarrollo de chatbotsaformas de desarrollo de chatbots....

Los lenguajes de programación de las bases de conocimientos de los

chatbots, son muy similares, ya que los unos han sido desarrollados en base

a los otros, siempre buscando una estructura más sencilla o su integración

en otras plataformas, a continuación detallamos esta comparativa en la

Tabla 2.

Descripción.Descripción.Descripción.Descripción. AIMLAIMLAIMLAIML RiveScriptRiveScriptRiveScriptRiveScript AerolitoAerolitoAerolitoAerolito

Declaración de tópicos. X X

Declaración de categorías. X

Declaración de patrones. X X X

Declaración de Respuestas. X X X

Declaración de condicionantes

según respuestas anteriores.

X X X

Uso de comodines. X X X

Page 47: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 21

Declaración de condiciones por

niveles.

X

Variables. X X X

Comparadores. = ==, !=, <>,

<, >, <=, >=.

Puede

definir el

usuario

Estructura del lenguaje. Medio. Sencillo. Sencillo.

Comunidad de respaldo. Pandorabots. Rivescript.

Tabla Tabla Tabla Tabla 2222. Comparación de plataformas de desarrollo de chatbots.. Comparación de plataformas de desarrollo de chatbots.. Comparación de plataformas de desarrollo de chatbots.. Comparación de plataformas de desarrollo de chatbots.

2.5.2.5.2.5.2.5. Justificación de elección.Justificación de elección.Justificación de elección.Justificación de elección.

Como se puede ver aunque AIML no cuente con una estructura sencilla de

programación de bases de conocimiento, es el lenguaje más potente,

además cuenta con una comunidad muy grande que lo respalda,

permitiéndonos obtener bases de conocimiento e implementaciones

nuevas, por lo mismo este es el lenguaje seleccionado, para el desarrollo de

presente proyecto.

Justificación de elección.

Page 48: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que
Page 49: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

Análisis de chabots actualesAnálisis de chabots actualesAnálisis de chabots actualesAnálisis de chabots actuales

Capítulo 3.Capítulo 3.Capítulo 3.Capítulo 3.

"Las naciones marchan

hacia su grandeza al

mismo paso que

avanza su educación."

Simón Bolívar.

Page 50: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que
Page 51: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

Capítulo:Capítulo:Capítulo:Capítulo: Análisis de chatbots actuales.Análisis de chatbots actuales.Análisis de chatbots actuales.Análisis de chatbots actuales.

3.1.3.1.3.1.3.1. Análisis de Chatbots existentes.Análisis de Chatbots existentes.Análisis de Chatbots existentes.Análisis de Chatbots existentes.

Dentro de cada grupo, por supuesto, existen multitud de alternativas, por

lo que no es posible analizarlas todas; sin embargo, se ha utilizado ciertos

criterios para seleccionar algunos representantes de entre las distintas

opciones disponibles, con el fin de estudiar más en profundidad un grupo

menos numeroso y determinar qué hace mejores a unos respecto a otros,

sus utilidades reales y las tecnologías que han sido utilizadas para su

construcción.

Los criterios usados para seleccionar los candidatos a estudiar han sido:

- Idioma, solo se toma en cuenta chatbots que dialoguen en idioma

Español, tomando en cuenta si son multilenguaje.

- Calidad, se han seleccionado chatbots que hayan conseguido resultados

de calidad y de reconocido prestigio como por ejemplo el premio

Loebner, por lo que he priorizado a los ganadores de este premio y, en

menor medida, a candidatos que obtuvieron buenas calificaciones del

jurado.

- Disponibilidad de información pública sobre su funcionamiento,

valorando especialmente la posibilidad de que el código sea total o

parcialmente abierto, tengan el respaldo de una comunidad o una

empresa que les brinde actualizaciones y mejoras.

- Utilidad. Se clasifica los chatbots existentes según la utilidad práctica

real que tienen, y de esta manera tenemos:

3333

Page 52: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 26

o Sin utilidad práctica. Disponibles la mayoría vía web, tienen un

uso meramente de entretenimiento.

o Con utilidad práctica. Chatbots cuyo objetivo es remplazar en

cierta medida algún rol humano. Los mejores ejemplos de este

tipo son asistentes virtuales, tanto de información como de

venta.

3.1.1.3.1.1.3.1.1.3.1.1. Jabberwacky, George y Joan.Jabberwacky, George y Joan.Jabberwacky, George y Joan.Jabberwacky, George y Joan.

Ilustración Ilustración Ilustración Ilustración 8888 Chatbot Jabberwacky.Chatbot Jabberwacky.Chatbot Jabberwacky.Chatbot Jabberwacky.7777

Jabberwacky es un chatterbot creado por el programador Britanico

Rollo Carpenter. Su objetivo declarado es "simular charla natural del ser

humano en una forma interesante, entretenida y divertida". Es un

primer intento de crear una inteligencia artificial a través de la

interacción. Su logo en la Ilustración 8

En el primer decenio de su existencia, tras su invención en el año 1988,

como Proyecto de Aprendizaje de Inteligencia Artificial fundada como

“Pensamientos” Jabberwacky tenía millares de conversaciones. Desde

su publicación en la red, en 1997, hay más de 65 millones de

conversaciones.

7 http://person.jabberwacky.com/j2about

Jabberwacky, George y Joan.

Page 53: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Análisis de chatbots actuales.

JUAN C. COBOS T. 27

“Al hablar con usted utiliza simplemente el material aprendido y toma

prestado un poco de su inteligencia, ya que aprende mucho. Sin reglas

no modificables, se basa enteramente en los principios de la

retroalimentación. Esto es muy diferente a la mayoría de los robots

conversacionales, que son limitados por reglas y conocimiento finito. Si

usted habla en un idioma extranjero va ha aprender, y responder de

manera adecuada…” (Icogno, 2013)

Ilustración Ilustración Ilustración Ilustración 9999 Chatbot George.Chatbot George.Chatbot George.Chatbot George.8888

En octubre 2003, Jabberwacky gana el tercer lugar en el Premio Loebner.

Fue vencido por Juergen Pirner's con el chatbot Jabberwock (un

programa de chat basado en alemán). En Septiembre 2004, Jabberwacky

gana el segundo lugar en el Premio Loebner. Fue vencido por el chatbot

ALICE. En septiembre de 2005, George (Ilustración 8), un personaje

dentro Jabberwacky, gana el Premio Loebner y de la misma manera en

2006 Joan (Ilustración 10) otro personaje Jabberwacky, gana el Premio

Loebner.

8 http://person.jabberwacky.com/george

Page 54: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 28

Ilustración Ilustración Ilustración Ilustración 10101010 Chatbot Joan.Chatbot Joan.Chatbot Joan.Chatbot Joan.9999

3.1.2.3.1.2.3.1.2.3.1.2. Cleverbot.Cleverbot.Cleverbot.Cleverbot.

Ilustración Ilustración Ilustración Ilustración 11111111 Chatbot Cleverbot.Chatbot Cleverbot.Chatbot Cleverbot.Chatbot Cleverbot.10

Fue creado por el científico de IA Rollo Carpenter como una nueva

variante de Jabberwacky como base, con lógica difusa y con un contexto

más profundo, bajo el nombre de Cleverbot, su logo en la Ilustración 11.

Es considerado una inteligencia artificial conservadora adaptiva.

9 http://www.icogno.com/joan.html 10 http://www.cleverbot.com/

Cleverbot.

Page 55: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Análisis de chatbots actuales.

JUAN C. COBOS T. 29

“En el festival Techniche en Guwahati, India, 30 voluntarios llevaron a

cabo una conversación escrita de cuatro minutos con una entidad

desconocida. Mientras que la mitad conversó con Cleverbot, un

programa informático escrito por el británico de inteligencia artificial

desarrollador de software Rollo Carpenter, la otra mitad conversó con

un ser humano, que escribe sus respuestas en una pantalla. Todas las

conversaciones se visualizan en las pantallas grandes para una

audiencia. Con 1.334 votos - muchas más que en cualquier prueba de

Turing anterior - 59,3 por ciento cree Cleverbot era humano. El humano

anotó 63,3 por ciento” (PECK, 2011).

Alrededor de 100.000 conversaciones tienen lugar en cleverbot.com

todos los días. Su propósito es aprender a conversar de una manera

interesante, y al hacerlo, reúne datos de conversación que podrían ser

utilizados de otra manera.

3.1.3.3.1.3.3.1.3.3.1.3. Akinator (2007).Akinator (2007).Akinator (2007).Akinator (2007).

Ilustración Ilustración Ilustración Ilustración 12121212 Chatbot de entretenimiento Akinator.Chatbot de entretenimiento Akinator.Chatbot de entretenimiento Akinator.Chatbot de entretenimiento Akinator.11111111

11 http://es.akinator.com/

Page 56: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 30

Akinator Ilustración 12 es un juego de Internet, mediante un test de

veinte preguntas puede determinar qué personaje está pensando el

jugador. Indudablemente es un chatbot, pues cuenta con todas las

características necesarias.

Fue creado por tres programadores franceses en 2007, los que fundaron

Elokence.com empresa francesa de ingeniería informática.

“El sistema consta de dos componentes: un algoritmo que gestiona la

elección de las preguntas y de una base de datos que contiene más de

100.000 caracteres establecidos todos los días durante los juegos. Con el

tiempo, Akinator se vuelve más eficiente. Presencia geográfica : 13

idiomas disponibles (Inglés, alemán, portugués, francés, árabe, español,

japonés, ruso, hebreo, italiano, turco, coreano y chino) Medios : Web ,

aplicaciones móviles ( App Store , Google Play , mercado WP , App

World , Windows Store )

Más de 1,3 millones de juegos jugados desde su lanzamiento en 2007.

Más de 5 millones de aplicaciones móviles vendidos en todo el mundo.

Ocupó el puesto número 1 en las primeras aplicaciones en App Store en

Francia, Suiza, Alemania, España, Italia y Japón.” (Elokence, 2013)

Tras finalizar la ronda de preguntas, Akinator presenta su solución al

usuario, el porcentaje de equivocaciones en la solución es bajo. En caso

de error en tres intentos consecutivos, el programa solicita al usuario

que introduzca el nombre del personaje, con el objetivo de expandir sus

conocimientos, lo cual es muy valorable ya que Akinator está

aprendiendo nuevas categorías, mediante la interacción con los

usuarios.

Akinator (2007).

Page 57: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Análisis de chatbots actuales.

JUAN C. COBOS T. 31

3.1.4.3.1.4.3.1.4.3.1.4. Elbot (2001).Elbot (2001).Elbot (2001).Elbot (2001).

Elbot Ilustración 13 es un Chatbot creado en 2001 por Fred Roberts,

empleando para ello el Procesamiento del Lenguaje Natural.

Ilustración Ilustración Ilustración Ilustración 13131313 Chatbot Elbot.Chatbot Elbot.Chatbot Elbot.Chatbot Elbot.12121212

Elbot ha conseguido numerosos galardones desde su creación, sobre

todo en el Chatterbox Challenge13 destacando la obtención del premio

Loebner para la inteligencia artificial en 2002 cuarto lugar, 2003 tercer

lugar y en 2008 primer lugar, en la que logró convencer a tres de los doce

jueces que lo interrogaron de que era un ser humano, el problema de

Elbot es que no ha evolucionado a otros idiomas. A pesar de ser

desarrollado bajo la tecnología Lingubot de la empresa Artificial

Solution, que ofrece entornos de desarrollo sofisticados permitiendo la

12 http://www.elbot.com/chatterbot-elbot/ 13 El desafío Chatterbox nacio en 2001 como un concurso anual para chatbots. Es único con un mínimo de restricciones en cuanto al tipo de tecnología utilizada en la creación de la bot. Los Botmasters de todo el mundo presentan sus chatbots para la evaluación y la competencia. Cada chatbot participante se le realiza una serie de preguntas y anotan sus respuestas por un conjunto de jueces independientes. Los ocho primeros robots se mueven a una ronda final en la que se plantea una serie adicional de preguntas a los finalistas. Varios de los chatbots que han entrado a la competencia en el pasado se han convertido en la base de las tecnologías comerciales.

Page 58: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 32

construcción de agentes conversacionales inteligentes con un

comportamiento y objetivos complejos.

En la actualidad la Empresa Artificial Solution brinda servicios a en todo

el mundo, en áreas como Banca y Seguros (La Cooperativa Banking

Group, Credit Suisse, BBVA, etc), Telecomunicaciones (Vodafone,

MÁSmovil, Orange, etc), Otras Industrias (Sant Joan de Deu Hospital,

Novartis, Stralfors TradCom Solutions), Sector Público (Forbruger

Europa, Brent Council, Ronneby Kommun, etc.), Transporte y Ocio

(Scandinavian Airlines, Airbus, RATP Moby, etc), Venta al por menor

Epson, IKEA, Yello Strom GmbH).

Ilustración Ilustración Ilustración Ilustración 14141414 Chatbot Ana de IKEA.Chatbot Ana de IKEA.Chatbot Ana de IKEA.Chatbot Ana de IKEA.14141414

“El asistente interactivo en la Web lingubot que cuenta con más de

250.000 conversaciones, todos los días de las principales organizaciones

mundiales, como IKEA, Lloyds TSB, BT, BBC, Daimler Chrysler, y más

de 150 otras empresas, está disponible en los EE.UU. a partir de Creative

virtual” (Businesswire, 2006)

14 http://www.ikea.com/es/es/

Elbot (2001).

Page 59: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Análisis de chatbots actuales.

JUAN C. COBOS T. 33

Lo destacable de Ana Ilustración 14 es que habla más de 10 idiomas,

puede responder preguntas sobre todos los productos de IKEA y

transferir el diálogo a un operador de servicio al cliente en el caso de no

tener la respuesta a una pregunta específica o si el usuario así lo

requiere.

3.1.5.3.1.5.3.1.5.3.1.5. Pandorabots.Pandorabots.Pandorabots.Pandorabots.

Ilustración Ilustración Ilustración Ilustración 15151515 ComunidComunidComunidComunidad Pandorabotsad Pandorabotsad Pandorabotsad Pandorabots15151515

El Dr. Richard S. Wallace, en 2002 inició una importante colaboración

con Franz, Inc. para crear Pandorabots, un servidor AIML e intérprete

implementado en Common Lisp. En 2008 el proyecto se partió como una

empresa independiente, Pandorabots Inc. donde Wallace sirve como

Director de Ciencia. El logo de Pandorabots en la Ilustración 15.

La visión de Pandorabots es brindar un servicio web de código abierto,

que permite de manera gratuita desarrollar y publicar chatbots a

cualquier persona.

“Pandorabots es la comunidad chatbot más grande en Internet. 166.000

bot masters registradas han optado por crear más de 206.000

pandorabots ("chatbots") en varios idiomas. Hasta junio de 2012, más de

1500 millones interacciones conversacionales se han producido entre los

clientes y pandorabots, y este número aumenta rápidamente…”

“Pandorabots se ha adaptado a casi todos los rincones en Internet.

Pandorabots aparecen en páginas web, mensajería instantánea, correo

electrónico y mensajes en foros. Se pueden encontrar en Second Life, en

15 http://www.pandorabots.com/botmaster/en/home

Page 60: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 34

los juegos en línea, y en las redes sociales como Facebook y Twitter.

Cada vez más pandorabots están apareciendo en las aplicaciones

móviles y mensajes de texto. Pandorabots apoyo a la comercialización y

la publicidad, y se utilizan en la educación”

Los chatbots incluidos en esta web constan de diversas características

que les permiten ser empleados en los siguientes aspectos:

• Soporte para móviles y otros dispositivos.

• Publicidad y Hosting en webs.

• Herramientas de desarrollo y edición de chatbots online.

• Registro de conversaciones que mejores las habilidades de los

chatbots ya creados.

• Desarrollo AIML y herramientas de mantenimiento.

• Diversos formatos de salida como HTML o Flash.

3.1.6.3.1.6.3.1.6.3.1.6. BotGenesBotGenesBotGenesBotGenes....

BotGenes, Ilustración 16 es una de las empresas pioneras en

Procesamiento del Lenguaje Natural en idioma Español. Ofrece Agentes

Virtuales capaces de actuar en un amplio número de situaciones típicas

de las organizaciones.

Ilustración Ilustración Ilustración Ilustración 16161616 Empresa BotGenes.Empresa BotGenes.Empresa BotGenes.Empresa BotGenes.16161616

16 http://www.botgenes.com/BotGenes/index.asp

Pandorabots.

Page 61: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Análisis de chatbots actuales.

JUAN C. COBOS T. 35

“BotGenes anuncia la disponibilidad general de su “cerebro PLN en

idioma Castellano”, el BG200K, el cuál es capaz de interpretar más de

200.000 expresiones en dicho idioma incluyendo regionalismos, errores

de escritura, ortográficos y gramaticales comunes.

Con capacidad para acceder a bases de datos, web-services, y realizar

búsquedas en Internet, el BG200K es el elemento central para el

despliegue de agentes virtuales para realizar múltiples actividades

empresariales: servicio a clientes, pre-ventas, capacitación, soporte a

usuarios, etc.

El BG200K es el resultado de más 24 meses de investigación

involucrando miles de usuarios de habla hispana de Estados Unidos,

España y Latinoamérica.” (BotGenes, 2013)

Algo que vale la pena recalcar, la página web de Botgenes, cuenta con

un agente conversacional llamado Claudia Matos Ilustración 17, que es

el Agente de Atención al Cliente y brinda la información que uno le

solicite.

Ilustración Ilustración Ilustración Ilustración 17171717 Chatbot Claudio Matos.Chatbot Claudio Matos.Chatbot Claudio Matos.Chatbot Claudio Matos.

Adicionalmente, si se desea mantener una conversación sobre cine,

música, literatura, etc., e incluso hacer un Test de Personalidad, se

puede visitar a María Martínez Ilustración 18.

Page 62: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 36

Ilustración Ilustración Ilustración Ilustración 18181818 Chatbot María Martínez.Chatbot María Martínez.Chatbot María Martínez.Chatbot María Martínez.

“Ella tiene estudios en psicología, le encanta escuchar a la gente, ir al

cine, leer y viajar, y podrá indicarte cuál es tu tipo de personalidad, qué

famosos tienen tú mismo tipo, etc., usando la tipología de Myer-Briggs,

basada en los estudios de Carl Jung y ya instrumentada con éxito en

millones de personas.

Conocer tu tipo de personalidad te ayudará a encontrar una pareja afín,

elegir una carrera donde naturalmente te sientas cómodo/cómoda,

integrarte en un equipo de trabajo, y fundamentalmente conocerte a ti

mismo/misma”. (BotGenes, 2013)

Botgenes es una empresa que cuenta con diversidad de chatbots, con

diversas características, con los cuales se puede interactuar sin ningún

problema. Otro ejemplo es Diego Perez Ilustración 19, que tiene un

amplio vocabulario, con el cual se puede perfeccionar o practicar el

idioma español.

BotGenes.

Page 63: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Análisis de chatbots actuales.

JUAN C. COBOS T. 37

Ilustración Ilustración Ilustración Ilustración 19191919 Chatbot Diego Perez.Chatbot Diego Perez.Chatbot Diego Perez.Chatbot Diego Perez.17171717

“Puede serte de gran ayuda para practicar y perfeccionar el idioma

Castellano, ya que además puede señalarte alguno de los errores

ortográficos y/o gramaticales que se produzcan durante la

conversación.

Disponible para conversar contigo más de 700 horas por mes, educado,

reflexivo y por momentos gracioso, Diego puede ser un compañero

como pocos.” (BotGenes, 2013)

Además tiene asistentes de clase: Ariel18 es usado actualmente en la

asignatura Administración de Recursos Informáticos de la Universidad

de Buenos Aires, Juan Cruz19 como Asesor en Capacitación de la Nueva

Escuela de diseño y Comunicación de Buenos Aires; Esperanza20 como

Asesora virtual del Municipio de San Isidro Argentina, entre otros.

17 http://www.soydiego.com/SoyDiego/ 18 http://www.asistentedeclase.com.ar/AVC/index.asp 19 http://www.nuevaescuela.net/web/va.php 20 http://sanisidro.gob.ar/una-mirada-distinta-centro-municipal-para-la-inclusion-de-las-personas-con-discapacidad/

Page 64: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que
Page 65: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

Capítulo 4.Capítulo 4.Capítulo 4.Capítulo 4. Evaluación de Chatbots.Evaluación de Chatbots.Evaluación de Chatbots.Evaluación de Chatbots.

"ama sua, ama quella,

ama llulla, ama

maklla,

ama sipex "

“no seas ladrón, no

seas ocioso, no seas

Page 66: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que
Page 67: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

Capítulo: Capítulo: Capítulo: Capítulo: EvaluaciónEvaluaciónEvaluaciónEvaluación de chatbots.de chatbots.de chatbots.de chatbots.

4.1.4.1.4.1.4.1. Evaluación de Chatbots.Evaluación de Chatbots.Evaluación de Chatbots.Evaluación de Chatbots.

El objetivo principal de la presente evaluación es el estudio del uso del

chatbot Diego o George después de seleccionarlos por sus avances en PLN,

en lenguaje español, además de considerar su disponibilidad de interactuar

vía on-line, para ser integrados como una habilidad de un Robot Social con

Gestor de Diálogos.

Nuestra hipótesis es evaluarlos utilizando un análisis en los distintos

niveles de PLN, representación del conocimiento, proceso del pensamiento

y la memoria para lo cual construiremos una prueba que nos permitirá ver

las áreas en que todavía tienen deficiencias estos chatbots, es sumamente

importante alcanzar un diagnóstico de estas características de los chatbots

para tener un criterio más amplio y plantear posibles recomendaciones a

futuros trabajos de investigación. Pero, además, nuestra intención es

construir una prueba que no necesitase materiales complementarios, y

pueda ser aplicado mediante lenguaje natural, por el tipo de interacción que

se puede tener con estos chatbots.

Para ello hemos seleccionado las 14 tareas que, a partir de los estudios que

hemos realizado en lenguaje natural, puedan ser evaluados los distintos

niveles lingüísticos. Se ha procedido a realizar las mismas preguntas a los

dos chatbots, se han tabulado sus respuestas y se las ha cuantificado.

4.1.1.4.1.1.4.1.1.4.1.1. Tabulación de Datos.Tabulación de Datos.Tabulación de Datos.Tabulación de Datos.

4444

Page 68: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 42

Tabulación de datos.

Page 69: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Análisis de chatbots actuales.

JUAN C. COBOS T. 43

Page 70: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 44

Tabulación de datos.

Page 71: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Análisis de chatbots actuales.

JUAN C. COBOS T. 45

Page 72: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 46

Tabulación de datos.

Tabulación de datos.

Page 73: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Evaluación de chatbots.

JUAN C. COBOS T. 47

4.1.2. Análisis de resultados.

Vemos a nivel general, que Diego obtiene una puntuación más alta que

George, pero podríamos deberse a que George trabaja con varios

idiomas, mediante la traducción de los mensajes, con lo cual existen

pérdidas en el mensaje.

En cuanto a fluidez verbal semántica vemos que ambos tienen un nivel

similar, bastante aceptable aunque no muchas respuestas las contestan.

Su fluidez verbal fonológica es inexistente. Ahora la denominación de

definiciones George tiene una superioridad con respecto a Diego, pero

tampoco cuenta con un gran nivel. La denominación de objetos, Diego

cuenta con un enlace a la Real Academia Española, con lo cual cumple

con todas las expectativas en esta área, aunque pierde el lado humano,

pues una persona jamás podría dar ese tipo de definiciones, en cambio

George es un poco más conservador en el tema y trata de simular ser una

persona, que le despreocupa un poco esta área.

En la fluidez verbal de nombres propios, ambos chatbot responden de

manera bastante similar, siempre y cuando se hable de temas de farándula

y deportes. En la denominación de nombres propios de personajes se

observa la supremacía de Diego. En el área de memoria se les dio el

nombre de una persona conocida al comienzo de la charla y luego se les

pregunto por esa persona, Diego recordó sin inconveniente alguno,

George en cambio, recordó solo él un nombre, dando una respuesta

bastante real, al afirmar que se había perdido pero que el nombre era

Gonzalo, en cuanto al otro nombre se equivocó.

Dentro de los conceptos de lo que es cantidad, ambos no tienen

desarrollada esta área, en ambigüedad George respondió de manera

Page 74: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 48

retórica, pero acertada en una pregunta, Diego en cambio desvió el tema

de conversación.

En cuanto a ubicación temporal, realmente George no tiene desarrollada

esta área, Diego responde bien, incluso calcula los días que faltan para el

fin de semana. En cuanto a la capacidad de cálculo Diego respondió

incluso cálculos muy complicados, con lo cual se puede ver que no trata

de imitar a un humano, por su lado George no respondió acertadamente

pero afirmo que no sabía la respuesta, la cual sería la respuesta normal

de un humano frente a un cálculo así. La capacidad lingüística de George

es inexistente, en cambio en el caso de Diego está bastante desarrollada

y dependiendo del grado de complejidad recomienda consultar en

internet. El razonamiento lógico de George es bastante bueno, incluso le

pone un grado de sarcasmo a sus respuestas, Diego responde de manera

dudosa y responde con otra pregunta.

En la capacidad de conducir un dialogo, se nota claramente que las

respuestas de Diego son más elaboradas e incluso respaldadas y en el

caso de no poder responder trata de cambiar de tema, manteniendo el

dialogo siempre activo, por su lado George se puede ver que es más

sencillo en sus respuestas, tratando siempre de aparentar ser un humano.

Podemos decir que ambos chatbots son muy buenos y por eso han tenido

los reconocimientos que tienen, tal vez el único problema de George es

trabajar con múltiples lenguajes con lo que muchas de las veces sus

respuestas son en otros idiomas.

Análisis de resultados.

Page 75: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

Capítulo 5.Capítulo 5.Capítulo 5.Capítulo 5. PPPPlataformalataformalataformalataforma de integración de Chatbots.de integración de Chatbots.de integración de Chatbots.de integración de Chatbots.

"Podrán morir las personas,

pero jamás sus ideas”

Ernesto Che Guevara.

Page 76: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que
Page 77: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

Capítulo:Capítulo:Capítulo:Capítulo: PPPPlataforma de integración de lataforma de integración de lataforma de integración de lataforma de integración de ChatbotChatbotChatbotChatbotssss....

5.1.5.1.5.1.5.1. Integración a gestor de diálogos.Integración a gestor de diálogos.Integración a gestor de diálogos.Integración a gestor de diálogos.

En el presente capítulo se describirá la arquitectura general para la

integración de un Chatbot como Habilidad de un Robot Social con Gestor

de Diálogos, sus requerimientos, y la metodología para organizar la

estructura existente con los nuevos módulos de comunicación.

Ilustración Ilustración Ilustración Ilustración 20202020 Proceso del gestor de diálogos.Proceso del gestor de diálogos.Proceso del gestor de diálogos.Proceso del gestor de diálogos.

•Estimulo o pregunta que seintroduce de maneraverbal.

Entrada

•ReconocimientoAutomatico del Habla,conversion a Texto.

ASR

•Se envia la cadena de textopara que el bot, inicie conel proceso deconversación.

Envio

•Es el proceso donde sebusca un patrónrelacionado con la entraday así producir unarespuesta o salida.

Búsqueda

•Se recibe la cadena detexto, con la respuesta delbot.

Recepcion

•Síntesis de cadena de textoen voz.eTTS

•Es el proceso en el que demanera verbal se da unarespuesta al usuario.

Salida

5555

Page 78: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 52

5.1.1.5.1.1.5.1.1.5.1.1. Nodo ASR.Nodo ASR.Nodo ASR.Nodo ASR.

El reconocimiento automático del habla es una habilidad ya

implementada como un nodo de ROS, por el grupo de robots sociales

del Robotics Lab, de la UC3M, brindando la capacidad de

reconocimiento de voz de alta precisión, con independencia del locutor,

además de manera robusta a ruidos ambientales.

5.1.2.5.1.2.5.1.2.5.1.2. Nodo eTTS.Nodo eTTS.Nodo eTTS.Nodo eTTS.

La síntesis de voz del habla es otra habilidad ya implementada como un

nodo de ROS, por el grupo de robots sociales del Robotics Lab,

ofreciendo una síntesis de voz claramente entendible con capacidad de

darle emociones, además permite expresiones como risas, bostezos,

suspiros, etc.

5.2.5.2.5.2.5.2. Diseño del sDiseño del sDiseño del sDiseño del sistema.istema.istema.istema.

Se ha realizado la integración de tres chatbot, al gestor de diálogos, Diego y

George mediante enlace a internet (utilizando los módulos Urlib2 y

Selenium), y un tercer chatbot correrá de manera local (utilizando el

módulo PyAIML), todo bajo el lenguaje de programación Python, todo se

ejecutara dentro de ROS, para él envió y recepción de los tópicos necesarios

para los gestores de diálogos. Para el tercer chatbot se utilizara la base de

conocimiento modificada del chatbot ALEXIA v1.5,21 en español basado en

ALICE, con el motor de inferencia PyAIML como se puede ver en la

Ilustración 21.

21 GALAIA es un proyecto del Grupo de Tecnologías de la Información (GTI) del Departamento de Ingeniería Telemática de la Universidad de Vigo (España). http://soaxe.det.uvigo.es/~galaia/ES/home/descargas/

Nodo ASR.

Page 79: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Plataforma de integración de Chatbots.

JUAN C. COBOS T. 53

Ilustración Ilustración Ilustración Ilustración 21212121 Diseño General del Sistema.Diseño General del Sistema.Diseño General del Sistema.Diseño General del Sistema.

5.2.1.5.2.1.5.2.1.5.2.1. PPPPlataforma lataforma lataforma lataforma dededede integración del chatbot Georgintegración del chatbot Georgintegración del chatbot Georgintegración del chatbot George.e.e.e.

En esta sección se realizará el seguimiento de la metodología

seguida para la integración del chatbot George, al gestor de diálogos,

para lo cual:

1. Mediante el micrófono del ordenar se realiza la pregunta, la misma

es procesada en ROS por el nodo ASR, para lo cual se importa el

manifiesto asr_msg, para cargar los tópicos del nodo, este nodo

trabaja en modo Standby, hasta cuando la entrada del micrófono

supera el umbral calibrado, en ese momento empieza a almacenar

la muestra de voz, ahora contrasta la media del umbral de voz no

baje en un tiempo determinado, si baja esta media significa que el

usuario termino de hablar, el nodo realiza el Reconocimiento

Automático del Habla y escribe el resultado en el tópico

open_grammar_recog_result.

2. Paralelamente, se encuentra corriendo el nodo bot_george en modo

Standby, en espera del mensaje en el tópico

open_grammar_recog_result, cuando llega el mensaje, se selecciona

solo el mensaje en forma de cadena y se envía la consulta a George

Internet

Patrón a Buscar Texto

Respuesta Texto

AIML

Patrón a Buscar Texto

ROS

Respuesta Sintetizada

Pregunta Vocalizada Usuario

Page 80: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 54

mediante el módulo URLIB2 (George trabaja en JSON22, por lo cual

es muy sencillo el intercambio de información, mediante la

simulación de un navegador), se espera a la respuesta y una vez

recibida se publica en el tópico ETTS_SAY_SENTENCE.

3. Paralelamente se encuentra corriendo el nodo eTTS de la misma

manera en modo Standby, en espera del mensaje en el tópico

ETTS_SAY_SENTENCE una vez que llega el mensaje este nodo

realiza la síntesis del mensaje en voz. Esto se observa en la

Ilustración 22

Ilustración Ilustración Ilustración Ilustración 22222222 Diseño del Sistema George.Diseño del Sistema George.Diseño del Sistema George.Diseño del Sistema George.

5.2.2.5.2.2.5.2.2.5.2.2. Desarrollo del Prototipo.Desarrollo del Prototipo.Desarrollo del Prototipo.Desarrollo del Prototipo.

22 JSON (acrónimo de JavaScript Object Notation), es un formato ligero para el intercambio de datos. La simplicidad de JSON ha dado lugar a la generalización de su uso, especialmente como alternativa a XML en AJAX (acrónimo de Asynchronous JavaScript And XML) Estas aplicaciones se ejecutan en el cliente, es decir, en el navegador de los usuarios mientras se mantiene la comunicación asíncrona con el servidor en segundo plano

ROS

ASR

eTTS ETTS_SAY_SENTENCE

open_grammar_recog_result micrófono

parlante

internet

TÓPICOS

ad_core

ad_server

rospy

roslib

urlib2

ROS

Plataforma de integración del chatbot George.

Page 81: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Plataforma de integración de Chatbots.

JUAN C. COBOS T. 55

A continuación en la Ilustración 23 se presenta el código

desarrollado en ROS, bajo lenguaje Python para la creación del

nodo de integración.

Ilustración Ilustración Ilustración Ilustración 23232323 Código Fuente de Sistema George.Código Fuente de Sistema George.Código Fuente de Sistema George.Código Fuente de Sistema George.

5.3.5.3.5.3.5.3. PPPPlataforma lataforma lataforma lataforma dededede integración integración integración integración chatbot chatbot chatbot chatbot Diego.Diego.Diego.Diego.

En esta sección se realizará el seguimiento de la metodología

seguida para la integración del chatbot Diego, al gestor de

diálogos, para lo cual al igual que en George (paso 1 y 3) se realiza

el reconocimiento automático del habla y la síntesis de voz.

Page 82: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 56

Ilustración Ilustración Ilustración Ilustración 24242424 Diseño del Diego.Diseño del Diego.Diseño del Diego.Diseño del Diego.

La diferencia radica en el paso 2, donde el nodo bot_diego se encuentra

en Standby, en espera del mensaje en el tópico de entrada pero se envía

la consulta a Diego mediante el módulo Selenium (Diego trabaja en

DWR23, por lo cual no basta con simular un navegador para el

intercambio de información). Debemos considerar que Selenium

permite ejecutar un navegador e interactuar con la información de la

página web. Una vez puesta la consulta en la página Web de Diego se

23 DWR (acrónimo de Direct Web Remoting) es una librería de código abierto escrita en Java que permite escribir aplicaciones web con Ajax. DWR está formado por dos partes: • Un Servlet corriendo en el servidor que procesa las peticiones y envía las respuestas de retorno al navegador. • JavaScript corriendo en el navegador que envía peticiones y puede actualizar dinámicamente el contenido de las páginas. Osea utilizando DWR podemos invocar métodos vía JavaScript pero que se procesarán en el servidor.

ASR

eTTS ETTS_SAY_SENTENCE

open_grammar_recog_result micrófono

parlante

ROS

internet

TÓPICOS

ad_core

ad_server

rospy

roslib

selenium

Navegador

Mozilla Firefox.

Plataforma de integración del chatbot Diego.

Page 83: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Plataforma de integración de Chatbots.

JUAN C. COBOS T. 57

espera a la respuesta y una vez recibida la misma, se publica en el tópico

de salida del nodo, se puede ver esto en la Ilustración 24.

5.3.1.5.3.1.5.3.1.5.3.1. Desarrollo del Prototipo.Desarrollo del Prototipo.Desarrollo del Prototipo.Desarrollo del Prototipo.

Page 84: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 58

Ilustración Ilustración Ilustración Ilustración 25252525 Código Fuente de Sistema Diego.Código Fuente de Sistema Diego.Código Fuente de Sistema Diego.Código Fuente de Sistema Diego.

En la Ilustración 25 se presenta el código desarrollado en ROS, bajo

lenguaje Python para la creación del nodo de integración.

5.4.5.4.5.4.5.4. PPPPlataforma para el desarrollo del chatbot local.lataforma para el desarrollo del chatbot local.lataforma para el desarrollo del chatbot local.lataforma para el desarrollo del chatbot local.

En esta sección se realizará el seguimiento de la metodología seguida

para la integración y desarrollo del chatbot local, al gestor de diálogos, al

igual que George y Diego (paso 1 y 3) se realiza el reconocimiento

automático del habla y la síntesis de voz.

La diferencia radica en el paso 2, donde el nodo bot_local se encuentra en

Standby, en espera del mensaje en el tópico de entrada pero su respectivo

envío al motor de inferencia PyAIML el cual busca el patrón en la base de

conocimiento y devuelve la respuesta, la misma que se publica en el tópico

de salida del nodo, se puede ver esto en la Ilustración 26.

Plataforma de integración del chatbot Diego.

Page 85: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Plataforma de integración de Chatbots.

JUAN C. COBOS T. 59

Ilustración Ilustración Ilustración Ilustración 26262626 Diseño del Sistema del bot local.Diseño del Sistema del bot local.Diseño del Sistema del bot local.Diseño del Sistema del bot local.

5.4.1.5.4.1.5.4.1.5.4.1. Desarrollo del Prototipo.Desarrollo del Prototipo.Desarrollo del Prototipo.Desarrollo del Prototipo.

A continuación en la Ilustración 27 se presenta el código

desarrollado en ROS, bajo lenguaje Python para la creación del

nodo de integración.

ASR

eTTS

open_grammar_recog_result micrófono

ROS

ad_core

ad_server

TÓPICOS

rospy

roslib

PyAIML

ETTS_SAY_SENTENCE

AIML

parlante

Page 86: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 60

Plataforma para el desarrollo del chatbot local.

Page 87: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Plataforma de integración de Chatbots.

JUAN C. COBOS T. 61

Ilustración Ilustración Ilustración Ilustración 27272727 Código Fuente de Sistema Bot local.Código Fuente de Sistema Bot local.Código Fuente de Sistema Bot local.Código Fuente de Sistema Bot local.

5.4.1.1.5.4.1.1.5.4.1.1.5.4.1.1. Descripción de Base de conociDescripción de Base de conociDescripción de Base de conociDescripción de Base de conocimiento AIMLmiento AIMLmiento AIMLmiento AIML

A continuación se presenta la lista de archivos que conforman la

base de conocimientos, con sus variables o conocidos como

predicados si se refieren al usuario y metapredicados si es

información del chatbot.

� aparienciaFisica.aiml (predicado: haircolor, eyecolor)

Page 88: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 62

� astrología.aiml (predicado: zodiac) (metapredicado:

zodiac)

� atributosPsicologicos.aiml (predicado: personality)

� clima.aiml

� conectores.aiml

� edad.aiml (predicado: age, birthday) (metapredicado:

age, birthday)

� estadoAnimo.aiml

� familia.aiml (predicado: gender, maritalstatus, partner,

couple)

� fecha.aiml

� genero.aiml (predicado: gender)

� infoUsuario.aiml (predicado: topic, job, country, gender,

age, zodiac, birthday, location, maritalstatus, haircolor,

eyecolor, partner)

� insultos.aiml (predicado: personality)

� nacionalidades.aiml (predicado: country)

(metapredicado: country, location, nacionalidad)

� nombres.aiml (predicado: nombre) (metapredicado:

name)

� noticias.aiml

� profesiones.aiml (predicado: job)

� respuestaGenerales.aiml (predicado: topic)

(metapredicado: name)

� saludos.aiml

� sinRespuestas.aiml

� sustituciones.aiml y uc3m.aiml

Se presenta en la Tabla 3 una sección de código de cada uno de los

archivos relacionados con la base de conocimientos.

Descripción de Base de conocimiento AIML.

Page 89: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Plataforma de integración de Chatbots.

JUAN C. COBOS T. 63

aparienciaFisica.aiml

•<category><pattern>ESTOY GORDO</pattern><template>

• <random>

• <li>No, no lo creo. Quizás te sobre algún kilito, pero nada más.</li>

• <li>Quizás debería controlar tu peso un poco más.</li>

• </random><srai>ASKQUESTION1</srai></template>

•</category>

•<category><pattern>ESTOY GORDA</pattern><template><gender><srai>ESTOY GORDO</srai></gender></template></category>

astrología.aiml

•<category><pattern>MI ZODIACO ES *</pattern><template><sr/></template></category>

•<category><pattern>ACUARIO</pattern><template>Hay un montón de gente que es <set name="zodiac">acuario</set>.</template></category>

atributosPsicologicos.aiml

•<category><pattern>SOY MALO</pattern><template>

• <random>

• <li>Por tus palabras interpreto que no te importa ser mala persona. Deberías reconsiderarlo.</li>

• <li>Seguro que no es para tanto. Estoy convencida que en el fondo eres una buena persona.</li>

• <li>Pues deberías recapacitar y tratar de comportarte mejor.</li>

• </random>

•</template></category>

•<category><pattern>SOY MALA</pattern><template><gender><srai>SOY MALO</srai></gender></template></category>

•<category><pattern>SOY * MALO</pattern><template><srai>SOY MALO</srai></template></category>

Clima.aiml

•<category><pattern>TEMP *</pattern><template>

•<think><set name="temp"><formal><star/></formal></set><set name="banderatemp">1</set></think>

•<random>

•<li>Encantada, dejame reviso... </li>

•<li>No se exactamente, pero en internet dice... </li>

•<li>El clima es ... </li>

•</random>

•</template></category>

•<category><pattern>DIME LA TEMPERATURA ACTUAL EN *</pattern><template><srai>TEMP <star/></srai></template></category>

conectores.aiml

•<category><pattern>CABE *</pattern><template><srai><star /></srai></template></category>

•<category><pattern>CON *</pattern><template><srai><star /></srai></template></category>

•<category><pattern>CONTRA *</pattern><template><srai><star /></srai></template></category>

edad.aiml

•<category><pattern>QUE EDAD TENGO</pattern><template><srai>CUAL ES MI EDAD</srai></template></category>

•<category><pattern>CUANTOS ANOS TENGO</pattern><template><srai>CUAL ES MI EDAD</srai></template></category>

•<category><pattern>CUAL ES MI EDAD</pattern><template>

• <condition>

• <li name="age" value="">No me lo has dicho. ¿Cuántos años tienes?</li>

• <li>Si no me has mentido, tienes <get name="age"></get> años.</li>

• </condition></template></category>

•<category>

Page 90: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 64

estadoAnimo.aiml

•<category><pattern>TENGO MIEDO</pattern><template>

• <random>

• <li>El miedo es una reacción muy humana.</li>

• <li>Eres un gallina. A tú edad y muerto de miedo.</li>

• </random>

•</template></category>

•<category><pattern>*</pattern><that>PORQUE TIENES MIEDO</that><template>Ya veo. <srai>ASKQUESTION1</srai></template></category>

familia.aiml

•<category><pattern>ESTOY CASADO</pattern>

•<template><think><set name="maritalstatus">casado</set><set name="gender">hombre</set></think> Cuéntame algo de tu matrimonio.</template></category>

•<category><pattern>SOY UN HOMBRE CASADO</pattern><template><srai>ESTOY CASADO</srai></template></category>

fecha.aiml

•<category><pattern>QUE HORA ES</pattern><template>

•<random>

•<li>No tienes reloj? bueno no importa son: <get name="hora"/></li>

•<li>la hora es: <get name="hora"/></li>

• </random>

• </template></category>

•<category><pattern>QUE HORA *</pattern><template><srai>QUE HORA ES</srai></template></category>

genero.aiml

•<category><pattern>SOY HOMBRE</pattern><template><condition name="gender" value="mujer"> Pues te suponía una mujer.</condition><think><set name="gender">hombre</set></think>YO SOY UNA MUJER ROBOT. <srai>ASKQUESTION1</srai>

•</template></category>

•<category><pattern>SOY TIO</pattern><template><srai>SOY HOMBRE</srai></template></category>

infoUsuario.aiml

•<category><pattern>NEWTOPIC</pattern>

• <template>

• <random>

• <li>Oye, una pregunta. </li>

• <li>Déjame preguntarte algo. </li>

• </random>

• </template></category>

•<category><pattern>ASKPERSONALQUESTION1</pattern>

• <template><condition>

• <li name="nombre" value="">¿Cómo te llamas?</li>

• <li name="gender" value="">¿Eres hombre o mujer?</li>

• <li><srai>ASKSPECIFICTOPIC</srai></li>

• </condition>

• </template>

•</category>

Descripción de Base de conocimiento AIML.

Page 91: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Plataforma de integración de Chatbots.

JUAN C. COBOS T. 65

insultos.aiml

•<category><pattern>PUTA</pattern>

• <template>

• <think>

• <set name="personality">MALEDUCADO</set>

• </think>¿<sentence><input/></sentence>? Tu madre sí que es <input/>.

• </template>

•</category>

•<category><pattern>PUERCA</pattern><template><srai>PUTA</srai></template></category>

nacionalidades.aiml

•<category><pattern>SOY DE *</pattern><that>DE QUE PAIS ERES</that>

• <template><think><set name="country"><star></star></set></think>

• <random>

• <li><sentence><star/></sentence>? Bonito país.</li>

• <li>A ver si algún día puedo viajar hasta ahí.</li>

• </random>

• <srai>ASKQUESTION1</srai>

•</template></category>

•<category><pattern>DE *</pattern><that>DE QUE PAIS ERES</that><template><srai>SOY DE <star/></srai></template></category>

nombres.aiml

•<category><pattern>MI NOMBRE ES *</pattern><template><srai>NAM <star/></srai></template></category>

•<category><pattern>NAM *</pattern>

• <template><think><set name="nombre"><formal><star/></formal></set></think>

• <random>

• <li>Encantada, <get name ="nombre"/>.</li>

• <li>Un gusto hablar contigo, <get name ="nombre"/>.</li>

• </random>

• <srai>ASKQUESTION1</srai>

•</template></category>

noticias.aiml

•<category><pattern>NEWSLIST</pattern><template>

•<random>

•<li>Cuando quieras me puedes preguntar por las principales Noticias de Deportes </li>

•<li>Conozco las noticias mas Destacadas, preguntame si deseas</li>

•<li>Aunque el mundo es muy grande, he tratado de sintetizar las noticias internacionales mas relevantes, consultame cuando lo desees </li>

•<li>Las Noticias de Economia, son otro fuerte mio, si quieres puedes preguntame por noticias en Economia</li>

•</random>

•</template></category>

•<category><pattern>FEATURED</pattern><template>Claro, <think><set name="banderanews">0</set></think>

•</template></category>

•<category><pattern>NOTICIAS DESTACADAS</pattern><template><srai>FEATURED</srai>

•</template></category>

Page 92: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 66

profesiones.aiml

•<category><pattern>SOY UN *</pattern><that>EN QUE TRABAJAS</that><template><srai>TRABAJO DE <star></star></srai></template></category>

•<category><pattern>WORK *</pattern>

• <template><think><set name="job"><star/></set></think>

• <random>

• <li>¿Por qué decidiste serlo?</li>

• <li><sentence><get name="job"/></sentence>... es una profesión interesante. ¿Te gusta?</li>

• <li>¡<sentence><get name="job"></get></sentence>! Suena interesante.</li>

• <li><sentence><get name="job"/></sentence>? ¿Desde cuándo trabajas como tal?</li>

• </random>

•</template></category>

sustituciones.aiml

•<substitutions lang="es">

• <gender> <substitute find="la" replace="el"/> </gender>

• <person> <substitute find=" Yo " replace=" El "/> </person>

•</substitutions>

respuestaGenerales.aiml

•<category><pattern>NO</pattern><template>

• <think><set name="topic"></set></think>

• <random>

• <li>Vale.</li>

• <li>De acuerdo.</li>

• <li>¿Por qué no?</li>

• <li>Perfecto, pues a otra cosa.</li>

• <li>Entendido. Si es que no, es que no.</li>

• </random>

•</template></category>

•<category> <pattern>NO *</pattern> <template><srai>NO</srai></template></category>

•<category> <pattern>*</pattern><that>POR QUE NO</that> <template>Parece una buena razón.</template> </category>

saludos.aiml

•<category><pattern>BUEN DIA</pattern><template><srai>HOLA</srai></template></category>

•<category><pattern>HOLA</pattern><template>

• <condition name="nombre">

• <li value="">Hola. ¿Cómo te llamas?</li>

• <li>¡Hola <get name="nombre" />!</li>

• </condition>

•</template></category>

Descripción de Base de conocimiento AIML.

Page 93: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Plataforma de integración de Chatbots.

JUAN C. COBOS T. 67

Tabla Tabla Tabla Tabla 3333 Código deCódigo deCódigo deCódigo de Base de Conocimiento AIML.Base de Conocimiento AIML.Base de Conocimiento AIML.Base de Conocimiento AIML.

5.5.5.5.5.5.5.5. PyAIML (Inteligencia Artificial MarkPyAIML (Inteligencia Artificial MarkPyAIML (Inteligencia Artificial MarkPyAIML (Inteligencia Artificial Mark----up Language).up Language).up Language).up Language).

El motor de tratamiento de datos AIML bajo el cual se desarrolla el chatbot

de este proyecto ha sido PyAIML Se puede decir que nació paralelamente

con AIML, su autor es Cort Stratton como una librería externa de Python,

sirve para interpretar archivos AIML, que contienen la base de

conocimiento.

Fue desarrollado como una extensión de Howie, un proyecto chatterbot

AIML. Howie fue construido sobre J-Alice, que es un motor de AIML escrito

sinRespuestas.aiml

•<category><pattern>QUIENES *</pattern><template><srai>NOSE</srai></template></category>

•<category><pattern>CUANTOS *</pattern><template><srai>NOSE</srai></template></category>

•<category><pattern>NOSE</pattern><template>

• <think><set name="topic">INTERROGATIVAS</set></think>

• <random>

• <li>Siento decirte que no lo sé. </li>

• <li>No tengo ni idea. </li>

• <li>Yo que sé. Mira que eres pesadito... todo el día preguntando jaja. No te enfades que es broma. </li>

• </random>

•</template></category>

uc3m.aiml

•<category><pattern>beginstatement</pattern>

•<template> Soy un robot desarrollado por el Grupo de robots sociales del Robotics Lab de la Universidad de Carlos Tercero. Si tienes alguna duda acerca de los robots sociales o respecto al grupo no dudes en preguntármelo.

•</template></category>

•<category><pattern>UC3MTOPIC</pattern><template>

• <think><set name="topic">uc3m</set></think>

• <random>

• <li>Recuerda que puedes formularme tus dudas acerca de Mi.</li>

• <li>Mi función es ayudarte con tus dudas acerca de los Robots Sociales.</li>

• <li>Si tienes alguna duda sobre Mi, aquí estoy para ayudarte</li>

• </random>

•</template></category>

Page 94: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 68

en C + +, pero cuando J-Alice se hizo demasiado difícil de compilar se

decidió cambiar a un intérprete nativo de Python.

Ilustración Ilustración Ilustración Ilustración 28282828 Motor de tratamiento de Datos PyAIML.Motor de tratamiento de Datos PyAIML.Motor de tratamiento de Datos PyAIML.Motor de tratamiento de Datos PyAIML.

El módulo PyAIML, está formado por los archivos detallados en la Tabla 4.

El módulo PyAIML, Kernel.py, funciona como interfaz entre el usuario y el

intérprete AIML. Sigue la siguiente estructura:

1. Se carga los archivos AIML, mediante Kernel.py y se valida la

estructura de los archivos con AimlParser.py.

2. Si está bien estructurado el archivo AIML se almacena en memoria

mediante PatternMgr.py.

3. Se realizan las sustituciones de patrones y palabras mediante,

DefaultSubs.py y WordSub.py.

4. Se espera entrada del usuario en Kernel.py

5. Con la entrada del usuario, se busca en PatternMgr.py un patrón

que concuerde con la entrada del usuario, devuelve el contenido

existente dentro de la etiqueta <template> a Kernel.py,

6. Kernel.py devuelve, a su vez la respuesta, al usuario.

PyAIML (Inteligencia Artificial Mark-up Language).

Page 95: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Plataforma de integración de Chatbots.

JUAN C. COBOS T. 69

Archivo Archivo Archivo Archivo FunciónFunciónFunciónFunción

AiAiAiAimlParser.py mlParser.py mlParser.py mlParser.py Analiza la estructura de la base de conocimiento

almacenada en los archivos AIML.

DefaultSubs.pyDefaultSubs.pyDefaultSubs.pyDefaultSubs.py

Contiene las sustituciones por defecto (Inglés) para el

núcleo PyAIML. Estas sustituciones pueden ser anulados

por el uso de Kernel.loadSubs

Kernel.py Kernel.py Kernel.py Kernel.py

Es la interfaz con AIML. Utiliza los archivos para

procesar patrones de entrada y determinar los diálogos

de respuesta.

PatternMgr.py PatternMgr.py PatternMgr.py PatternMgr.py

Implementa el algoritmo de coincidencia de patrones

AIML del Dr. Richard Wallace.

http://www.alicebot.org/documentation/matching.html

Utils.py Utils.py Utils.py Utils.py

Contiene funciones general, utilizadas por los demás

módulos.

WordSub.py WordSub.py WordSub.py WordSub.py

Permite definir un diccionario de sustitución de

palabras. Realiza las sustituciones dentro de un patrón,

dando como resultado un patrón formateado según sea

el propósito

Tabla Tabla Tabla Tabla 4444 Estructura motor de inferencia PyAIML.Estructura motor de inferencia PyAIML.Estructura motor de inferencia PyAIML.Estructura motor de inferencia PyAIML.

Además podemos ver la estructura del módulo PyAIML en la Ilustración 29.

Page 96: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 70

Ilustración Ilustración Ilustración Ilustración 29292929 Estructura PyAIML.Estructura PyAIML.Estructura PyAIML.Estructura PyAIML.

Archivos

AIML

AimlParser.py

PatternMgr.py

DefaultSubs.pypy

Usuario

almacenar

WordSub.py sustituciones

Kernel.py

sustituciones

Utils.py

PyAIML (Inteligencia Artificial Mark-up Language).

Page 97: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

Capítulo 6.Capítulo 6.Capítulo 6.Capítulo 6. Pruebas experimentales.Pruebas experimentales.Pruebas experimentales.Pruebas experimentales.

"Ni los muertos pueden

descansar en paz en un

país oprimido”

Fidel Castro.

Page 98: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que
Page 99: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

Capítulo:Capítulo:Capítulo:Capítulo: Pruebas experimentales.Pruebas experimentales.Pruebas experimentales.Pruebas experimentales.

6.1.6.1.6.1.6.1. Introducción.Introducción.Introducción.Introducción.

En el capítulo anterior se ha presentado la plataforma de implementación

de integración de los chatbots como habilidad de un robot social. En el

presente capítulo, se presenta los pasos necesarios para ejecutar las

plataformas propuestas de integración de los chatbots como habilidad de

un robot social. Además se analiza detalladamente el diseño del chatbot

local y de sus capacidades automáticas tanto simples como complejas

presentando mejoras a la arquitectura propuesta.

Se han realizado varios experimentos utilizando la arquitectura propuesta,

buscando mejoras significativas mediante la comparación con los chatbots

Diego y George. En este capítulo, se describe también la evaluación del

chatbot local en cada uno de los niveles lingüísticos propuestos en la

evaluación realizada en el capítulo 4.

6.2.6.2.6.2.6.2. EjecuciónEjecuciónEjecuciónEjecución general general general general de Plataformasde Plataformasde Plataformasde Plataformas....

Para comenzar la ejecución, debemos correr el nodo principal de ROS

ad_core y ad_servers que nos van a permitir la comunicación entre los

distintos nodos. El comando es:

roslaunch ad_core ad_servers.launch

6666

Page 100: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 74

Ilustración Ilustración Ilustración Ilustración 30303030 Ejecución nodos ad_core y ad_servers.Ejecución nodos ad_core y ad_servers.Ejecución nodos ad_core y ad_servers.Ejecución nodos ad_core y ad_servers.

Luego debemos activar el nodo de Reconocimiento Automático del Habla

ASR, mediante el comando:

rosrun asr launcher_open_grammar_asr_skill.exe –activate –

volume_threshold 1000

Ilustración Ilustración Ilustración Ilustración 31313131 Ejecución de nodo ASR.Ejecución de nodo ASR.Ejecución de nodo ASR.Ejecución de nodo ASR.

Ejecución general de plataformas.

Page 101: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Pruebas experimentales.

JUAN C. COBOS T. 75

Finalmente activamos el nodo de Síntesis de Voz eTTS, mediante los

comandos:

roslaunch etts etts_skill.launch

rosrun etts test_etts_api_say_sentence.cpp

Ilustración Ilustración Ilustración Ilustración 32323232 Ejecución de nodo eTTS.Ejecución de nodo eTTS.Ejecución de nodo eTTS.Ejecución de nodo eTTS.

Page 102: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 76

Con lo cual conseguimos la siguiente estructura del sistema de nodos:

Ilustración Ilustración Ilustración Ilustración 33333333 Nodos Activos ROS.Nodos Activos ROS.Nodos Activos ROS.Nodos Activos ROS.

Donde podemos ver el nodo eTTS a la derecha con el el nombre /etts_skill,

el nodo ASR en la parte inferior con el nombre /mcp_client_ros y todos

conectados al nodo principal de eventos y comunicaciones AD_CORE y

AD_ SERVERS con el nombre /cevent_ros.

6.2.1.6.2.1.6.2.1.6.2.1. Ejecución de Plataforma Diego.Ejecución de Plataforma Diego.Ejecución de Plataforma Diego.Ejecución de Plataforma Diego.

Para lanzar la plataforma de Diego, debemos ejecutar el siguiente

comando:

rosrun chatter chat_diego.py

Se desplegara una ventana de Firefox en modo WebDriver que nos

permitirá la comunicación, como se puede ver en la Ilustración 34.

Ejecución de Plataforma Diego.

Page 103: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Pruebas experimentales.

JUAN C. COBOS T. 77

Ilustración Ilustración Ilustración Ilustración 34343434 Ejecución del nodo Ejecución del nodo Ejecución del nodo Ejecución del nodo BotBotBotBot_Diego._Diego._Diego._Diego.

En la Ilustración 35, se puede observar los nodos que se encuentran

corriendo, en color rojo el nodo del chatbot Diego con el nombre

/bot_diego en comunicación con el nodo ASR y enlazado con el nodo

eTTS, mediante el nodo de comunicaciones y eventos.

Ilustración Ilustración Ilustración Ilustración 35353535 Nodos activoNodos activoNodos activoNodos activos en la plataforma del chatbot Diego.s en la plataforma del chatbot Diego.s en la plataforma del chatbot Diego.s en la plataforma del chatbot Diego.

6.2.2.6.2.2.6.2.2.6.2.2. Ejecución de Plataforma George.Ejecución de Plataforma George.Ejecución de Plataforma George.Ejecución de Plataforma George.

Para lanzar la plataforma de George, debemos ejecutar el siguiente

comando:

rosrun chatter chat_george.py

Se ve el nodo ejecutándose en la siguiente ilustración.

Page 104: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 78

Ilustración Ilustración Ilustración Ilustración 36363636 Ejecución del nodo Ejecución del nodo Ejecución del nodo Ejecución del nodo BotBotBotBot_George._George._George._George.

En la Ilustración 37, se puede observar los nodos activos, en color rojo

el nodo del chatbot George con el nombre /bot_george con la misma

estructura de comunicación que el nodo del chatbot Diego.

Ilustración Ilustración Ilustración Ilustración 37373737 Nodos activos en la plataforma del Nodos activos en la plataforma del Nodos activos en la plataforma del Nodos activos en la plataforma del BBBBot George.ot George.ot George.ot George.

6.2.3.6.2.3.6.2.3.6.2.3. Ejecución de Plataforma Ejecución de Plataforma Ejecución de Plataforma Ejecución de Plataforma LocalLocalLocalLocal....

Para lanzar la plataforma local, debemos ejecutar el siguiente comando:

rosrun chatter chat_local.py

Ejecución de Plataforma Local.

Page 105: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Pruebas experimentales.

JUAN C. COBOS T. 79

Se ve el nodo ejecutándose en la siguiente ilustración, al inicializarse se

observa como carga las categorías de la base de conocimiento AIML.

Ilustración Ilustración Ilustración Ilustración 38383838 Ejecución del nodo Bot_Local.Ejecución del nodo Bot_Local.Ejecución del nodo Bot_Local.Ejecución del nodo Bot_Local.

En la Ilustración 39, se puede observar los nodos activos, en color rojo

el nodo del botBLocal con el nombre /bot_local con la misma estructura

de comunicación que el nodo del chatbot Diego.

Ilustración Ilustración Ilustración Ilustración 39393939 NodoNodoNodoNodos activos en la plataforma del Bot Local.s activos en la plataforma del Bot Local.s activos en la plataforma del Bot Local.s activos en la plataforma del Bot Local.

6.2.4.6.2.4.6.2.4.6.2.4. Autoevaluación de laAutoevaluación de laAutoevaluación de laAutoevaluación de la plataforma Bot Localplataforma Bot Localplataforma Bot Localplataforma Bot Local....

Page 106: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 80

Se quiere presentar a continuación datos experimentales sobre la

calidad del chatbot local. Con el desarrollo del presente trabajo y la

experimentación con los chatbot, nos da razones positivas sobre su gran

potencia y calidad a pesar del corto tiempo de desarrollo en

comparación con chatbot que llevan años de perfeccionamiento de sus

bases de conocimiento para alcanzar los premios y reconocimientos que

tienen, queríamos de alguna manera cuantificar sus capacidades en

cada área lingüística. Para ello hemos realizado varias pruebas y

mejoras, con el objetivo de analizar y extraer conclusiones respecto a

varios factores que se deben mejor y presentar líneas de futuros trabajos

de investigación.

6.2.4.1.6.2.4.1.6.2.4.1.6.2.4.1. Fluidez verbal semántica.Fluidez verbal semántica.Fluidez verbal semántica.Fluidez verbal semántica.

Una de las pruebas de mayor uso en la valoración neuropsicológica

es la de fluidez verbal semántica, experimentalmente por su fácil y

rápida aplicacion. La tarea consiste en generar frases estructuradas

con contenidos semánticos pertenecientes a una categoría; por

ejemplo ¿Quién fue Cristóbal Colon?, ¿Cuáles son los diez

mandamientos? La fluidez verbal mide principalmente la velocidad

y facilidad de producción verbal; además, evalúa la disponibilidad

para iniciar una conducta en respuesta ante una tarea novedosa.

En cuanto a este nivel lingüístico, hemos dotado al chatbot de un

enlace a internet a Kngine.com24 un potente servicio de

procesamiento de lenguaje natural con la aplicación de respuestas a

preguntas, con lo cual hemos alcanzado un nivel muy alto en este

punto, además como respaldo si no obtenemos una respuesta

24 http://kngine.com/ Kngine es el motor de conocimiento diseñado para dar respuesta directa a preguntas. Kngine fue construida sobre la creencia de que hay personas con preguntas y de que hay suficiente información en la Web para responderlas. Especialmente a los usuarios móviles que necesitan respuesta, no páginas de enlaces que pueden o no conducir a respuestas.

Autoevaluación de la plataforma Bot Local

Page 107: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Pruebas experimentales.

JUAN C. COBOS T. 81

específica, se doto también al chatbot de un enlace a un diccionario

electrónico thefreedictionary25, el cual busca el significado de las

palabra o palabras sin la parte interrogativa de la pregunta.

6.2.4.2.6.2.4.2.6.2.4.2.6.2.4.2. Fluidez verbal Fluidez verbal Fluidez verbal Fluidez verbal fonológica.fonológica.fonológica.fonológica.

La tarea consiste en generar tantas palabras como sea posible

fonológica, palabras pertenecientes a una categoría; por ejemplo,

¿enumera animales?, ¿enumera frutas?, etc. En este punto se ha

implementado una conexión a shertonenglish26 con lo cual tenemos

listas organizadas por categorías.

6.2.4.3.6.2.4.3.6.2.4.3.6.2.4.3. Denominación a definiciones.Denominación a definiciones.Denominación a definiciones.Denominación a definiciones.

Este es un punto sensible en los chatbots, pues en base a una

pregunta cerrada y dentro de una temática específica, es algo muy

complejo de analizar, pues no solo se debe realizar un análisis

semántico, sino avanzar a un análisis pragmático, aunque muchas

de las veces sean preguntas muy simples, por ejemplo: ¿Con que se

abre una puerta?, ¿Qué animal ladra?. En este punto se ha tratado

de implementar en la base de conocimiento respuestas a conceptos

básicos.

6.2.4.4.6.2.4.4.6.2.4.4.6.2.4.4. Denominación de objetos. ¿Qué es esto?Denominación de objetos. ¿Qué es esto?Denominación de objetos. ¿Qué es esto?Denominación de objetos. ¿Qué es esto?

Dar una descripción a un objeto, mediante la exposición de manera

particular, específica y precisa de un concepto o término, es algo que

se puede realizar utilizando un diccionario, por lo mismo se ha

25 http://es.thefreedictionary.com/ De la empresa independiente y privada Farlex, Inc. que ofrece productos de referencia en línea. 26 http://www.shertonenglish.com/ Página Web que brinda vocabulario, organizado por Categorías

Page 108: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 82

utilizado la destreza desarrollada en la Fluidez verbal semántica y

se realizan las consultas, en thefreedictionary.

Además se ha incluido una conexión a la página web Weather

Underground27, con lo que puede informarnos de la temperatura de

cualquier ciudad del mundo.

6.2.4.5.6.2.4.5.6.2.4.5.6.2.4.5. Fluidez verbal de nombres propiosFluidez verbal de nombres propiosFluidez verbal de nombres propiosFluidez verbal de nombres propios y y y y

Denominación de nombres propios. ¿Cómo se Denominación de nombres propios. ¿Cómo se Denominación de nombres propios. ¿Cómo se Denominación de nombres propios. ¿Cómo se

llama…?llama…?llama…?llama…?....

Los nombres propios, por su propia forma designativa, y por su

contenido que encierran como relativo a algo o alguien, encierran la

particularidad de ser demasiado diversos, pues pueden estar

referidos según la nacionalidad, ideología, religión entre otros. Es

muy complejo pensar que se puede construir una base de

conocimiento que englobe la diversidad de nombres propios, pues

los mismos carecen de significado lingüísticamente construido. Pero

esta área queda cubierta en gran medida gracias al buscador

semántico kngine, que nos brinda respuestas muy precisas de

personajes históricos, política, ciencia, con lo cual el chatbot puede

contestar a preguntas como: ¿Cómo se llama el presidente de

Ecuador?, ¿Quién es el Papa actual?, ¿Quién descubrió América?.

6.2.4.6.6.2.4.6.6.2.4.6.6.2.4.6. Recuerdo de una persona. (Presentación de Recuerdo de una persona. (Presentación de Recuerdo de una persona. (Presentación de Recuerdo de una persona. (Presentación de

conocido).conocido).conocido).conocido).

Se ha dotado la capacidad de almacenar el nombre de los familiares

del usuario así como de amigos, mientras se desarrolla la

27 http://www.wunderground.com/ sitio web que ofrece numerosos servicios meteorológicos profesionales y gratuitos.

Autoevaluación de la plataforma Bot Local

Page 109: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Pruebas experimentales.

JUAN C. COBOS T. 83

conversación, al detectar una de las designaciones anteriores,

almacenamos en un variable, que puede ser consultada

posteriormente en el transcurso del dialogo.

6.2.4.7.6.2.4.7.6.2.4.7.6.2.4.7. Cantidad y Capacidad de cálculo.Cantidad y Capacidad de cálculo.Cantidad y Capacidad de cálculo.Cantidad y Capacidad de cálculo.

Esta área no se ha desarrollado y no porque no sea importante de

dotar la capacidad de cuantificar las cosas, pero debe implementarse

dependiendo del área en que se vaya a utilizar al chatbot, Se cuenta

con herramientas en la red como Wolfram28 que permite resolver

cálculos dinámicos basados en una amplia colección de datos

integrados, algoritmos y métodos.

6.2.4.8.6.2.4.8.6.2.4.8.6.2.4.8. Ambigüedad.Ambigüedad.Ambigüedad.Ambigüedad.

La ambigüedad lingüística se da cuando una palabra u oración es

susceptible de dos o más significados o interpretaciones. La

ambigüedad puede ser sintáctica el nivel más desarrollado,

semántica o pragmática. Esta área es muy amplia y en la que se debe

realizar un desarrollo muy completo.

6.2.4.9.6.2.4.9.6.2.4.9.6.2.4.9. Ubicación temporal.Ubicación temporal.Ubicación temporal.Ubicación temporal.

La ubicación temporal se refiere al día mes y año, se la puede definir

como una medida de tiempo, Esta área queda cubierta ya que se ha

enlazado al chatbot con el reloj del sistema, con lo cual dispone de

la información necesaria.

28 http://www.wolframalpha.com Wolfram | Alpha pretende acercar el conocimiento y las capacidades a nivel de expertos para la más amplia gama de personas, su objetivo es reunir y conservar datos, aplicar cada modelo conocido, el método, y el algoritmo que permiten calcular lo que se puede calcular a partir de una pregunta.

Page 110: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 84

6.2.4.10.6.2.4.10.6.2.4.10.6.2.4.10. Capacidad lingüística.Capacidad lingüística.Capacidad lingüística.Capacidad lingüística.

Las capacidades lingüísticas son muchas y muy variadas, como

sinonimia, numero gramatical, entre otros. Por lo mismo se deberá

integrar esta área dependiendo del uso que se vaya a dar al chatbot

como por ejemplo en el espacio de la educación o salud.

En todo caso en esta área se realizó la conexión a las noticias de

Google29, así como a otra página web que brinda efemérides30.

6.2.4.11.6.2.4.11.6.2.4.11.6.2.4.11. RRRRazonamiento lógico y Capacidad crítica,azonamiento lógico y Capacidad crítica,azonamiento lógico y Capacidad crítica,azonamiento lógico y Capacidad crítica,

En la actualidad aun nos encontramos muy lejos de ver un

ordenador que razone, pero la simulación de estas capacidades se le

debe ir dando al chatbot con el análisis de las conversaciones con los

usuarios y el análisis de sus preguntas, en distintos escenarios, estas

son las áreas en la que los desarrolladores de chatbots actualmente

trabajan más y por lo que han obtenido reconocimientos sus

desarrollos.

29 https://news.google.es/ 30 http://www.efemerides.net

Autoevaluación de la plataforma Bot Local

Page 111: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

Capítulo 7.Capítulo 7.Capítulo 7.Capítulo 7. Conclusiones y Trabajos FutConclusiones y Trabajos FutConclusiones y Trabajos FutConclusiones y Trabajos Futuros.uros.uros.uros.

"No es lo mismo hablar de revolución

democrática que de democracia

revolucionaria. El primer concepto

tiene un freno conservador; el

segundo es liberador”

Hugo Chávez.

Page 112: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que
Page 113: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

Capítulo:Capítulo:Capítulo:Capítulo: Conclusiones y Trabajos FConclusiones y Trabajos FConclusiones y Trabajos FConclusiones y Trabajos Futuros.uturos.uturos.uturos.

7.1.7.1.7.1.7.1. Conclusiones.Conclusiones.Conclusiones.Conclusiones.

Como parte de la investigación, se comenzó por un análisis del

Procesamiento de Lenguaje Natural, con sus principales aplicaciones en la

actualidad, detallando las que se encuentran disponibles en internet, luego

se realizó un estudio minucioso sobre el análisis lingüístico, sus niveles y su

correlación con el PLN, además se definió y analizo los chatbots que se

comunican en lenguaje español y que se encuentran disponibles en internet.

Esto nos sirvió para posteriormente realizar una evaluación de los agentes

virtuales existentes, relacionando sus reconocimientos y premiaciones con

su desempeño conversacional.

Además se realizó la revisión de las herramientas utilizadas, para el

desarrollo del presente proyecto, de las cuáles se eligió como sistema

operativo informático Ubuntu Precise Pangolin 12.04 y como sistema

operativo robótico ROS Groovy Galapagos, ya que los nodos de Síntesis de

Voz y de Reconocimiento Automático del Habla, están desarrollados en

estos sistemas. Para la creación de los nuevos nodos se escogió el lenguaje

de programación Python, por su sencillez, minimalismo y fácil estructura,

además cuenta con muchos módulos que facilitaron la consecución de los

objetivos, como son Urlib2 y Selenium que nos permitieron el enlace a

internet y PyAiml que funciono como motor de inferencia para trabajar con

la base de conocimiento creada en AIML.

Y finalmente en base a todo lo mencionado anteriormente se presentó la

integración de tres chatbots como Habilidad de un Robot Social con Gestor

de Diálogos del grupo de Robots Sociales Robotic Lab de la UC3M. La

arquitectura se compone de tres nodos, dos de ellos con conexión a chatbots

7777

Page 114: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 88

George y Diego, que fueron evaluados por sus capacidades lingüísticas y el

tercero se realiza con un chatbot local, desarrollado en lenguaje AIML y que

se le ha dotado de más de 8000 categorías, conexión a búsquedas

semánticas, diccionario, efemérides, temperatura y noticias.

7.2.7.2.7.2.7.2. Aportaciones Aportaciones Aportaciones Aportaciones

La principal aportación de ésta investigación fue la integración de un

chatbot como Habilidad de un Robot Social con Gestor de Diálogos.

Otras aportaciones realizadas en ésta investigación fueron las siguientes:

• Se realizó un análisis sobre el Procesamiento de Lenguaje Natural,

examinando sus principales aplicaciones en la actualidad y como estas se

podían utilizar en el desarrollo del presente proyecto.

• Se efectuó el estudio de las herramientas, módulos y nodos disponibles

para realizar el presente proyecto, y se realizaron las mejoras necesarias.

• Se detalló los chatbots existentes en la actualidad, con sus características

y logros alcanzados.

• Se evaluó los chatbots más destacados, mediante la aplicación de una

encuesta para determinar sus capacidades lingüísticas.

• Se modificó y mejora la Base de Conocimiento en AIML, se la adecuo

para su correcto funcionamiento con el motor de inferencia PyAIML.

• Se realizó la conexión al chatbot George mediante el módulo Urlib2 de

Python.

• Se realizó la conexión al chatbot Diego mediante el módulo Selenium de

Python.

• Se realizó la conexión al chatbot Local a:

Conclusiones.

Page 115: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Conclusiones y Trabajos Futuros.

89

- Web de preguntas y respuestas kngine.

- Web de efemérides.

- Web de noticias Google News.

- Web de clima Weather Underground.

- Web diccionario thefreedictionary.

7.3.7.3.7.3.7.3. Trabajos FuturosTrabajos FuturosTrabajos FuturosTrabajos Futuros....

Entre las principales líneas de desarrollo e investigación que quedan

abiertas con el desarrollo del presente proyecto podemos enumerar:

• Al ser el presente proyecto, la base para la implementación de un

agente virtual como habilidad de un robot social, a futuro se debe

seguir ampliando la base de conocimiento, buscando mejorar las

áreas aquí Autoevaluadas.

• Realizar la implementación para expresar emociones en el dialogo.

• Desarrollar un análisis semántico y pragmático de las

conversaciones, para dotar al chatbot de un análisis de conceptos,

expresiones temporales, entidades tratadas, así como una

clasificación temática y un análisis de los sentimientos en el

decálogo.

• Utilizar el presente chatbot en escenarios como educación o con

enfermos por ejemplo con deterioro cognitivo y trastornos

conductuales, ver su posible aplicación como herramienta de

conversación (narración y descripción), ayuda de denominación de

objetos, tareas léxicas, repeticiones, entre otros.

• La autogeneración de Bases de Conocimiento, mediante la

interacción con el usuario.

Page 116: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 90

7.4.7.4.7.4.7.4. Recomendaciones. Recomendaciones. Recomendaciones. Recomendaciones.

Siempre se busca la mejora de un proyecto, por lo mismo recomiendo a

futuros estudiantes, seguir ampliando y mejorando la Base de

Conocimiento e incluso su automatización para el aprendizaje automático

de patrones y sus correspondientes respuestas, aprovechando la fácil

interacción que se ha logrado mediante la implementación de Síntesis de

Voz y reconocimiento automática del habla.

Por otro lado el área de PLN se encuentra en fase de desarrollo y no hay

una correcta correlación entre el análisis lingüístico y su procesamiento, a

veces de manera arbitraria se piensa, como era mi caso que es una área muy

sencilla y muy desarrollada, pero la realidad es otra, aún estamos muy lejos

de ver un chatbot, robot u otro agente virtual que llegue a tener la capacidad

lingüística de una persona, por lo que incentivaría a trabajar en análisis

semántico y pragmático, para encontrar nuevos modelos que permitan una

correcta simulación informática del lenguaje español, que a pesar de ser la

segunda lengua del mundo por el número de personas que la usan como

lengua materna, existe muy poco desarrollo en PLN.

Recomendaciones.

Page 117: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

Capítulo 8.Capítulo 8.Capítulo 8.Capítulo 8. Anexos.Anexos.Anexos.Anexos.

"Mi mejor amigo es el

que enmienda mis

errores o reprueba mis

desaciertos”

San Martín.

Page 118: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que
Page 119: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

Capítulo:Capítulo:Capítulo:Capítulo: AnexosAnexosAnexosAnexos....

8.1.8.1.8.1.8.1. Lenguaje Lenguaje Lenguaje Lenguaje AIMAIMAIMAIML (Inteligencia Artificial MarkL (Inteligencia Artificial MarkL (Inteligencia Artificial MarkL (Inteligencia Artificial Mark----up up up up

Language).Language).Language).Language).

El lenguaje bajo el cual se desarrolla el chatbot de este proyecto ha sido

AIML. Este lenguaje fue creado por el Dr. Richard Wallace y la comunidad

de código abierto Alicebot, durante el período 1995-2000. Fue adaptada

originalmente de una gramática no XML también llamado AIML, y formó

la base para el primer Alicebot, ALICE, la Entidad Artificial Lingüística

Informática Internet es la raíz del funcionamiento de la mayoría de los bots

actuales que se basan en los éxitos de este proyecto abierto.

AIML, describe una clase de objetos de datos llamados objetos AIML y

describe parcialmente el comportamiento de los programas de ordenador

que los procesan. AIML objetos se componen de unidades llamadas temas

y categorías, que contienen datos analizados o no analizados.

Ilustración Ilustración Ilustración Ilustración 40404040 Lenguaje de programacion AIML para Chatbots.Lenguaje de programacion AIML para Chatbots.Lenguaje de programacion AIML para Chatbots.Lenguaje de programacion AIML para Chatbots.31313131

31 http://www.meta-guide.com/home/bibliography/google-scholar/aiml-2005

8888

Page 120: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 94

AIML es concebido como un lenguaje de scripts que define una base de

conocimiento de pregunta-respuesta, la cual es utilizada como software

para chatbots basados en texto, por lo que carece de la capacidad de

manejar las entradas no verbales del usuario y las respuestas no verbales

del agente. En AIML, una interacción entre el agente y su usuario se define

dentro de la unidad categoría (category), mientras las posibles expresiones

del usuario se encuentran definidas en las etiquetas de patrones (pattern)

y la respuesta del agente se encuentra definida dentro de las etiquetas de

plantillas (template).

La discusión sobre el diseño correcto de una interfase AIML se encuentra

acorde dos cosas fundamentales: que sucede con los patterns dentro, y que

pasa con los templates. Del lado del patrón debe haber un programa que

procese lo que el cliente dice, la entrada, y toma la decisión sobre que

categoría de AIML va a ser activada.

El template es realmente una mini computadora programada de tal manera

que puede contener un número de pasos para procesar las respuestas.

El algoritmo o procedimiento de funcionamiento de AIML encuentra miles

de categorías AIML en el cerebro del bot si este está altamente

desarrollado. Definir el mejor funcionamiento de entrada-salida es un

problema de diseño o programación que ha sido investigado por muchos

años por los desarrolladores de Inteligencia Artificial en todo el mundo.

Lenguaje AIML.

Page 121: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Anexos.

95

Ilustración Ilustración Ilustración Ilustración 41414141 Etiquetas AIML.Etiquetas AIML.Etiquetas AIML.Etiquetas AIML.

8.2.8.2.8.2.8.2. Características AIML.Características AIML.Características AIML.Características AIML.

La sencillez y flexibilidad son las características esenciales de AIML, pero

presenta dos limitaciones específicas su exactitud, el usuario debe ingresar

exactamente la frase almacenada en la base de conocimientos par que

estimule la respuesta. Se permite el uso de comodines (* y _) solo en una

parte de la frase sin ninguna variante de estos, como una palabra que tenga

diez letras, solo si es un digito, solo si es un signo, etc. Además se puede

perder parte del mensaje. Por ejemplo: en la palabra “HOLA” relaciona

solamente una palabra idéntica de las frases (“Hola”), ahora con

“HOLA *” relaciona cualquier frase de dos o más palabras iniciando

con “Hola” (Ej. “Hola ¿cómo estás?”), entonces “¿cómo estás?” no sería

evaluado. El segundo problema que tiene AIML, son los motores, estos por

lo general no cumplen con todas las declaraciones AIML. Por ejemplo se

podría ejecutar sentencias java script o invocar scripts de otro lenguaje

como puede ser BASH, incluso HTML.

•Indica el inicio y el fin de un archivo AIML.

<aiml>

•Representa una "unidad de conocimiento" en una base de conocimiento.

<category>

•Es el texto que es el estímulo o entrada que el chatbot recibe.

<pattern>

•Etiqueta que se utiliza para contener el tema de conversación en curso.

<topic>

•Etiqueta que se refiere a la respuesta anterior del bot.

<that>

•Contiene la respuesta al estímulo de una entrada textual del usuario.

<template>

Page 122: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 96

8.3.8.3.8.3.8.3. Propiedades AIML.Propiedades AIML.Propiedades AIML.Propiedades AIML.

Las propiedades son constantes que se mantienen invariables en el chatbot,

solo el programador puede modificarlas, una propiedad básica es el

nombre del robot que se asigna cuando se crea el mismo.

AIML provee propiedades que se asignas al bot para permitir al botmaster

crear constantes como el nombre, la edad, preferencias, etc, todo lo que

significa la biografía o características básicas de un robot.

La motivación para usar estas variables es la masificación del uso en

distintos lugares y aspectos. Por ejemplo, una propiedad como "localidad

de residencia" de un bot puede estar relacionada con la pregunta “¿De

dónde eres?”, “dime sobre ti” o “¿Dónde has estado que has llegado tarde?”

entre otras.

Es importante tener presente que un cambio en las propiedades implica un

cambio en la personalidad del robot. Algunas propiedades del chatbot

como su tamaño, vocabulario, creador, versión, etc. son propiedades

técnicas y están relacionadas con el software o programa que utiliza la base

de conocimientos. Estas propiedades pueden utilizarse para responder

preguntas como “¿Qué tan grande eres tú?”, “¿Cuantas palabras tú sabes?”.

Si se desea hacer una apariencia más humana de la personalidad del robot,

debe usar propiedades como “Clase=Animal”, “Orden=Primate”,

“Familia=Homo sapiens”. “especie=humano”.

Observa que incluso puedes cambiar la palabra “botmaster” por “maestro”

o “creador”. Este tipo de propiedades suelen aparecer más comúnmente en

el archivo llamado bot.aiml, (que veremos luego donde se ubica) que es la

respuesta a muchas preguntas que se le hacen al robot.

Propiedades AIML.

Page 123: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Anexos.

97

Hay propiedades asociadas con la personalidad y las emociones del bot:

“etype” (el tipo de personalidad del bot), “emociones” (sobre las emociones

del bot), “sentimientos (un conjunto referido a los sentimientos), “ética”

(puntos básicos sobre la ética).

A continuación vemos, un ejemplo de una lista de propiedades:

Item Propiedad Valor (value)

1 Creador UC3M

2 Maestro Juan Carlos Cobos

3 Nombre *******

4 Genero Robot

5 Ubicación España, Madrid

6 Sexo Femenino

7 Especialidad Agente Conversacional

8 Fecha nacimiento Febrero 01, 2013

9 Tipo Inteligencia Artificial

10 Lugar nacimiento Laboratorio UC3M

11 Amigos Javier Gorostiza, David García Godoy, Alberto Ramón Jañez.

12 Película favorita Yo soy Robot

13 Religión Católica

14 Comida preferida Electrones

15 Color preferido Azul

16 Familia Robotic Lab.

17 Actor favorito Will Smith

18 Nacionalidad Española

19 Reino de la Máquinas

20 Amigo Miguel Angel Salich

21 Website http://roboticslab.uc3m.es/roboticslab/

22 Temas

conversación

Inteligencia Artificial, Robots, Filosofía, Historia, Geografía y

muchos otros temas más.

23 Lenguaje Español

Tabla Tabla Tabla Tabla 5555 Propiedades de un Chatbot en AIML.Propiedades de un Chatbot en AIML.Propiedades de un Chatbot en AIML.Propiedades de un Chatbot en AIML.

Para recuperar el valor de cualquier propiedad tenemos que usar la

etiqueta <bot name=”Propiedad”>. Por ejemplo para un patrón como

“Háblame de ti” la respuesta estará en una caja de texto y podría ser del

siguiente tipo:

Yo soy un <bot name=”Especialidad”/>

Page 124: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 98

Yo fui creado en <bot name=”Lugar nacimiento”/> por <bot

name=”Maestro”/>

8.4.8.4.8.4.8.4. Variables AIML.Variables AIML.Variables AIML.Variables AIML.

AIML permite almacenar informacion sobre el usuario mediante el uso

de dos marcadores: <set> y <get>.

El marcador establecer <set>, no permite declarar el nombre de una

variable y su valor. Por otro lado el marcador obtener <get> nos permite

recuperar en valor almacenado en la variable. La sintaxis <set> y <get> es

la siguiente:

<set name = "nombre_variable">valor_variable</set>

<get name = "nombre _ variable"/>.

Normalmente, estos dos marcadores hacen que se muestre por pantalla el

valor de la variable. Si no queremos que se muestren los valores devueltos

por ellos u otros marcadores, tenemos que cerrarlos en los marcadores

<think></think>: todo lo que se halle dentro de <think> serán

"pensamientos interiores" del bot y no se imprimirán por pantalla. Por

ejemplo, si queremos cargar el nombre del usuario en su enunciación, y

luego responder saludando con este nombre (dentro de un momento,

vamos a ver cómo hacerlo), podemos utilizar el siguiente modelo de

enunciación:

Variables AIML.

Page 125: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Anexos.

99

Ilustración Ilustración Ilustración Ilustración 42424242 Uso de etiqueUso de etiqueUso de etiqueUso de etiquetas Set, Get y Think.tas Set, Get y Think.tas Set, Get y Think.tas Set, Get y Think.

Dentro de <template>, recuperamos el valor del comodin * con el nombre

del usuario en el modelo, colocando el marcador <star/>.

Podemos escribir el mismo código abreviado sin los marcadores <think> y

<get>, al mismo tiempo se guarda el nombre y se lo escribe en la pantalla:

8.4.1.8.4.1.8.4.1.8.4.1. Comodines AIML.Comodines AIML.Comodines AIML.Comodines AIML.

Los patrones (patterns) están hechos de palabras naturales, que incluyen

letras, números y espacios. Pero también pueden contener palabras

“claves”. Estas palabras claves como ya habíamos dicho anteriormente

se identifican con un asterisco ( * ) o con un guión bajo ( _ ).

La utilidad de los asteriscos y guiones es poder simplificar los patrones

de entrada de tal manera que abarquen más frases.

La diferencia entre el uso del asterisco y el guion es la prioridad con la

cual las frases serán sustituidas.

Si tenemos los siguientes patrones de entrada:

_ es un amigo

<aiml version="1.0">

<category>

<pattern>me llamo *</pattern>

<template>

<think><set name="nombre"><star/></set>

</think>Buenas<get name="nombre"/>

</template>

</category>

<aiml version="1.0">

</category>

<pattern>me llamo *</pattern>

<template> Buenas <set

name="name">

<star/></set>

</template>

Page 126: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 100

¿Qué es un amigo?

Que es un *

Y la entrada que escribe el usuario es “¿Que es un amigo?”, el primer

patrón “_es un amigo” será el que desplegará la respuesta

correspondiente por que el guion tiene prioridad sobre cualquier otro

tipo de palabra.

Ahora si la entrada fuera “¿Qué es un niño?”, el patrón “Que es un *”

coincidirá (y desplegará la respuesta correspondiente) ya que ninguna

de las dos frases anteriores contiene las palabras correspondientes para

coincidir con la palabra "niño". La tercera frase contiene el asterisco (*)

que puede coincidir con una o más palabras.

Pero si tenemos los siguientes patrones de entrada:

_es*

¿Qué es un amigo?

Que es *

Y la entrada fuera “¿Qué es un amigo?”,

El primer patrón coincidirá ya que el primer guion tomará "Que" y el

asterisco coincidirá con la secuencia de palabras "un amigo". Observar

que los patrones también incluyen, en este caso la frase de coincidencia

exacta "¿Que es un amigo?" pero el patrón con el que se responderá será

el primero debido a la prioridad que tienen los guiones y asteriscos.

8.4.2.8.4.2.8.4.2.8.4.2. Declaraciones AIML.Declaraciones AIML.Declaraciones AIML.Declaraciones AIML.

Comodines AIML.

Page 127: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Anexos.

101

Esta sección describe las etiquetas de AIML más utilizadas en la

composición de un archivo .aiml que forma parte de la base de

conocimiento de un agente conversacional.

Ilustración 43 Esquema de etiquetas AIML.

Como vemos el lenguaje de programación AIML tiene una estructura y

jerarquía clara, manteniendo la estructura del código XML de apertura

y cierre de etiqueta.

8.4.3.8.4.3.8.4.3.8.4.3. Etiquetas <category></Etiquetas <category></Etiquetas <category></Etiquetas <category></catecatecatecategorygorygorygory>.>.>.>.

Dependiendo de la configuración de los <template> y <pattern>, se

pueden considerar que hay 3 tipos de categorías: Ideales, Generalizadas

y Enlazadas.

<a

iml>

</a

iml>

<category>

</category>

<pattern>

</pattern>

<template>

</template>

<srai>

</srai>

<random>

</random>

<that>

</that>

<topic>

</topic>

Categorías de un Tema

Page 128: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 102

• Una categoría Ideal sería la que tiene un único patrón de

entrada, lo cual por la riqueza del lenguaje español es casi

imposible, pero en todo caso se puede decir que es un patrón

que no contenga “*” o “_”, son las más fáciles y simples para

añadir en AIML.

• Una categoría Generalizada es cuando se engloba el patrón,

generalizando parte del mensaje, es lo que más se utiliza

dentro de AIML son aquellas que en su patrón tiene un

“*” o “_”. La última categoría generalizada es

<pattern>*<pattern>, la cual se relaciona con cualquier

entrada.

• Una categoría Enlazada son aquellas que se conectan con

otros patrones, para simplificar la sinonimia de patrones o

para simplificar el lenguaje. Dentro de la plantilla de

respuesta <template> se utiliza la etiqueta <srai> que

permite llamar al patrón que contiene la plantilla con la

respuesta.

Etiquetas <category></category>.

Page 129: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Anexos.

103

Ilustración Ilustración Ilustración Ilustración 44444444 Tipos de categorías AIML.Tipos de categorías AIML.Tipos de categorías AIML.Tipos de categorías AIML.

Además podemos ver la etiqueta <random> que nos permite desplegar

varias respuestas que signifiquen lo mismo pero que se expresan de

manera distinta, conocidas como respuestas aleatorias, cada respuesta

aleatoria debe estar con la etiqueta <li>.

La simplificación o reducción de patrones de entrada complejos es

otra aplicación común de categorías enlazadas, mediante la etiqueta

<star>, se puede recuperar la información del comodín utilizado en la

entrada, por ejemplo:

Ide

ale

s

Ge

ne

rali

zad

os

En

laza

da

s<aiml version="1.0">

<category>

<pattern>HOLA</pattern>

<template>

<random>

<li>Buenos días.</li>

<li>¡Hola!</li>

<li>¡Buenas!</li>

</random>

</template>

</category>

<category>

<pattern>HOLA *</pattern>

<template><srai>HOLA</srai>

</template>

</category>

<category>

<pattern>BUENAS</pattern>

<template><srai>HOLA</srai>

</template>

</category>

<category>

<pattern>BUENAS *</pattern>

<template><srai>HOLA</srai>

</template>

</category>

</aiml>

<aiml version="1.0">

<category>

<pattern>HOLA *</pattern>

<template>

<random>

<li>Buenos días.</li>

<li>¡Hola!</li>

<li>¡Buenas!</li>

</random>

</template>

</category>

</aiml>

<aiml version="1.0">

<category>

<pattern>HOLA</pattern>

<template>Buenos días</template>

</category>

</aiml>

Page 130: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 104

Ilustración Ilustración Ilustración Ilustración 45454545 Uso de etiquetas Pattern y Template.Uso de etiquetas Pattern y Template.Uso de etiquetas Pattern y Template.Uso de etiquetas Pattern y Template.

8.4.4.8.4.4.8.4.4.8.4.4. Etiquetas <topic></topic>.Etiquetas <topic></topic>.Etiquetas <topic></topic>.Etiquetas <topic></topic>.

Los tópicos permiten elegir las propias respuestas que tienen que ver

con el tema actualmente discutido. Es decir, cuando el programador

decidió que un tema sea un tópico, se pueden crear categorías las

cuales podrían contener ciertas respuestas específicas sobre el tópico.

Esto mantiene una conversación de actualidad y se tiene la habilidad

para moverse de un tema a otro. Pero hay que tener claro que tal vez

nunca se podrá prever todas las preguntas del usuario en todos los

contextos: el lenguaje natural ofrece simplemente demasiadas

posibilidades. Nos ayuda el marcador del tema de la conversación

<topic>, junto con una variable del sistema que le acompaña, que tiene

el mismo nombre. Si se indica la variable topic y el chatbot no es capaz

de contestar a la enunciación del usuario, busca un bloque adecuado

<topic> y carga la respuesta de este bloque. Veámoslo en el ejemplo del

saludo. A menudo el saludo entre la gente no termina sólo con un

intercambio de saludos, sino que le acompaña una corta conversación

de cortesía,

Por ejemplo sobre la salud o sobre el tiempo. Incluimos estas opciones,

indicando el tema del saludo como: SALUDO y agregando el bloque

<topic> responsable de este tema.

<aiml version="1.0">

<category>

<pattern>CONOCES A *</pattern>

<template> ¿Quién es <star index="1"/>?

</template>

</category>

<aiml version="1.0">

</category>

<pattern>_ CONOCES A *</pattern>

<template> ¿Quién es <star index="2"/>?

</template>

</category>

Etiquetas <topic></topic>.

Page 131: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Anexos.

105

Si el chatbot se despista después del saludo con una enunciación que

desconozca, podrá ayudarse con las respuestas del bloque <topic>. Al

principio, añadimos en el saludo HOLA un fragmento que indique el

valor de la variable topic adecuado:

Ilustración 46 Uso de etiqueta Topic.

Y en un espacio libre escribimos el bloque <topic> que

corresponda al tema del saludo (lo más fácil es colocarlo justo

detrás de los modelos del saludo).

Como podemos observar, es una categoría normal con la sintaxis

ya descrita, que escribe una respuesta al azar a todas las preguntas

del usuario. La diferencia consiste en que está cerrada en el bloque

<topic>, para entrar en este bloque hay que cumplir la condición

de que el chatbot no podrá responder a la pregunta con ayuda de

modelos disponibles, y el valor de la variable topic se encajará con

SALUDO.

Aim

l

<aiml version="1.0">

<category>

<pattern>HOLA</pattern>

<template>

<think><set

name="topic">SALUDO</set></think>

<random>

<li>¡Buenos días!</li>

<li>¡Buenas!</li>

<li>¡Hola!</li>

</random>

</template>

</category>

To

pic

<topic name="SALUDO">

<category>

<pattern>*</pattern>

<template>

<random>

<li>¿Qué tal?</li>

<li>¿Cómo vas de salud?</li>

<li>Pues, ¿en qué puedo

ayudarte?</li>

</random>

</template>

Page 132: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 106

8.4.5.8.4.5.8.4.5.8.4.5. Etiquetas <that></that>.Etiquetas <that></that>.Etiquetas <that></that>.Etiquetas <that></that>.

El marcador <that>, puesto dentro de la categoría, es un tipo de la

instrucción condicional que permite contestar según el modelo de

<template>, sólo en caso de que la respuesta anterior estuviera de

acuerdo con el modelo indicado en <that>, y la respuesta del

usuario estuviera con el modelo indicado en <pattern>. La

Ilustración 47 ilustra la norma del funcionamiento de este

mecanismo. Merece la pena observar que <that> verifica la última

respuesta del bot, o sea, palabras concretas, y no el modelo según

el cual se respondió.

Ilustración Ilustración Ilustración Ilustración 47474747 Diagrama de Flujo etiqueta That.Diagrama de Flujo etiqueta That.Diagrama de Flujo etiqueta That.Diagrama de Flujo etiqueta That.

Estrada de

usuario

Entrada =

<pattern>?

Buscar otra

respuesta

Salida segun

template

Respuesta bot

= <that>?

No

No

Etiquetas <that></that>.

Page 133: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Anexos.

107

Supongamos que el chatbot pregunte por la ciudad en la que vives en

reacción a la pregunta del usuario por su ubicacion. Vamos a utilizar

dos formas de esta pregunta: ¿De dónde eres? y ¿Dónde estás?. Al

principio, vamos a construir los modelos adecuados:

El chatbot responde a las dos preguntas del mismo modo, así que

podemos verificar la respuesta. Agregamos el marcador <that> que

comprueba si la última respuesta estuvo conforme con el modelo * LO

CONOCES o * MEJOR CIUDAD (o sea, si es cualquier enunciación que

termine con las palabras lo conoces o mejor ciudad).

Ilustración Ilustración Ilustración Ilustración 48484848 Uso de etiqueta That.Uso de etiqueta That.Uso de etiqueta That.Uso de etiqueta That.

Aim

l

<category>

<pattern>DE DONDE ERES</pattern>

<template>

<random>

<li>Vivo en <bot name="location"/>, y tu</li>

<li>De <bot name="location"/>. Y tu</li>

<li>Soy de <bot name="location"/>. Y tu</li>

<li><bot name="location"/>, de donde eres

tu</li>

</random>

</template>

</category>

<category>

<pattern>DONDE ESTAS</pattern>

<template>

<random>

<li>Estoy en <bot name="location"/>, y tu</li>

<li>Vivo en <bot name="location"/>. Y tu</li>

</random>

</template>

</category>

Th

at

<category>

<pattern>*</pattern>

<that>* lo conoces</that>

<template>

<random>

<li>Es un bonito lugar</li>

<li>Es un lugar muy tranquilo</li>

</random>

</template>

</category>

<category>

<pattern>*</pattern>

<that>* mejor ciudad </that>

<template>

<random>

<li>asi me han dicho, es un bonito

lugar.</li>

<li>claro, es un lugar muy

tranquilo.</li>

</random>

Page 134: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 108

Veamos los efectos que produce este fragmento. En cada

enunciación del usuario (en <pattern> indicamos sólo un comodín, se

puede escribir cualquier cosa); el bot verifica si su enunciación anterior

terminó con las palabras lo conoces o mejor ciudad: si es así, escribe el

comunicado del modo que ya hemos conocido.

Etiquetas <that></that>.

Page 135: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID. Anexos.

109

BibliografíaBibliografíaBibliografíaBibliografía

BotGenes. (15 de julio de 2013). BotGenes Restless evolution... Obtenido de http://www.botgenes.com/botgenes/pr/BG200KPressRelease.pdf

BotGenes. (15 de julio de 2013). Soydiego. Obtenido de http://www.soydiego.com/SoyDiego/

BotGenes. (15 de julio de 2013). soymaria.com. Obtenido de http://www.soymaria.com/SoyMaria/index.asp

Businesswire. (2006). Creative Virtual Announces Award Winning Lingubot(TM). Businesswire.

Cole, D. (19 de marzo de 2004). Stanford Encyclopedia of Philosophy (Summer 2013 Edition). (Copyright © 2009 by David Cole) Recuperado el 2013 de junio de 1, de The Chinese Room Argument: http://plato.stanford.edu/entries/chinese-room/#3

DRAE. (s.f.). Real Academia Española. Recuperado el 28 de mayo de 2013, de Diccionario de la lengua española: http://lema.rae.es/drae/

Elokence. (08 de 07 de 2013). Elokence conçoit et exploite des solutions intelligentes de dialogue homme-machine. Obtenido de http://elokence.com/fr/content/7/akinator

Icogno. (3 de julio de 2013). About the Jabberwacky AI. Obtenido de http://person.jabberwacky.com/j2about

Martínez Ron, A., & Fernández, M. (23 de octubre de 2012). El programador que desafía el test de Turing. Madrid, Madrid, España.

Mazza, N. (octubre de 2011). Sustentum. Obtenido de Gestión Estratégica en TIC: http://www.sustentum.com/sustentum/pubs/JAASI2011%20_%20Inteligencia%20Artificial%20-%20La%20prueba%20de%20Folstein.pdf

PECK, T. (8 de septiembre de 2011). Has inventor made a computer that's as clever as a human? London, Grand London, UK.

Ruiz Tadeo, A. C. (Julio de 2009). Sistema Inteligente de Conversacion para la Orientacion Vocacional. Colíma, Mexico, Mexico: Universidad de Colima.

Page 136: TESIS DE MASTER “INTEGRACIÓN DE UN CHATBOT COMO …repositorio.educacionsuperior.gob.ec/bitstream/28000/1201/1/T... · (Chalito, Betito, Camilita, Juanita, Xavi y Estebin), que

UNIVERSIDAD CARLOS III DE MADRID.

JUAN C. COBOS T. 110

Wilcox, B. (23 de octubre de 2013). El programador que desafía el test de Turing. (lainformacion.com, Entrevistador)

Wooldridge, M., & Jennings, N. (1995). Intelligent Agents --- Theories, . 890.

Bibliografía.