UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto,...

91
UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE INGENIERÍA, CIENCIAS FÍSICAS Y MATEMÁTICA CARRERA DE INGENIERÍA INFORMÁTICA Chatbot para el aprendizaje del idioma Kichwa basado en Random Forest Trabajo de Titulación modalidad Proyecto de Investigación, previo a la obtención del título de Ingeniero Informático AUTORES: Anrango Perugachi José Luis Berrezueta Carmona Hanmilton Jhoel TUTOR: Dr. Santiago Leonardo Morales Cardoso Quito, 2019

Transcript of UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto,...

Page 1: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE INGENIERÍA, CIENCIAS FÍSICAS Y

MATEMÁTICA

CARRERA DE INGENIERÍA INFORMÁTICA

Chatbot para el aprendizaje del idioma Kichwa basado en

Random Forest

Trabajo de Titulación modalidad Proyecto de Investigación, previo a la obtención del

título de Ingeniero Informático

AUTORES: Anrango Perugachi José Luis

Berrezueta Carmona Hanmilton Jhoel

TUTOR: Dr. Santiago Leonardo Morales Cardoso

Quito, 2019

Page 2: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

ii

DERECHOS DE AUTOR

Nosotros, ANRANGO PERUGACHI JOSÉ LUIS y BERREZUETA CARMONA

HANMILTON JHOEL en calidad de autores y titulares de los derechos morales y

patrimoniales del trabajo de titulación CHATBOT PARA EL APRENDIZAJE DEL

IDIOMA KICHWA BASADO EN RANDOM FOREST, modalidad Proyecto de

Investigación, de conformidad con el Art.144 del CÓDIGO ORGÁNICO DE LA

ECONOMÍA SOCIAL DE LOS CONOCIMIENTOS, CREATIVIDAD E

INNOVACIÓN, concedemos a favor de la Universidad Central del Ecuador una licencia

gratuita, intransferible y no exclusiva para el uso no comercial de la obra, con fines

estrictamente académicos. Conservamos a nuestro favor todos los derechos de autor sobre

la obra establecidos en la normativa citada.

Así mismo, autorizamos a la Universidad Central del Ecuador para que realice la

digitalización y publicación de este trabajo de titulación en el repositorio virtual, de

conformidad a lo dispuesto en el Art.144 de la Ley Orgánica de Educación Superior.

Los autores declaran que la obra objeto de la presente autorización es original en su forma

de expresión y no infringe el derecho de autor de terceros, asumiendo la responsabilidad

por cualquier reclamación que pudiera presentarse por esta causa y liberando a la

Universidad de toda responsabilidad.

________________________ ______________________________

Anrango Perugachi José Luis Berrezueta Carmona Hanmilton Jhoel

C.C. 1004003271 C.C. 171804823-2

[email protected] [email protected]

Page 3: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

iii

APROBACIÓN DEL TUTOR

En calidad de Tutor del proyecto de titulación, presentado por ANRANGO PERUGACHI

JOSÉ LUIS y BERREZUETA CARMONA HANMILTON JHOEL, para optar por el

título de Ingeniero Informático; cuyo título es: CHATBOT PARA EL APRENDIZAJE

DEL IDIOMA KICHWA BASADO EN RANDOM FOREST, considero que el proyecto

cumple con los requisitos y méritos suficientes para ser sometido a la presentación pública

y evaluación por parte del tribunal examinador que se designe.

En la ciudad de Quito, a los 27 días del mes de junio del 2019.

__________________________________

Dr. Santiago Leonardo Morales Cardoso

DOCENTE-TUTOR

C.C. 1707979934

Page 4: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

iv

DEDICATORIA

Al Señor Jesús por la vida, y la oportunidad de luchar para hacer posible mis sueños y

anhelos.

A mi esposa, por su apoyo

A mi madre, por haber encaminado mis pasos por el sendero correcto

A mi hija Génesis, la luz de mis ojos, mi inspiración, mi dulce y tierno amor

Con Cariño

Luis

Page 5: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

v

DEDICATORIA

A Dios, por darme la oportunidad de vivir cada día con alegría junto a mis seres queridos

padres y ayudarme a enfrentar los retos venideros en cada paso que doy, por la fuerza e

iluminación que él me brinda; y sobre todo por haber puesto en mi camino gratas personas

que han sido mi soporte y compañía durante este período universitario.

A mi madre Marcia Carmona, por el sacrificio y dedicación que realizó a lo largo de mi

carrera, por toda su comprensión, paciencia y confianza. Sobre todo, por nunca permitir

que me rinda.

A mi hermano Brandon Berrezueta, por ser mi compañero, amigo y confidente.

A todas las personas, que estuvieron ahí conmigo y me apoyaran para lograr cumplir una

meta tan importante en mi vida

Con Cariño

Hanmilton

Page 6: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

vi

AGRADECIMIENTOS

Los autores expresan sus agradecimientos a:

A Dios, por darnos el don de la perseverancia para alcanzar nuestra meta.

A nuestros padres, por ser nuestro pilar fundamental en nuestras vidas, por brindarnos

su apoyo, sus consejos para hacer de nosotros mejores personas.

A nuestros hermanos, por sus palabras de aliento y brindarnos su apoyo siempre. Somos

hermanos y estaremos siempre juntos.

A nuestros amigos, quienes sin esperar nada a cambio siempre estuvieron juntos a

nosotros, compartieron sus conocimientos, alegrías, tristezas. Gracias por formar parte

de este sueño.

A la UNIVERSIDAD CENTRAL DEL ECUADOR por permitimos realizar nuestro

proyecto de titulación.

¡Gracias a Ustedes!

Luis y Hanmilton

Page 7: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

vii

CONTENIDO

página

DERECHOS DE AUTOR ................................................................................................ ii

APROBACIÓN DEL TUTOR ........................................................................................ iii

DEDICATORIA .............................................................................................................. iv

AGRADECIMIENTOS ................................................................................................... vi

CONTENIDO ................................................................................................................. vii

LISTA DE FIGURAS ..................................................................................................... xi

LISTA DE TABLAS ..................................................................................................... xiii

RESUMEN .................................................................................................................... xiv

ABSTRACT ................................................................................................................... xv

INTRODUCCIÓN ............................................................................................................ 1

CAPÍTULO 1 PRESENTACIÓN DEL PROBLEMA ..................................................... 3

1.1 Antecedentes....................................................................................................... 3

1.2 Planteamiento del problema ............................................................................... 3

1.3 Justificación ........................................................................................................ 4

1.4 Objetivos............................................................................................................. 4

1.4.1 Objetivo General ......................................................................................... 4

1.4.2 Objetivos Específicos ................................................................................. 4

1.5 Alcance ............................................................................................................... 5

1.6 Limitaciones ....................................................................................................... 5

CAPÍTULO 2 MARCO TEÓRICO ................................................................................. 7

2.1 Arquitectura ........................................................................................................ 7

2.1.1 Modelo 3 Capas .......................................................................................... 7

Page 8: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

viii

2.2 Inteligencia Artificial (IA) .................................................................................. 8

2.3 Procesamiento del lenguaje natural (PLN) ....................................................... 10

2.2.1 Componentes del PLN .............................................................................. 11

2.2.3 Aplicaciones del PLN ............................................................................... 11

2.2.4 Ventajas del PLN ...................................................................................... 13

2.4 Machine Learning ............................................................................................. 13

2.4.1 Tipos de algoritmos de Machine Learning ............................................... 13

2.4.2 Aprendizaje supervisado ........................................................................... 13

2.4.2 Aprendizaje no supervisado ...................................................................... 14

2.5 Random Forest................................................................................................. 14

2.6 Chatbot ............................................................................................................. 15

2.6.1 Funcionamiento ........................................................................................ 16

2.6.2 Importancia ............................................................................................... 16

2.6.3 Modelado del conocimiento ...................................................................... 17

2.7 Base de datos .................................................................................................... 18

2.7.1 Gestor de Bases de Datos .......................................................................... 18

2.7.2 MySQL ..................................................................................................... 18

2.8 DigitalOcean ..................................................................................................... 19

2.8.1 Droplet ...................................................................................................... 20

2.9 Docker .............................................................................................................. 20

CAPÍTULO 3 METODOLOGÍA ................................................................................... 23

3.1 Desarrollo Ágil de Software ............................................................................. 23

3.1.1 El Manifiesto Ágil .................................................................................... 23

3.2 Metodología a utilizar ....................................................................................... 24

3.3 Scrum ................................................................................................................ 24

3.3.1 Roles ......................................................................................................... 25

3.3.2 Artefactos .................................................................................................. 26

Page 9: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

ix

3.3.3 Eventos ...................................................................................................... 26

CAPÍTULO 4 DESARROLLO ...................................................................................... 29

4.1 Análisis de Requerimientos del Sistema .......................................................... 29

4.1.1 Funcionales ............................................................................................... 29

4.1.2 No funcionales .......................................................................................... 29

4.2 Identificación de actores en el sistema ............................................................. 29

4.3 Arquitectura del Proyecto ................................................................................. 30

4.4 Proceso del Sistema .......................................................................................... 30

4.5 Diseño de la base de datos ................................................................................ 31

4.5.1 Esquema modelo relacional Mashi Chat .................................................. 31

4.5.2 Descripción a detalle de tablas del modelo relacional Mashi Chat .......... 32

4.6 Definición de Software utilizado para desarrollar el sistema ........................... 34

4.6.1 Requerimientos de Hardware para un desempeño promedio ................... 34

4.6.2 Versión de Software a utilizar .................................................................. 34

4.7 Clasificación de oraciones mediante el aprendizaje automático ...................... 35

Proceso del ejercicio a abordar: ......................................................................... 35

Dependencias ..................................................................................................... 35

1. Carga de datos ................................................................................................ 36

2. Ingeniería de características: un enfoque a medida no estándar .................... 37

3. Construcción del modelo de Machine Learning ............................................ 38

4. Modelo de prueba con preguntas frecuentes .................................................. 41

5. Pruebas y experimentos ................................................................................. 43

CAPÍTULO 5 PRUEBAS Y RESULTADOS ............................................................... 45

5.1 Pruebas de navegadores web ............................................................................ 45

Prueba de Clicks ..................................................................................................... 46

Prueba de Rampa .................................................................................................... 47

CONCLUSIONES .......................................................................................................... 49

Page 10: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

x

RECOMENDACIONES ................................................................................................ 51

GLOSARIO DE TÉRMINOS ........................................................................................ 53

BIBLIOGRAFÍA ............................................................................................................ 54

ANEXOS ........................................................................................................................ 60

ANEXO 1: MANUAL DE USUARIO .................................................................. 61

ANEXO 2: ACTA DE ENTREGA ........................................................................ 73

ANEXO 3: CERTIFICACIÓN DEL RESUMEN EN INGLÉS ............................ 74

ANEXO 4: VISTAS DEL CHATBOT EN LOS NAVEGADORES. ................... 74

Navegador Google Chrome ............................................................................... 74

Navegador Firefox ............................................................................................. 75

Navegador Internet Explorer ............................................................................. 76

Dispositivos Móviles ......................................................................................... 77

Page 11: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

xi

LISTA DE FIGURAS

página.

Figura 1. Arquitectura Modelo 3 Capas (FERNÁNDEZ,2003) ............................ 7

Figura 2. Comunicación humano-máquina (CAMPOS,2018) ............................. 10

Figura 3. Random Forest (TOWARDSDATASCIENCE,2018) .......................... 14

Figura 4. Chatbot (KANLLI,2017) ........................................................................ 15

Figura 5. Proceso para un texto basado en chatbot (SANCHÉZ-AYALA, 2018)

........................................................................................................................................ 17

Figura 6. Plataforma de Dockers (TIMES,2018) .................................................. 21

Figura 7. Scrum Framework (SCRUM.ORG, 2017) ............................................ 25

Figura 8. Arquitectura ........................................................................................... 30

Figura 9. Flujo del chatbot ...................................................................................... 30

Figura 10. Modelo entidad-relación ....................................................................... 31

Figura 11. Carga de datos ....................................................................................... 36

Figura 12. Salida de datos ....................................................................................... 36

