55
Escuela Politécnica Superior de Jaén UNIVERSIDAD DE JAÉN Escuela Politécnica Superior de Jaén Trabajo Fin de Grado BOT CONVERSACIONAL SOBRE WATSON PARA RECOMENDACIONES TURÍSTICAS EN JAÉN Alumno: Salvador Muñoz Manzaneda Tutor: Prof. D. Arturo Montejo Ráez Dpto: Informática Junio, 2018

BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Escu

ela

Po

lité

cn

ica S

up

erio

r de

Ja

én

UNIVERSIDAD DE JAÉN Escuela Politécnica Superior de Jaén

Trabajo Fin de Grado

BOT CONVERSACIONAL

SOBRE WATSON PARA

RECOMENDACIONES

TURÍSTICAS EN JAÉN

Alumno: Salvador Muñoz Manzaneda Tutor: Prof. D. Arturo Montejo Ráez Dpto: Informática

Junio, 2018

Page 2: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Universidad de Jaén

Escuela Politécnica Superior de Jaén

Departamento de informática

Dr. D. Arturo Montejo Ráez, tutor del Trabajo Fin de Grado titulado: Bot

conversacional sobre Watson para recomendaciones turísticas en Jaén, que

presenta Salvador Muñoz Manzaneda, autoriza su presentación para defensa y

evaluación en la Escuela Politécnica Superior de Jaén.

Jaén, Junio de 2018

El Alumno: Los Tutores:

Salvador Muñoz Manzaneda Arturo Montejo-Ráez

Page 3: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

1. Antecedentes 7

1.1. Objetivos 9

1.2. Motivación del proyecto 11

2. Análisis 12

2.1. Asistentes Virtuales 13

2.1.1. Asistentes Personales Inteligentes 15

2.1.2. Método de interacción 15

2.1.3. Procesamiento de Lenguaje Natural 16

2.2. Estudio de soluciones existentes 18

2.2.1. Elección de Inteligencia Artificial 19

2.3. Watson 21

2.3.1 ¿Qué es Watson? 22

2.3.2. Prerrequisitos 25

2.4 Wordpress 26

2.4.1 ¿Qué es Wordpress? 26

2.4.2 Características principales 27

Estructura 27

Multisitio 27

Plantillas 27

Widgets 27

Plugins 28

3. Diseño 28

Definir Intenciones: 30

Definir Entidades: 31

4. Implementación 33

4.1. Crear el servicio de Asistente 33

2

Page 4: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

4.2. Crear un espacio de trabajo 34

4.3. Creando “intents” 35

4.4. Prueba de intents 37

4.5. Añadir entities 38

4.6 Construyendo el diálogo 39

4.7 Inserción en Wordpress 44

4.7.1. Configuración del Plugin 45

5. Entrenamiento del Bot 47

5.1. Machine Learning 47

5.2. Empezando el entrenamiento 48

5.3. Aprendiendo 49

6. El futuro del turismo 51

7. Bibliografía 54

3

Page 5: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

Indice de Imagenes Ilustración 1.1: Datos básicos del turismo en Jaén

Ilustración 1.2: Diagrama de la arquitectura típica de Watson

Ilustración 2.1: Metodología ágil SCRUM Ilustración 2.1.1: Logos de Siri y Google Assistant

Ilustración 2.3: Logo Microsoft Cortana

Ilustración 2.2: Logo Amazon Alexa

Ilustración 2.1.2: Alexa y alguna de sus instrucciones

Ilustración 2.2.1: Ilustración de IA

Ilustración 2.3: Logo IBM Watson

Ilustración 2.3.1: El reto de IBM

Ilustración 2.3.2: Historia de IBM Watson

Ilustración 2.3.1: IBM Cloud

Ilustración 2.3.2: Logos NodeJS y Angular

Ilustración 2.4.1: Logo Wordpress

Ilustración 3.1: IBM Watson Assistant

Ilustración 3.2: Proceso de conversación de Watson

Ilustración 4.1: Panel de opciones de Watson

Ilustración 4.1.1: Herramienta de lanzamiento

Ilustración 4.2.1: Sección espacio de trabajo

Ilustración 4.3.1: Ilustración de nuestro espacio de trabajo.

Ilustración 4.3.2: Ejemplo de Intent

Ilustración 4.4.1: Botón para pruebas

Ilustración 4.1.2: Ejemplo de prueba

Ilustración 4.5.1: Panel de Entities

Ilustración 4.5.1: Ejemplo de Entity

Ilustración 4.6.1: Ejemplo de construcción de diálogo

Ilustración 4.6.2 Ejemplo de Diálogo

Ilustración 4.6.3: Añadiendo nuevos nodos

Ilustración 4.6.4: Prueba de los nodos

Ilustración 4.6.5: Añadiendo funcionalidad JSON

4

Page 6: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

Ilustración 4.7.1: Plugin IBM Watson Assistant

Ilustración 4.7.2: Configuración en Wordpress del plugin

Ilustración 4.7.3: Sección de credenciales de IBM Watson

Ilustración 4.7.4: Botón del plugin

Ilustración 5.2: Funcionalidad JSON contar usuarios

Ilustración 5.2.1: Espacio de trabajo de mejora (estadísticas)

Ilustración 5.3: Estadísticas de conversaciones reales

Ilustración 5.3.1: Conversaciones reales

Ilustración 6.1: Big Data

5

Page 7: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

Resumen

[ES] Este proyecto trata de realizar un chatbot conversacional a través de la

plataforma de IBM, Bluemix, que nos permitirá crear un asistente virtual para los

turistas de la ciudad de Jaén. El proyecto se ayudará del CMS Wordpress y un

plugin realizado por IBM para la interacción con nuestro bot.

[EN] This project tries to perform a chatbot through the IBM platform, Bluemix, which

will allow us to create a virtual assistant for tourists from the city of Jaén. The project

will be supported by Wordpress CMS and a plugin made by IBM for interaction with

our bot.

6

Page 8: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

1. Antecedentes

La necesidad que tiene cualquier ciudad de dar información sobre sus lugares de

interés además de su agenda cultural, bares, zonas de ocio etc, siempre es un

problema para ciudades masificadas por turistas.

Debido a que los punto de información, una de las ayudas que puedes encontrar

como turista, de las ciudades no pueden abarcar todo el trabajo y añadiendo el

problema que no pueden estar abiertos 24 horas al día, durante los 7 días de la

semana, añadiendo así un problema. Debido a que los turistas, suelen visitar

ciudades en mayor medida en época de vacaciones tales como puentes, fiestas y

fines de semana, lo cual hace menos probable que estén abiertos los puntos de

información, o al menos no todos ellos.

Ilustración 1.1: Datos básicos del turismo en Jaén

En esta gráfica podemos hacernos una idea de la cantidad de turismo que puede

tener una de nuestras provincias como es Jaén. Podemos apreciar que en el año

2017, solamente en Jaén tienen entre medio millón de personas y un millón

7

Page 9: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

(500.000 - 1.000.000) como turistas provenientes de cualquier parte de España y del

mundo.

Con ese volumen, es comprensible entender que los puntos de información, además

de no ser accesibles todo el tiempo, ni siempre tener uno cerca crea un problema