Figura 13. Extracción de patrones ........................................................................ 37

Figura 14. Extracción de características ................................................................ 38

Figura 15. Extracción de características ................................................................ 38

Figura 16. Cargar datos .......................................................................................... 39

Figura 17. Dividir para el entrenamiento .............................................................. 39

Figura 18. Ajustar el modelo .................................................................................. 40

Figura 19. Generar predicciones ............................................................................ 40

Figura 20. Validación básica ................................................................................... 41

Figura 21. Carga de preguntas ............................................................................... 42

Figura 22. Clase de oración ..................................................................................... 42

Figura 23. Matriz de confusión ............................................................................... 42

Figura 24. Predicción ............................................................................................... 43

Figura 25. Prueba Clicks ......................................................................................... 46

Figura 26. Gráfica de Clicks. .................................................................................. 47

Figura 27. Prueba de rampa ................................................................................... 47

Figura 28. Gráfica de rampa .................................................................................. 48

Figura 29. Navegadores compatibles ..................................................................... 62

Page 12: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

xii

Figura 30. Vista de login para acceder a la configuración de KEYCLOAK. .... 63

Figura 31. Vista de configuración del REALM (reino) Mashi Chat. .................. 64

Figura 32. Vista de configuración de clientes del reino Mashi Chat. .................. 64

Figura 33. Vista de configuración de roles del reino Mashi Chat. ...................... 65

Figura 34. Vista de configuración para registrarse con Twitter. ........................ 65

Figura 35. Vista de configuración de usuarios del reino Mashi Chat ................ 66

Figura 36. Vista de login para acceder a la aplicación Mashi Chat. ................... 67

Figura 37. Vista de rol profesor. ............................................................................. 68

Figura 38. Vista de rol estudiante. .......................................................................... 68

Figura 39. Vista del chatbot con los temas rol profesor ....................................... 69

Figura 40. Vista del chatbot. ................................................................................... 69

Figura 41. Vista de autorización de Twitter para registrarse en Mashi Chat. .. 70

Figura 42. Vista de verificación de la información de registro en Mashi Chat.. 70

Figura 43. Vista de Chatbot y temas. ..................................................................... 71

Figura 44. Vista de perfil de rol estudiante. .......................................................... 71

Figura 45. Vista de rol administrador. .................................................................. 72

Figura 46. Vista de perfil del administrador. ........................................................ 72

Figura 47. Vista administración del reino Mashi Chat en Google Chrome. ...... 74

Figura 48. Vista de login a Mashi Chat en Google Chrome. ............................... 74

Figura 49. Vista administración del reino Mashi Chat en Firefox. ..................... 75

Figura 50. Vista de login a Mashi Chat en Firefox. .............................................. 75

Figura 51. Vista administración del reino Mashi Chat en Interner Explorer. .. 76

Figura 52. Vista de login a Mashi Chat en Internet Explorer. ............................ 76

Figura 53. Vista administración del reino Mashi Chat en dispositivo móvil. .... 77

Figura 54. Vista de login a Mashi Chat en dispositivo móvil. .............................. 77

Page 13: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

xiii

LISTA DE TABLAS

página

Tabla 1. Tipos de chatbots (ROUSE,2018) ............................................................ 16

Tabla 2. Hosting vs Droplet .................................................................................... 20

Tabla 3. Comparación Metodologías ..................................................................... 24

Tabla 4. Comparación SCRUM vs XP .................................................................. 24

Tabla 5. Roles del proyecto ..................................................................................... 26

Tabla 6. Artefactos del proyecto ............................................................................. 26

Tabla 7. Eventos adaptados al proyecto ................................................................ 27

Tabla 8. Identificación de actores ........................................................................... 29

Tabla 9. Herramientas utilizadas ........................................................................... 34

Tabla 10. Navegadores ............................................................................................ 45

Tabla 11. Escenarios de pruebas ............................................................................ 46

Page 14: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

xiv

TÍTULO: Chatbot para el aprendizaje del idioma Kichwa basado en Random Forest

Autores: Anrango Perugachi José Luis

Berrezueta Carmona Hanmilton Jhoel

Tutor: Dr. Santiago Leonardo Morales Cardoso.

RESUMEN

El presente proyecto de titulación se realiza con el objetivo de impulsar el aprendizaje del

Kichwa. Para lo cual se desarrolla un bot que permite aprender este idioma mediante la

interacción entre la persona y el bot. Se aplica el algoritmo Random Forest, con el cual

se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario

básico.Para lograr lo anteriormente descrito y después de evaluar diferentes metodologías

se utiliza el método SCRUM con el fin de obtener mejores resultados. Se trabaja de

manera colaborativa con el lenguaje de programación Python y como motor de base de

datos MySQL, DigitalOcean (Droplets), Ubuntu 16.04, Git, Keycloak.

PALABRAS CLAVE: KICHWA / RANDOM FOREST / BOT/ DROPLETS

/METODOLOGÍA SCRUM/MYSQL

Page 15: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

xv

TITLE: Chatbot for learning the Kichwa language based on Random Forest

Authors: Anrango Perugachi José Luis

Berrezueta Carmona Hanmilton Jhoel

Tutor: Dr. Santiago Leonardo Morales Cardoso.

ABSTRACT

The present project was carried out with the objective and the need to develop a bot;

Which will help to learn the Kichwa language that is being lost due to technological

development.Field research has been conducted to come up with a solution to the

problem. The development of a bot that allows automatic learning of the Kichwa language

through the Random Forest algorithm is shown; thus, you can learn numbers, colors,

alphabet, greetings, fruits and animals.To achieve the aforementioned and after

evaluating different methodologies, the SCRUM methodology was used in order to obtain

a better result; collaborative work was carried out, and development tools such as Python

programming language, MySQL database engine, DigitalOcean, Droplets )4, Git,

Keycloak.

KEYWORDS: KICHWA / GIT / DROPLETS / SCRUM METHODOLOGY /

MYSQL

Page 16: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

1

INTRODUCCIÓN

El avance de la tecnología, las innovaciones y el acceso a internet; da un impulso a la

implementación de soluciones automatizadas como ayuda en el campo social y cotidiano.

En la Universidad Central del Ecuador al momento, no se cuenta con un programa

informático (Chatbot) para el aprendizaje del idioma kichwa, el cual sería una herramienta

muy necesaria para compartir información y resolver dudas de acuerdo con este ámbito.

Es así como el chatbot se convierte en una herramienta útil y necesaria dentro de la

comunidad centralina, para la interacción de cada usuario.

Este proyecto desarrollado tiene la iniciativa de facilitar un chatbot que es capaz de

mantener una conversación sin necesidad de la intervención humana. Es decir, si el

usuario responde, automáticamente se inicia una conversación; el uso del lenguaje y la

capacidad de dar respuestas acertadas.

Además, la metodología SCRUM, establece una adaptación óptima entre los involucrados

para una mejora eficiente; de modo que se pueda definir de manera conjunta los roles a

desempeñar, los eventos a involucrarse y los artefactos a emplear. El “sprint” (iteración)

constituye la característica sobresaliente para el desarrollo del presente trabajo; donde el

producto se desarrolla en partes que posteriormente se irá añadiendo, garantizando la

ejecución de todos los requisitos.

Page 17: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

3

CAPÍTULO 1 PRESENTACIÓN DEL PROBLEMA

1.1 Antecedentes

La Universidad Central del Ecuador es una Institución Pública de Educación Superior,

se encuentra ubicada en la Av. América S/N y Av. Universitaria, conformada por 18

facultades, con una cantidad cambiante de por lo menos 59 carreras. La universidad

cuenta con instalaciones en muy buen estado y docentes fuertemente preparados. La

necesidad de tener un chatbot en una institución de educación, para que facilite la práctica

y el aprendizaje del idioma kichwa sin intervención humana es importante para fomentar

la interacción-comunicación con los pueblos ancestrales y público en general, tomando

en cuenta la gran importancia de este idioma en nuestro país.

Con la aparición de Machine Learning, que crea sistemas que aprenden automáticamente,

se han desarrollado distintos algoritmos de aprendizaje automático tales como: arboles de

decisión, Random Forest, redes neuronales. Las aplicaciones de este tipo se han realizado

para los distintos idiomas, cada uno con su complejidad, pero aún no se adapta este nuevo

modelo para el aprendizaje automático del idioma Kichwa.

1.2 Planteamiento del problema

El principal problema es el déficit en la generación de conocimientos del idioma Kichwa.

Según avanza la tecnología el mundo accede a internet, por lo cual surge la necesidad de

desarrollar un chatbot para la Universidad Central del Ecuador, que pueda dar respuestas

ante determinadas situaciones, teniendo en cuenta dos características principales que le

convierten en una herramienta útil que son: la agilidad y la capacidad de aprender.

De esta forma se pretende optimizar recursos con el fin de ofrecer un mejor servicio a

los estudiantes de la comunidad interesada.

Page 18: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

4

1.3 Justificación

En la actualidad, el teléfono inteligente es tendencia, su uso se encuentra centrado en

aplicaciones de mensajería, los chatboots son las aplicaciones más usadas en el acto de

comunicar y en la interacción diaria.

Debido a varios factores, entre ellos el avance tecnológico, el idioma de la comunidad

kichwa está desapareciendo, por tal motivo se plantea realizar esta investigación y

desarrollar un bot de aprendizaje automático para instruir en el conocimiento de este

idioma y evitar su desvalorización y perdida.

Al momento algunas aplicaciones populares usan Machine Learning, y son: Netflix, Uber

Eats, Facebook, Instagram, Amazon, etc., los cuales han demostrado un eficiente

funcionamiento en la interacción diaria. Es por esto que el proyecto busca utilizar

herramientas tecnológicas como el chatbot para el aprendizaje del idioma kichwa, para

que sea útil en la institución, así como en otras instituciones de la misma índole.

1.4 Objetivos

1.4.1 Objetivo General

Desarrollar un chatbot para la Universidad Central del Ecuador que permita el

aprendizaje automático del idioma Kichwa mediante la implementación del

algoritmo Random Forest.

1.4.2 Objetivos Específicos

Desarrollar un BOT que aprenda números, colores, alfabeto, saludos, frutas y

animales en kichwa con el uso del algoritmo Random Forest.

Entrenar el BOT con el uso de lenguaje natural español a kichwa a través de un

chatweb.

Crear una aplicación web para el entrenamiento por parte de usuarios con

conocimientos del idioma kichwa.

Analizar las herramientas que estén más acorde para el desarrollo del sistema.

Page 19: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

5

1.5 Alcance

El proyecto de investigación chatbot, mediante machine learning y la implementación del

algoritmo de aprendizaje automático Random Forest para la Universidad Central del

Ecuador conlleva lo siguiente:

Desarrollo de un BOT con el algoritmo Random Forest para el aprendizaje automático

del idioma kichwa. El cual resolverá la necesidad de practicar y aprender el idioma

kichwa por parte de los estudiantes que siguen los cursos gratuitos de dicho idioma en la

Escuela de Idiomas de la Universidad Central del Ecuador.

El BOT, tendrá la capacidad de ser entrenado por los estudiantes a través de un chatweb,

al registrarles con una cuenta de Twitter o email personal. También podrá ser usado por

personas externas que tengan la necesidad de practicar el idioma en temas básicos como:

números, colores, alfabeto, saludos, frutas y animales.

1.6 Limitaciones

El BOT a nivel léxico no puede distinguir que una palabra tenga distintos significados a

partir del contexto, solo aprende del idioma kichwa – español.

El BOT a nivel pragmático no puede reconocer frases como la ironía, felicidad, tristeza y

ningún otro sentimiento.

El BOT no podrá distinguir el regionalismo entre distintos acentos del idioma kichwa del

Ecuador.

Page 20: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

6

Page 21: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

7

CAPÍTULO 2 MARCO TEÓRICO

2.1 Arquitectura

2.1.1 Modelo 3 Capas

La arquitectura de tres capas es una técnica para el desarrollo de aplicaciones de software

donde la principal concepción es la separación de la lógica del negocio de la presentación

y de la persistencia. La división en varios componentes ayuda a reducir

considerablemente la complejidad; además que permite la reutilización de código,

agilizando notablemente el proceso de desarrollo del producto de software (FLORES &

HECTOR, 2012, pág. 169).

La arquitectura de tres capas se basa en el siguiente modelo:

Figura 1. Arquitectura Modelo 3 Capas (FERNÁNDEZ,2003)

La capa de presentación: Exhibe la aplicación al usuario, le muestra la

información y captura la información del usuario. Esta capa se comunica con la

capa de lógica de negocio por medio de objetos que se denominan “Object value”.

La capa de lógica de negocio: Es donde se desarrollan los algoritmos propios de

la aplicación. En esta capa se implementa la lógica obtenida por el análisis de

requerimientos del proyecto. Esta capa provee servicios a la capa de presentación,

Page 22: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

8

recibiendo como parámetros la información que el usuario entrega a la aplicación.

Esta capa se comunica con la capa de persistencia por medio de objetos que se

denominan “Object value”.

La capa de persistencia: Es donde se almacenan los datos y se realiza las

operaciones para manipular dichos datos. Estos datos pueden encontrarse en

cualquier tipo de sistema que almacene información en disco duro como archivos

y bases de datos. Esta capa recibe solicitudes de almacenamiento o recuperación

de información desde la capa de la lógica del negocio. Entonces esta capa es la

encargada de abrir archivos o crear conexiones a bases de datos (FLORES &

HECTOR, 2012, págs. 152-153).

Ventajas

Los componentes de la aplicación pueden ser desarrollados en cualquier lenguaje.

Los componentes son independientes.

Los componentes pueden estar distribuidos en múltiples servidores.

La D.B. es solo vista desde la capa intermedia y no desde todos los clientes.

Permite reutilización real del software y construir aplicaciones escalables.

(ARCE, 2019) .

2.2 Inteligencia Artificial (IA)

La Inteligencia Artificial (IA) es una rama de la informática y se la puede describir

como la representación del comportamiento característico de personas por parte de

máquinas, principalmente sistemas informáticos. Este conjunto de representaciones

incluye el aprendizaje, el razonamiento y la autocorrección (ARIZA, 2018).

Es la combinación de algoritmos con el propósito de crear máquinas que actúen de

manera similar al ser humano, con las mismas capacidades. Generalmente la inteligencia

artificial requiere de herramientas, de disciplinas como el cálculo numérico, la estadística,

la informática, etc. Requiere de una secuencia infinita de instrucciones que van

especificando acciones que debe ejecutar la computadora para resolver problemas y esto

es lo que constituye la estructura algorítmica del sistema de inteligencia artificial.

También se puede decir que es el razonamiento de un agente que no está vivo,

contribuye a un mayor entendimiento del conocimiento humano. En la actualidad, se

centra en el desarrollo de sistemas de procesamiento de datos, que sean capaces de imitar

la inteligencia humana realizando tareas que requieran aprendizaje y solución a problemas

Page 23: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

9

y decisiones. Se enfoca en dos áreas de estudio que son: el ser humano y el ordenador

electrónico, ya que la intensión es copiar la inteligencia humana.

De esta manera la inteligencia artificial busca explicar el funcionamiento mental para

lo cual se basa en el desarrollo de algoritmos como ya se mencionó para controlar las

diferentes cosas, la inteligencia artificial combina varios campos, con un mismo fin que

es tratar de crear maquinas que puedan pensar por sí solas.

Las aplicaciones más frecuentes se dan en la robótica, en el tratamiento automático de

textos, en el aprendizaje adaptivo, etc. (Raul Benitez, 2014).

Evolución histórica

La inteligencia artificial nace en 1943 cuando Warren McCulloch y Walter Pitts

proponen un modelo de neurona del cerebro del ser humano, lo cual se aplica como un

símbolo de la actividad cerebral. En 1950 Turing publica en la revista Mind un artículo

titulado Computing Machinery and Intelligence, donde menciona el Test de Turing, a este

artículo se lo considera el precursor de muchos de los desarrollos en el campo de la

Inteligencia artificial (Studylib, 2019).

En 1955 Herbert Simón, Allen Newell y J.C Shaw, desarrollan el primer lenguaje de

programación orientado a la solución de problemas de la IA. Un año después desarrollan

el primer programa llamado Logic Theorist con la capacidad de demostrar teoremas

matemáticos, representado cada uno como un árbol, siguiendo las ramas en busca de la

solución correcta (Studylib, 2019).

En 1956 Newell y Simón desarrollaron el General Problems Solver, orientado a la

resolución de problemas, a la demostración de teoremas matemáticos, en esta ocasión no

tuvieron éxito.

En 1957 McCarthy desarrollo el lenguaje LISP, donde USA aportó dinero para esta

investigación, así también IBM contrato un equipo para la investigación en esta área.

A finales de la década de los 50 e inicios de los 60 Robert Lindsay desarrolló un programa

orientado a la lectura de oraciones en inglés, a este se le denominó Sad Sam, este fue el

primer programa en el ámbito del Procesamiento del Lenguaje Natural.

Durante estos años se destacaron varios desarrollos importantes de Herbert Gelernter, con

el demostrador automático de teoremas de la Geometría; Alex Bernstein, desarrolla un

programa para el juego de ajedrez (ALANDETE, 2011).

Page 24: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

10

En 1961 James Slagle desarrolla SAINT, el cual se orienta a la demostración simbólica

en el área de algebra. En el 64 Bertrand Raphael realiza SIR, capaz de comprender

oraciones en inglés.

En la década de los 60 Frank Rossenblatt, desarrolla un modelo de la mente humana

mediante una red neuronal y produce un perceptrón, este trabajo tuvo grandes críticas por

parte de Marvin Minsky y Seymour Papert.

En 1965 hacia los 70 empezaron a aparecer los programas que predicen la probabilidad

de una solución, como el DENDRAL y MACSYMA.

En la década de los 70, creció el desarrollo de sistemas diseñados para aplicaciones

médicas como el MYCIN, entre otros.

En 1975 inicia la era de los lenguajes expertos como EMYCIN, EXPERT, OPSS, los

cuales fueron perfeccionados para que sean más amigables y funcionales.

En 1980 se dio lugar al auge de los sistemas expertos los cuales no alcanzaron a cumplir

todos sus objetivos. En la actualidad los estudiosos siguen desarrollando cada vez más

sistemas, programas, hasta lograr que la distinción sea casi imposible entre una maquina

y un humano (ALANDETE, 2011).

2.3 Procesamiento del lenguaje natural (PLN)

El procesamiento del lenguaje natural, por sus siglas PLN, constituye el área del

conocimiento de la Inteligencia Artificial, que se encarga principalmente de desarrollar e

investigar formas de relacionar máquinas con personas, a través de los diferentes idiomas

como español, inglés, etc. (RAMIRES & MARQUES, 2018).

Figura 2. Comunicación humano-máquina (CAMPOS,2018)

Page 25: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

11

2.2.1 Componentes del PLN

No todos los análisis que se describen se aplican en cualquier tarea de PLN, sino

que depende del objetivo de la aplicación.

Análisis morfológico o léxico: Consiste en el análisis interno de las palabras que

forman oraciones para extraer lemas, rasgos flexivos, unidades léxica compuestas.

Es esencial para la información básica: categoría sintáctica y significado léxico.

Análisis sintáctico: Consiste en el análisis de la estructura de las oraciones de

acuerdo con el modelo gramatical empleado (lógico o estadístico).

Análisis semántico: Proporciona la interpretación de las oraciones, una vez

eliminadas las ambigüedades morfosintácticas.

Análisis pragmático: Incorpora el análisis del contexto de uso a la interpretación

final (MORENO A. , 2017).

2.2.3 Aplicaciones del PLN

PLN para la Traducción Automática de textos (TA)

El multilingüismo es una barrera colosal para la globalización y la comunicación

humana.

No se resuelve con conocer dos o tres lenguas (tarea costosa para la mayoría de las

personas). Necesitamos traductores que nos acerquen los contenidos escritos en

docenas de lenguas. Ante la falta de disponibilidad de traductores humanos para

muchos pares de lenguas, la Traducción Automática nos proporciona un borrador

del contenido de una página web o de un comentario sobre la habitación de un

hotel (MORENO S. A., 2017).

Por supuesto, la traducción automática de textos no puede sustituir a los humanos

en textos complejos y donde la fiabilidad sea crucial (ficción, textos legales, etc.).

Sin embargo, se ha extendido en los contenidos de internet y las redes sociales.

Sobre todo, porque es gratuita, instantánea y, en la mayoría de los casos, aceptable

para nuestros intereses (MORENO S. A., 2017).

Page 26: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

12

Sistemas conversacionales con PLN

Los primeros sistemas de tecnologías de habla reconocían un conjunto muy

reducido de palabras (números aislados, generalmente). Luego pasaron a

transcribir automáticamente mensajes de voz y llegaron los asistentes

conversacionales como Siri, Cortana o Google Assistant.

La interacción entre humano y máquina por voz es uno de las aplicaciones más

exitosas y sus usos son múltiples porque virtualmente cualquier artefacto (desde

un coche hasta un frigorífico) llevará un pequeño ordenador con el que comunicar.

El desafío ahora es que sean capaces de entablar una verdadera conversación con

peticiones encadenadas (MORENO S. A., 2017).

PLN para la recuperación y extracción de información

Los buscadores de internet fueron la primera aplicación masiva del lenguaje

natural en el mundo de las TIC. Con la aparición de Internet había demasiada

información no accesible y hacía falta una herramienta que pudiera mostrar

páginas mediante la búsqueda de palabras clave.

El siguiente paso es leer la información expresada en una lengua y extraer su

contenido. La extracción de información es la base para clasificar, resumir y

relacionar (MORENO S. A., 2017).

Etiquetado morfológico, sintáctico y semántico

Para procesar el contenido se usan etiquetadores que analizan los mensajes en

diferentes niveles. Por ejemplo, anotan el infinitivo a todas las formas verbales o

asignan las etiquetas de sujeto y objeto directo en la oración.

Estos anotadores son los que permiten realizar las tareas específicas que detallamos

a continuación (MORENO S. A., 2017).

PLN para respuestas automáticas a preguntas

El sistema Watson de IBM se hizo famoso por ganar a los dos mejores

competidores del concurso televisivo Jeopardy.

Watson era más rápido y exacto a la hora de encontrar la relación entre preguntas

y respuestas. Para ello, usa múltiples niveles de conocimiento y bases de datos

donde se almacenan los contenidos (MORENO S. A., 2017).

Page 27: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

13

2.2.4 Ventajas del PLN

La aplicación de PLN en las aplicaciones descritas busca simplificar la

comunicación con las máquinas, para dedicarse a tareas de más alto impacto.

Ahorra tiempo al automatizar procesos que se realizan a mano. La clasificación

documental o la traducción de documentos con información repetitiva se puede

agilizar con programas especiales.

Agiliza el trabajo de etiquetado manual. Se pueden leer grandes volúmenes de

documentos para etiquetar su contenido de una manera más fiable si un

programa automático filtra los conceptos.

Permite de forma sencilla tomar decisiones relativas al negocio. Una crisis en

un medio social se puede controlar más efectivamente si un sistema de escucha

de opiniones en las redes detecta el problema rápidamente.

Añade valor a las soluciones incorporando el significado de los textos, reglas

lingüísticas, diccionarios. Las tecnologías PLN permite visualizar información

semántica para ayudar a su mejor compresión por parte de los usuarios.

2.4 Machine Learning

El Machine Learning es el diseño y estudio de las herramientas informáticas que

utilizan la experiencia pasada para tomar decisiones futuras; es el estudio de programas

que pueden aprender de los datos. El objetivo fundamental del Machine Learning es

generalizar, o inducir una regla desconocida a partir de ejemplos donde esa regla es

aplicada. El Machine Learning combina conceptos y técnicas de diferentes áreas del

conocimiento, como las matemáticas, estadísticas y las ciencias de la computación

(Miller, Toptal, 2019).

2.4.1 Tipos de algoritmos de Machine Learning

El campo de aprendizaje de máquina se establece en dos pilares principales

llamados aprendizaje supervisado y aprendizaje no supervisado:

2.4.2 Aprendizaje supervisado

Emplea un conjunto de datos conocidos (el denominado conjunto de datos de

entrenamiento) para realizar predicciones. El conjunto de datos de entrenamiento

Page 28: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

14

incluye datos de entrada y valores de respuesta. A partir de él, el algoritmo de

aprendizaje supervisado busca crear un modelo que pueda realizar predicciones acerca

de los valores de respuesta para un nuevo conjunto de datos. Con frecuencia se utiliza

un conjunto de datos de prueba para validar el modelo. Si se utilizan conjuntos de datos

de entrenamiento de mayor tamaño, a menudo se generan modelos cuya capacidad

predictiva es mayor y que se pueden aplicar con buenos resultados sobre nuevos

conjuntos de datos (Miller, Toptal, 2019).

2.4.2 Aprendizaje no supervisado

Tiene lugar cuando no se dispone de datos “etiquetados” para el entrenamiento.

Sólo conocemos los datos de entrada, pero no existen datos de salida que correspondan

a un determinado input. Por tanto, sólo podemos describir la estructura de los datos,

para intentar encontrar algún tipo de organización que simplifique el análisis. Por ello,

tienen un carácter exploratorio (González, 2014).

2.5 Random Forest

Figura 3. Random Forest (TOWARDSDATASCIENCE,2018)

Los árboles de decisión están entre los métodos de clasificación supervisada más

utilizados, se trata de un método no paramétrico, robusto y fácil de interpretar.

Los Random Forest trabajan mediante divisiones sucesivas en el espacio de variables,

tratando de encontrar la variable y el valor umbral de esta que permitan maximizar la

regularidad de las particiones resultantes (Towards Data Science, 2018).

Page 29: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

15

El algoritmo Random Forest utiliza dos parámetros: el número de árboles y el número

de predictores a utilizar en cada partición de cada uno de los árboles. Sin embargo, una

de las grandes ventajas de este algoritmo es su baja sensibilidad a estos parámetros, por

lo que los valores por defecto suelen producir buenos resultados (FULGENCIO &

FRANCISCO, 2016).

Ventajas

(RandomForest, 2013) menciona las siguientes ventajas “Es uno de los más

eficientes algoritmos de aprendizaje disponible. Su eficiencia en ejecución en

grandes bases de datos es muy buena. Permite manejar cientos de variables

entrantes sin excluir ninguna”.

Desventajas

(RandomForest, 2013) afirma “A diferencia de los árboles de decisión, la

clasificación hecha por Random Forest es difícil de interpretar por el hombre. Si

los datos contienen grupos de atributos correlacionados de relevancia similar para

el rendimiento, entonces los grupos más pequeños están favorecidos sobre los

grupos más grandes”.

2.6 Chatbot

Figura 4. Chatbot (KANLLI,2017)

Page 30: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

16

Son programas informáticos con los que los usuarios pueden mantener conversaciones,

ya sea a través de texto o voz. En los últimos años, los chatbots han llegado a ser populares

en negocios enfocados en el servicio al cliente (SANCHÉZ & AYALA, 2018).

2.6.1 Funcionamiento

Los chatbots son tecnologías que se fundamentan en el uso de inteligencia artificial,

los cuales mediante un aprendizaje profundo, manejo de lenguaje natural y mediante el

proceso de machine learning, adquieren gran cantidad de información que permite al bot

una mejor interacción. Es decir, cuanto más se utiliza el bot, este aprende y reconoce de

mejor manera el input del usuario permitiendo una interacción más fluida. Además, el bot

logra mejores respuestas con respecto a la interacción propuesta por el usuario (ROUSE

M. , TechTarget, 2018).

Tabla 1. Tipos de chatbots (ROUSE,2018)

Sin estado (stateless) Con estado (stateful)

Protocolo que trata a cada petición

como una nueva transacción, por tanto,

la comunicación es en pares

independientes de solicitud y respuesta.

Protocolo que tiene dependencia en la

conexión cliente-servidor, siempre mantiene

un estado para recordar y almacenar los

detalles de cada interacción.

2.6.2 Importancia

El ahorro de tiempo y la eficiencia derivados de los chatbots de IA que conversan y

responden preguntas recurrentes es atractivo para las empresas que buscan aumentar las

ventas o la productividad del servicio. (ROUSE M. , TechTarget, 2018)

La mayoría de las herramientas se derivan de una idea general: recibir datos en bruto,

asignar un significado y luego que actúe de manera apropiada según una base de

conocimientos.

Para procesar el lenguaje natural, los chatbots se basan en el reconocimiento de

patrones y el bigrama. Identificación, un procedimiento que generalmente se maneja

mediante marcos de conversación. Sin embargo, corresponde a los diseñadores de chatbot

generar la base de conocimiento y proporcionar el motor de aprendizaje con ejemplos

apropiados (SANCHÉZ & AYALA, 2018).

Page 31: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

17

Figura 5. Proceso para un texto basado en chatbot (SANCHÉZ-AYALA, 2018)

2.6.3 Modelado del conocimiento

Esta fase determina cómo se representa y almacena el conocimiento en la base de

conocimiento.

Las estructuras de conversación se basan en árboles. Cada nodo en el árbol representa

una respuesta única, desde un simple saludo hasta información detallada sobre consultas

previas.

Es importante tener en cuenta que, en la conversación, para determinar qué respuesta

está buscando el usuario, la similitud entre la entrada del usuario y todas las consultas

conocidas deben ser calculadas. Este proceso se realiza mediante algoritmos de

aprendizaje automático que utilizan medidas de similitud entre oraciones en las que cada

palabra o carácter puede representar una sola dimensión, y su precisión se refina al

proporcionar miles de ejemplos. Por lo tanto, se aconseja agrupar unidades de

conocimiento por similitud de la entrada del usuario que los activará, en lugar de

agruparse por tema (Briega, 2017).

Flujo de conversación: Tanto el léxico utilizado por el tutor como el orden en que se

presentan las ideas.

Una vez que el conocimiento se separa en pequeñas unidades atómicas, se diseña cómo

presentarlos en el siguiente paso. Una forma eficiente de hacerlo es la creación de un

glosario y una convención de nomenclatura para realizar un seguimiento de las consultas

disponibles y gestionar sus órdenes de disparo.

Page 32: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

18

2.7 Base de datos

Una base de datos, básicamente, consiste en un sistema de información, la cual es

acumulada en medios de almacenamiento masivo que luego facilitan el acceso directo a

ellos por medio de programas que permiten manipular esta información (VALDEZ D. P.,

2007).

Por otra parte, un sistema de Gestión de Bases de datos se caracteriza por ser un

software muy específico, el mismo que tiene la función de servir de interfaz entre la base

de datos, el usuario y las aplicaciones que la utilizan; en otras palabras, una agrupación

de programas que ayudan a definir, construir y manipular una base de datos, y de esta

manera poder almacenar datos para que posteriormente se pueda acceder a los mismos de

forma rápida y estructurada (CONTRÉRAS, 2011).

2.7.1 Gestor de Bases de Datos

Hoy en día, hay una gran variedad de gestores de base de datos que despliegan un

modelo, el cual permite acceder a la información de forma más simple. Estos utilizan

lenguajes de consulta; los cuales permiten generar informes, analizar, garantizar la

seguridad y la integridad de los datos (CHAMBI, 2016).

Los proyectos tienen perspectivas técnicas radicalmente diferentes, y cada una está

informada por un conjunto completamente diferente de preocupaciones.

PostgreSQL se ha enfocado tradicionalmente en la fiabilidad, integridad de datos y

características integradas enfocadas al desarrollador. Tiene un planificador de

consultas, que es capaz de unir cantidades relativamente grandes de tablas

eficientemente.

MySQL, se ha enfocado tradicionalmente en aplicaciones web de lectura, usualmente

escritas en PHP, donde la principal preocupación es la optimización de consultas

sencillas (RIGGS, 2011).

Ningún gestor de base de datos es perfecto, sin embargo, se debe buscar la Base de

Datos más adecuada y que mejor se acople a los requerimientos del proyecto que se

realice.

2.7.2 MySQL

MySQL es un SGBDR (Sistema de Gestión de Base de Datos Relacional) que en la

actualidad se encuentra ampliamente expandido; además que es uno de los más populares

Page 33: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

19

entre los servidores de internet. Se caracteriza por su facilidad al implementarlo; y por el

carácter original que tiene al ser “open source” (DELÉGLISE, 2013, pág. 28).

Características

Facilidad de uso: MySql es un sistema de base de datos de alto rendimiento, pero

relativamente simple, y es mucho menos complejo de configurar y administrar que los

sistemas máster.

Soporte de lenguaje de consulta: MySql entiende SQL (Lenguaje de consulta de

estructura), el lenguaje de elección estándar para todos los sistemas de base de datos de

módem.

Capacidad: El servidor MySql tiene múltiples hilos, por lo que muchos clientes pueden

conectarse a él al mismo tiempo. Cada cliente puede usar múltiples bases de datos

simultáneamente.

Conectividad y seguridad: MySql está completamente conectado a la red y se puede

acceder a las bases de datos desde cualquier lugar de Internet, de modo que puede

compartir sus datos con cualquier persona, en cualquier lugar. MySQL admite conexiones

encriptadas utilizando el protocolo Secure Sockets Layer (SSL).

Portabilidad: MySql se ejecuta en muchas variedades de Unix y Linux, así como en

otros sistemas como Windows (DUBOIS, 2005, pág. 4).

2.8 DigitalOcean

Para la mayoría de los individuos en la sociedad moderna, la actividad diaria implica

más interacción con medios digitales (DiCerbo, 2014).

Es un proveedor estadounidense de servidores virtuales privados, con sede principal

en la ciudad de Nueva York. La compañía alquila instalaciones de centros de cómputo

existentes, incluyendo sitios como Nueva York, Toronto, etc. (DiCerbo, 2014).

Características

Maneja el concepto de droplet para designar a cada uno de los servidores

virtuales, exactamente servidores virtuales privados, los cuales ofrecen en

alquiler.

Son privados porque DigitalOcean no interviene de ninguna manera en su

instalación y manejo.

Page 34: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

20

Cada droplet de un mismo cliente puede comunicarse única y exclusivamente con

otros droplets del mismo cliente.

No ofrecen venta de dominios web, sino que ofrecen la interfaz web necesaria

para que los clientes agreguen (DigitalOcean, 2019).

2.8.1 Droplet

Es una máquina virtual en la nube, que posee todas las características propias de un

servidor, el cual es totalmente escalable, acoplándose a los requerimientos del contratante;

es así que, si se posee un droplet donde el tamaño del disco duro es de 10 gb, y si en algún

punto se requiere la expansión de esta capacidad se lo puede hacer sin ningún problema

(Largo, 2017).

Tabla 2. Hosting vs Droplet

Hosting Droplet

Un sitio web que comparte recursos de

hardware y software como: Memoria RAM,

almacenamiento, dirección IP con otros

sitios web residentes en el mismo servidor.

Es un servidor únicamente para tu sitio web

con una dirección IP propia.

El proveedor da acceso al CPanel para

administrarlo, mediante esta herramienta se

puede crear base de datos, respaldar

información etc.

Administrar un droplet, se realiza utilizando

el protocolo ftp y ssh, únicamente por

consola (Requiere conocimientos de

comandos linux).

2.9 Docker

Docker se fundamenta en la idea de crear contenedores ligeros y portables. De esta

manera, estas aplicaciones de software se las podría ejecutar en cualquier máquina con

Docker instalado, sin tener que pensar en el sistema operativo instalado en la maquina a

ejecutar la aplicación; facilitando así también los despliegues (GARCÍA, 2015).

Docker es capaz de empaquetar en un contenedor todos los requerimientos que la

aplicación requiere (Java, Python, Maven, NLTK, etc.); y la propia aplicación. Es decir,

el desarrollador puede llevar los contendores a cualquier máquina donde Docker se

encuentre instalado y ejecutar la aplicación sin tener que volver a instalar los

requerimientos. El desarrollador no tiene que preocuparse de las versiones de software

instaladas en la máquina a ejecutar la aplicación, ni siquiera si la máquina posee los