para los turistas que llegan a nuestras ciudades.[1]

8

Page 10: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

1.1. Objetivos

Pretendemos desarrollar un chatbot que nos ayude y permita aconsejar de una

manera facil, comoda e intuitiva a los turistas que vienen a la ciudad de Jaén, en

concreto.

Dicho chatbot deberá aconsejar según las interacciones con la persona que

pregunte en cada momento, dando así, recomendaciones de ocio, visitas culturales

o deportivas si en ese momento están disponibles para el usuario.

En nuestro caso desarrollaremos este chatbot con la inteligencia artificial de IBM,

llamada Watson.

IBM Watson™ Virtual Agent es un conjunto de componentes cognitivos

preconfigurados que se basan en el servicio IBM Watson Conversation. Cuando

configura el agente virtual con la información de su empresa, puede implementar

rápidamente un bot de conversación automatizado que conversa con los clientes

para ayudarles a conseguir sus objetivos.

Ilustración 1.2: Diagrama de la arquitectura típica de Watson

9

Page 11: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

● Servicio de Conversación:

Proporciona los artefactos necesarios para las prestaciones: las intenciones,

las entidades y el flujo de diálogo, junto con el proceso cognitivo subyacente que

capacita las prestaciones del bot de conversación.

● Bot:

El bot está entrenado para reconocer consultas de los usuarios relacionadas

con la interacción con los clientes, como por ejemplo, solicitud de información básica

sobre un monumento, sobre precios de museos, etc.

● Sitio Web:

Maneja la comunicación con el bot de Watson Virtual Agent y con los

sistemas de registros (por ejemplo, bases de datos de visitantes). En nuestro caso

usaremos un CMS, Wordpress, para la instalación de nuestro bot.

● Ventana de Conversación:

La interfaz de conversación del agente virtual, que utilizan los clientes para

conversar con el bot. Puede utilizar el widget de conversación proporcionado, con o

sin personalización, o bien puede utilizar el SDK de cliente para implementar su

propio widget de conversación. [2]

10

Page 12: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

1.2. Motivación del proyecto

Los numerosos avances en la tecnología están revolucionando casi todas las

industrias y fuentes de ingreso. El turismo, como no podía ser de otra manera,

puede tomar una ventaja muy importante de estos avances, de los cuales aún

carece, o no está todo lo evolucionada como otros sectores aprovechando todo el

potencial que nos ofrecen las tecnologías.

Informar de un destino, tener al instante las mejores ofertas de transporte, tener a

mano anécdotas o la historia del monumento que en ese momento estés mirando,

son de las muchas cosas que puedes beneficiarte con un chatbot gracias a los

avances de Inteligencia artificial y Machine Learning.

Nos da la posibilidad de tener sugerencias en base a nuestros deseos o

necesidades como usuarios. Búsquedas, mapas, traducción online, son algunas

funciones que podemos encontrar en un desarrollado asistente virtual.

La motivación principal, es tratar de ayudar en lo posible en que el turismo de Jaén

se pueda beneficiar de un bot con alguna de esas características para gestionar y

recomendar a los turistas de la provincia.

11

Page 13: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

2. Análisis

El Trabajo de Fin de Grado será desarrollado usando la metodología ágil SCRUM,

que nos permite llevar a cabo el análisis y diseño en cada ciclo.

Ilustración 2.1: Metodología ágil SCRUM

Podemos aprovecharnos de este método de trabajo ya que podemos ajustar el

proyecto en cualquier fase del proyecto, cuando el cliente decida realizar algún

cambio.

Al terminar cada ciclo (sprint) de trabajo, podremos dar a nuestro cliente una versión

funcional del software. Así, podemos ir ajustando la calidad y requisitos de nuestro

bot, por parte del cliente.

Si en algún momento del proyecto, el cliente prefiriera cambiar la funcionalidad de

alguna parte de nuestro bot, o añadir algún tipo de contenido o utilidad nueva, se

podría añadir, o estudiarla al final de cada ciclo, así nos aseguraremos que el

trabajo pueda estar planificado hasta la fecha última del sprint y que el proyecto

acaba cumpliendo con las fechas de finalización del proyecto se cumplen.[3]

12

Page 14: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

2.1. Asistentes Virtuales

Un Asistente virtual es un agente de software que les brinda una ayuda a los

usuarios de sistemas computacionales, automatizando y realizando tareas con la

mínima interacción por parte del usuario. Toda interacción realizada entre una

máquina y una persona debe estar dentro de una naturalidad, la persona puede

comunicarse con dicho asistente usando diferentes medios como la voz o escritura,

el asistente tiene que interpretarlo y responder de una manera fluida y lo más

“humanamente” posible.

El término Bot conversacional, o Chatbot, se usa para referirse a los asistentes

virtuales, normalmente a los que se obtiene acceso a ellos a través de internet.

En 2017, las capacidades y los usos de los asistentes virtuales están

expandiéndose de manera vertiginosa. Una encuesta realizada en 2017 dictaminó

que los asistentes más usados en USA fueron: Siri de la compañía Apple con un

34%, Google Assistant con un 19%, Amazon Alexa con un 6% y de manera más

residual Microsoft Cortana con un 4%.

Los primeros puestos de estos Asistentes viene dado por el hecho que la mayoria

que usa hoy en dia un asistente virtual la manera más accesible es usando el móvil,

y debido a que Apple con su iPhone y Google con el Sistema Operativo Android dan

un acceso a estos asistentes de una manera muy sencilla y están dotados de unas

funcionalidades muy atractivas para el usuario, ya que vienen preinstalados en sus

propios smartphones.

Ilustración 2.1.1: Logos de Siri y Google Assistant

13

Page 15: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

Alexa de la empresa Amazon, cada vez está tomando más cuota de mercado, ya

que no esta implementada en ningún smartphone, pero su estrategia es conquistar

el interior de los hogares de las personas automatizando ciertas funciones de los

hogares tales como encender o apagar luces y poco a poco y debido al

abaratamiento del hardware de estas herramientas cada vez hay más adopcion.

Ilustración 2.1.2: Logo Amazon Alexa

Y por último, en cuanto al asistente de Microsoft Cortana, y debido al fracaso de su

departamento móvil está siendo de los menos populares, a pesar de eso tiene unas

funciones igual de interesantes como los anteriores, pero al no ser un móvil muy

vendido por su sistema operativo, hay menos adopción de este último asistente

virtual.

Para darle un empujón al proyecto, el último sistema operativo de Microsoft,

Windows 10, ya la trae instalada para que los usuarios puedan disfrutar de sus

ayudas. [4]

Ilustración 2.1.3: Logo Microsoft Cortana

14

Page 16: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

2.1.1. Asistentes Personales Inteligentes

Este tipo de asistente es un agente de software que tiene el objetivo de realizar

tareas y ofrecer servicios individualizados. Estos servicios están basados en los

datos facilitados por el usuario, reconocimiento de ubicación y la posibilidad de

acceder a varios recursos en línea como pueden ser el tráfico, clima, noticias, precio

de acciones, horarios, calendarios etc. De las compañías mencionadas