Page 35: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

21

componentes necesarios para que funcione y finalmente, tampoco tiene que preocuparse

de la compatibilidad (GARCÍA, 2015).

Figura 6. Plataforma de Dockers (TIMES,2018)

Oscar Villacampa dice en su artículo de marketing: “Docker es un proyecto de código

libre que se ha convertido en uno de los términos de moda, por las ventajas que

proporciona a los profesionales del desarrollo web y de aplicaciones; o los

administradores de sistemas, por la facilidad que supone el trabajar con el concepto de

contenedores” (VILLACAMPA, 2017).

“Docker nos ayuda a no malgastar nuestro tiempo configurando el entorno, y las

dependencias del sistema, porque lo vamos a poder desplegar fácilmente. Algo muy útil

tanto para grandes empresas, como Red Hat o Google, como para las

pequeñas startups que empiezan a desarrollar su aplicación” (VILLACAMPA, 2017).

Page 36: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

22

Page 37: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

23

CAPÍTULO 3 METODOLOGÍA

El presente proyecto para su correcto desarrollo necesita una planificación adecuada

para lograr resultados óptimos. Hay varias metodologías que se emplean en la

construcción de programas; de las cuales, las más rápidas, flexibles y funcionales,

conocidas como agiles, son:

3.1 Desarrollo Ágil de Software

El término “ágil” se caracteriza por un grupo de métodos y prácticas que se basan en

los valores y principios expresados en el manifiesto ágil. A mediados de los 90s, muchas

fueron las metodologías de desarrollo de software que empezaron a ganar terreno en los

desarrolladores debido a que se generaba una estrecha relación entre desarrollador y

usuario. La característica propia de esta metodología ayuda a generar mejores resultados

en tiempos cortos. Además, el término ágil se enfatiza en la capacidad de edificar y dar

respuesta a los cambios requeridos; con el objetivo de obtener resultados exitosos en un

ambiente desconocido y a veces incierto (ALLIANCE, 2015).

3.1.1 El Manifiesto Ágil

El término “Métodos Ágiles” fue acuñado en 2001; utilizado principalmente para

definir a crecientes metodologías que hacían a un lado a los métodos tradicionales para

el desarrollo de software.

“Al final se resumió cuatro postulados que se denominó “Manifiesto Ágil” que son

los valores sobre los que se asientan las metodologías ágiles” (MENZINSKY, A.,

LÓPEZ, G., & PALACIO, J., 2016).

El Manifiesto Ágil toma en cuenta los fundamentos citados a continuación:

• “A los individuos y su interacción, por encima de los proceso y herramientas”

• “El software que funciona, por encima de la documentación exhaustiva”

Page 38: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

24

• “La colaboración con el cliente, por encima de la negociación contractual”

• “La respuesta al cambio, por encima del seguimiento de un plan” (MENZINSKY,

A., LÓPEZ, G., & PALACIO, J., 2016, pág. 36).

Luego de una estratégica planificación, se decidió utilizar la metodología denominada

SCRUM; puesto que es una de las más difundidas hoy en día, y de esta manera se procede

a adaptar metodología mencionada de modo que los todos los roles sean asumidos.

3.2 Metodología a utilizar

Tabla 3. Comparación Metodologías

Metodología Ágil Metodología Tradicional

Pocos roles Más roles

No existe un contrato por tanto es más

flexible

Existe un contrato prefijado

El cliente es parte del equipo del

desarrollo

El cliente interactúa con el equipo de

desarrollo a través de reuniones

Cambios durante el proyecto No ocurran cambios durante el proyecto

Equipos pequeños Equipos dispersos

Tabla 4. Comparación SCRUM vs XP

XP SCRUM

Proceso Incremental e iterativo Incremento e iterativo

Prioridad de tareas Prioridad por tarea de

acuerdo al cliente

El equipo determina la

prioridad de las tareas

Equipos de trabajo En parejas Equipos grandes

Cambios en las iteraciones

Permite cambios

durante la iteración

No permite cambios

hasta acabar la

iteración

Tiempo entre iteración 2-4 semanas 1-4 semanas

3.3 Scrum

Scrum es una metodología moderna para el desarrollo de productos informáticos de

forma interactiva e incremental. Scrum se caracteriza por su proyección global al inicio

del proyecto; para luego desarrollar aspectos específicos que cada proyecto necesita en

su configuración. Esta forma de trabajo tubo sus inicios en empresas de desarrollo de

software; sin embargo, es aplicable para este tipo de proyectos (MENZINSKY, A.,

LÓPEZ, G., & PALACIO, J., 2016).

Page 39: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

25

Figura 7. Scrum Framework (SCRUM.ORG, 2017)

Scrum se caracteriza por la designación de roles dentro del grupo de trabajo; además de

eventos y artefactos. La parte fundamental de esta metodología son los ciclos de trabajo;

donde se construye de manera esquemática cada componente del producto. Las partes que

conforman el ámbito de trabajo de Scrum son los siguientes:

3.3.1 Roles

Las personas que forman parte o se relacionan con el proyecto.

Product Owner (Propietario del Producto): Persona que representa al

cliente, debe tener un conocimiento amplio del producto, decide el orden en que

se va a ir construyendo los incrementos, define el product backlog (pila del

producto).

Scrum Master (Facilitador o Moderador): Persona encargada de hacer

cumplir las reglas de Scrum; proporciona: asesoría general al propietario del

producto y al equipo, asesoría al equipo de desarrollo para trabajar de una forma

auto organizada, moderación en las reuniones.

Development Team (Equipo de Desarrollo): Es el grupo de

profesionales que poseen los conocimientos necesarios para el desarrollo he

incremento del producto en cada sprint (MENZINSKY, A., LÓPEZ, G., &

PALACIO, J., 2016).

Page 40: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

26

Tabla 5. Roles del proyecto

Rol Nombre

Product Owner Dr. Santiago Morales, tutor quien tiene

conocimiento sobre el producto

Scrum Master Luis Anrango

Development Team Hanmilton Berrezueta

3.3.2 Artefactos

Product Backlog (Pila del Producto): Es una lista ordenada realizada por

el propietario del producto donde abarca las funcionalidades, mejoras, tecnología

y corrección de errores que se debe agregar al producto por medio de los sprints.

Sprint Backlog (Pila del sprint): Es una lista elaborada por el equipo de

desarrollo de las tareas que se van a realizar durante el sprint, la lista está basada

en la pila del producto.

Product Increment (Incremento del producto): Es la parte del producto

que ha sido producida en un sprint y que se seguirá sumando para obtener el

producto total (MENZINSKY, A., LÓPEZ, G., & PALACIO, J., 2016).

Los artefactos adaptados al proyecto son:

Tabla 6. Artefactos del proyecto

Artefacto Descripción

Product Backlog Definición del alcance, limitaciones en el plan.

Sprint Retrospective Lista de tares realizadas por los autores que se

seguirá para el desarrollo.

3.3.3 Eventos

Sprint: Es la parte más importante del scrum, un intervalo de tiempo

máximo de 4 semanas en el cual se construye un incremento del producto. El

incremento debe estar terminado, operativo y ser útil para el cliente; listo para ser

desplegado o distribuido.

Sprint Planning (Planificación del Sprint): Es una reunión conducida

por el Scrum Máster. Se realiza al comienzo de cada sprint en la cual se define: lo

Page 41: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

27

que se entregará al terminar el sprint y el trabajo necesario para la realización del

incremento previsto, y como lo va a llevar a cabo el equipo; tendrá una duración

máxima de una jornada de trabajo.

Daily Scrum (Scrum diario): Es una reunión que se realiza de manera

diaria de no más de 15 minutos en la cual el equipo sincroniza para trabajar las

siguientes horas; el equipo es el responsable de la reunión no el Scrum master; al

finalizar, el Scrum master gestionará adecuadamente las necesidades o

impedimentos identificados en la reunión.

Sprint Review (Revisión del Sprint): Reunión que se realiza al final de

cada sprint en donde se comprueba el incremento; no debe durar más de 2 horas;

aquí el propietario del producto verifica el progreso, observa y prueba el

incremento.

Sprint Retrospective (Retrospectiva del Sprint): Reunión realizada

después de la revisión de cada sprint, y antes de la siguiente reunión de

planificación; aquí se realiza un autoanálisis de la forma de trabajar, identificando

fortalezas y debilidades; el objetivo es mejorar para no caer en errores cometidos

en el sprint. (MENZINSKY, A., LÓPEZ, G., & PALACIO, J., 2016)

Los eventos adaptados al proyecto son:

Tabla 7. Eventos adaptados al proyecto

Evento Descripción

Sprint Tiempo de desarrollo de la tesis.

Sprint Planning,

Daily Scrum

Se establecerá la arquitectura a usar, búsqueda de una

base en Kichwa, elegir algoritmo de aprendizaje, etc.

Spring Review Se realizará la revisión de la aplicación (chatbot) y

documentación respectiva por parte del tutor, además de

la revisión por parte de revisores designados.

Page 42: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

28

Page 43: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

29

CAPÍTULO 4 DESARROLLO

4.1 Análisis de Requerimientos del Sistema

4.1.1 Funcionales

El chatbot permitirá el aprendizaje automático del idioma kichwa (Como: colores,

alfabeto, saludos, frutas y animales) mediante el uso del algoritmo Random

Forest.

La aplicación web para el entrenamiento por parte de usuarios con conocimientos

del idioma kichwa.

4.1.2 No funcionales

Usabilidad: La aplicación de entorno web será fácil de usar, con una interfaz

amigable y comprensible para el usuario común.

4.2 Identificación de actores en el sistema

Se refiere a las personas que están involucradas directa o indirectamente con el sistema

reciben el nombre de usuarios, a continuación, se detalla el tipo, el rol que desempeña en

el sistema una breve descripción de usuario.

Tabla 8. Identificación de actores

Tipo de Usuario Rol Descripción

Usuario Administrador Administrador Puede crear estudiantes y profesores.

Además, podrá interactuar con el

chat y entrenar el chat.

Usurario Profesor Profesor Podrá crear estudiantes.

Interactuar con el chat y puede

entrenar el chat.

Usuario Estudiante Estudiante Sera quién pueda interactuar con el

chatbot.

Page 44: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

30

4.3 Arquitectura del Proyecto

El siguiente gráfico muestra la arquitectura, herramientas y tecnologías a usar para la

implementación de la aplicación.

Figura 8. Arquitectura

4.4 Proceso del Sistema

Este diagrama indica el flujo de cada texto ingresado en el chat dependiendo si el

texto ingresado es una DECLARACIÓN, PREGUNTA O UN CHAT SIMPLE.

Figura 9. Flujo del chatbot

Page 45: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

31

4.5 Diseño de la base de datos

El gestor de base de datos que se utiliza para el proyecto es MySQL, para modelar se

usó la herramienta que viene integrada en MySQLWorkBench CE.

4.5.1 Esquema modelo relacional Mashi Chat

Figura 10. Modelo entidad-relación

Page 46: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

32

4.5.2 Descripción a detalle de tablas del modelo relacional Mashi Chat

A continuación, se describe a detalle cada una de las tablas que conforman en modelo

relacional de la base de datos.

Table: words (palabras)

En esta tabla se almacenan todas las palabras nuevas, para realizar todo este proceso

de almacenamiento pasa previamente por un tratamiento del texto ingresado en el chat, el

proceso consiste en que a través del manejo del lenguaje natural con las diferentes

librerías: NLTK, STANFORDPARSER, permite saber si es una declaración, pregunta o

un simple chat, seguidamente se procede a extraer el tema, sujeto, objeto y lista de

palabras en el caso de ser una declaración o pregunta y si es chat busca la respuesta del

aprendizaje previo.

Una vez obtenida esta lista de palabras se realiza un cálculo para asignar un código

hash md5 hasta con las 16 primeras letras, lo cual permite que sea único.

Este código hash md5 es usado para validar si una palabra u oración ya la aprendió, es

decir ya tiene en la base de datos, de lo contrario pide que lo entrenen.

Table: sentences (oración)

En esta tabla se almacenan todas las oraciones nuevas, previamente realizando el

tratamiento del lenguaje natural con las librerías NLTK, STANFORDPARSER, de igual

manera de la lista de palabras se realiza el cálculo de su respectivo código hash md5 de

hasta las 16 primeras letras, lo cual permite que sea única cada oración.

Este código hash md5 es usado para validar si una palabra u oración ya la aprendió, es

decir ya tiene en la base de datos, de lo contrario pide que lo entrenen.

Table: statements (declaración)

En esta tabla se almacena todas las declaraciones, de acuerdo con el diagrama antes

mencionado, se realiza el tratamiento previo del lenguaje natural con las librerías NLTK,

STANFORDPARSER.

Similar al de las oraciones de la lista de palabras se realiza el cálculo del código hash

md5 correspondiente para que sea único en la base de datos y si no lo tiene pide que lo

entrenen.

Page 47: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

33

Table: associations (asociones)

En esta tabla se almacena todas las asociaciones o relaciones entre la tabla sentences

y la tabla words y además se asigna un wight(peso) a cada relación o asociación. Este

peso se suma tantas veces como la palabra se repite, es por eso que guarda la relación solo

con los primary_key de ambas tablas y los pesos los actualiza cuando se repite.

La fórmula para calcular el peso es:

Weight = peso

n = número de palabras

words_length = longitud de la lista de palabras

weight = (n / float (words_length))

Table: results (resultados)

En esta se almacena el resultado de la predicción, la misma que se realiza en base a la

información almacenada en las tablas anteriores.

Se debe tomar en cuenta que mientras más palabras se repitan el peso es mayor y su

predicción es mayor. Mientras que las oraciones más largas reducen el peso porque el

código hash md5 calculado va a ser distinto por lo cual se repite menos y su peso también

disminuye, esto influye en el resultado de la predicción.

Table: USER_ENTITY

En esta tabla se almacena la información primordial del usuario que se registra en el

sistema MASHI-BOT a través de una cuenta TWITTER o directamente ingresando los

datos requeridos dentro del sistema.

Table: USER_GROUP_MEMBERSHIP

En esta tabla se almacena los diferentes grupos, a modo de ejemplo si el sistema se

implementa en una escuela, lo que se almacena es cada año de educación básica a cuál

van a pertenecer n número de alumnos.

Table: CREDENTIAL

En esta tabla se almacena la información de login y recuperación de la clave del

usuario.

Page 48: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

34

Table: USER_ROLE_MAPPING

En esta tabla se almacena los distintos roles, tomado el ejemplo anterior se almacena

el rol de maestros, roles estudiantes y rol administrador.

4.6 Definición de Software utilizado para desarrollar el sistema

4.6.1 Requerimientos de Hardware para un desempeño promedio

Procesador: Quinta Generación y Posteriores.

Memoria RAM: 4GB (mínimo).

Arquitectura de sistema de 64 bits.

4.6.2 Versión de Software a utilizar

A continuación, se muestra una matriz de las librerías y herramientas más relevantes que

se han utilizado en el desarrollo del presente proyecto.

Tabla 9. Herramientas utilizadas

Nombre Descripción Versión Licencia

Python Lenguaje de Programación 3.5 Abierto

AngularJs Framework de JavaScript 7 Abierto

DigitalOcean Proveedor de servidores virtuales

privados

Propietario

Droplet Plataforma de cómputo con

capacidades adicionales de

almacenamiento, seguridad y

monitoreo para ejecutar fácilmente

aplicaciones de producción

Propietario

Docker Automatiza el despliegue

de aplicaciones dentro

de contenedores de software

18.09.1 Propietario

Mysql Sistema gestor de bases de datos 5.7 Abierto

Ubuntu Sistema operativo 18.04 Abierto

NodeJS Entorno de ejecución para

JavaScript

8 Abierto

Spring

framework boot

Framework de desarrollo 2.0.5.

RELEASE

Abierto

stanford-

spanish-

Proporciona un conjunto de

herramientas de tecnología de

lenguaje humano.

Abierto

Page 49: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

35

corenlp-2018-

10-05-models

De esta manera se usa las siguientes

librerías:

- stanford-corenlp-3.7.0-

models.jar

- stanford-corenlp-3.7.0.jar

4.7 Clasificación de oraciones mediante el aprendizaje automático

Para clasificar oraciones en una de varias categorías, se pueden usar varias técnicas de

aprendizaje automático y estadística. Este ejercicio se enfoca en el uso de un mecanismo

de Aprendizaje Supervisado, desarrollando un modelo entrenado en un conjunto de

oraciones preclasificadas. Se adopta un enfoque particular, evitando el uso del recuento

de tipos específicos de palabras (es decir, "palabras de pregunta") en las características y

en su lugar se consideran patrones de parte de la voz en una oración. Para un modelo

completo, esto podría combinarse con el conteo de palabras y otras características.

Proceso del ejercicio a abordar:

1. Carga de datos.

2. Extraer características.

3. Construir un modelo en función del conjunto de datos de entrenamiento y

validar con el conjunto de prueba.

4. Prueba el modelo con un conjunto de datos diferente.

Dependencias

Este ejercicio de Python depende del conjunto de oraciones clasificadas

en [sentences.csv] un conjunto equivalente de datos para ejecutar. Además de esto, otro

conjunto de datos llamado [pythonFAQ.csv] se usa para probar el modelo.

Para construir un modelo de clasificación, necesitamos extraer algunas características,

y este es el grueso del esfuerzo que se intenta mostrar. La biblioteca Python Sci-Kit Learn

contiene un completo algoritmo de aprendizaje automático pre-empaquetado que luego

se puede usar con el conjunto de datos.

Se demuestra una parte extraer características, pero el conjunto completo de

funcionalidades está envuelto en un módulo [features.py] el resultado de ejecutar varias

funciones en features.py se guarda en el archivo**[featuresDump.csv]

Page 50: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

36

1. Carga de datos

Se carga la información del archivo "sentences.csv".

Figura 11. Carga de datos

De esta manera se tiene la siguiente salida:

Figura 12. Salida de datos

Page 51: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

37

2. Ingeniería de características: un enfoque a medida no estándar

En este ejercicio se describe un enfoque personalizado y un modelo Random Forest de

aprendizaje de Scikits.

El siguiente fragmento de código es un ejemplo de tomar una oración y extraer

conjuntos de POS-tag Triples de ella. Podemos usar este enfoque para construir funciones

a partir de una oración contando las ocurrencias de patrones triples (u otros patrones POS-

tag).

Figura 13. Extracción de patrones

Extracción de características: Después de pre-procesar las oraciones (usando el enfoque

anterior) podemos obtener un conjunto de tripletas para preguntas, chat, declaraciones.

Habrá mucha intersección, pero con suerte algunos patrones claros.

El código de features.py Generador de características: Este es un módulo

personalizado de Python para extraer las características de una oración.

Page 52: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

38

Ejemplo:

Figura 14. Extracción de características

Figura 15. Extracción de características

3. Construcción del modelo de Machine Learning

En esta sección, cargamos un archivo de características CSV

llamado featuresDump.csv en un marco de datos de Pandas. Los datos se generaron con

la lectura de features.py en el archivo sentences.csv como se describe en la sección

anterior. Los datos featuresDump.csv se usan luego para entrenar un modelo de Random

Forest.

Page 53: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

39

Figura 16. Cargar datos

Dividir en pruebas y conjuntos de entrenamiento

Figura 17. Dividir para el entrenamiento

Page 54: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

40

Ajustar un modelo con el conjunto de datos de entrenamiento

Figura 18. Ajustar el modelo

Generar predicciones a partir del conjunto de datos de prueba

Figura 19. Generar predicciones

Page 55: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

41

Figura 20. Validación básica

4. Modelo de prueba con preguntas frecuentes

Generar características usando Features Generator.

Un CSV preparado que contiene oraciones con las preguntas más frecuentes.

Cargar datos de frase y generar características

Page 56: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

42

Figura 21. Carga de preguntas

Predecir la clase de oración con el modelo previamente construido

Figura 22. Clase de oración

Figura 23. Matriz de confusión

Esto podría resumirse como "OK" pero no genial. Las predicciones de preguntas y

declaraciones se informan con una precisión superior al 80% y el método de extracción

de características podría expandirse y mejorarse fácilmente. Además, el conjunto de datos

de entrenamiento es pequeño.

Page 57: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

43

5. Pruebas y experimentos

Figura 24. Predicción

Page 58: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

44

Page 59: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

45

CAPÍTULO 5 PRUEBAS Y RESULTADOS

5.1 Pruebas de navegadores web

Después de realizar varias pruebas sobre los diferentes navegadores web se recomienda

la utilización de Google Chrome o Firefox.

Tabla 10. Navegadores

NAVEGADOR TIEMPO DE

RESPUESTA

VISUALIZACIÓN DE

CONTENIDO

OBSERVACIONES

Google Chrome

V. 63.0

Alto Óptimo Ninguna

Mozilla Firefox

V.54.1

Alto Óptimo Ninguna

Internet Explorer

V.8.0

Medium Óptimo Ninguna

Nota: Las peticiones dinámicas de los usuarios, así como la visualización inmediata del

contendido es dependiente del Proveedor de Servicio de Internet (ISP) al que se encuentre

asociado al momento de utilizar el sistema.

Pruebas de Estrés

La prueba de estrés somete al software a condiciones de uso extremas, permite medir su

respuesta y determinar la solidez de la aplicación.

Existen varias herramientas que ayudan a realizar pruebas de carga o stress, como es

Webserver Stress Tool 7 simulando la carga en servidor para analizar el rendimiento de

la aplicación.

Características del ambiente o escenario para realizar las pruebas:

Procesador Intel Core i7

Velocidad 2.5GHz

Page 60: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

46

Memoria RAM 8(GB)

Arquitectura del computador 64 bits

Sistema Operativo Windows 8.1

Tabla 11. Escenarios de pruebas

Casos de Prueba Descripción

Administrador Administración General

Administrador- Clientes Administración de los clientes de la aplicación

Administrador-Roles Administración los diferentes tipos de roles

(Administrador, profesor, estudiante)

Administrador-Identidad Administración de los proveedores de identidad

Mashi Chat Usuario Final

Prueba de Clicks

Las pruebas de clicks son la elección correcta para realizar pruebas específicas dado una

Url, se debe especificar los siguientes parámetros:

Usuarios: 5

Clicks por usuario: 5

Retardo entre clicks: 5 segundos

Figura 25. Prueba Clicks

Page 61: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

47

Figura 26. Gráfica de Clicks.

En la Figura se indica que en el caso de prueba para Mashi Chat (Usuario Final) se llegó a

un tiempo máximo de espera de 600ms, considerando que el número de clicks está dentro

de tiempo de espera moderado, por lo que se concluye que la aplicación soporta peticiones

simultáneas sin presentar ningún tipo de inconveniente, debido a que no se encontró

errores (0 %) en el transcurso de la prueba.

Prueba de Rampa

La prueba de rampa somete a la aplicación a cargas incrementales durante el tiempo, se debe

especificar los siguientes parámetros:

Usuarios: 5

Clicks por usuario: 5

Retardo entre clicks: 5 segundos

Figura 27. Prueba de rampa

Page 62: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

48

Figura 28. Gráfica de rampa

En la Figura se observa que la aplicación fue sometido a un número progresivo de 5

usuarios durante un tiempo de 5 minutos, por lo que se concluye que a medida que

aumentan los usuarios se incrementa el tiempo.

Page 63: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

49

CONCLUSIONES

• El presente proyecto luego de un exhaustivo trabajo alcanzó su finalidad, y

permitió el desarrollo de una herramienta que será útil a muchos grupos sociales,

al contribuir a la conservación de un lenguaje ancestral como es el Kichwa. Los

distintos objetivos planteados al inicio permitieron el desarrollo organizado y una

planificación pensada en ofrecer una herramienta de calidad que facilite la

interacción con el usuario, motivando el aprendizaje.

• El eje alrededor del cual se desarrolló este proyecto fue elaborar un chatbot que

permita el aprendizaje del idioma Kichwa con el uso del algoritmo Random

Forest. Este chatbot es capaz de llevar conversaciones con el usuario de manera