anteriormente vuelven a estar disponibles en esta sección, tal como Siri de Apple,

Google Assistant, con Google Now, Amazon con Echo, Cortana de Microsoft, y

añadimos los propios asistentes de marcas de smartphones como S Voice o Bixby

de Samsung, Hidi de HTC etc.

El tema clave de un asistente personal inteligente es la capacidad para organizar y

mantener la información. Esto abarca tareas tales como el manejo de mails, eventos

que ocurran en nuestro calendario, archivos, listas y demás tareas.

2.1.2. Método de interacción

Los asistentes mencionados anteriormente hacen el trabajo a través de:

● Texto (chat online), sobretodo en aplicaciones de mensajes instantáneos.

● Voz, facilitando así la interacción con el asistente.

● Imágenes, para darnos datos o información de las imágenes solicitadas.

15

Page 17: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

Ilustración 2.1.2: Alexa y alguna de sus instrucciones

2.1.3. Procesamiento de Lenguaje Natural

Estos asistentes virtuales usan el llamado procesamiento de lenguajes naturales

para combinar el texto del usuario o entrada de voz con comandos ejecutables.

el PLN es un campo dentro de las ciencias de la computación, Inteligencia artificial y

además, lingüística que está centrado en estudiar las interacciones entre las

computadoras y el lenguaje humano. El PLN trata de diseñar unos mecanismos

para que la comunicación entre personas y máquinas sea eficaz

computacionalmente. Hasta 1980 los sistemas de PLN se basaban en unos

conjuntos de reglas diseñadas a mano, pero a finales de 1980 se revolucionó con la

introducción de algoritmos de machine learning para el procesamiento del lenguaje.

16

Page 18: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

Las dificultades que enfrenta el PLN son:

1. Ambigüedad

El lenguaje natural es ambiguo a diferentes niveles:

● Nivel Léxico, una misma palabra puede ser usada en diferentes contextos y

significar cosas distintas, así que, la selección apropiada del significado de

esa palabra se debe deducir del contexto.

● Nivel Referencial, resolver las anáforas y catáforas que trata de determinar la

entidad lingüística previa o posterior a lo que se hace referencia.

● Nivel Estructural, se usa la semántica para desambiguar la dependencia de

los sintagmas preposicionales que conducen a la fabricación de distintos

árboles sintácticos.

● Nivel Pragmático, una oración, muchas veces, no significa lo que se está

diciendo, elementos como la ironía, tienen un papel muy importante en la

interpretación del mensaje.

2. Detección de separación entre palabras

Hablando no se suele hacer ningún tipo de pausa entre palabras. El momento en el

que se deben separar cada palabra depende de cual es la posibilidad de que

mantenga un sentido lógico de gramática además de contexto.

3. Recepción imperfecta de datos

A menudo pueden existir acentos de un mismo idioma, de personas de otro país o

con dificultades en la producción del habla, además de errores de mecanografiado o

expresiones etc. [5]

17

Page 19: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

2.2. Estudio de soluciones existentes

Una vez sabemos los distintos tipos de Asistentes virtuales y como funcionan su

inteligencia artificial, debemos iniciar el proceso por el cual debemos quedarnos con

uno de ellos, ya que adaptar para todos no sería lo conveniente ni eficiente para

nuestro propósito.

Cada uno de los asistentes anteriormente vistos, tienen una aproximación muy

lejana a lo que buscamos con este proyecto por lo tanto debemos mejorar lo

existente.

Además en internet el usuario encontrará toda la información que nuestro Bot puede

dar, pero la idea es simplificar y hacer mucho más natural la interacción con el

usuario. El usuario en vez de ir a su buscador favorito y buscar lugares, y luego ir a

su GPS y busca dónde está cierto monumento o lugar, la idea es que de la

sensación de estar en medio de una conversación donde alguien te recomienda un

sitio, y te da la dirección del mismo, encontrándonos todo el proceso unificado en un

Bot fácil de usar y de interactuar.

18

Page 20: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

2.2.1. Elección de Inteligencia Artificial

Una vez vistos algunos de las inteligencias artificiales de las diferentes compañías,

debemos elegir el más apropiado para nuestro proyecto.

Ilustración 2.2.1: Ilustración de IA

DeepMind de Google, desarrolló la máquina de Alpha Go Zero, que tiene modelos

de Machine Learning, que ofrece funciones de reconocimiento de imágenes o

identifica sentimientos dentro de un video.

Por su parte, Oracle, anuncia que tendrá la primera base de datos autónoma, que

analiza y actualiza la información estructurada de manera automática.

Microsoft Project Oxford nos permite usar una plataforma de aprendizaje profundo

que nos facilita qué apps y webs incluyen funciones como detección facial,

reconocimiento de voz en múltiples idiomas.

Y Facebook más enfocada en mejorar la experiencia de sus clientes en sus

servicios (WhatsApp, Facebook, Instagram). Últimamente añadió un algoritmo que

identifica posibles suicidios.

Como hemos comprobado, cada marca crea su propio asistente haciéndolo, la

mayoría de las veces, solo usable desde su propia plataforma de manera exclusiva,

19

Page 21: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

como ocurre con Siri, de Apple, o Bixby de Samsung. Debemos buscar uno que nos

facilite tanto la creación como el posterior desarrollo de nuestro bot, ya que uno de

los propósitos es que pueda ser escalable por si otros ayuntamientos puedan estar

interesados en adaptar el bot a su ciudad.

Para nuestro caso elegiremos la Inteligencia Artificial de IBM Watson. Es un sistema

distinto a los anteriormente comentados, por su poder técnico, ya que cuenta con

más de 90 servidores y 2880 procesadores, y además tiene el potencial de

evolucionar o ser adaptado en cualquier función que se le dé de una manera

sencilla. Una de las cosas que más podemos destacar a la hora de elegir esta IA, es

la capacidad para procesar el lenguaje natural y aplicarlo a la localización de

información en datos estructurados. Los responsables del proyecto de Watson

explican que el objetivo no es emular la capacidad humana, sino, superarla.

Watson, es muy adecuado para resolver procesos complejos que deben basarse en

decisiones con información relevante. En nuestro caso podemos usar la información

de miles de usuarios realizan turismo en la ciudad de Jaén, y Watson con eso será

capaz de ir aprendiendo además con la nueva información de los nuevos usuarios

que usen nuestra plataforma.

Debido a todo esto, será la inteligencia artificial elegida para nuestro proyecto.

20

Page 22: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

2.3. Watson

Ilustración 2.3: Logo IBM Watson

IBM Watson es una tecnología de computación cognitiva. La computación cognitiva

acorde con Wikipedia, es una rama específica surgida de la inteligencia Artificial

(IA), capaz de entender y emular el funcionamiento de la mente humana.

Normalmente cuando interactuamos con una máquina, lo usual es que sea la

persona la que debe adaptarse al funcionamiento de la máquina. Al trabajar con

máquinas como ordenadores lo hacemos de manera impersonal, usando periféricos,

moviendo los y pulsando los como un ratón o un teclado. Al hablar de sistemas

cognitivos es justo lo contrario. IBM con Watson, ha logrado interaccionar de una

manera muy parecida a como solemos hacerlo con otras personas:

● Puede leer y entender nuestro lenguaje natural, con sus diferencias de

matices y “giros lingüísticos”.

● Capaz de responder a nuestras preguntas en segundos debido a su

capacidad de analizar gran cantidad de datos. Ante cualquier pregunta

escoge la respuesta con el mayor nivel de confianza.

● Y es capaz de aprender de la experiencia como lo haría un humano real,

siendo así, cada vez más inteligente.

21

Page 23: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

2.3.1 ¿Qué es Watson?

IBM Watson empezó de una forma muy inesperada. Fue uno de los trabajos de

Inteligencia Artificial más importantes de todo el planeta, su desarrollo y crecimiento

marca un antes y un después en proyectos de deep learning e informática

predictiva.

El superordenador, está ahora alojado en la nube, aunque en los comienzos se

alojaba en la sede de IBM en Manhattan. Watson fue una creación del programador

de software Charles Lickel.

Charles Lickel fan de el programa de “Jeopardy!” (Programa de preguntas y

respuestas de cultura), y pensó en que podría hacer una réplica en el mundo

informático. No tuvo demasiado éxito entre sus compañeros debido a que eran

escépticos en cuanto a que una máquina nunca ganaría a un humano.

Ilustración 2.3.1: El reto de IBM

IBM desarrollo DeepQA, que era basicamente el inicio, una arquitectura de software

paralelo que controlaba el lenguaje natural. Partiendo de ahí, se creó una base de

datos usando las pistas, resultados de otros concursantes además de los datos

insertados por los investigadores que desarrollaban Watson.

A los tres años y con un equipo de 20 investigadores, se lanzó la primera versión de

Watson. DeepQA podía plantear respuestas, siguiendo las reglas de Jeopardy!,

usando algoritmos y analizando información relevante. Una vez obtenido esto, otros

algoritmos se hacían cargo de crear una lista clasificada de respuestas con

probabilidad de acertar, con puntuaciones de mejor a peor.

22

Page 24: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

Con el tiempo, su fiabilidad fue en aumento, en parte gracias a antiguos

concursantes de Jeopardy!. Watson fue almacenando de manera local información

de 200 millones de webs, para así poder funcionar de una manera offline. Entre sus

webs tenía Wikipedia en inglés completa, una enciclopedia mundial y libros del

proyecto Gutemberg.

Aun así, el resultado no podía vencer a un niño de cinco años en las primeras

pruebas realizadas, John Kelly dio un nuevo rumbo al proyecto. A finales de 2010,

pasó de ganar el 51% de las partidas contra ex campeones de Jeopardy al 71%.

Para entonces empezó a levantar mucho revuelo.

En Febrero de 2011, se propuso jugar contra un veterano campeón de Jeopardy!,

Ken Jennings, y le ganó, no fue nada espectacular pero Watson se convertía en

algo mediático, algo que no se había hecho antes.

Ilustración 2.3.2: Historia de IBM Watson

23

Page 25: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

Su inmensa capacidad de respuesta se estaba desaprovechando en programas de

televisión. Watson podia resolver problemas rápidamente, donde una respuesta

rapida y correcta podría marcar la diferencia.

En Agosto de 2011, IBM adquirió Webify y se quedó con su plantilla para usarla

para mejorar a Watson en campos como banca, telecomunicación, aseguradoras

etc…

Al finalizar 2011, IBM había diseñado un programa que ayudaba en asistencia

sanitaria, junto a universidades científicas y farmacéuticas. Para 2013, Memorial

Sloan-Kettering Cancer Center recibió en su plantilla a Watson para su

departamento de oncología. Ayudaría a tomar decisiones en diagnósticos.

Watson aumentaba su radio de acción, en la venta de ropa, analizaba informacion

meteorologica, en el análisis musical, en departamentos legales, incluso llegó a

convertirse en cocinero. [6] [7]

24

Page 26: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

2.3.2. Prerrequisitos

Los requisitos que vamos a necesitar para el desarrollo de nuestro chatbot son los

siguientes:

● Debes tener una cuenta en IBM Cloud. La cuenta puedes adquirirla gratis y te

da acceso a todo lo que vamos a necesitar para el desarrollo de nuestro bot.

Ilustración 2.3.1: IBM Cloud

● La cuenta de IBM Cloud requiere de un IMBid, que se puede crear en el

momento del registro.

● Necesitaremos 8Gb, como mínimo, en nuestra cuenta de IBM Cloud de

tiempo de ejecución y memoria contenedora, además de un acceso para la

provisión de unos 10 servicios.

● Necesitaremos clonar un repositorio de GitHub, que usaremos los archivos

para proceder al trabajo.

● Si queremos desarrollar el código para ejecutarlo localmente o en IBM Cloud,

debemos usar los lenguajes Node.js, Express.js y Angular 2. [8]

25

Page 27: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

Ilustración 2.3.2: Logos NodeJS y Angular

2.4 Wordpress

2.4.1 ¿Qué es Wordpress?

Ilustración 2.4.1: Logo Wordpress

En un sistema que nos facilita la gestión de contenido, ayudando así enormemente

a la creación de páginas web. Está desarrollado en PHP y se usan en entornos de

MySQL y Apache, aunque puede también puede ser instalado en Postgresql,

MariaDB y Nginx.

26

Page 28: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

2.4.2 Características principales

Está construido en mayor medida para realizar blogs, aunque al tener mucho éxito

empezaron a usarse para diversos propósitos.

Estructura

● Está configurado para ser un sistema donde las entradas están ordenadas

por fecha de entrada. Cada entrada puede tener una o más categorías.

● El diseño de la web es determinado por la plantilla que el usuario elija, y es

independiente del contenido.

● Existen bloques de código con funciones específicas que se usan mediante

complementos, llamados widgets.

● El sistema de administración son los que tienen el cargo de la gestión y

ejecución.

Multisitio

Desde una instalación es relativamente sencillo de administrar y configurar varios

sitios. Puedes entrar a los diferentes sitios dirigiéndose a los diferentes

subdirectorios o subdominios del principal.

Plantillas

Son los diferentes diseños con los que dar apariencia y estructura a nuestra página

web.

La filosofía de Wordpress trata de seguir las directrices del W3C, en nivel de diseño,

gestión o estructura. Las opciones son muchísimas, desde un blog hasta una web

profesional.

Widgets Ofrece numerosas alternativas a los usuarios dandole una flexibilidad para el diseño

y estructura. Pueden existir plantillas que no lo soporten .

27

Page 29: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

Plugins Potencian nuestra web, dan una funcionalidad concreta, dependiendo del plugin, a

nuestra página. Existen plugins de pago o gratuitos. [9]

3. Diseño

Este Trabajo de Fin de Grado consistira en el desarrollo de un Bot conversacional

sobre Watson para recomendaciones turísticas en Jaén.

IBM Watson Assistant, es un sistema de preguntas y respuestas (Q&A) que nos da

la posibilidad de un diálogo interactuado entre el sistema de conversación y el

usuario. A este tipo de interacciones se les llama normalmente “Chatbot”.

Ilustración 3.1: IBM Watson Assistant

El desarrollo que usa el asistente Watson de IBM normalmente tiene tres fases:

Ámbito, Diseño, e Integración.

En la primera fase, Ámbito, lo principal es obtener los requisitos para entablar una

conversación y cómo los clientes usaban el bot actualmente.

28

Page 30: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

Definiremos personas, crearemos un mapa de empatía y un diagrama de contexto

del sistema. Después, extraemos los “intents ” más potenciales de nuestro bot. Los

“intents” son, principalmente, los objetivos o intenciones que queremos alcanzar,

que se expresan en la entrada de un usuario, como podría ser responder una

pregunta o procesar algún tipo de acción, como realizar un pago. Al terminar de

definir “intents”, debemos evaluar las frases que nos llevan a esos “intents”.

En el Diseño, crearemos una instancia (“instance”) de nuestro bot, y usaremos su

propia herramienta habilitada para definir los intents y las entities . La entidad, nos

muestra una clase de objeto o un tipo de dato que nos es relevante para el objetivo

del usuario que pregunta. Al final de esta fase, se iniciará el flujo de diálogo.

Ilustración 3.2: Proceso de conversación de Watson

En la última fase, la fase de Integración, desarrollamos la aplicación web o

microservicio que será el encargado de interactuar con nuestro asistente Watson.

[10]

29

Page 31: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

Ámbito Diseño Integración

● Obtener los

requisitos para

entablar la

conversación

además del uso que

hará el usuario.

● Crear un mapa de

empatía.

● Crear un diagrama

de contexto.

● definir los canales de

conversación.

● Definir intenciones

principales del

usuario.

● Crear un servicio de

conversación de

Watson en Bluemix.

● Definir intenciones.

● Definir entidades.

● Iniciar el flujo de

diálogo.

● Reproducir la

conversación al

usuario final.

● Añade más

intenciones y flujo de

diálogo.

● Desarrolla una

aplicación web o

micro servicio

responsable de la

interacción con

Watson.

● Añade cualquier otro

componente que

complementa el

requerimiento del

asistente.

Para definir un poco más nuestro diseño a continuación vamos a explicar las

diferentes intenciones que vamos a soportar con nuestro sistema. Siendo esto solo

la base antes del aprendizaje automático que sufrirá una vez empiece la fase de

entrenamiento.

Definir Intenciones:

Vendrán definidas con una almohadilla al inicio.

1. Capacidades: En está situación tratamos de dar ayuda al usuario cuando se

encuentre un poco perdido con nuestro bot. Ejemplos con los que se iniciara

esta intención: Ayuda, ¿Qué puedes hacer?, ¿Cómo funciona?, ¿Cómo me

puedes ayudar?

2. Contar_Historias: Con esta intención manejaremos las situaciones donde el

usuario muestre deseo de saber alguna historia de Jaén. Ejemplos con los

que se iniciara: Hay alguna anécdota, cuentame algo, me puedes decir algo

interesante.

30

Page 32: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

3. Despedida: Con este Intent nos ayudará a entender cuando un usuario

decida despedirse y le podremos despedir haciendo nuestro bot un poco más

humano. Ejemplos para este intent: Adios, good bye, nos vemos, chao.

4. Diversión: Dedicado cuando el usuario introduce algún tipo de frase que

exprese intención de salir de fiesta, a bailar etc. Ejemplos: Donde se sale por

aquí, sitios para bailar, quiero ir de fiesta, quiero salir de marcha.

5. Greetings: Manejo de los saludos al usuario, a pesar de que nuestro bot,

iniciara conversación, si el usuario decide escribir un saludo le devolvemos

una respuesta. Ejemplos: Hola, buenas, buenos días, buenas tardes.

6. Recomendación: Para manejar cuando el usuario no quiere nada específico y

recae de nuestro lado recomendar sitios. Ejemplos: dar un paseo, dime

locales de moda, algún parque bonito, donde puedo ir.

7. Reservar: Intención realizada para un futuro poder interactuar con los locales,

bares, hoteles etc que facilitará al usuario la reserva de mesas habitaciones

etc. Ejemplos: quiero reservar, realizar una reserva, pedir una mesa.

8. saber_ruta: Con esto controlamos cuando el usuario quiere ir a algun sitio

más o menos especifico. Ejemplos: quiero ir a, llevame a un sitio, donde está

el sitio.

9. thanks: Con este intent entenderemos los agradecimientos del usuario y

podemos devolver una respuesta para hacerlo más “humano”. Ejemplos:

Gracias, te lo agradezco, gracie.

Definir Entidades:

Vendran definidas con un arroba al inicio.

1. aceites: Aquí guardaremos los diferentes aceites que existen o queramos dar

a ver en nuestro bot. Ejemplos: Prólogo, Oro de Bailén, Castillo de Canena.

2. bar: Los diferentes bares por los que el usuario puede ser recomendado e

indicado algunas direcciones. El abuelo, el parador, El tito nono II, la

manchega, Alcocer.

3. hotel: Los distintos hoteles que le recomendamos al usuario para cuando

desea pasar la noche. Ejemplos: Europa Jaén, Parador, Condestable, Infanta

Cristina.

31

Page 33: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

4. monumentos: Lugares de interés que tiene la ciudad de Jaén por la que

puede preguntar nuestro usuario. Arco de San Lorenzo, refugio antiaéreo,

San ildefonso, Castillo de Santa Catalina, Catedral de Jaén, Monumento

leyenda del lagarto.

5. ocio_gastronomico: Se usa para ayudar al bot a entender que es lo que el

usuario pretende. Ejemplos: paseo, comer, dormir, visitar, tapeo.

6. paseos: Sitios de paseo de la ciudad de Jaén que el usuario podra preguntar

o ser recomendado por nuestro sistema. Ejemplos: Plaza de la constitución,

casco antiguo, via verde, cementerio de San Eufrasio.

7. pubs: Lugares de fiesta que el usuario puede preguntar o ser recomendado.

Ejemplos: Karma, Mambo, Dean, Almiral, Mercado, la santa.

Además de los anteriores el sistema nos da unos por defecto que podemos habilitar y en

nuestro caso hacemos uso de @Sys-date para manejar fechas, y @sys-time para poder

manejar horas.

32

Page 34: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

4. Implementación

Una vez cumplidos los pre-requisitos, ya podemos empezar el desarrollo de nuestro

chatbot. Para ellos seguiremos como modelo base los siguientes pasos.

4.1. Crear el servicio de Asistente

La primera tarea que debemos realizar es crear una instancia de “Watson Assistant ”

en IBM Cloud.

Para ello, entraremos en nuestra cuenta de IBM Cloud, a continuación nos dirigimos

a la parte de Catálogo y buscamos la sección servicios. Una vez en servicios

deberemos buscar a Watson, y entraremos en la opción de asistente.

Ilustración 4.1: Panel de opciones de Watson

33

Page 35: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

Una vez dentro del servicio, debemos añadirle un nombre, por ejemplo “guIA

turistico”, y le damos a crear.

Para abrir el espacio de trabajo del asistente Watson, iremos a Herramienta de

Lanzamiento.

Ilustración 4.1.1: Herramienta de lanzamiento

Ya tendríamos el servicio de nuestro asistente creado.