fluida en los temas definidos, facilitando y motivando el aprendizaje del usuario.

Para lograrlo, el chatbot utiliza “machine learning” para aprender y generar

respuestas en base a las necesidades el usuario. Los resultados de la funcionalidad

de este chatbot fueron puesto a prueba con frases, preguntas sencillas y palabras,

De esta manera, se puede manifestar que la aplicación satisface en su

funcionalidad, al lograr un gran interés en los estudiantes.

• El “Bot” en la actualidad cuenta con un gran vocabulario de palabras básicas como

colores, números, saludos, frutas y animales; sin embargo, al utilizar “machine

learning” y luego del entrenamiento propuesto en los objetivos, el Bot es cada vez

más capaz de entender interacciones complejas como preguntas o frases que

incluyen una serie de palabras, de este modo logrando una interacción más natural;

facilitando el aprendizaje del usuario. Sin embargo, el Bot aún necesita más

entrenamiento para que logre entender todo lo que el usuario le pide responder.

Las conversaciones en ciertos momentos se van a cortar, pero a mayor uso, el Bot

Page 64: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

50

más aprende; por lo que la próxima vez que se le cuestione con la misma pregunta,

éste será capaz de generar una respuesta muy acertada.

• La aplicación se ha desarrollado de acuerdo con la metodología SCRUM, que

permite realizar los procesos de manera rápida, controlada, sencilla, fortaleciendo

la programación en cada uno de los sprint establecidos.

• Finalmente, se concluye el desarrollo del presente proyecto mediante el uso de

herramientas tecnológicas de programación; específicamente Python, Angular,

APIs para el manejo del lenguaje natural, Random Forest como algoritmo de

aprendizaje automático y Docker, dando como resultado la aplicación final

“chatbot y chatweb;” las cuales podrían ser fácilmente utilizadas por cualquier

persona que desee aprender o practicar sus conocimientos del idioma Kichwa.

Page 65: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

51

RECOMENDACIONES

• Una vez culminado el proyecto, se recomienda incluir minería de datos de textos

con sus respectivas traducciones de español a kichwa para mejorar el

entrenamiento y aprendizaje del chatbot.

• También, la administración de la aplicación debe estar a cargo de un único

administrador, con el fin de que la información actualizada sea verídica y

confiable, además de resguardar la seguridad de los usuarios de no recibir

información infectada que pueda dañar sus dispositivos.

• Para la edición del código fuente del Mashi Chat, se sugiere utilizar las versiones

indicadas en este documento, para evitar posibles errores al momento de compilar

el proyecto.

• Al momento de utilizar la aplicación se sugiere tener una buena velocidad de

conexión de la red para garantizar que la aplicación funcione adecuadamente.

Page 66: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

52

Page 67: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

53

GLOSARIO DE TÉRMINOS

SCRUM: Scrum es un proceso en el que se aplican de manera regular un conjunto

de buenas prácticas para trabajar colaborativamente, en equipo, y obtener el mejor

resultado posible de un proyecto.

CHATBOT: Es un programa informático con el que es posible mantener una

conversación, tanto si queremos pedirle algún tipo de información o que lleve a cabo una

acción y a través de los algoritmos tiene la capacidad de aprender.

IA: Inteligencia artificial

DROPLET: Un droplet quiere decir que estamos hablando de nuestro servidor

KICHWA: Es una de las 14 lenguas ancestrales que se hablan en el Ecuador y está

reconocido en la Constitución ecuatoriana, como idioma oficial de relación intercultural.

RANDOM FOREST: Conocidos como '"Bosques Aleatorios"' es una combinación de

árboles predictores tal que cada árbol depende de los valores de un vector aleatorio

probado independientemente y con la misma distribución para cada uno de estos.

CHAT: También conocido como cibercharla, es uno de los métodos de comunicación

digital surgido con las nuevas tecnologías.

Page 68: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

54

BIBLIOGRAFÍA

ALANDETE, D. (27 de Octubre de 2011). El País. Obtenido de El País:

https://elpais.com/diario/2011/10/27/necrologicas/1319666402_850215.html

ALLIANCE, A. (2015). What is Agile Software Development? | Agile Alliance.

Obtenido de https://www.agilealliance.org/agile101/what-is-agile/

ARCE, J. (2019). Paradigma Tres Capas. Obtenido de www.prezi.com:

https://prezi.com/f4n4iyl5qd7n/paradigma-tres-capas/

ARIZA, L. (2018). Muy Interesante. Obtenido de Ventajas y riesgos de la Inteligencia

Artificial: https://www.muyinteresante.es/tecnologia/articulo/ventajas-y-riesgos-

de-la-inteligencia-artificial-651449483429

BECK, K. (2000). "Extreme Programming Explained. Embrace Change". Ediciones

Pearson .

Briega, R. E. (13 de 6 de 2017). Relopezbriega. Obtenido de Relopezbriega:

https://relopezbriega.github.io/blog/2017/06/13/introduccion-al-deep-learning/

CHALLENGER, I. D. (2014). El lenguaje de programación Python. Ciencias Holguin.

CHAMBI, R. (2016). Gitmedio. Obtenido de http://www.gitmedio.com/gitmedio/7-

sistemas-gestores-base-de-datos/

COCKBUN, A., & WILLIAMS, L. (2000). The Costs and Benefits of Pair

Programming. Humans and Technology Technical Report.

CONTRÉRAS, L. (4 de Enero de 2011). Historia de las bases de datos. Recuperado el

25 de Noviembre de 2017, de Historia de la informática:

http://histinf.blogs.upv.es/2011/01/04/historia-de-las-bases-de-datos/

DELÉGLISE. (2013). MySQL 5 Guía de referencia del desarrollador. Barcelona:

Ediciones ENI.

DELGADO, G. D., & MENDOZA, H. J. (Diciembres de 2017). Obtenido de

DISTRIBUCIÓN LINUX A PARTIR DE UBUNTU 16.04 :

http://riul.unanleon.edu.ni:8080/jspui/bitstream/123456789/6548/1/238006.pdf

DiCerbo, K. E. (Febrero de 2014). Obtenido de Impacts of the Digital:

https://www.pearson.com/content/dam/one-dot-com/one-dot-

com/global/Files/about-pearson/innovation/open-ideas/DigitalOcean.pdf

Page 69: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

55

DigitalOcean. (2019). Obtenido de DigitalOcean:

https://www.digitalocean.com/docs/networking/dns/

DUBOIS, P. (2005). MySQL. Quinta Edición.

FLORES, F., & HECTOR, A. (2012). PROGRMACIÓN ORIENTADA A OBJETOS

USANDO JAVA.

FOWLER , M., & FOEMMEL, M. (2001). Is Design Dead? Recuperado el 20 de

Diciembre de 2017, de Continuos Integration:

https://www.martinfowler.com/articles/designDead.html

FULGENCIO , C., & FRANCISCO, S. (Julio de 2016). ResearchGate. Obtenido de

Modificación del algoritmo Random Forest para su empleo en clasificación de

imágenes de teledetección:

https://www.researchgate.net/publication/304825355_Modificacion_del_algorit

mo_Random_Forest_para_su_empleo_en_clasificacion_de_imagenes_de_telede

teccion

GARCÍA, A. M. (24 de Julio de 2015). Javiergarzas. Obtenido de Qué es docker:

http://www.javiergarzas.com/2015/07/que-es-docker-sencillo.html

González, A. (30 de 7 de 2014). Cleverdata. Obtenido de Cleverdata:

https://cleverdata.io/conceptos-basicos-machine-learning/

INEC. (2016). El número de accidentes de tránsito en Ecuador se redujo en un 15,2%

en el 2016. Recuperado el 28 de Octubre de 2017, de Agencia Nacional de

Tránsito: https://www.ant.gob.ec/

JAVA. (2016). Recuperado el 25 de Noviembre de 2017, de Información de Java 8:

https://www.java.com/es/download/faq/java8.xml

JEFFRIES R, A. (2001). Extreme programming Installed. Ediciones Addison-Wesley.

JOSKOWICZ, J. (2008). Reglas y Prácticas en Extreme Programming. Recuperado el

15 de Diciembre de 2017, de http://iie.fing.edu.uy/~josej/docs/XP%20-

%20Jose%20Joskowicz.pdf

Largo, E. (06 de Diciembre de 2017). Programación web full stack. Obtenido de

CÓMO CREAR UN DROPLET EN DIGITAL OCEAN:

https://www.ecodeup.com/como-crear-un-droplet-en-digital-ocean/

MENZINSKY, A., LÓPEZ, G., & PALACIO, J. (2016). Scrum Manager.

Miller, V. (2019). Toptal. Obtenido de https://www.toptal.com/machine-

learning/explorando-algoritmos-de-aprendizaje-automatico-supervisado

Page 70: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

56

Miller, V. (2019). Toptal. Obtenido de https://www.toptal.com/machine-

learning/explorando-algoritmos-de-aprendizaje-automatico-supervisado

MORENO, A. (17 de Octubre de 2017). Instituto de ingeniería del conocimiento.

Obtenido de Procesamiento del lenguaje natural ¿qué es?:

http://www.iic.uam.es/inteligencia/que-es-procesamiento-del-lenguaje-natural/

MORENO, S. A. (21 de 12 de 2017). Instituto de Ingeniría del Conocimiento. Obtenido

de Instituto de Ingeniría del Conocimiento:

http://www.iic.uam.es/inteligencia/aplicaciones-procesamiento-lenguaje-natural/

PICO. (2017). Srping Tool Suite. Recuperado el 28 de Noviembre de 2017, de

Springlatam: https://www.springla.io/spring/spring-tool-suite/

PIVOTAL SOFTWARE, I. (2017). Spring Tool Suite. Recuperado el 28 de Noviembre

de 2017, de Springlatam: https://www.springla.io/spring/spring-tool-suite/

PORTO, J. P., & MERINO, M. (2013). Definición de Ubuntu. Obtenido de

https://definicion.de/ubuntu/

PUBLICACIONES VÉRTICE. (2010). Técnicas avanzadas de diseño web. Malagá:

Vértice.

RAMIRES , Í., & MARQUES, G. (24 de Junio de 2018). ResearchGate. Obtenido de

AgronomoBot: a smart answering Chatbot applied to agricultural sensor

networks:

https://www.researchgate.net/publication/327212062_AgronomoBot_a_smart_a

nswering_Chatbot_applied_to_agricultural_sensor_networks

RAMOS, A., & RAMOS, J. (2014). Aplicaciones Web. Madrid: Ediciones Paraninfo.

RandomForest. (2013). Obtenido de randomforest2013.blogspot.com:

http://randomforest2013.blogspot.com/2013/05/randomforest-definicion-

random-forests.html

Raul Benitez, G. E. (2014). INTELIGENCIA ARTIFICIAL AVANZADA. Barcelona :

MIDAC.

REQUENA, J. (2016 de Septiembre de 2016). Cjrequena Blog. Recuperado el 5 de

Noviembre de 2017, de Arquitectura Orientada a Microservicios:

https://cjrequena.github.io/micro-services/2016/09/20/micro-services-

architecture-es.html

Page 71: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

57

RIGGS, S. (2011). PostgreSQL vs MySQL. Recuperado el 27 de Noviembre de 2017, de

2nd Quadrant PostgreSQL:

https://www.2ndquadrant.com/es/postgresql/postgresql-vs-mysql/

ROMÁN ZAMITIZ, C. (2016). El lenguaje de programación Java. Recuperado el 10

de Noviembre de 2017, de Programción con Java: http://profesores.fi-

b.unam.mx/carlos/java/java_basico1_1.html

ROSSUM, V. (Junio de 2007). Obtenido de Python Programming Language:

http://colenak.ptkpt.net/_lain.php?_lain=3721#Features_and_philosophy

ROUSE, M. (s.f.). ¿Qué es Chatbot? - Definición en WhatIs.com. Obtenido de

www.searchdatacenter.techtarget.com:

https://searchdatacenter.techtarget.com/es/definicion/Chatbot

ROUSE, M. (Abril de 2017). Obtenido de Inteligencia Artificial:

https://searchdatacenter.techtarget.com/es/definicion/Inteligencia-artificial-o-AI

ROUSE, M. (Abril de 2017). TechTarget. Obtenido de Inteligencia artificial, o AI:

https://searchdatacenter.techtarget.com/es/definicion/Inteligencia-artificial-o-AI

ROUSE, M. (Mayo de 2018). TechTarget. Obtenido de Chatbot:

https://searchdatacenter.techtarget.com/es/definicion/Chatbot

SANCHÉZ, X., & AYALA, G. (2018). Obtenido de A Knowledge-based Methodology

for Building a:

https://www.researchgate.net/profile/Leonardo_Garrido/publication/327391020_

A_Knowledge-

based_Methodology_for_Building_a_Conversational_Chatbot_as_an_Intelligent

_Tutor/links/5b8c7d14299bf1d5a73a036e/A-Knowledge-based-Methodology-

for-Building-a-Conversatio

Studylib. (2019). Studylib. Obtenido de Studylib: https://studylib.es/doc/334821/la-

inteligencia-artificial--naci%C3%B3--en-1943-cuando-warren-...

SWAGGER. (2018). Swagger. Obtenido de Swagger Editor:

https://swagger.io/tools/swagger-editor/

SWAGGER. (2018). Swagger Logo. Obtenido de About Swagger:

https://swagger.io/about/

Towards Data Science. (22 de Febrero de 2018). Obtenido de Definicón:

https://towardsdatascience.com/the-random-forest-algorithm-d457d499ffcd

Page 72: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

58

VALDEZ, A. (2016). ¿Qué es WorkBench? Características y ventajas. Recuperado el 5

de Noviembre de 2017, de MySQL WorkBench:

https://www.goconqr.com/p/3970954-mysql-workbench-notes

VALDEZ, D. P. (2007). www.maestrosdelweb.com. Obtenido de

http://www.maestrosdelweb.com/que-son-las-bases-de-datos/

VALLE, L. (2016). Visual Studio Code Características. Recuperado el 1 de Diciembre|

de 2017, de Programar Fácil: https://programarfacil.com/blog/visual-studio-

code-de-codigo-abierto/

VÁSQUEZ, G. (2017). ¿Qué es Angular? Recuperado el 2 de Diciembre de 2017, de

https://codigoonclick.com/que-es-angular/

VILLACAMPA, O. (2017). Ondho. Obtenido de Qué es Docker y para qué sirve:

https://www.ondho.com/que-es-docker-para-que-sirve/

WORDPRESS. (2017). Acerca de WordPress. Recuperado el 15 de Noviembre de

2017, de WordPress.Org: https://wordpress.org/about/

Page 73: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

59

Page 74: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

60

ANEXOS

Page 75: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

61

ANEXO 1: MANUAL DE USUARIO

UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE INGENIERÍA CIENCIAS FÍSICAS Y MATEMÁTICA

CARRERA DE INGENIERÍA INFORMÁTICA

CHATBOT PARA EL APRENDIZAJE DEL IDIOMA KICHWA BASADO EN

RANDOM FOREST

MANUAL DE USUARIO

AUTORES: ANRANGO PERUGACHI JOSÉ LUIS

BERREZUETA CARMONA HANMILTON JHOEL

TUTOR: Dr. SANTIAGO LEONARDO MORALES CARDOSO

Quito, 2019

Page 76: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

62

Objetivo: Verificar el funcionamiento del chatbot para la Universidad Central del

Ecuador mediante el aprendizaje automático del idioma Kichwa.

Requerimientos:

Hardware:

4Gb, en memoria RAM

Conexión de Red/wifi

Software:

Preinstalado las herramientas requeridas.

Navegador de internet.

Sistema Operativo Windows.

Tipos de usuario:

La aplicación es realizada bajo permisos y restricciones, de tal manera que el acceso

muestra diferentes vistas según el usuario y rol.

Administrador

Profesor

Estudiante

Contenido de la aplicación

Para acceder a Mashi Chat digitar la dirección de chat en la barra de direcciones del

navegador de su preferencia.

Figura 29. Navegadores compatibles

Page 77: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

63

APLICACIÓN COMO ADMINISTRADOR

El link para ingresar con perfil super administrador a la consola de configuración

de KEYCLOAK es el siguiente.

http://142.93.177.117:8180/auth/realms/master/protocol/openid-connect/auth?client_id=security-admin-console&redirect_uri=http%3A%2F%2F142.93.177.117%3A8180%2Fauth%2Fadmin%2Fmaster%2Fconsole%2F%23%2Frealms%2Fmashichat%2Fusers%2F279232c5-0449-49a1-97bf-be4a80985aab%2Fuser-credentials&state=f6b22dfb-2c7d-440a-851f-5de982163ae8&response_mode=fragment&response_type=code&scope=openid&nonce=f56d5752-ebb8-44a5-9dbe-442f665f37f6

Se mostrará la pantalla de Log in, en la cual se debe ingresar las credenciales solicitadas

dentro de los campos correspondientes.

Usuario: admin

Contraseña: admin.

Dar clic en Log in

Figura 30. Vista de login para acceder a la configuración de KEYCLOAK.

A continuación, se desplegará la pantalla de configuración de KEYCLOAK, aquí se

configura lo siguiente:

Opción, Realm settings:

Configuraciones generales de parámetros de front-end de la aplicación como:

Name: Maschichat, es un campo obligatorio que se debe setear.

Page 78: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

64

Display name: Mashi Chat, es el título de nombre que aparece en el inicio

de la aplicación.

Figura 31. Vista de configuración del REALM (reino) Mashi Chat.

Opción, Clients:

Se configura los usuarios y su forma de autenticación, para los distintos servicios

al que va a acceder.

Figura 32. Vista de configuración de clientes del reino Mashi Chat.

Opción, Roles:

Se configura los distintos roles que se requiere para administrar el acceso a la

funcionalidad del sistema. Para nuestro Mashi Chat se ha configurado tres roles:

Page 79: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

65

1. Administrador, el rol que tiene los privilegios para agregar o quitar, usuarios,

2. Profesor, rol que permite administrar el estado de sus estudiantes que tiene a

cargo.

3. Estudiante, este rol permite el acceso a los estudiantes a la aplicación Mashi Chat,

puede realizar mediante el registro de nombre de usuario y contraseña o a su vez

puede usar su cuenta de Twitter para registrarse y poder interactuar con Mashi

Chat.

Figura 33. Vista de configuración de roles del reino Mashi Chat.

Opción, Identity Providers:

En este apartado se configura los proveedores de autenticación, para Mashi Chat

se ha configurado Twitter.

Figura 34. Vista de configuración para registrarse con Twitter.

Page 80: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

66

Opción Users:

En este apartado se puede agregar usuarios como super-administrador. Aquí se

puede visualizar todos los usuarios que van registrándose en la aplicación

Figura 35. Vista de configuración de usuarios del reino Mashi Chat

Page 81: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

67

APLICACIÓN PARA EL USUARIO FINAL

El link para Ingresar a la aplicación es el siguiente:

http://142.93.177.117:8180/auth/realms/mashichat/protocol/openid-connect/auth?client_id=mashichat&redirect_uri=http%3A%2F%2F142.93.177.117%2F%23%2Fchat&state=0dde1b57-206f-4faa-8bc2-12e1b759ba84&response_mode=fragment&response_type=code&scope=openid&nonce=e6d0513e-9f0a-40be-8768-61e8e16b6a74

Se mostrará la pantalla de Log in, en la cual se debe ingresar las credenciales solicitadas

dentro de los campos correspondientes.

Usuario: [email protected]

Contraseña: test

Figura 36. Vista de login para acceder a la aplicación Mashi Chat.

Muestra dos alternativas para login que son las siguientes:

1. Ingresar las credenciales previamente registradas por el profesor.

2. Registrarse mediante una cuenta de Twitter.

Vista de las opciones de PROFESOR

Page 82: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

68

Figura 37. Vista de rol profesor.

En la opción Mis Estudiantes, puede agregar estudiantes dando clic en la opción más

(+) ubicado en la parte superior de la vista. Esta es la vista donde se agrega un estudiante,

debe ingresar los tres campos que son obligatorios, la fotografía es opcional.

Figura 38. Vista de rol estudiante.

En la opción Chat, tiene la posibilidad de acceder al chat para entrenar a Mashi Bot. Se

despliega una lista de temas en el cual puede entrenar o simplemente chatear. En la parte

inferior dispone un cuadro de texto para digitar e interactuar con Mashi Bot.

Page 83: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

69

Figura 39. Vista del chatbot con los temas rol profesor

En la opción Mi perfil, puede revisar los detalles de su perfil y además se puede agregar

una fotografía. Se puede visualizar los detalles del profesor, datos personales y el rol.

Figura 40. Vista del chatbot.

La opción Cerrar sesión, permite salir de la sesión actual.

Page 84: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

70

REGISTRARSE EN MASHI CHAT CON TWITTER

Seleccionar la opción de Twitter en la parte derecha de la vista de login de Mashi Chat.

Una vez que selecciona se redirige a la página de Autorización de la cuenta para

registrarse, debe ingresar las credenciales, usuario y clave de Twitter para permitir.

Figura 41. Vista de autorización de Twitter para registrarse en Mashi Chat.

Luego de permitir el uso de la cuenta de Twitter se redirige a la vista de registro de usuario

en Mashi Chat, donde se ingresa información adicional como: email, lastname. Puede

modificar el nombre de usuario. Una vez lleno la información clic en SUBMIT para

finalizar el registro.

Figura 42. Vista de verificación de la información de registro en Mashi Chat.

Page 85: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

71

VISTA DEL ESTUDIANTE

Ingresar con las credenciales correspondientes del usuario estudiante, para este ejemplo

se usa la cuenta de Olger, usuario: [email protected] clave: [email protected]

Opción, Chat: Una vez ingresado se muestra esta vista, donde puede seleccionar el tema

y poder chatear.

Figura 43. Vista de Chatbot y temas.

Opción, Mi Perfil: En este apartado se muestra la información del estudiante.

Figura 44. Vista de perfil de rol estudiante.

Opción, Cerrar sesión: Está opción permite cerrar la sesión actual.

Page 86: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

72

VISTA DE ADMINISTRADOR

Ingresar con las credenciales correspondientes del usuario administrador, para este

ejemplo se usa la cuenta de admin, usuario: [email protected] clave: admin

Opción Usuarios: Una vez ingresado como administrador se visualiza la siguiente vista.

En esta vista puede visualizar todos los usuarios con sus respectivos roles, si necesita

cambiar de rol en esta vista es posible realizar el cambio.

Figura 45. Vista de rol administrador.

Opción, Mi Perfil: En esta opción visualiza toda la información del usuario

administrador.

Figura 46. Vista de perfil del administrador.

Opción, Cerrar Cesión: Esta opción permite cerrar la sesión actual.

Page 87: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

73

ANEXO 2: ACTA DE ENTREGA

Page 88: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

74

ANEXO 3: CERTIFICACIÓN DEL RESUMEN EN INGLÉS

ANEXO 4: VISTAS DEL CHATBOT EN LOS NAVEGADORES.

Navegador Google Chrome

Del lado del administrador

Figura 47. Vista administración del reino Mashi Chat en Google Chrome.

Del lado del usuario final

Figura 48. Vista de login a Mashi Chat en Google Chrome.

Page 89: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

75

Navegador Firefox

Del lado del administrador

Figura 49. Vista administración del reino Mashi Chat en Firefox.

Del lado del usuario final

Figura 50. Vista de login a Mashi Chat en Firefox.

Page 90: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

76

Navegador Internet Explorer

Del lado del administrador

Figura 51. Vista administración del reino Mashi Chat en Interner Explorer.

Del lado del usuario final

Figura 52. Vista de login a Mashi Chat en Internet Explorer.

Page 91: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE …se puede aprender números, colores, alfabeto, saludos, frutas y animales. Un vocabulario básico.Para lograr lo anteriormente descrito

77

Dispositivos Móviles

Del lado del administrador

Figura 53. Vista administración del reino Mashi Chat en dispositivo móvil.

Del lado del usuario final

Figura 54. Vista de login a Mashi Chat en dispositivo móvil.