4.2. Crear un espacio de trabajo

El espacio de trabajo está creado para mantener separado los “intents”, ejemplos de

uso, “entities”, y flujos de diálogo para cada aplicación. El asistente Watson, usa una

aproximación paso a paso para guiarnos a crear un espacio de trabajo, intents y

demás.

34

Page 36: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

En la sección de espacios de trabajo, le damos a crear.

Ilustración 4.2.1: Sección espacio de trabajo

Escribimos un nombre para el espacio de trabajo, y le damos a crear.

4.3. Creando “intents”

Para añadir “intents” primero hay que saber que es, es un grupo de ejemplos de

temas de conversación o intenciones que son realizadas por parte del usuario, a las

que Watson debe responder. Para identificar intents, empezaremos con algo que un

usuario puede querer y pensar en qué manera el usuario puede pedirla. Para cada

intent, debemos expresar varias maneras de pedirlo, o desearlo.

Para añadir un intent a nuestro espacio de trabajo, desde nuestra página de

creación del bot, vamos a la pestaña intents y pulsamos en add intent.

35

Page 37: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

Ilustración 4.3.1: Ilustración de nuestro espacio de trabajo.

Por ejemplo la manera de saludar, (greetings) para definir un intent debemos usar la

almohadilla al principio del intent.

Ilustración 4.3.2: Ejemplo de Intent

Aquí podemos ver una lista de saludos que el usuario podría usar con nuestro

asistente, una vez identificados unos cuantos intents, deberíamos entrenarlos con

más posibilidades que Watson debe asociar a ese intent, así haciendo a nuestro

chatbot cada vez más inteligente y humano de cara al usuario.

Como muchos intents pueden ser reusados de otros bots puedes añadir un archivo

.csv e importarlo a la conversación.

36

Page 38: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

4.4. Prueba de intents

Lo siguiente es probar nuestras conversaciones para ver si todo funciona

correctamente.

Tan pronto como creamos un intent, podemos probarlo en el icono de “Try it” que

está arriba en la parte derecha.

Ilustración 4.4.1: Botón para pruebas

Introduce uno de los ejemplos. Si introducimos hello, que está dentro de nuestro

intent #Greetings ya definido. deberá salir un cuadro como que lo ha diferenciado y

sabe que es un saludo.

Ilustración 4.1.2: Ejemplo de prueba

37

Page 39: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

4.5. Añadir entities

Antes de explicar como añadir entities, vamos a explicar que es un “entity”. Es una

porción de la entrada que hace el usuario que nos da una respuesta diferente a un

intent particular. Dicho de otra manera, es ir afinando en lo que el usuario quiere

pedir y entender lo que quiere que le respondamos tras su diálogo.

Primeramente debemos ir a la pestaña de “Entities” y pulsar sobre “Add entity”.

Ilustración 4.5.1: Panel de Entities

Añadiremos valores y posibles sinonimos de esos valores al entity para ayudar a

nuestro chatbot a aprender los detalles más importantes que un usuario podría

mencionar.

Cada entity debe incluir un grupo de valores específicos que accionaran diferentes

respuestas por parte de nuestro chatbot. Cada valor, puede tener o no, múltiples

sinónimos que definirán las diferentes vías para llegar al mismo valor dado que un

usuario podría dar.

38

Page 40: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

Para añadir un nuevo entity va precedido de un “@”, nos ayudará a diferenciar el

Intents del Entity.

Ilustración 4.5.1: Ejemplo de Entity

Watson nos facilita el trabajo incluyendo unas Entities del sistema ya predefinidas

de fechas, números etc, que pueden ser usadas en cualquier flujo de conversación.

Al igual que para las Intents, puedes importar un archivo .csv.

Ahora, podríamos probar nuevamente los Entities y los Intents con el botón “try it”.

4.6 Construyendo el diálogo

Ahora que sabemos seleccionar las intenciones de los usuarios y algunas de las

palabras clave de sus frases que son necesarias, es el momento de dar respuesta a

lo que pide o pregunta el usuario.

Ya estamos listos para construir el diálogo de nuestro chatbot. Después de

especificar los intents y los entities, vamos a iniciar el diálogo.

39

Page 41: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

En la pestaña de Diálogo, crearemos un nodo donde siempre debe reconocer un

“intent”

Ilustración 4.6.1: Ejemplo de construcción de diálogo

Aquí podemos ver cómo podemos dar la bienvenida al usuario, una vez que inicie el

proceso o reconozca nuestro “intent” #greetings daremos una respuestas como las

que salen en la imagen, trataremos que no sean muy robóticas y lo más humanas

posibles.

Ahora procederemos a añadir un nodo de nuestra conversación. Aquí es donde

nuestro bot reconocerá otro tipo de intención por parte del usuario y trataremos de

darle una solución.

40

Page 42: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

Ilustración 4.6.2 Ejemplo de Diálogo

Una vez añadido el nodo, le insertamos como reconocer ese nodo, para ir a sus

respuestas. Cada nodo tendrá una “temática” y unas respuestas que deben

complacer las necesidades de nuestro usuario.

En nuestro nodo actual, llamado fiesta, queremos dar respuesta cuando el usuario

quiera salir a dar una vuelta, tomar tapas o visitar algún pub o discoteca. Para ellos

preparamos el intent de diversión donde añadimos una serie de frases que un

usuario podría decir cuando tiene ganas de salir o divertirse y cuando lo

reconozcamos le devolveremos una frase o pregunta.

41

Page 43: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

Ilustración 4.6.3: Añadiendo nuevos nodos

Vamos a hacer una pequeña prueba para comprobar que todo funciona

correctamente, una vez terminada está parte ya tendríamos un ciclo funcional de

nuestro proyecto.

Ilustración 4.6.4: Prueba de los nodos

Una vez tenemos funcionando las funciones básicas, vamos a tratar de realizar el

diálogo lo más completo posible, aunque el propio bot irá aprendiendo con el propio

42

Page 44: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

uso del usuario, cuanto más “inteligente” sea desde el inicio, menos difícil será de

usar por parte de los usuarios y más útil para ellos.

Primeramente para hacer un poco más personal nuestro chatbot, vamos a pedirle al

usuario que nos facilite su nombre para poder dirigirnos a él con su propio nombre y

hacer más cercana la conversación en las próximas interacciones.

Para ello guardaremos en una variable de contexto, llamada nombre, para realizar

esto creamos un nuevo nodo hijo y lo configuramos.

Ilustración 4.6.5: Añadiendo funcionalidad JSON

Para poder coger esta entrada del usuario abriremos el editor de JSON y añadimos

el código con la variable de contexto nombre que será la encargada de guardar el

nombre en adelante de esa conversación.

Añadimos los siguientes nodos para seguir realizando nuestro proyecto, más

adelante usaremos la ayuda de personas que entre en una web para ir

desarrollando y entrenando nuestro bot para ir cada vez afinando un poco más.

43

Page 45: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

Añadiremos un nodo, Saludo, para manejar cuando el usuario quiera decir hola o

alguna variante. Otro nodo será el de visitas que nos ayudará a manejar los eventos

cuando un usuario pretenda visitar algún monumento ya establecido en nuestra

base. El siguiente nodo será el que nos facilita el proceso de aconsejar al usuario

donde salir de fiesta, discotecas, pubs, etc... este nodo lo llamaremos Fiesta. El

nodo comida será el que aconsejara al usuario sitios donde comer, tales como

bares, restaurantes, hoteles, etc. El nodo Agradecimientos nos ayudará a humanizar

un poco a nuestro bot, cuando el usuario nos agradezca algún consejo, el bot será

capaz de recibir y contestar a los buenos modales. Es muy normal decir adiós en el

final de las conversaciones, para manejar este hecho, creamos un nodo despedida

donde añadiremos unas simpáticas despedidas. En caso de que el usuario se

encuentre un poco perdido dentro de nuestro bot, añadimos un nodo de

capacidades donde el bot explicara un poco el funcionamiento de nuestro bot, para

el caso de que el usuario escriba algo que no puede soportar nuestro bot, o no lo

entiende, ya sea por la manera el idioma o algún otro problema, añadimos un nodo

que es, todo lo demás, que le pedirá al usuario que repita de otra forma lo que

desea hacer, para así tratar de entenderlo, además de que este nodo, nos redirigirá

al nodo de capacidades donde le volverán a explicar lo que el bot puede hacer.

Una vez terminado la primera aproximación la probaremos para ver que todo

funciona correctamente.

4.7 Inserción en Wordpress

Primeramente, y una vez comprobado que tenemos una primera aproximación a

nuestra idea del chatbot, debemos crear un sitio web donde poder ofrecer nuestro

producto. Para ello, vamos a contratar un servidor donde alojar el CMS, el elegido

será Hostinger por los precios y calidad en el servicio. Seguidamente iremos a

descargar nuestro CMS a la página web oficial wordpress.org. Una vez descargado

mediante el programa Filezilla, pasaremos a través de FTP (protocolo de traspaso

de archivos) subiremos nuestro CMS a nuestro servidor, ya solo nos queda ajustar

el idioma y un par de ajustes más de nuestro CMS para el siguientes paso.

44

Page 46: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

Una vez esté todo instalado, y nuestra web funcionando, entraremos al CMS en

modo administrador con la intención de instalar un Plugin creado por IBM llamado

IBM Watson Assistant que nos permite añadir nuestro chatbot a cualquier web.

4.7.1. Configuración del Plugin

Ilustración 4.7.1: Plugin IBM Watson Assistant

Una vez instalado y activo el plugin de IBM, tenemos que configurarlo, para ello

debemos ir a la parte de credenciales de nuestro bot y rellenar los siguientes

campos con los siguientes datos.

Ilustración 4.7.2: Configuración en Wordpress del plugin

45

Page 47: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

Para encontrar esos datos debemos acceder a la sección “deploy” de nuestro bot, y

ahí encontraremos la sección de credenciales con los cuales rellenar la

configuración de wordpress del plugin.

Ilustración 4.7.3: Sección de credenciales de IBM Watson

Una vez configurado el plugin, solo nos queda habilitarlo y comprobar que todo

funciona bien, una vez comprobado eso, pasaremos a la parte del entrenamiento de

nuestro bot. Pediremos a varios usuarios que prueben nuestro bot para ir

descubriendo como otros usuarios pueden interactuar con el.

Ilustración 4.7.4: Botón del plugin

46

Page 48: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

5. Entrenamiento del Bot

Para empezar el entrenamiento del bot, hemos habilitado una web para que haya un

acceso fácil a los distintos usuarios, y vayan usando distintas maneras de preguntar

sobre turismo en Jaén y así poder hacer nuestro bot cada vez más preciso.

5.1. Machine Learning Cuando hablamos de entrenamiento del bot, hablamos de machine learning, o de

aprendizaje automático, que es una sección de la inteligencia artificial que tiene

como objetivo hacer que las máquinas aprendan. Más específicamente, trata de

hacer programas con la capacidad de distinguir comportamientos dada una

información en forma de ejemplos, creando así un proceso de inducción del

conocimiento.

Dentro del aprendizaje automático, tenemos que distinguir entre dos, el aprendizaje

automático supervisado y el no supervisado. El supervisado tiene como

característica que cuenta con unos datos que son buenos y correctos para el

objetivo del aprendizaje. El no supervisado no tenemos esos datos con los que

definan el comportamiento sino que tratan de buscar un comportamiento en la

información dada que nos ayuden a separar o clasificar los datos en distintos

grupos.

En nuestro caso, será un aprendizaje automático supervisado, ya que sabemos lo

que queremos encontrar dentro de las frases que un usuario puede usar en nuestro

chatbot, el objetivo que buscamos con el aprendizaje es cubrir las diferentes

maneras de expresarse que pueden tener los distintos usuarios. [11]

47

Page 49: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

5.2. Empezando el entrenamiento

Para iniciar el entrenamiento a nuestro chatbot, y para tener una base más cierta, añadiremos unas lineas donde nos ayudará a ver cuantos usuarios le están dando uso a nuestro bot, y así poder ir aproximándonos cada vez más a nuestro objetivo.

Ilustración 5.2: Funcionalidad JSON contar usuarios

Con este trozo de código, logramos dar un ID a cada usuario que trate de hablar con nuestro bot y así tener unos datos más precisos.

Una vez insertadas las primeras pruebas por parte de nuestros usuarios en nuestro

servicio podemos ver la actividad que están realizando y cómo de preciso está

resultando ser nuestro bot.

Ilustración 5.2.1: Espacio de trabajo de mejora (estadísticas)

48

Page 50: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

Aquí tenemos una serie de estadísticas, como número de usuarios mensajes

totales, medias etc.

5.3. Aprendiendo

Una vez añadido lo necesario para distinguir entre los distintos usuarios y tener más

claro cómo actuar, empieza la fase de “aprender” con nuestro bot.

Para que nuestro bot parezca más humano, y más importante, más preciso,

necesitamos que varios usuarios (cuantas más pruebas mejor y más preciso se

hará) hagan test de nuestro bot, de momento tendrá limitaciones que estos usuarios

los irán puliendo poco a poco. A la hora de usar nuestro bot, el bot va a ir

aprendiendo de los errores provocados por la diferente léxica y sentencias que

pueden usar los usuarios, y que no hayamos predecido aún ese tipo de sentencias o

maneras de preguntar.

Tenemos acceso a las diferentes conversaciones y respuestas que han ido pasando

entre los distintos usuarios y nuestro bot. Hay podemos corregir el comportamiento

de nuestro bot cuando veamos un comportamiento anómalo dependiendo de

nuestro criterio.

Por ejemplo, a la hora de buscar un bar, hay diferentes formas de pedir esa acción,

y posiblemente no hayamos pensado en todas, debido a que pueden pedirte muy

claramente ir a un bar, o pueden decir, tomar unas cervezas, siendo el mismo

resultado con distintas maneras de acceder a él. Además a eso, hay que añadirle

los diferentes sinónimos que tenga tanto la palabra bar, como la palabra cerveza por

sofisticados o de una más coloquial.

49

Page 51: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

Ilustración 5.3: Estadísticas de conversaciones reales

Aquí tenemos estadísticas de uso de nuestro bot, en la parte derecha, tenemos la

parte más importante de esta fase, los mensajes que nuestro bot a tenido más

dificultades a la hora de valorar de que se trataba el objetivo del usuario.

Ilustración 5.3.1: Conversaciones reales

Esto es lo que vemos, podemos cambiar el Intent y los entities que el bot no ha

entendido o si lo ha entendido, por error, de una manera distinta. Este proceso es el

de aprendizaje, aunque también debemos mirar las conversaciones enteras, debido

a que el entendimiento natural de un humano puede ser muy complejo, y aunque

nuestro bot no nos notifique como que está indeciso, quizás está cometiendo

errores y debemos supervisar, y mucho más en está fase de creación, conforme

vaya madurando el proyecto, cometerá menos y menos errores.

A mayor supervisión y corrección menos errores cometerá nuestro bot en un futuro,

llegando a entender el lenguaje natural humano de una manera muy precisa, cada

corrección que le hacemos, estamos un poco más cerca de que entienda lo que

queramos por contexto o por la misma sentencia.

50

Page 52: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

6. El futuro del turismo

La inteligencia artificial está ahora mismo marcando ya diferencias en muchos

aspectos como la medicina, la industria textil y muchas más, el turismo, por su parte

no se va a librar tampoco de esta revolución que está siendo la inteligencia artificial.

En el último congreso de innovación turística que se celebró en Madrid a principios

de año se empezaba a comentar que los viajeros preferirían tener tablets en las

habitaciones para realizar pedidos de comida, pedir a recepción.

La clave en todo esto es la personalización, la posibilidad de realizar un checking

automático, incluso que donde nos vayamos a alojar sepan que hemos aterrizado o

llegado a la ciudad para empezar a preparar la pre-reserva incluso ofrecerte

transporte hasta el sitio. Los propios hoteles podrán llegar a tener checking por

reconocimiento facial, colchones inteligentes que miden el sueño, y en base a todo

esto poder recomendar distintos tipos de actividades según las predicciones y el

perfil del usuario creado con varios viajes.

IBM por su parte está desarrollando competencias turísticas a través de Watson,

donde anuncian aplicaciones para descubrir nuevos sitios o que hacer en destinos,

donde también ofrecen la descarga de audio guías sobre monumentos para que

estemos informados de lo que estamos viendo. IBM incluso valora la idea de crear

un agente para cuando un grupo de amigos familia haga un grupo de Whatsapp

para organizar el viaje, puedas añadir al agente de IBM y puedas preguntar y te

asesores sobre el viaje y llegar incluso a cerrar reservas con hoteles, restaurantes o

actividades.

Este movimiento de la industria va a tener múltiples y diversas consecuencias, una

de ellas, será la personalización, será todo adaptable al propio usuario, quien tendrá

que decidir sólo entre unas recomendaciones previamente seleccionadas por

inteligencia artificial basadas en sus propios gustos.

51

Page 53: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

Incluso podrían ir midiendo el grado de satisfacción del usuario según sus

interacciones con el sistema. Se valora en que los usuarios que no tienen un buen

grado de satisfacción no suelen decirlo en un 94% y no suelen repetir la experiencia

en un 91%, aquí la inteligencia artificial podría ayudar enormemente a la industria

turística. La ingeniería de datos se hará más asequible y fácil de entender para

corporaciones más pequeñas y podrán beneficiarse de conocer lo que pasa a

nuestro alrededor y desarrollar sistemas basados en machine learning.

En estos momentos, sistemas como Siri, Google now, o Cortana están abriendo el

camino a una dinámica de consumo de estos servicios.

La inteligencia cognifica usada para percibir y anticipar necesidades de los clientes

será una clave a tener muy encuenta. La inteligencia artificial nos ofrece

muchísimas posibilidades a la hora de utilidad y mejora de experiencia del cliente.

Ahora mismo la cantidad de datos que tienen las empresas sobre nosotros para

realizar sugerencias es impensable, con técnicas de Big Data y Machine Learning

podrian dar sugerencias muy acertadas a cada usuario según sus propios intereses

y muy ajustadas a la realidad.

Ilustración 6.1: Big Data

52

Page 54: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

Por otra parte, la introducción y adaptación de este tipo de tecnologías podría ser

muy impersonal para algún tipo de turista o difícil de usar para el llamado salto

tecnológico. Otros de los que sufrirán las consecuencias serán los guías turísticos

agentes de viajes, organizadores de viajes etc... donde todos ellos serán sustituidos

por robots, al menos en gran porcentaje, cambiando así el tejido productivo de

sectores y optimización de los mismos.

Desde el mismo inicio del viaje el usuario utiliza asistentes virtuales que le ayudan a

reservas antes y durante el viaje. La aerolínea KLM lanzó un asistente que aconseja

al usuario que meter en su maleta dependiendo del viaje que tiene reservado. Ya

hoy en día, la gran mayoría de aerolíneas usan chatbot para automatizar el proceso

de reserva sin usar un humano para esta finalidad. Estas aplicaciones son capaces

de según el contexto de ayudar y hacer sugerencias a los usuario y hacer así un

proceso de reserva más rápido y personalizado.

53

Page 55: BOT CONVERSACIONAL SOBRE WATSON PARA …tauja.ujaen.es/bitstream/10953.1/8444/1/memoria.pdf · Servicio de Conversación: Proporciona los artefactos necesarios para las prestaciones:

Salvador Muñoz Manzaneda

7. Bibliografía

[1] Junta de Andalucía, “Datos provinciales”, [En línea]. Disponible en la web:

http://www.andalucia.org/es/profesional/datos-provinciales/

[2] IBM, “Descripción General de Watson Virtual Agent”, [En línea]. Disponible en la

Web: https://www.ibm.com/watson/developercloud/doc/virtual-agent/es/index.html

[3] Sutherland, J. (2015), Scrum: El nuevo y revolucionario modelo organizativo que

cambiará tu vida . España. Planeta

[4] Asistentes virtuales. En Wikipedia. Recuperado el 16 de Abril de 2018 de

https://es.wikipedia.org/wiki/Asistente_virtual

[5] Procesamiento de lenguajes naturales. En Wikipedia. Recuperado el 16 de Abril

de 2018 de https://es.wikipedia.org/wiki/Procesamiento_de_lenguajes_naturales

[6] Núñez Canal, P. (2016). Kit de prensa. IBM noticias Recuperado de

https://www-03.ibm.com/press/es/es/presskit/45119.wss

[7] Watson (inteligencia artificial). En Wikipedia. Recuperado el 17 de Abril de 2018

de https://es.wikipedia.org/wiki/Watson_(inteligencia_artificial)

[8] IBM, Cómo empezar Recuperado de

https://www.ibm.com/watson/developercloud/doc/virtual-agent/es/getting-started.html

[9] wordpress.org español, wordPress recuperado de https://es.wordpress.org

[10] Build an IT support chatbot by using IBM Watson Assistant, En linea,

Recuperado el 20 de Abril de

https://www.ibm.com/cloud/garage/tutorials/watson_conversation_support?task=3

[11] Flach, P. (2012) Machine Learning, Inglaterra, Cambridge University Press.

 

54