Arquitectura de Software para Análisis de Textos Utilizando Inteligencia Artificial

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 107

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA

Peumo Repositorio Digital USM https://repositorio.usm.cl


Tesis USM TESIS de Pregrado de acceso ABIERTO

2021-03

ARQUITECTURA DE SOFTWARE
PARA ANÁLISIS DE TEXTOS
UTILIZANDO INTELIGENCIA ARTIFICIAL

VALENZUELA ALBORNOZ, IGNACIO RODRIGO

https://hdl.handle.net/11673/50449
Downloaded de Peumo Repositorio Digital USM, UNIVERSIDAD TECNICA FEDERICO SANTA MARIA
UNIVERSIDAD TÉCNICA FEDERICO SANTA MARÍA
DEPARTAMENTO DE INFORMÁTICA
VALPARAÍSO - CHILE

“ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE


TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL”

IGNACIO RODRIGO VALENZUELA ALBORNOZ

MEMORIA PARA OPTAR AL TÍTULO DE


INGENIERO CIVIL EN INFORMÁTICA

Profesor Guía: CECILIA REYES COVARRUBIAS


Profesor Correferente: HUMBERTO LOBOS SUCARRAT

Marzo - 2021
DEDICATORIA

Dedico este trabajo a mi madre, padre y hermana, quienes han sido los pilares durante mi
vida y han definido la persona que soy.

Además, dedico este trabajo a mi primo Fabián por su ejemplo de vida y por su compañía
durante muchos años, y a mi o Marcos por su apoyo incondicional y considerarme un hijo
más. Sé que hubieran estado orgullosos de mí con este logro.

ii
AGRADECIMIENTOS

Agradezco infinitamente a mi núcleo familiar. A mi madre por su cariño y apoyo incondicio-


nal, a mi padre por los consejos y siempre considerarme el mejor en todo, y a mi hermana
por su sinceridad y preocupación.

Agradezco a mis os y primos de quienes tengo hermosos recuerdos y nuevos por construir.
Me transmi eron una importancia considerable respecto al concepto de familia.

Agradezco a mis amigos de colegio, con quienes tras egresar, nos seguimos reuniendo. Gra-
cias por su amistad, apoyo y mantener la amistad, aunque la universidad me alejase de las
reuniones más recurrentes con ustedes.

Agradezco a la gran can dad de amigos (de diversas carreras) que hice en la universidad.
Conocer una variedad de gente dis nta hizo el transcurso por los años de universidad muy
entretenidos, y conocer diversos puntos de vista que influyeron en mi forma de ver la vida.

Agradezco a Gonzalo Tello e Ítalo, por su amistad, a pesar de que fuimos por diferentes ca-
minos académicos y hemos estado siempre uno para el otro.

Agradezco a Sebas án Gallardo, Gerardo Neumann, Macarena Andrade y Bas án Quezada,


con los cuales formamos un gran equipo en la Feria del So ware, donde la pasamos bien y
crecimos como personas.

Agradezco a Gonzalo Valenzuela por aceptarme en su vivienda por 2 años, ayudarme en


adaptarme en la vida en San ago y aguantar la insistencia de solicitar comida a domicilio.

Agradezco a la profesora Cecilia Reyes por su pedagogía que me marcó mucho durante el
transcurso de la carrera, también la voluntad de par cipar en este trabajo de tulo. También
agradezco a Humberto Lobos por confiar en mis capacidades y darme todas las herramientas
necesarias para realizar un buen trabajo de tulo.

Agradezco a la empresa QServus por permi rme realizar este trabajo con ellos, y a todos los
trabajadores que siempre me ayudaron cuando solicité ayuda.

Finalmente, agradezco a Susana Fernández por su presencia, amor, apoyo y siempre mos-
trarme que soy capaz de muchas cosas.

iii
RESUMEN

Resumen— Las respuestas de texto en una encuesta son una de las fuentes más complejas
de analizar y automa zar, ya que los computadores no comprenden de forma directa el
lenguaje y su contexto. La empresa chilena QServus está consciente de esta problemá ca
y encuentra en los algoritmos de inteligencia ar ficial el camino correcto para lograrlo. En
este trabajo se enfrentan dos problemas en este aspecto, que son el análisis de sen miento
y la categorización de textos. Se desarrollarán los algoritmos de aprendizaje automá co que
resolverán esos problemas y se implementarán en una API que se encargará de producir los
análisis e indicadores para que las aplicaciones de QServus puedan acceder a ellas de forma
fácil y simple. Se logra implementar la API siguiendo un diseño ordenado y estandarizado,
se prueban de forma sa sfactoria ambos modelos de sen miento y categoría y se crean 6
nuevos pos de indicadores para la plataforma.

Palabras Clave— Aprendizaje Automá co, REST API, Análisis de Sen miento, Categorización
de Texto, Indicadores.

ABSTRACT

Abstract— Text answers in a survey are one of the most complex sources to analyse
and automa ze, because computers can’t comprehend in a direct way the language and
their context. The chilean company QServus is aware about this problem and believes
that the ar ficial inteligence algorithms are the apropiate choice to achieve this goal. In
this work we face two main problems in this field which are sen ment analysis and text
categoriza on. We will develop machine learning algorithms will solve this problems and
will be implemented into an API that will be responsible to produce all the analysis and
different indicators (charts), with the inten on to differents applica ons of QServus can
access to all of that in a easy and simple way. We implemented the API following all the
standard and proper so ware design, we tested with good results both models of sen ment
and category. Also, we created six new types of indicators for the pla orm.

Keywords— Machine Learning, REST API, Sen ment Analysis, Text Categoriza on, Indica-
tors.

iv
GLOSARIO
ANN: Ar ficial Neural Network
Un modelo de aprendizaje supervisado inspirado en su homólogo biológico.
API: Aplica on Programming Interface
Diseño de so ware para la comunicación entre varios intermediarios de so ware.
BPTT: Back-propaga on through me
Es el algoritmo de entrenamiento y aprendizaje para las redes neuronales recurrentes.
HTTP: Hypertext Transfer Protocol
Es un protocolo para la transmisión de documentos de hypermedia.
IDF: Inverse Document Frequency
Métrica que define la frecuencia de palabras respecto a la can dad de documentos que
aparece.
JSON: JavaScript Object Nota on
Es un formato de datos intercambiables muy liviano.
LSTM: Long short-term memory
Es una estructura mejorada de las redes neuronales recurrentes.
NLP: Natural Language Processing
Área del lenguaje e informá ca que se centra en la comunicación entre máquinas y el
lenguaje humano.
NPS: Net Promoter Score
Métrica que representa el porcentaje de usuarios que recomiendan un producto o
servicio.
ReLU: Rec fied Linear Unit
Función de ac vación que considera solo salidas posi vas, dejando en cero las nega vas.
REST: Representa onal State Transfer
Estándar de diseño de so ware para aplicaciones que se comunican con múl ples
servicios web.
TF: Term Frequency
Métrica que representa la frecuencia de una palabra en un documento.
URI: Uniform Resource Iden fier
Es un iden ficador único usado por aplicaciones web.

v
ÍNDICE DE CONTENIDOS

RESUMEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IV

ABSTRACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IV

GLOSARIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V

ÍNDICE DE FIGURAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IX

ÍNDICE DE TABLAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XI

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

CAPÍTULO 1: DEFINICIÓN DEL PROBLEMA . . . . . . . . . . . . . . . . . . 3


1.1 ANTECEDENTES DEL PROBLEMA . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 DEFINICIÓN DEL PROBLEMA . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 CONTEXTUALIZACIÓN DEL PROBLEMA . . . . . . . . . . . . . . . . . . . . . . 5
1.4 OBJETIVOS DE LA MEMORIA . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4.1 OBJETIVO GENERAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4.2 OBJETIVOS ESPECÍFICOS . . . . . . . . . . . . . . . . . . . . . . . . . . 5

CAPÍTULO 2: MARCO CONCEPTUAL . . . . . . . . . . . . . . . . . . . . . . 6


2.1 REST API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 NET PROMOTER SCORE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3 PROCESAMIENTO DE LENGUAJE NATURAL . . . . . . . . . . . . . . . . . . . . 10
2.3.1 REPRESENTACIÓN DE TEXTO . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3.2 TF-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4 DEEP LEARNING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4.1 REDES NEURONALES FEEDFORWARD . . . . . . . . . . . . . . . . . . . 15
2.4.2 REDES NEURONALES RECURRENTES . . . . . . . . . . . . . . . . . . . . 19
2.4.3 LONG-SHORT TERM MEMORY . . . . . . . . . . . . . . . . . . . . . . . 20
2.4.4 GATED RECURRENT UNIT . . . . . . . . . . . . . . . . . . . . . . . . . 22

CAPÍTULO 3: PROPUESTA DE SOLUCIÓN . . . . . . . . . . . . . . . . . . . 25


3.1 PREPROCESAMIENTO DE TEXTO . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.1.1 CORRECCIONES ORTOGRÁFICAS . . . . . . . . . . . . . . . . . . . . . . 25
3.1.2 STOPWORDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.1.3 LEMATIZACIÓN Y STEMMING . . . . . . . . . . . . . . . . . . . . . . . 27
3.2 ANÁLISIS DE SENTIMIENTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2.1 NPS COMO ETIQUETA DE DATOS . . . . . . . . . . . . . . . . . . . . . 28
3.2.2 DESCRIPCIÓN DE FUENTE DE DATOS . . . . . . . . . . . . . . . . . . . 29
3.2.3 ARQUITECTURA DE REDES NEURONALES . . . . . . . . . . . . . . . . . 30

vi
3.3 CATEGORIZACIÓN DE TEXTO . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.3.1 PROCESO DE CATEGORIZACIÓN DE TEXTO . . . . . . . . . . . . . . . . 32
3.3.2 PROCESO DE AGRUPACIÓN DE TEXTOS CATEGORIZADOS . . . . . . . . . 33
3.4 INDICADORES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.4.1 GRÁFICO DE BARRAS: RÁNKING POR CATEGORÍA . . . . . . . . . . . . . 36
3.4.2 GRÁFICO DE BARRAS: CATEGORÍA VS SENTIMIENTO . . . . . . . . . . . 36
3.4.3 NUBE DE PALABRAS MEJORADA . . . . . . . . . . . . . . . . . . . . . . 37
3.4.4 TREEMAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.4.5 GRÁFICO DE SATISFACCIÓN/SENTIMIENTO VS CATEGORÍA . . . . . . . . 39
3.4.6 TABLA DE COMENTARIOS . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.5 QSERVUS AI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.5.1 COMUNICACIÓN ENTRE APLICACIONES . . . . . . . . . . . . . . . . . . 43
3.5.2 MODELO DE DATOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.5.3 DEFINICIÓN DE ENDPOINTS . . . . . . . . . . . . . . . . . . . . . . . . 46

CAPÍTULO 4: VALIDACIÓN DE LA SOLUCIÓN . . . . . . . . . . . . . . . . . 47


4.1 ANÁLISIS DE SENTIMIENTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.1.1 FASE 1: EVALUACIÓN DE MODELOS . . . . . . . . . . . . . . . . . . . . 48
4.1.2 FASE 2: CROSS-VALIDATION . . . . . . . . . . . . . . . . . . . . . . . . 50
4.2 CATEGORIZACIÓN DE TEXTO . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.2.1 FUENTE DE DATOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.2.2 DISEÑO MODELO DE CATEGORÍAS . . . . . . . . . . . . . . . . . . . . . 55
4.3 INDICADORES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.3.1 GRÁFICO DE BARRAS: RÁNKING POR CATEGORÍA . . . . . . . . . . . . . 59
4.3.2 GRÁFICO DE BARRAS: CATEGORÍA VS SENTIMIENTO . . . . . . . . . . . 60
4.3.3 NUBE DE PALABRAS MEJORADA . . . . . . . . . . . . . . . . . . . . . . 61
4.3.4 TREEMAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.3.5 GRÁFICO DE RECOMENDACIÓN/SENTIMIENTO VS CATEGORÍA . . . . . . 64
4.3.6 TABLA DE COMENTARIOS . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.4 QSERVUS AI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.4.1 CATEGORIZACIÓN DE DATOS . . . . . . . . . . . . . . . . . . . . . . . . 69
4.4.2 AGRUPACIÓN DE TEXTOS . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.4.3 GRÁFICO DE RANKING DE CATEGORÍAS . . . . . . . . . . . . . . . . . . 71
4.4.4 GRÁFICO DE NUBE MEJORADA . . . . . . . . . . . . . . . . . . . . . . 72
4.4.5 GRÁFICO DE BARRA: SENTIMIENTO POR CATEGORÍA . . . . . . . . . . . 73
4.4.6 GRÁFICO DE TREEMAP . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.4.7 GRÁFICO DE TABLA DE COMENTARIOS . . . . . . . . . . . . . . . . . . 76
4.4.8 GRÁFICO DE BURBUJA . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

CAPÍTULO 5: CONCLUSIONES . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.1 APRENDIZAJE DEL TRABAJO REALIZADO . . . . . . . . . . . . . . . . . . . . . 80
5.2 CUMPLIMIENTO DE OBJETIVOS . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.3 TRABAJO A FUTURO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.4 REFLEXIONES PERSONALES . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

vii
REFERENCIAS BIBLIOGRÁFICAS . . . . . . . . . . . . . . . . . . . . . . . . . 84

ANEXOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

6 DEFINICIÓN DE ENDPOINTS . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.1 ENCUESTAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.2 PREGUNTAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.3 RESPUESTAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.4 MODELO DE CATEGORIZACIÓN . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.4.1 LEER KEYWORD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.4.2 CREAR KEYWORDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.5 ANÁLISIS DE TEXTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.6 AGRUPACIÓN DE TEXTOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6.7 GRÁFICO RANKING POR CATEGORÍA . . . . . . . . . . . . . . . . . . . . . . . 91
6.8 GRÁFICO CATEGORÍA VS SENTIMIENTO . . . . . . . . . . . . . . . . . . . . . 92
6.9 NUBE DE PALABRAS MEJORADA . . . . . . . . . . . . . . . . . . . . . . . . . 92
6.10 TREEMAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.11 GRÁFICO SATISFACCIÓN VS CATEGORÍA . . . . . . . . . . . . . . . . . . . . . 94
6.12 TABLA DE COMENTARIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

viii
ÍNDICE DE FIGURAS

1 Esquema de tres pasos de QServus. . . . . . . . . . . . . . . . . . . . . . . . 4

2 Esquema simple del funcionamiento de una REST API. Fuente:


h ps://medium.com/faun/consuming-rest-apis-with-python-eb86c6b724c5 . . 8

3 Diversas aplicaciones del procesamiento de lenguaje natural. Fuente:


[h ps://medium.com/greyatom/introduc on-to-natural-language-
processing-78baac3c602b] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4 Representación gráfica de una red neuronal feedforward. Fuente: [Géron, 2019] 17

5 Representación gráfica de una red neuronal recurrente. Fuente: [Géron, 2019] 19

6 Radiogra a de una LSTM. Fuente:


[https://medium.com/@saurabh.rathor092/
simple-rnn-vs-gru-vs-lstm-difference-lies-in-more-flexible-control-5f33e07b1e57] 21

7 Radiogra a de una GRU. Fuente:


[https://towardsdatascience.com/understanding-gru-networks-2ef37df6c9be] 23

8 Ejemplos de palabras que son consideradas stopwords. . . . . . . . . . . . . . 27

9 Palabras más frecuentes de nuestro conjunto de datos. . . . . . . . . . . . . . 30

10 Gráfico de barras implementado en QServus, u lizando una pregunta de po


Sí/No. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

11 Gráfico de torta implementado en QServus, indicando el porcentaje de


personas que u lizan un medio u otro. . . . . . . . . . . . . . . . . . . . . . . 35

12 Gráfico de nube de palabras implementado en QServus. Corresponde a una


pregunta de jus ficación general sobre la sa sfacción del servicio. . . . . . . . 35

13 Compara va entre unigramas y bigramas, y cómo estas úl mas nos entregan


más información. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

14 Modelo de datos con que la API trabajará para el análisis CRUD de sus recursos. 45

15 Función de accuracy a la izquierda y la función de pérdida a la derecha, para


el modelo u lizando LSTM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

16 Función de accuracy a la izquierda y la función de pérdida a la derecha, para


el modelo u lizando GRU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

ix
17 Matrices de confusión para el modelo con LSTM (izquierda) y para el modelo
usando GRU (derecha). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

18 Resultados para el modelo LSTM. En la columna izquierda los resultados de


entrenamiento y la columna derecha los de pruebas. La primera fila consiste
en la métrica del accuracy y le fila inferior a la función de pérdida. . . . . . . . 51

19 Resultados para el modelo GRU. En la columna izquierda los resultados de


entrenamiento y la columna derecha los de pruebas. La primera fila consiste
en la métrica del accuracy y le fila inferior a la función de pérdida. . . . . . . . 52

20 Matriz de confusión del modelo LSTM con el cuarto ordenamiento del


conjunto de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

21 Ejemplo del gráfico, que muestra la frecuencia para cada categoría. . . . . . . 59

22 Ejemplo de gráfico, que presenta los sen mientos de cinco categorías. . . . . . 60

23 Formato del tool p para cada barra, indicando las can dades para cada
sen miento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

24 Ejemplo de gráfico que muestra los unigramas y bigramas más frecuentes. . . . 62

25 Ejemplo de gráfico de treemap representando las categorías, su color y


porcentaje respecto al total de respuestas. . . . . . . . . . . . . . . . . . . . . 63

26 Ejemplo de gráfico de treemap cuando hacemos click en la categoría de


calidad del personal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

27 Formato del tool p que, además del porcentaje, indica la frecuencia para la
categoría o keyword, en este caso, una palabra clave para la categoría
Infraestructura. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

28 Ejemplo de gráfico de sen miento vs categoría, donde cada burbuja


representa la información completa de cada categoría. . . . . . . . . . . . . . 65

29 Formato del tool p al colocar el mouse encima de una porción de borde,


indicando el porcentaje de comentarios posi vos. . . . . . . . . . . . . . . . . 66

30 Tabla de comentarios, mostrando las respuestas, su categoría y frecuencia. . . 67

31 Gráfico de ranking de categorías. . . . . . . . . . . . . . . . . . . . . . . . . . 72

32 Gráfico de nube mejorada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

33 Gráfico de barras: sen miento por categoría. . . . . . . . . . . . . . . . . . . 74

x
34 Gráfico treemap de las respuestas. . . . . . . . . . . . . . . . . . . . . . . . . 75

35 Desglose de la categoría sistemas. . . . . . . . . . . . . . . . . . . . . . . . . 76

36 Vista sin desglosar de la tabla con las categorías encontradas. . . . . . . . . . . 77

37 Desglose de la categoría apoyo. . . . . . . . . . . . . . . . . . . . . . . . . . . 77

38 Desglose de la categoría horario. . . . . . . . . . . . . . . . . . . . . . . . . . 78

39 Gráfico de burbujas de las respuestas. . . . . . . . . . . . . . . . . . . . . . . 79

ÍNDICE DE TABLAS

1 Tabla compara va entre ambas técnicas de obtención de palabras raíz. . . . . . 27

2 Transformación u lizada para obtener la e queta deseada. . . . . . . . . . . . 29

3 Tabla de resumen de los datos a entrenar. . . . . . . . . . . . . . . . . . . . . 29

4 Tabla de resumen de los datos a entrenar. . . . . . . . . . . . . . . . . . . . . 30

5 Métricas de evaluación para el modelo con unidades LSTM. . . . . . . . . . . . 49

6 Métricas de evaluación para el modelo con unidades GRU. . . . . . . . . . . . 50

7 Métricas de evaluación para el modelo con unidades GRU. . . . . . . . . . . . 53

8 Desempeño de la red neuronal recurrente con respuestas de diversas encuestas. 54

9 Descripción cuan ta va de las encuestas donde se realizará la categorización


de texto con el modelo de categorización de teletrabajo. . . . . . . . . . . . . 55

10 Detalle cuan ta vo sobre las respuestas y sus e quetas. . . . . . . . . . . . . 57

11 Detalle cuan ta vo sobre las respuestas y sus e quetas. . . . . . . . . . . . . 58

12 Detalle cuan ta vo sobre las respuestas y sus e quetas. . . . . . . . . . . . . 74

xi
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

INTRODUCCIÓN

En la actualidad la totalidad de las empresas (de pequeñas a grandes) enen como obje vo
principal mejorar sus productos o servicios; por una parte para lograr una mejor retribución
económica directa como también para poseer la sa sfacción y lealtad de sus clientes. Ya
que los clientes son la carta fundamental para obtener los factores de mejora, es necesario
escuchar sus opiniones tanto de cómo la empresa está entregando sus servicios, y cómo los
aprecian en contraste con empresas de la competencia.

QServus, una empresa chilena que busca fomentar la calidad de servicio y la felicidad de
las personas, detectó esta necesidad, por lo que desarrolló una herramienta que permite a
cualquier empresa obtener feedback de sus clientes, a través de la creación de encuestas
con variedad de pos de preguntas y métodos de distribución, con métricas provenientes
de información analizada en empo real y representadas en gráficos intui vos para la mejor
detección de los focos de acción.

Tras años ayudando a empresas en este obje vo, QServus detectó el potencial que conlleva
analizar las preguntas de texto abierto, ya que permiten a los clientes detallar de mejor forma
sus crí cas y necesidades. La complicación recae en realizar el análisis de forma automá ca,
ya que se presentan de forma no estructurada y no e quetadas, lo que dificulta entregar
información más allá de frecuencias o detección de palabras claves.

Considerando el panorama anterior, QServus ha decidido aprovechar esta oportunidad para


construir la API de inteligencia ar ficial de la empresa, comenzando con análisis de sen -
miento y la categorización de comentarios que, a opinión de sus clientes, es la necesidad
más ú l para ellos.

En este trabajo se abordarán estos desa os a través de la construcción de una API que lo-
gre comunicarse con las aplicaciones de QServus, y que pueda ofrecer funcionalidades de
análisis de texto como análisis de sen miento y categorización de texto. Además de estas
tareas, se debe inves gar nuevos pos de indicadores que logren mostrar esta información
de forma clara e intui va.

En el presente documento, se entrega el desarrollo de este trabajo de tulo, organizado de


la siguiente forma:

1. Definición de problema: Se entregan antecedentes históricos de la problemá ca an-


tes de definirla. Se explica qué es QServus y cómo busca solucionar la problemá ca.
Finalmente se presenta los obje vos de este trabajo.

2. Marco conceptual: Se definen todos los conceptos necesarios para tener una com-
prensión base respecto al trabajo realizado en la memoria.

3. Propuesta de solución: Se define el contexto de implementación de la solución para

Página 1 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

posteriormente explicar cómo será realizado, considerando su diseño, construcción de


modelos e indicadores y los criterios de aceptación para cada uno de ellos.

4. Validación de la solución: Se presentan los resultados de las métricas de los algoritmos


de análisis de textos e indicadores. También, se muestra cómo es la implementación
de la API y su correcto funcionamiento.

5. Conclusiones: Se detalla el aprendizaje obtenido al realizar el trabajo, el cumplimien-


to de los obje vos definidos en la fase inicial y, finalmente, se plantean los desa os
futuros para este trabajo.

Página 2 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

CAPÍTULO 1
DEFINICIÓN DEL PROBLEMA

1.1. ANTECEDENTES DEL PROBLEMA

Durante la primera mitad del siglo XX dominó una economía basada en la industria, don-
de las empresas establecían sus estándares de calidad para construir sus productos, lo que
desembocó en un sello de iden dad que les representaba en el mundo. Sobre todo con la re-
volución industrial, la producción en masa hizo que los productos fueran más accesibles para
los consumidores y así suplir la demanda existente. Con el pasar de los años esta tendencia
fue mermando hasta los años 90’, donde la era tecnológica comenzó a crecer fuertemente,
propiciando un cambio de paradigma gigantesco en la economía y en cómo las empresas
debieran producir.

Actualmente estamos en la era del consumidor la cual produjo cambios radicales. Los dos
cambios más importantes son el enfoque de la producción hacia el consumidor, es decir, los
intereses y gustos de estos influyen en lo que las empresas producen y no al revés, como
sucedía años atrás. El segundo es la transición de producto a servicio, debido a que el alcan-
ce de consumidores aumentó considerablemente gracias a la tecnología, que nos permite
alcanzar diversos rincones del planeta. Además, el sen do de servicio representa al consu-
midor una sa sfacción de comodidad y atención personalizada.

Gracias a este cambio, la atención al cliente se ha vuelto un factor diferenciador fundamental


en la industria, y allí el por qué las empresas buscan mejorar en ese aspecto. Una buena parte
de esto es que los mismos consumidores son la fuente de retroalimentación principal, ya que
son los que u lizan constantemente el servicio, logrando captar los problemas a mejorar; las
partes del servicio con buen desempeño o cuáles son las funcionalidades que más impactan
en los consumidores.

El problema que emerge es cómo las empresas pueden recopilar los datos principales para
obtener la información que ayude a mejorar su producto o servicio. La can dad de consu-
midores puede ser gigante, de diversos países, edades, intereses, necesidades, etc, lo que
dificulta segmentar e iden ficar los focos donde las empresas deben dar hincapié. Se pueden
realizar estudios o encuestas masivas lo cual puede ser muy costoso, sobre todo en peque-
ñas y medianas empresas. La empresa QServus iden ficó este problema y comenzó a realizar
acciones al respecto para ayudar a otras empresas a solventar este inconveniente.

QServus es una empresa chilena que ofrece un servicio para la mejora de calidad de servicio
de las empresas, u lizando encuestas de sa sfacción. Se basan en un principio de tres pasos:

Escuchar: Las encuestas son creadas y divulgadas. Además poseen un seguimiento de


las respuestas en empo real.

Página 3 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Analizar: Tras obntener los resultados de las encuestas, se analizan sus resultados para
entregar métricas, las cuales son representados en gráficos o indicadores, que es el
concepto que QServus las define.
Actuar: Tras el análisis, la plataforma ofrece diversas herramientas para actuar, tales
como contacto con correo electrónico, creación de bitácoras para hacer seguimiento
caso a caso, etc.

Figura 1: Esquema de tres pasos de QServus.

Las encuestas son personalizables y presentan una variedad de pos de preguntas, tales co-
mo numéricas, alterna vas, texto abierto, etc, lo que propicia una gran can dad de indica-
dores posibles para facilitar la lectura de las respuestas sin necesidad de realizar una revisión
manual.

1.2. DEFINICIÓN DEL PROBLEMA

Las respuestas numéricas son fácilmente tratables mediante indicadores como histogramas,
gráficos de torta, gráfico de cajas, etc, ya que son datos fijos e inclusive en la mayoría de los
casos, con un rango predefinido. El problema surge con el análisis de las respuestas de texto
abierto, las cuales son las que representan la información más importante.

Existen indicadores para el análisis de texto como nubes de palabras, extracción de conceptos
importantes, categorización, resumen formato tabla, entre otros, pero su generación auto-
má ca es bastante compleja debido a la extensión variable de respuestas, idioma u lizado,
faltas de ortogra a y el más importante, la iden ficación del contexto de las palabras lo que
implica un significado dis nto de una misma palabra en diferentes frases.

El fin de QServus es lograr dar información a empo real a las empresas para que puedan
tomar acción en cualquier momento, por lo que la búsqueda de un modelo automa zado
de análisis de texto es menester, ya que se podrá extraer toda esa información importan-
te de las respuestas de texto abierto que apuntan a problemas cruciales en el servicio. La

Página 4 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

implementación de lo anterior repercu rá inmediatamente en la rapidez de acción de las


empresas para la mejora con nua de su producto o servicio.

1.3. CONTEXTUALIZACIÓN DEL PROBLEMA

QServus actualmente no posee un mecanismo para realizar categorización de respuestas de


texto abierto. Generalmente, estas respuestas van precedidas por una nota NPS que indica
la sa sfacción del cliente respecto al aspecto que se está evaluando. Gracias a esta nota, se
puede inferir la intención de la respuesta, por lo que en la sección de newsfeed de la platafor-
ma se presenta la respuesta de este cliente con una imagen con color y rostro, expresando
si el cliente esta sa sfecho o insa sfecho. Lo anterior es una buena forma de representar las
respuestas de forma resumida, pero existe el problema donde las respuestas de texto abier-
to no parecen coincidir con la nota entregada, ya que a pesar de que se responda con una
nota máxima, la respuesta de texto puede aún incluir alguna crí ca. Por lo tanto, si la em-
presa quiere revisar los comentarios de una nota baja, se perderá esta crí ca ya que posee
una nota máxima.

1.4. OBJETIVOS DE LA MEMORIA

1.4.1. OBJETIVO GENERAL

Construir un so ware basado en inteligencia ar ficial que sea capaz de automa zar el pro-
cesamiento de texto abierto en las encuestas y ofrezca herramientas e indicadores, con el
fin de mejorar la calidad de servicio o producto de cualquier empresa.

1.4.2. OBJETIVOS ESPECÍFICOS

Desarrollo de modelos de redes neuronales para la predicción de sen mientos en las


respuestas de texto abierto.

Evaluar e implementar un modelo no supervisado para la categorización de texto.

Creación de indicadores adecuados para la representación correcta de los datos pro-


cesados, considerando categorías y sen mientos.

Creación de un so ware eficiente para el análisis y entrega de recursos, según las ne-
cesidades de la plataforma de QServus.

Página 5 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

CAPÍTULO 2
MARCO CONCEPTUAL

En este capítulo revisaremos los conceptos fundamentales que sustentan este trabajo, tanto
para su entendimiento general, como para el diseño, construcción y evaluación de la solu-
ción. Se definen conceptos básicos de procesamiento natural de texto, arquitectura de so -
ware y modelos de aprendizaje de máquinas con los cuales la solución será validada.

2.1. REST API

REST es un es lo de arquitectura de so ware que define un conjunto de restricciones para la


creación de servicios web, de tal forma de potenciar y asegurar la interoperabilidad entre los
sistemas a través de la web [Fielding, 2000]. Por otra parte, una API es una interfaz compu-
tacional que define las interacciones entre múl ples so wares. En conjunto, obtenemos un
sistema que permi rá el manejo de recursos de forma estructurada y de fácil intercambio.

La colección de restricciones que una REST API debe cumplir para su correcto uso son:

Arquitectura de cliente-servidor: Consiste en aislar los roles del cliente y servidor. Lo


anterior permite que puedan evolucionar de forma independiente, además que esta
separación permite que el servidor pueda adaptarse a diversas interfaces de usuario,
lo que potencia la portabilidad.

Ausencia de estados: El servidor no necesita almacenar información alguna sobre el


estado de la sesión del usuario. Toda la información necesaria estará incluida en cada
pe ción y no es necesaria información compar da entre pe ciones diferentes. Esto
potencia la simplicidad de las llamadas y que el estado de la sesión siga siendo mane-
jada desde el lado del cliente.

Manejo de caché: La REST API debe definir la presencia o ausencia de caché en las
pe ciones de diversos recursos, de tal forma de evitar datos erróneos o inapropiados
tras una consecusión de pe ciones.

Sistema en capas: Implica que el cliente no necesariamente puede decir si la conexión


al recurso se hace directamente al servidor o hay más intermediarios en la consulta. El
servidor es capaz de realizar las pe ciones correctamente sin importar si hay una capa
superior de seguridad, un proxy o alguna otra en dad.

Interfaz uniforme: Una restricción fundamental que ayuda a simplificar y desacoplar


la arquitectura. Las tres restricciones de interfaz son:

Página 6 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

• Iden ficación de recursos en consulta: Se debe iden ficar de forma clara en la


pe ción el recurso, por ejemplo, en una URI.
• Manipulación de recursos: Cuando el cliente man ene una representación del
recurso, ene información necesaria para modificar o eliminar el estado de este.
• Mensajes claros y explica vos: Cada pe ción a un recurso incluye un mensaje
con la información necesaria para procesar la respuesta. Esto incluye, además
del mensaje, un estado de respuesta HTTP, por ejemplo.

Para apoyar la restricción de iden ficación de recursos en consulta, se u liza una URI, especí-
ficamente una URL. Este debe poseer el dominio con el cual será iden ficada la API seguido
de un iden ficador del recurso. Para apoyar su simplicidad, las URIs deben poseer una jerar-
quía clara, ser únicas, los nombres de los recursos no deben ser verbos y no se deben incluir
filtros de información en ellas.

La razón del porqué los recursos definidos en la URI no deben ser verbos, es debido a que
la acción se define mediante los verbos que nos ofrece el protocolo HTTP, donde los más
u lizados son:

GET: Para consultar y leer recursos.

POST: Para la creación de un recurso.

PUT: Para la edición de recursos.

DELETE: Para la eliminación de un recurso.

PATCH: Para la edición parcial de un recurso.

Por úl mo, al realizar una acción a un recurso específico se deben respetar ciertas condicio-
nes para que esta acción sea aceptada o rechazada. Es importante que la REST API se asegure
de cumplirlas y siempre debe no ficar al cliente si la acción fue realizada correctamente y, en
caso contrario, detallar la causa del error para que el cliente pueda corregir la consulta. Para
este fin, se u lizan los códigos de estado que ofrece el protocolo HTTP, los cuales se dividen
en 5 niveles y cada uno con un código que detalla e iden fica el estado de la respuesta. Los
niveles son:

100: Son estados que van informando al navegador los pasos o casos que debe ir con-
siderando al enviar las pe ciones.

200: Estos estados confirman la ejecución correcta en un recurso, detallando la acción


que se realizó en el servidor.

300: Estados que indican al navegador que debe realizar acciones adicionales para la
obtención del recurso.

Página 7 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

400: Estados que indican un error por parte del cliente. Detallan el po de error para
que el cliente pueda corregir la pe ción y realizarla nuevamente.

500: Estados que indican un error por parte del servidor. Son producidos cuando el
servidor no puede procesar de forma correcta la pe ción a pesar de poseer una es-
tructura aparentemente correcta.

Figura 2: Esquema simple del funcionamiento de una REST API. Fuente:


h ps://medium.com/faun/consuming-rest-apis-with-python-eb86c6b724c5

En conclusión, como se ve en la Figura 2, las REST API se basan principalmente en iden ficar
sus recursos mediante una URI, luego se define la acción sobre este recurso gracias a los
verbos HTTP y finalmente se retorna un código de estado al cliente para no ficar el resultado
de la pe ción, completando así el ciclo.

2.2. NET PROMOTER SCORE

El Net Promoter Score (NPS) es una herramienta que buscar medir la lealtad de los clientes
de una empresa basado en las recomendaciones de éstos [Reichheld, 2003]. Consiste en una
pregunta de po ”¿Cuán probable es que recomiende el producto o servicio a un familiar
o amigo?” o ”¿Cómo fue el servicio/producto ofrecido por la empresa?”, donde se puede
responder en un rango de 0 a 10, donde 0 implica ”Totalmente no lo recomiendo” y un 10
que es ”Lo recomiendo totalmente”. Según este resultado, los clientes son clasificados como:

Promotores: Si entregan una nota 10 o 9

Pasivos: Si entregan una nota 8 o 7

Página 8 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Detractores: Si entregan una nota menor a 7

El cálculo del NPS consiste en considerar principalmente a los promotores y detractores con
su proporción respecto al total de encuestados. Para obtener esta métrica se debe seguir la
siguiente fórmula:
N P S = (P − D) ∗ 100 (1)

Esto representa un porcentaje que va desde un rango de -100 (todos son detractores) a 100
(todos son promotores).

Generalmente cuando se realizan las encuestas, uno quiere saber la opinión de la mayor
can dad de clientes posibles. Lo anterior no siempre se logra debido al gran trabajo que
implica encuestar a todos los clientes, además de posibles consumidores que no contesten
una encuesta entregada. Es por esto que el valor NPS puede no ser real si es que se calcula
con una can dad parcial de respuestas. Con la ayuda del error muestral, podemos definir qué
tan real es el valor calculado del NPS para así poder usarlo con confianza para otros fines.

Para obtener el error muestral se requiere contar con la desviación estándar de las respues-
tas, la cual se calcula con la siguiente fórmula:


σ̂ = (1 − N P Se )2 ∗ P + N P Se2 ∗ N + (−1 − N P Se )2 ∗ D (2)

donde N es la proporción de pasivos en las respuestas y N P Se es el NPS es mado. Si no


se quiere considerar los pasivos se debe quitar su parte en la ecuación. Con la desviación
estándar muestral calculada, podemos u lizar su valor para calcular el error muestral como
se muestra en la siguiente fórmula:

σ̂
z α2 ∗ √ (3)
n

Donde n es la can dad de respuestas y z α2 es la desviación estándar de una distribución


normal estándar relacionada al grado de confiabilidad α. Si α = 0.1, tendremos un grado de
confiabilidad del 95 %, por lo que el valor real del NPS se encontrará dentro del rango:

σ̂ σ̂
[N P Se − z α2 ∗ √ , N P Se + z α2 ∗ √ ] (4)
n n

En términos generales, una diferencia del 5 % entre el error muestral y real se considera
suficiente, pero mientras menor sea, mejor. Al obtener valores de NPS más cercanos al real,
podemos u lizarlos sin temor a que un gran error muestral se propague a los modelos y las
e quetas de los datos de entrenamiento.

Página 9 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

2.3. PROCESAMIENTO DE LENGUAJE NATURAL

El procesamiento de lenguaje natural es una gama de técnicas computacionales para analizar


y representar ocurrencias naturales de texto en uno o más niveles de análisis lingüís cos,
con el propósito de conseguir un procesamiento de lenguaje humano en diversas tareas o
aplicaciones [Liddy, 2001]. ¿Qué aspectos alberga esta definición?:

La gama de técnicas computacionales puede ser una definición imprecisa, pero es necesaria
debido a la gran can dad de técnicas para abarcar un solo problema o varios de ellos dentro
del campo del lenguaje.

Ocurrencias naturales de texto ya que no necesariamente ene que ser escrito; puede ser
hablado, de diversos idiomas o dialectos pues el lenguaje a través de la historia evoluciona
enormemente.

Niveles de análisis lingüís cos ya que obteniendo control de estos niveles, el sistema de NLP
podrá obtener un mejor desempeño en el lenguaje. Estos niveles se componen de:

Fonología: Se centra en la interpretación de los sonidos entre y a través de las palabras.


Dentro de esta se encuentran tres reglas:

• Foné ca: En los sonidos entre palabras.


• Fonémica: En las variaciones de pronunciaciones cuando las palabras son habla-
das juntas.
• Prosódica: Por la fluctuación y acentuación en la entonación a través de una sen-
tencia.

Este nivel es importante cuando se quiere hacer una transcripción de voz a texto ya
que en un mismo lenguaje hay diversos acentos que poseen reglas diferentes.

Léxica: En este nivel se interpreta el significado de las palabras por si solas, es decir, de
diccionario. Un ejemplo, se analiza el significado de la palabra ’merienda’, que significa
un alimento ligero. En este nivel surge una herramienta denominada ’part-of-speech’,
o ’categoría grama cal’ en español, que consiste en categorizar cada palabra en su
po o rol, el cual puede ser ar culo, pronombre, verbo, etc.

Morfológica: Representa la composición natural de las palabras, las cuales se compo-


nen de morfemas, la unidad más pequeña de entendimiento. Un ejemplo es la palabra
alimentar. Este es un verbo simple, pero gracias a ciertos morfemas podemos cambiar
el sen do de la palabra. Si usamos el morfema -ción, obtenemos alimentación; el mor-
fema -se obtenemos alimentarse y, con el morfema -aba, alimentaba. Cada morfema
puede incluir nueva información a un mismo concepto, como empos verbales o in-
cluso cambiar su rol, como pasar de un verbo a un sustan vo.

Página 10 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Sintác ca: Se enfoca en analizar las palabras en una sentencia para descubrir la es-
tructura grama cal de una sentencia. Es muy importante ya que sentencias con las
mismas palabras pero con diferente orden pueden dar un significado diferente, como
el ejemplo de ”El perro cazó al gato” y ”El gato cazó al perro”, los cuales solo presentan
una diferencia sintác ca, pero una causalidad muy diferente.

Semán ca: Determina los posibles significados de una sentencia enfocándose en las
interacciones entre los significados de cada palabra que la componen. Esto toma un
rol primordial en las desambiguaciones lingüís cas y en las polisemias; palabras que
toman un significado dis nto dependiendo de las palabras que la acompañan en la
oración. Un ejemplo es la palabra sierra, que puede ser una herramienta para cortar
madera, un conjunto de montañas alineadas o una especie de pescado.

Pragmá co: Se centra en la u lidad del lenguaje en diversas situaciones y cómo usa el
contexto por sobre el contenido del texto mismo para dar un nuevo entendimiento.
Permite dar información adicional sin estar explícitamente dentro de la sentencia. Un
ejemplo, en una conversación cuando se está hablando sobre un profesor, decir su
nombre la primera vez es suficiente, y da el contexto al resto de la conversación. Con
esto, podemos usar el ar culo él para referirse al profesor sin tener que repe r su
nombre cada vez.

Procesamiento de lenguaje humano o natural (NLP por sus siglas en inlgés) busca que las
máquinas representen el idioma con el cual nos comunicamos. Con esta definición (aunque
NLP considere otras disciplinas igualmente) se engloba este campo dentro de la inteligencia
ar ficial.

En diversas tareas o aplicaciones implica que hay diversas tareas específicas que consideran
el lenguaje humano como herramienta como, por ejemplo, análisis de sen miento, traduc-
ción de idiomas, transcripción de voz a texto, etc.

Página 11 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Figura 3: Diversas aplicaciones del procesamiento de lenguaje natural. Fuen-


te: [h ps://medium.com/greyatom/introduc on-to-natural-language-processing-
78baac3c602b]

2.3.1. REPRESENTACIÓN DE TEXTO

Un computador no puede comprender de forma directa el texto escrito ya que este fun-
ciona bajo el sistema numérico binario. Debido a esta necesidad se u lizan representa-
ciones de texto para que los programas hagan una relación numérica a cada palabra y
así poder trabajar con ellas. Se u lizan variadas técnicas de preprocesamiento de texto
[Jurafsky y Mar n, 2019], dentro de las cuales las más destacadas son:

Normalización: Se eliminan caracteres o elementos del texto que no ofrecen informa-


ción importante para el análisis. Estos caracteres pueden ser puntos, signos de excla-
mación o de pregunta, llaves, corchetes, etc. Además, se lleva todo el texto a minús-
culas, ya que para la máquina las palabras Comida y comida son dis ntas pues enen
una codificación interna diferente..

Tokenización: Un string, que es un conjunto de caracteres, es considerado como si


fuera una sola palabra para la máquina. Es importante lograr dividirlos para obtener
una cadena de palabras, para que así la computadora comprenda que una sentencia
está compuesta por una o varias de ellas.

Definición y eliminación de stopwords: Las stopwords son un conjunto de palabras


que poseen una gran frecuencia en los textos, pero son u lizadas principalmente para
una definición sintác ca del lenguaje. Generalmente se trata de ar culos, conectores
o pronombres.

Página 12 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Lema zación y Stemming: Son dos técnicas que se enfocan principalmente en obtener
un prefijo raíz de las palabras con el fin de reducir el vocabulario total de los documen-
tos, lo que ayuda a simplificar la complejidad. Stemming busca truncar las palabras de
forma más básica, mientras que la lema zación considera el contexto del lenguaje y
la sentencia, haciendo que una misma palabra termine en un dis nto lema depende-
niendo de su función en la sentencia.

Las técnicas anteriores son u lizadas para obtener el vocabulario más reducido posible, man-
teniendo la información que otorga el corpus. Con esto, cuando se realice la representación
de las palabras, se logre una expresión menos compleja lo que implica realizar menos com-
paraciones en los cálculos, búsquedas más simples, etc. Las dos representaciones de texto
más u lizadas son:

Bolsa de palabras: Consiste en definir un vector inicializado en 0 y de largo total igual


a la can dad de palabras en el vocabulario. Tomando una sentencia se hace un conteo
de cada palabra y se le asigna ese valor en el vector según corresponda. Este modelo
funciona bien en ciertas cincurstancias, pero cuando el vocabulario es muy extenso
tendremos un vector base del mismo tamaño, y generalmente las sentencias poseen
pocas palabras en comparación al vocabulario. Lo anterior produce el efecto sparse,
es decir, que hay una gran can dad de valores 0 en los vectores, haciendo que cual-
quier operación entre ellas produzca pequeños cambios, complicando analizar su real
impacto.

Word embedding: Consiste en una representación de un vector con valores reales en


donde se define un vector de un tamaño específico y que ciertos valores fijos de esos
vectores representan directamente a una palabra. En resumen, en vez de tener una
representación vectorial por una sentencia como en la bolsa de palabras, ahora se
posee una representación vectorial por cada palabra del vocabulario. Esto es de mucha
ayuda, ya que se pueden aprovechar las propiedades de los vectores tales como suma,
resta, producto y distancias para definir las similitudes o diferencias entre las palabras.

2.3.2. TF-IDF

Esta métrica, que es el resultado de dos estadís cos, busca reflejar qué tan importantes son
las palabras dentro y a través de los documentos de un corpus. Se en ende por corpus como
un conjunto de textos extensos y estructurados.

TF es el nombre general para la métrica de frecuencia de un término. Esta puede ser calculada
con diferentes fórmulas, pero su esencia es la misma; considerar la can dad de veces que
aparece una palabra dentro de un documento. Generalmente, la fórmula es simple, asociada
al conteo de palabras, siendo del po:

Página 13 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

tf (t, d) = ft,d (5)

Donde t representa un término o palabra y d representa el documento. La función ft,d repre-


senta la función de conteo habitual: ¿cuántas veces aparece el término t en el documento
d?.

La función de frecuencia de términos puede u lizar otras fórmulas para determinar su peso,
como por ejemplo:

Frecuencia de término ajustado al documento: Se u liza para dar importancia al largo


del documento. En este caso será mucho más importante un término más frecuente
en un documento más corto, ya que será un concepto que lo definirá mejor.
ft,d
tf (t, d) = (6)
nd

Frecuencia con escala logarítmica: U lizada principalmente cuando se ob enen rangos


de frecuencias muy grandes y se quiere reducir esa brecha haciéndola más compacta.

tf (t, d) = log(1 + ft,d ) (7)

Frecuencia aumentada: Es u lizada para prevenir el sesgo presente con documentos


muy grandes. En este caso, la frecuencia de cada término es dividida por la frecuencia
del término más frecuente en el documento.
ft,d
tf (t, d) = 0,5 + 0,5 ∗ (8)
max{ft′ ,d : t′ ∈ d}

idf es el acrónimo de frecuencia de documento inversa en inglés y busca detectar cuánta in-
formación la palabra o término provee a través de los documentos y en cada uno de ellos.
Gracias a este concepto es podemos analizar la información cruzada en los documentos y de-
tectar si las palabras son frecuentes porque dan un indicio respecto al tópico del documento,
o solamente es un término muy frecuente en el lenguaje (como los conectores o ar culos
personales, por ejemplo). La fórmula para calcular el IDF es la siguiente:

( )
N
idf (t, D) = log (9)
1 + |{d ∈ D : t ∈ d}|

en donde N es la can dad de documentos en el corpus (N = |D|) y el denominador corres-


ponde al número de documentos en donde el término t aparece. Por lo tanto la especificidad
de un término puede ser cuan ficado como la función inversa del número de documentos
en el cual este término aparece [Sparck, 1972].

Página 14 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Con la definición de ambos conceptos se puede u lizar el estadís co TF-IDF, el cual simple-
mente se define como:

tf idf (t, d, D) = tf (t, d) · idf (t, D) (10)

Debido a que idf es una función logarítmica, ene una cota inferior 1, la función tdidf será
siempre mayor o igual a 0. Para obtener valores altos de idf la frecuencia de un término
debe ser alta y a su vez menor a través de los documentos. En resumen, mientras menos se
repita el término entre documentos, más aumenta el valor de idf.

2.4. DEEP LEARNING

Las redes neuronales ar ficiales se remontan a la década del 40´ asociadas al Aprendizaje de
Máquinas (Machine Learning), como modelos o algoritmos que surgen de analizar los proce-
sos biológicos que permiten a los seres humanos comprender su entorno e ir aprendiendo
a través de la vida. Las redes neuronales son entonces un conjunto de algoritmos diseña-
dos especialmente para reconocer patrones de comportamiento, emulando a las neuronas
de nuestro cerebro. Recién en los úl mos años han adquirido mayor popularidad, gracias a
que han disminuido las exigencias de su complejidad computacional y la can dad de datos
necesarios para obtener resultados sa sfactorios.

A finales de los 80’ y durante la década del 90’ se realizaron varios descubri-
mientos importantes, como la implementación sa sfactoria del algoritmo de back-
propaga on para el aprendizaje [Rumelhart et al., 1986] y la creación de las unidades LSTM
[Hochreiter y Schmidhuber, 1997]

No fue hasta el año 2006 donde comenzó a explotar la popularidad y el uso de las redes neu-
ronales debido a tres factores principales: el descubrimiento de nuevos y mejores modelos
de redes neuronales, la rápida y potente renovación del hardware y, por úl mo, la digitali-
zación de la información que permite conseguir una gran can dad de información en poco
empo.

2.4.1. REDES NEURONALES FEEDFORWARD

Una red neuronal es un modelo matemá co y estadís co inspirado en las redes neuronales
biológicas presentes en los cerebros de diversos animales tanto en la estructura como en el
proceso de aprendizaje vinculado.

Las redes neuronales se componen de tres partes principales [Goodfellow et al., 2016]:

Página 15 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Neurona: Es una estructura la cual puede intercambiar información con neuronas ve-
cinas

Conexiones: Es la relación entre dos neuronas que permite intercambiar la información


propagada

Capas: Es un conjunto de neuronas las cuales generalmente poseen caracterís cas si-
milares

La red neuronal feedforward se compone de capas, principalmente de tres pos:

Capa de entrada: Consiste en la capa que hará entrar los datos con la cual el modelo
entrenará y predicirá los resultados.

Capa escondida: Es o son la/s capa/s que se encargan de extraer las capas de abstrac-
ción de los datos. Cada neurona de la capa posee un peso que será traspasado a los
valores propagados desde la capa anterior y mediante una función de ac vación es
procesado para entregarlo a las neuronas de la capa siguiente.

Capa de salida: Es la capa donde la red muestra el resultado siendo ésta un dato nu-
mérico o una clasificación, según sea la definición de la arquitectura de la red.

Página 16 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Figura 4: Representación gráfica de una red neuronal feedforward. Fuente: [Géron, 2019]

En la Figura 4 se aprecia la representación gráfica de una red neuronal de dos dimensiones,


es decir, un vector X = (x1 , x2 ) y la cual posee tres salidas como se aprecia en la capa de
salida. Cada neurona realiza una operación dependiendo de su función de ac vación σ y de
los datos que van entrando. En notación:

σ(W X − b) (11)

Donde W es la matriz de pesos correspondiente a la neurona, X es una segunda matriz de


datos xi que ingresan a la neurona. Este resultado es restado por un bias b, que es un valor
único por capa y que no es influenciado por lo valores de la capa anterior.

Gracias a la flexibilidad que permite la construcción de una red neuronal pueden la diver-
sas capas poseer dis ntas funciones de ac vación, las cuales dependerán de la finalidad del
entrenamiento. Las funciones de ac vación más conocidas y u lizadas son:

ReLU: Función de ac vación que representa la parte posi va de su argumento. U li-


zada principalmente por su simplicidad de cómputo y su buen desempeño durante el

Página 17 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

back-propaga on.
f (x) = x+ = max(0, x) (12)

Sigmoid: Función que representa una forma de S. Su salida está acotada entre 0 y 1.
ex
σ(x) = (13)
1 + ex

Tanh: Función de tangente hiperbólica. Se comporta de una forma similar a la sigmoid,


pero su salida está acotada entre (-1, 1), por lo que acepta valores nega vos en su
salida.
ex − e−x
tanh(x) = x (14)
e + e−x

Página 18 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

2.4.2. REDES NEURONALES RECURRENTES

Las redes neuronales recurrentes [Rumelhart et al., 1986] son un po de redes neuronales
para procesar información secuencial. A diferencia de la red neuronal feedforward que pro-
cesa la información en una sola dirección (desde la capa de entrada hasta la salida) la red
neuronal recurrente incluye conexiones a las neuronas que apuntan a si mismas. Gracias a
lo anterior, las neuronas adoptan el concepto de estado, el cual les permite generar la se-
cuencia y poseer una memoria que se hereda en cada iteración.

Figura 5: Representación gráfica de una red neuronal recurrente. Fuente: [Géron, 2019]

En la Figura 5, se puede apreciar la ya conocida orientación lineal desde la entrada y la salida,


que en la imagen va desde abajo hacia arriba. Es posible además visualizar la conexión hacia
sí mismo de la neurona, la cual podemos desenvolver para apreciar los diversos estados que
va adquiriendo.

Formalizando, se considera la forma clásica de un sistema dinámico:

Página 19 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

s(t) = f (s(t−1) , x(t) ; θ) (15)

En donde s(t) es el estado del sistema en el momento t y x(t) es una función de señal externa.
Se define recurrente ya que el estado t está siendo definido con el resultado en el estado
anterior, es decir, t-1. El proceso de desenvolver consiste en ir mostrando los estados que
van siendo traspasados a iteraciones posteriores. Si consideramos un sistema dinámico de
tres estados, se puede definir como:

s(3) = f (s(2) , x(3) ; θ) = f (f (s(1) , x(2) ; θ), x(3) ; θ) (16)

A este sistema dinámico se le puede agregar también una función de señal externa. Al mo-
mento de definir la red neuronal recurrente se representa la señal externa como los datos
de entrada en el modelo. Considerando esto, se define la arquitectura formal como:

h(t) = σ(Wh x(t) + Uh h(t−1) + bh ) (17)


y (t) = σ(Wy h(t) + by ) (18)

En donde h(t) es la definición de las capas ocultas e y (t) la definición de la capa de salida.
Además:

x(t) es el vector de datos de entrada.

h(t) es el vector de salida de una capa oculta.

bh y by son los bias de las capas.

W y U son la matriz de pesos, donde W representa los pesos de los datos de entrada y
U representa a los datos que son dirigidos a sí mismo en las capas.

Revisando la formalización anterior, se detectan dos flujos, uno siendo el convencional que
es ajustado con los pesos W y otro recurrente que almacena los estados de cada neurona,
que son ajustados por U.

2.4.3. LONG-SHORT TERM MEMORY

En [Hochreiter y Schmidhuber, 1997] definen una nueva arquitectura para la neurona de la


red neuronal recurrente, renombrándola memoria. La búsqueda de esta nueva arquitectura
nace por el complejo proceso de BPTT que tendía a gradientes explosivos y desvaneciente
debido a que el error de este proceso dependía exponencialmente de la magnitud de los

Página 20 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

pesos del modelo. El beneficio clave de esta nueva arquitectura no es solo que solventa este
problema con el BPTT, si no que también permite que los modelos puedan considerar una
gran can dad de estados sin desestabilizar el aprendizaje. Posteriormente [Gers et al., 2000]
se define que los pesos de la conexión hacia sí mismo no sean fijos, si no condicionados según
el contexto del estado.

Figura 6: Radiogra a de una LSTM. Fuente: [https://medium.com/@saurabh.rathor092/


simple-rnn-vs-gru-vs-lstm-difference-lies-in-more-flexible-control-5f33e07b1e57]

En la Figura 6 se puede apreciar la memoria LSTM que posee los mismos parámetros que
una red neuronales recurrente pero son traspasados por diversos componentes, los cuales
son:

Forget Gate: Es una compuerta que se encarga de revisar qué información será
desechada del estado de la memoria. Esta compuerta es la primera sigmoide de la
izquierda, y su comportamiento se puede formalizar como sigue:

ft = σ(Wf · [ht−1 , xt ] + bf ) (19)


Input Gate Layer: Es una compuerta que va a ingresar la información a la celda en el
nuevo estado. Se define por dos funciones de ac vación, una sigmoidal y otra tangente
hiperbólica. Formalizando, obtenemos:

it = σ(Wi · [ht−1 , xt ] + bi ) (20)

Página 21 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

C̃t = tanh(WC · [ht−1 , xt ] + bC ) (21)

Luego, cuando cada capa realiza su operación, se combinan para que sea agregado al
estado de la memoria.

State layer: Tras obtener el resultado de las capas anteriores, el estado se calcula to-
mando el estado anterior Ct−1 mul plicándolo por la forget layer ft y luego sumándolo
con la input gate it .

Ct = ft ∗ Ct−1 + it ∗ C̃t (22)

Output layer: El valor de salida de la memoria será el mismo estado generado en la


memoria pero filtrado con funciones de ac vación. Primero se procesa el output to-
mando los parámetros de datos de entrada y el output del estado anterior y usándolo
en una sigmoidal y luego usando una tangente hiperbólica entre lo anterior y el Ct . Así,
se hace un balance y se define qué partes del estado anterior con nuarán y cuántas
se mantendrán.

ot = σ(Wo · [ht−1 , xt ] + bo ) (23)

ht = ot ∗ tanh(Ct ) (24)

2.4.4. GATED RECURRENT UNIT

En esta arquitectura propuesta por [Cho et al., 2014], se define una nueva unidad muy pa-
recida a la LSTM pero con ciertas variaciones, conocida como GRU. La razón de esta nueva
arquitectura es para lograr resolver el problema del gradiente desvaneciente y, al ser un po-
co más simple que la LSTM, ofrece empos de cómputo menores obteniendo igualmente
buenos resultados.

Página 22 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Figura 7: Radiogra a de una GRU. Fuente: [https://towardsdatascience.com/


understanding-gru-networks-2ef37df6c9be]

En la Figura 7 se aprecia la estructura de una unidad GRU, la cual se compone de las siguientes
partes:

Update gate: Es la compuerta de actualización y se encarga de decidir cuánta informa-


ción del empo anterior debe mantenerse en el actual. El resultado se ob ene con:

zt = σ(W (z) xt + U (z) ht−1 ) (25)

Forget gate: Es la compuerta que se encarga de olvidar la información del empo an-
terior según es me conveniente. La fórmula es la siguiente:

rt = σ(W (r) xt + U (r) ht−1 ) (26)

A simple vista es la misma función que la compuerta de actualización, pero la diferencia


recae en cómo sus resultados serán usados posteriormente.

Página 23 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Current Content: Consiste en la información que representará a la unidad actual, y que


es obtenida al realizar operaciones con la forget gate, los datos de entrada y el estado
del empo anterior.

ht = tanh(W xt + rt ⊙ U ht−1 ) (27)
En donde el símbolo ⊙ corresponde al producto de Hadamard.

Final memory: Consiste en la salida de la unidad GRU, en donde opera con la com-
puerta de actualización, el estado del empo anterior y de la información de la unidad
actual.

ht = zt ⊙ ht−1 + (1 − zt ) ⊙ ht (28)

Página 24 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

CAPÍTULO 3
PROPUESTA DE SOLUCIÓN

En esta sección se detallan los pasos de análisis y de diseño de solución la cual será implemen-
tada para resolver el problema es pulado. Se detallarán las restricciones en consideración
para desarrollar la solución, las tecnologías u lizadas y diseño formal de la solución. También
se es pulará los modelos de aprendizaje automá co que atacarán el problema de catego-
rización de texto y análisis de sen miento y cómo esta información será entregada para su
representación. Por úl mo, se definirán indicadores que ayudarán a mostrar de forma más
intui va la información, de modo que los clientes puedan tomar decisiones fácilmente.

3.1. PREPROCESAMIENTO DE TEXTO

El preprocesamiento de texto es una tarea importante y compleja, ya que busca corregir


errores de texto a la vez que se simplifica el vocabulario. Gracias a lo úl mo, permite que los
modelos puedan trabajar con datos de mejor calidad y ofrecer mejores resultados. Primero
se deben iden ficar las principales causas de los errores en los textos y qué técnicas se u li-
zarán para solucionarlos. Cabe destacar que los pasos que se definan en el preprocesamiento
de texto serán los mismos para el análisis de sen miento y categorización de texto.

3.1.1. CORRECCIONES ORTOGRÁFICAS

Desde su base, las respuestas de las encuestas no siempre vendrán bien escritas. Esto difi-
culta el análisis por varias razones:

1. Palabras mal escritas conllevan a un análisis erróneo por parte de los modelos, ya que
éstos consideran todas las palabras que encuentren en el conjunto.

2. Un modelo necesita un vocabulario de las palabras que existen en el conjunto de res-


puestas. Incluir palabras mal escritas aumenta el vocabulario, haciendo que el modelo
trabaje en un contexto más complejo.

3. Como los modelos analizan el contexto de las frases, palabras mal escritas pueden
quitarle información a su símil bien escrito, haciendo que el modelo esté más inseguro
sobre cuál de las dos palabras impacta más en la decisión.

Considerando lo anterior, es importante iden ficar los siguientes pos de errores ortográfi-
cos:

Página 25 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

1. Tildes: La presencia o ausencia de ldes en palabras donde no corresponde. General-


mente el error más común es la ausencia de ldes, y es importante que las palabras la
posean correctamente, ya que el proceso de lema zación lo exije.
2. Error ortográfico: Producido por no saber cómo escribir bien una palabra (e.g. escribir
conyeva en vez de conlleva) o por un error de peo en letras que están muy cerca en
el teclado (escribir varco en vez de barco ya que las letras v y b están muy cerca).
3. Palabras no espaciadas: En ocasiones no se u liza el carácter de espacio en blanco
para separar palabras, produciendo ejemplos como laresponsabilidad o enconclusión.
Esto dificulta al proceso de tokenización, ya que se u lizan los espacios en blanco en
las sentencias para obtener las palabras.

Los tres casos explicados anteriormente serán considerados en el preprocesamiento de am-


bos algoritmos, con el fin de obtener un conjunto de datos de buena calidad.

Para solucionar el problema anterior, se definen dos agentes:

1. Guardián: Este agente se encarga de revisar todas las palabras que ingresen al análisis.
Si la palabra no está bien escrita, la asigna a revisión con el segundo agente. En caso
contrario, pasa a la siguiente etapa del análisis.
2. Corrector: Este agente detecta las palabras mal escritas y establece candidatos de pa-
labras. Dentro de ellos, ve que tanto se parecen a la palabra escrita. Su criterio se basa
en el contexto de la palabra (considerando la frase de donde se sacó) y en qué can dad
de letras se difiere cada candidato con la palabra mal escrita.

El agente corrector intentará asignar el candidato correcto a la palabra mal escrita. Pero en
el caso donde la palabra es irreconocible y no existan candidatos potenciales, es desechada.
Esto implica una nueva revisión de la frase, ya que en frases muy pequeñas, desechar la
palabra mal escrita implica que la frase quede vacía o sin sen do.

Por úl mo, se realiza una eliminación de ciertos carácteres especiales que están dentro de
las sentencias como signos de exclamación, pregunta, puntos, slash, ampersand, etc.

3.1.2. STOPWORDS

Se define stopwords como un conjunto de palabras que son previamente eliminadas de los
datos de texto. La razón de su eliminación recae en que son palabras muy frecuentes y no
presentan información ú l para la clasificación. Es más, la función de estas palabras es para
que las sentencias sean coherentes y con correcto sintaxis. Debido a que se requiere dis-
minuir el vocabulario para simplificar el análisis de los modelos, son eliminados ar culos
personales, conectores, etc.

Página 26 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Figura 8: Ejemplos de palabras que son consideradas stopwords.

3.1.3. LEMATIZACIÓN Y STEMMING

Ambos procesos consisten en transformar una palabra a su forma raíz, ocupando diferentes
criterios para tal fin. El stemming consiste en transformar una palabra en su stema, que u liza
una heurís ca para cortar la úl ma parte de una palabra y así obtener un prefijo. En cambio la
lema zación transforma en un lema, realiza este proceso considerando análisis morfológico
y el vocabulario. Con lo anterior, se ob ene la forma básica, en el diccionario, de la palabra
[Manning et al., 2008].

En la Tabla 1, se presenta una comparación entre ambas técnicas, u lizando la misma pala-
bra.

Criterio Stemming Lema zación


Corta la palabra para
Convierte la palabra
Palabra raíz obtener un prefijo
en su raíz semán ca
raíz
El stema puede no El lema siempre ene
Valor raíz tener significado en un significado en
el español español
El stema considera Un lema es obtenido
Conversión contextual una palabra según su rol en la
individual y la acorta sentencia.
Output con palabra ”trabajando” Trabaj Trabajar

Tabla 1: Tabla compara va entre ambas técnicas de obtención de palabras raíz.

El stem es una solución más sencilla, fácil y que promueve un vocabulario más corto en com-
paración con el lema. La desventaja es que la mayoría de palabras raíces pierden significado
en el lenguaje (como se aprecia en la tabla 1 al stemizar la palabra trabajando).

Página 27 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Por otra parte, el lema es una herramienta más compleja de implementar pero ene como
ventaja que el lema siempre tendrá un significado en el español, además que su raíz será
analizada según su contexto. Por ejemplo, en las sentencias ”el trabajo está aumentando
mucho esta semana” y ”yo trabajo en una empresa costera”, obtendríamos el lema trabajo
y trabajar respec vamente. Lo anterior es debido al rol de la palabra trabajo en cada frase;
en el primero actúa como sustan vo y en el segundo como un verbo.

Se u lizarán ambas técnicas en los procedimiento según sea conveniente. Nos importa que
todas las palabras posean significados, pero también queremos obtener un vocabulario mi-
nimalista para facilitar el entrenamiento y la búsqueda para los algoritmos.

3.2. ANÁLISIS DE SENTIMIENTO

El análisis de sen miento consiste en realizar análisis de texto de un conjunto de respuestas


y extraer sen mientos de ellas. Las e quetas que generalmente se usan en el análisis de
sen miento son posi vas, neutras, mixtas y nega vas. En este trabajo se u lizarán tres de
ellas: posi vas, nega vas y mixtas. Las neutras fueron descartadas ya que no representan
información ú l en el contexto de encuestas de calidad de servicio, ya que no se enfocan
en un problema o beneficio en par cular. Se u lizará un modelo de red neuronal recurrente
para definir el sen miento de los comentarios.

Para definir de forma correcta la solución, se debe definir cómo obtener las e quetas de los
datos iniciales para el entrenamiento, las respuestas de encuestas que se usarán, la arqui-
tectura de red neuronal recurrente que se u lizará para validar y, finalmente, el proceso que
se llevará a cabo para lograr cumplir con los criterios de aceptación.

3.2.1. NPS COMO ETIQUETA DE DATOS

Los modelos de redes neuronales son supervisados, es decir, necesitan que los datos ven-
gan previamente e quetados según el sen miento que poseen. Los clientes en QServus no
han realizado encuestas en las cuales se pueda relacionar una respuesta de texto con sen -
miento, tampoco poseen alguna otra fuente de datos similar. Una solución sería establecer
reglas del lenguaje para definir qué adje vos son buenos o malos, pero implicaría almacenar
un diccionario que crecerá con el empo y que dependerá del rubro de la empresa a analizar.

A pesar de lo anterior, existe una solución donde es posible categorizar comentarios de texto
de diversas encuestas si cumplen con cierta estructura. Muchas encuestas de QServus crea-
das por las empresas, establecen un diseño en donde se solicita al encuestado poner una
nota en general o para cierto aspecto específico sobre el producto y/o servicio. Tras eso, se
presenta otra pregunta de texto abierto para jus ficar la elección de dicha nota.

Las preguntas de escala en donde se consulta la sa sfacción general o específica sobre un

Página 28 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

producto o servicio se denomina NPS. Generalmente, las notas van en escala de 0 a 10, pero
es posible u lizar las otras escalas de notas que QServus ofrece. Gracias a este diseño de
encuestas, podemos tomar una respuesta de texto y transformar su nota a una e queta
NPS.

E queta NPS Rango de nota E queta procesada


Promotor [9, 10] Posi vo
Pasivo [7, 8] Mixto
Detractor [0, 6] Nega vo

Tabla 2: Transformación u lizada para obtener la e queta deseada.

Debido a esta misma división, es la preferencia del uso de mixto sobre neutro, ya que las
notas 7 u 8 representan un buen servicio con ciertas falencias. El nombre de Neutro no sería
apropiado, ya que siguen teniendo una orientación de preferencia.

Para asegurar que la fuente de datos sea confiable y así la transformación tenga sen do,
debemos elegir encuestas que posean una can dad de respuestas que permitan un error
muestral inferior al 5 %, asegurando así obtener información correcta. Se usará lo anterior
para definir los datos a u lizar y transformarlos a una e queta apta para el entrenamiento.

3.2.2. DESCRIPCIÓN DE FUENTE DE DATOS

Los datos que serán u lizados para el entrenamiento corresponden a respuestas de cinco
empresas diferentes, pero del mismo rubro. Debido a que necesitamos encuestas que po-
sean una gran representa vidad, debemos verificar que el error muestral en ellas sea menor
al 5 %. En la Tabla 3 se observa, por cada encuesta, la can dad de respuestas, des natarios,
y el error muestral correspondiente.

N° de pauta Can dad respuestas Promotores Detractores Error muestral


1 1.437 438 602 0.59 %
2 1.000 0 516 3.17 %
3 21.572 9.818 4.894 0.3 %
4 3.938 3.196 234 2.33 %
5 689 481 111 3.97 %

Tabla 3: Tabla de resumen de los datos a entrenar.

En la Tabla 4 se presenta información detallada sobre los comentarios. Cabe destacar que
esta información es tras realizar la transformación de las e quetas y aplicar todas las técnicas
de pre-procesamiento de texto. Tras esto, se eliminaron 3.707 respuestas que no contenían
información correcta o sin una orientación de preferencia.

Página 29 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Can dad de respuestas Largo minimo Largo máximo Largo promedio Tamaño vocabulario
24938 1 643 9 6656

Tabla 4: Tabla de resumen de los datos a entrenar.

En la Figura 9 se entrega un gráfico de columna donde se pueden visualizar las primeras doce
palabras que con mayor frecuencia aparecen en el conjunto de datos.

Figura 9: Palabras más frecuentes de nuestro conjunto de datos.

3.2.3. ARQUITECTURA DE REDES NEURONALES

Gracias a la transformación de las e quetas de los datos, es posible comenzar a u lizar redes
neuronales para el entrenamiento. Para esto, se proponen dos modelos de red neuronal
recurrente.

LONG SHORT-TERM MEMORY

La red neuronal recurrente estará compuesta primordialmente por unidades LSTM. Son uni-
dades más complejas que las neuronas de la red neuronal recurrente convencional y permi-
ten un mejor manejo del contexto de las secuencias de texto. En adición, al implementar la
bidireccionalidad, se ob ene contexto hacia ambos sen dos, potenciando el correcto entre-
namiento de la red. La arquitectura de este modelo es la siguiente:

1. Capa de embedding que se encarga de transformar las palabras a su correspondiente

Página 30 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

vector. Se u lizarán pesos pre-entrenados para mejorar la representación de los datos.


Además, el largo máximo de la secuencia de texto aceptado será de 18 palabras.
2. Primera capa bidireccional de 50 celdas, ocupando un dropout de 0.3 y un dropout
recurrente del 0.4.
3. Segunda capa bidireccional de 50 celdas, ocupando un dropout de 0.2 y un dropout
recurrente del 0.3.
4. Una capa densa de salida de tres neuronas con una función de ac vación so max,
cada una indicando el score del sen miento.

GATED RECURRENT UNIT

Esta red neuronal recurrente estará compuestas por unidades GRU. En comparación con las
LSTM, éstas presentan un diseño menos complejo, lo que permite un empo de cómputo
menor sin disminuir de forma considerable el desempeño. La estructura que se u lizará será
la siguiente:

1. Capa de embedding que se encarga de transformar las palabras a su correspondiente


vector. Se u lizarán pesos pre-entrenados para mejorar la representación de los datos.
Además, el largo máximo de la secuencia de texto aceptado será de 18 palabras.
2. Primera capa GRU de 20 celdas, ocupando un dropout de 0.2 y un dropout recurrente
del 0.3.
3. Segunda capa GRU de 50 celdas, ocupando un dropout de 0.2.
4. Una capa densa de salida de tres neuronas con una función de ac vación so max,
cada una indicando el score del sen miento.

Ambos modelos serán entrenados con crossentropy categórico, ya que poseemos más de
dos clases de salida. Además, se u lizará el op mizador Adam.

Respecto a parámetros de entrenamiento, será entrenado por 100 épocas, ocupando un


batch size de 256 datos.

Se evaluará el modelo en los datos anteriormente definidos. Se es mará un porcentaje en el


conjunto de pruebas superior a un 60 %, el cual será el mínimo aceptable para la tarea.

3.3. CATEGORIZACIÓN DE TEXTO

El problema de categorización de texto se define como la tarea de ordenar de forma automá-


ca un conjunto de documentos en categorías de un conjunto predefinido [Sebas ani, 2003].

Página 31 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Esta definición presenta tres aristas a tomar en cuenta: la automa zación de la tarea, una de-
finición previa de categorías y, por úl mo, el ordenamiento de los documentos. Cada una de
estas aristas presentan un desa o y siempre deben considerarse las opciones según diversos
atributos de los datos (documentos) a ordenar.

A pesar de lo anterior, la categorización de texto puede encontrarse con una gran can dad
de problemas al implementarse.

3.3.1. PROCESO DE CATEGORIZACIÓN DE TEXTO

Este proceso debe considerar dos situaciones:

Un cliente de QServus ofrece un diseño de categorización que u liza de forma interna


y la labor será automa zar el proceso.

El cliente no posee un modelo de categorización previo, por lo que éste será creado
a par r de las respuestas que estos clientes obtengan en sus encuestas, tomando un
modelo que se adapta según su rubro.

Sin importar cual situación sea, de ambas se obtendrá un modelo de categorización. Este
debe poseer inicialmente categorías, siendo las palabras claves ofrecidas por el cliente o
encontrados mediante el algoritmo frecuen sta.

El proceso consiste en preprocesar los textos para reducir el vocabulario, como también las
correcciones ortográficas. Luego, se hacen compara vas entre las repuestas y las palabras
claves de cada categoría para asignarles un puntaje. Este puntaje es asignado usando varios
criterios, pero los más determinantes son:

Comparación exacta: Consiste en una coincidencia entre las palabras de una respuesta
y las palabras claves de una categoría. También se hace una comparación obteniendo
los lemas de ambas partes, aunque implica un puntaje menor a la coincidencia exacta.

Similitud coseno: Se posee una gran base de datos con transformaciones de palabras
a vectores, entrenados en una red neuronal. Gracias a esta fuente, se puede calcular
la similitud coseno entre vectores, la cual se define como:

n
Ai Bi
A·B
sim-cos(θ) = =√n i=1
√n (29)
||A|| · ||B|| ∑ 2 ∑
Ai Bi2
i=1 i=1

Este criterio se vuelve más determinante cuando, tras obtener los puntajes iniciales,
retorna más de una categoría con puntaje máximo.

Página 32 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

En el proceso, además, se considerarán los siguientes puntos:

Los comentarios po ”nada que agregar” o ”lo mismo que la pregunta anterior” serán
siempre excluidos del análisis, ya que no vale la pena asignarles una e queta.

Los comentarios demasiado cortos (refiérase a una o dos palabras) serán di cilmente
categorizados, ya que a pesar que se refieran a un tema, no presentarán información
importante para el cliente.

Otro punto importante, es que ocupando este mismo modelo de categorización, se hará un
análisis respecto al enunciado de la pregunta. La razón es que las preguntas presentan una
intención o contexto, haciendo que la gente responda detalles específicos. Por lo mismo, en
preguntas del po ¿Cómo la empresa ha ayudado respecto a la movilización? es esperable
que la mayoría de las respuestas estén bajo una categoría de ”Transporte” o ”Movilización”.

Un comentario siempre será e quetado con una sola categoría. Es esperable que respues-
tas más extensas puedan implicar diversos temas, pero la intención es obtener el contexto
principal al cual se refiere, ya que una implementación mul -categórica implicaría una in-
consistencia en la información presentada en los indicadores.

3.3.2. PROCESO DE AGRUPACIÓN DE TEXTOS CATEGORIZADOS

La necesidad de agrupar los comentarios surge dada la similitud que existe entre muchos
de ellos, lo que al momento de desplegar algún indicador al respecto en pantalla, ocuparía
demasiado espacio. La intención es mostrar la mayor can dad de información relevante en
la pantalla sin tener datos que confundan o sean redundantes.

Para lograr este obje vo, se realizarán comparaciones cruzadas entre las respuestas que,
gracias a sus parecidos y también a la distancia entre los vectores, podemos detectar si son
parecidos, y juntarlos dentro de un grupo. Debido a que los grupos pueden poseer muchos
comentarios, es importante destacar cuántas respuestas con enen, para así destacar que
muchas personas opinan de la misma forma.

3.4. INDICADORES

Los indicadores son las diferentes gráficas que QServus ofrece para la visualización de datos
de dis nto po, con el fin de esclarecer información al usuario para ayudar a su toma de
decisiones. Es el núcleo del segundo paso del esquema de QServus: Analizar (Ver Figura 1).

QServus, en la construcción de sus indicadores, se cerciora que éstos posean la información


de forma muy clara y de fácil comprensión para el cliente. Además, se preocupa de definir

Página 33 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

estándares de diseño que describen formas, tamaños y colores según el contexto. Esto úl-
mo es esencial, ya que presenta dos beneficios primordiales: el primero consiste en que
los tamaños y formas hacen alusión a conceptos generalizados en la vida diaria, potencian-
do la comprensión del cliente al gráfico. El segundo punto, involucra que el cliente tenga un
esquema de cómo QServus representa sus indicadores, haciendo que la adaptación de un
cliente a nuevos pos de indicadores sea inmediata.

Debido a lo anterior, al momento de crear nuevos indicadores que permitan mostrar la in-
formación que será analizada por la API, estos deben seguir los patrones de diseño para que
los usuarios de QServus se adapten rápidamente y sepan leer estos indicadores.

Existen en QServus un conjunto de gráficos que serán la base para generar los nuevos indi-
cadores que mostrarán la información proveniente de nuestra API. Entre ellos tenemos:

1. Gráfico de barras: Consiste en un gráfico de barras horizontales, en donde cada barra


representa un atributo y el tamaño de éste una can dad. Además, si cada atributo
toma diversos valores, se pueden u lizar barras acopladas con diferentes colores y así
potenciar la capacidad de este gráfico.

Figura 10: Gráfico de barras implementado en QServus, u lizando una pregunta de po


Sí/No.

2. Gráfico de torta: Este gráfico consiste en una circunferencia par cionada según las
frecuencias de ciertas opciones. Es u lizada principalmente para ver el porcentaje que
un atributo con ene respecto al total, ayudando a la comparación de sus can dades.

Página 34 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Figura 11: Gráfico de torta implementado en QServus, indicando el porcentaje de personas


que u lizan un medio u otro.

3. Nube de palabras: Es un gráfico que presenta un conjunto de palabras claves. No po-


seen un orden definido (solo no deben solaparse) y el tamaño de una palabra será más
grande mientras más veces aparezca en las respuestas de esa pregunta. Sirve esencial-
mente para detectar de forma fácil los conceptos que están usando los encuestados
para responder.

Figura 12: Gráfico de nube de palabras implementado en QServus. Corresponde a una pre-
gunta de jus ficación general sobre la sa sfacción del servicio.

Los gráficos anteriormente expuestos, servirán de base para armar los indicadores que la
API dejará a disposición para las aplicaciones de QServus. Al analizar los textos de diversas

Página 35 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

empresas, la API ofrecerá nuevos atributos a las respuestas de texto que son: una categoriza-
ción, un sen miento y una agrupación de categoría. Con lo úl mo en mente, se han diseñado
6 nuevos pos de indicadores los cuales serán definidos a con nuación.

3.4.1. GRÁFICO DE BARRAS: RÁNKING POR CATEGORÍA

Datos a u lizar: Los atributos del gráfico serán las categorías detectadas. El tamaño de las
barras representará la frecuencia de los comentarios categorizados en esa pregunta.

Función del indicador: Mostrar al usuario cuáles son las categorías más mencionadas en las
respuestas y detectar las tendencias.

Al tomar el concepto de ranking, las barras de categorías van a estar ordenadas de mayor a
menor. Será un indicador principal, que dará a grandes rasgos, cuales son las categorías con
mayor número de menciones.

Criterios de aceptación

Presenta datos de ejemplo y reales de forma correcta, sin errores.

Las categorías pertenecen al estudio.

Las barras de categorías están ordenadas de mayor a menor.

El indicador posee una carga menor de 3[s].

3.4.2. GRÁFICO DE BARRAS: CATEGORÍA VS SENTIMIENTO

Datos a u lizar: Los atributos del gráfico serán las categorías detectadas. El tamaño de las
barras representará la frecuencia de los comentarios categorizados en esa pregunta, inclu-
yendo un nivel extra que representa el sen miento.

Función del indicador: Mostrar al usuario cuáles son las categorías más mencionadas en
las respuestas y cómo se presenta el sen miento en los diversos comentarios, para que así
el cliente no solo sepa cuáles categorías enen una mayor mención, si no también si esas
menciones son posi vas o nega vas.

Este gráfico estará presente cuando las respuestas hayan sido procesadas por análisis de
sen miento y categorización de texto. Para esto, se modificará el gráfico de barras: categoría
y sen miento para que las barras sean par cionadas. Cada par ción poseerá un color que
indicará el sen miento con un tamaño rela vo al total. Cada barra tendrá un único tool p,
donde se mostrará la frecuencia para los tres sen mientos. Al igual que el anterior, seguirá
siendo ordenado de mayor a menor respecto a la frecuencia total.

Página 36 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Criterios de aceptación

Presenta datos de ejemplo y reales de forma correcta, sin errores.


Las categorías pertenecen al estudio.
La frecuencia de los sen mientos es correcta para cada categoría.
El orden de la barra par cionada es, de izquierda a derecha, posi vos, mixtos y nega-
vos.
Las barras de categorías están ordenadas de mayor a menor.
El indicador posee una carga menor de 3[s].

3.4.3. NUBE DE PALABRAS MEJORADA

Datos a u lizar: Los datos de la nube serán palabras claves y además bigramas, ambas pro-
venientes de las respuestas de texto de una misma pregunta.

Función del indicador: Mostrar al usuario cuáles son las palabras más mencionadas y tam-
bién los bigramas más u lizados.

La denominación de mejorada a este po de gráfico recae en la inclusión de los bigramas.


Un bigrama o un 2-grama es un par de palabras que aparecen de forma consecu va en un
corpus. Gracias a estos bigramas podemos añadir contexto a los términos que aparecían en
la nube de palabras corriente.

Figura 13: Compara va entre unigramas y bigramas, y cómo estas úl mas nos entregan más
información.

Página 37 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

La inclusión de un bigrama parece ser sencilla, pero existen dos dificultades en su implemen-
tación:

Un bigrama implica que ambas palabras deben poseer el mismo tamaño y también que
el conjunto será en la mayoría de las veces más largo que un 1-grama. Esto implica que
un bigrama ocupará más espacio en el canvas que un unigrama, como mínimo en el
eje horizontal.
Un bigrama ene mucha más importancia semán ca que un unigrama, ya que ofrece
más contexto y es más ú l observar que dos palabras aparecieron muchas veces de
forma consecu va. Debido a esto, se debe incluir esa importancia en el gráfico para
que los bigramas destaquen.

Para esto se considerará una escala dis nta para unigrama y bigrama, de tal forma que su
tamaño no dependa de la frecuencia (como cualquier gráfico de nube de palabras se basa
para definirlo). Por lo tanto, un bigrama puede ser más grande en el canvas que un unigrama
de mayor frecuencia.

Respecto al tool p para cada palabra, se mostrará la frecuencia de ese unigrama o bigrama
dentro del estudio.

Criterios de aceptación

Presenta datos de ejemplo y reales de forma correcta, sin errores.


Los bigramas destacan a pesar de su poca frecuencia.
Las palabras enen buena ortogra a.
El indicador posee una carga menor de 3[s].

3.4.4. TREEMAP

Este indicador presenta un gráfico treemap, que son cuadriláteros que representan las ca-
tegorías encontradas en el análisis. Cada figura poseerá un subnivel en donde se muestran
las palabras claves más frecuentes. Para acceder a este subnivel, se debe hacer click en el
cuadrilátero deseado y se mostrará el detalle.

Datos a u lizar: Las categorías de las respuestas de texto. Además, para cada categoría se
usarán las palabras claves más frecuentes. Como métricas, se usarán su frecuencia y porcen-
taje respecto al total.

Función del indicador: Mostrar de una forma más interac va el porcentaje de las categorías
en las respuestas de una pregunta y las palabras claves más frecuentes de una categoría.

Página 38 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

El treemap ene como intención producir un indicador más interac vo, mostrando las ca-
tegorías y palabras claves que las representen. Como se explicó anteriormente, el nivel su-
perior consiste en categorías y el nivel inferior en palabras claves. El indicador debe cumplir
con ciertos comportamientos y criterios para cumplir la definición anterior:

En el nivel superior de categorías, cada cuadrilátero debe poseer un color dis nto para
poder diferenciar mejor la pertenencia de una categoría.

Al hacer click en un cuadrilátero, éste mostrará sus sub-divisiones, expandiéndose has-


ta ocupar todo el canvas para mostrar el siguiente nivel. El color de este sub-nivel es
el mismo que la categoría a la cual pertenece.

Para volver al nivel superior, se puede hacer click en cualquier cuadrilátero de palabra
clave o en un botón en la esquina superior derecha. Al hacer esta acción, se compri-
mirán los cuadriláteros, volviendo a la vista del nivel superior.

El tool p para cada cuadrilátero indicará la frecuencia y el porcentaje respecto al total.

En el sub-nivel inferior, se mostrarán solamente palabras claves que posean frecuencia


mayor a tres.

Criterios de aceptación

Presenta datos de ejemplo y reales de forma correcta, sin errores.

Las categorías pertenecen al estudio.

La frecuencia y porcentajes de cada categoría y palabras claves son correctas.

Al hacer click en una figura en el primer nivel, lleva al detalle de las palabras claves de
la categoría respec va.

Al hacer click en una figura en el segundo nivel, debe volver a mostrar el nivel superior.

El indicador posee una carga menor de 3[s].

3.4.5. GRÁFICO DE SATISFACCIÓN/SENTIMIENTO VS CATEGORÍA

Datos a u lizar: De todas las respuestas de una pregunta se u lizarán sus categorías, sen-
mientos y frecuencias respec vas. También, en caso de que una pregunta de texto esté
relacionada con otra pregunta de escala, puede reemplazarse el eje de sen miento por sa-
sfacción neta.

Página 39 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Función del indicador: Mostrar de forma concisa toda la información que la API es capaz de
ofrecer respecto a la analí ca de texto en un solo gráfico, presentando al cliente todas las
aristas en torno a las respuestas de texto abierto.

Este gráfico representa una complejidad alta, ya que implica la creación de múl ples gráfi-
cos de torta que entregan mucha información de forma individual y deben estar alineados
respecto a un gráfico de po barra vacío. Para aclarar el diseño de este gráfico se explicará
en pasos de construcción:

Círculo interior: El círculo interior define a la categoría y su frecuencia, siendo esta


úl ma representada por el tamaño del círculo.

• Contenido: Poseerá dentro de éste el nombre de la categoría que representa.


Además, el porcentaje de sa sfacción que, dependiendo su valor, puede tomar
color verde, amarillo o rojo.
• Color: Un color gris muy claro. La intención que no destaque tanto como el círculo
exterior, pero tampoco que se camufle con el fondo blanco del canvas.
• Tool p: Poseerá el porcentaje y el texto recomendación neta para detallar el sig-
nificado del porcentaje.

Círculo exterior: Consiste en un anillo que encierra al círculo interior. Este puede ser
par cionado hasta tres piezas donde a pesar que se refieren a cosas dis ntas, cumplen
el mismo formato. Cada par ción sigue:

• Color: Poseerá un color verde, amarillo o rojo, haciendo alusión a los sobre es-
tándar, estándar y bajo estándar, respec vamente.
• Tool p: Con ene el porcentaje respecto al total de promotores, pasivos y de-
tractores, seguido de un texto que lo iden fica entre las tres opciones. Además,
el tool p posee un fino borde del mismo color para asociar mejor el concepto.

Por lo tanto, el anillo exterior detallará el porcentaje de promotores, pasivos y detrac-


tores para hacer la relación con el porcentaje de sa sfacción total.

Eje Y: Define la escala de la recomendación general en el gráfico. Igual que los anillos
exteriores, estará par cionado en tres partes con los estados y colores anteriormente
mencionados. El rango de la recomendación general va desde -100 a 100. Gracias a
este eje, podemos posicionar los círculos en el gráfico.

Posicionamiento circulos acoplados: El posicionamiento de los círculos dependerá de


la definición de los eje x e y. Los criterios para posicionar son:

• Eje Dependiente: Como este eje indica la recomendación general, cada círculo
será posicionado de tal forma que el centro esté alineado en el eje dependiente
a la misma altura donde se encuentra su valor de recomendación general.

Página 40 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

• Eje Independiente: Este eje no par cipa para el análisis del indicador, pero si ayu-
da a situar los círculos después de asignarle una posición en el eje dependiente,
ayudando a que no se solapen al momento de dibujarlos.

En resumen, la can dad de información que contendrá este indicador es:

Can dad de comentarios dentro de una categoría.


Sen miento/recomendación de respuestas.
Porcentajes de ambos puntos anteriores respecto al total.
Sen miento/recomendación neta.

Estos puntos dentro del indicador ayudarán a hacer la compara va de categorías mucho más
fácil, además de iden ficar inmediatamente cuáles son las categorías más comentadas y más
crí cas, que ayudarán a tomar decisiones oportunas.

Criterios de aceptación

Presenta datos de ejemplo y reales de forma correcta, sin errores.


Las categorías pertenecen al estudio.
Los porcentajes para la recomendación neta o sen miento son los correctos para cada
categoría.
Los tamaños de los círculos corresponden a la can dad total de respuestas por cate-
goría.
Ninguno de los círculos se solapan en el canvas.
El centro del círculo está a la misma altura que el valor de la recomendación neta del
círculo en el eje Y.
El indicador posee una carga menor de 3[s].

3.4.6. TABLA DE COMENTARIOS

Datos a u lizar: Se u lizan las categorías y las agrupaciones de textos con sus respec vas
frecuencias.

Función del indicador: Permite mostrar en pestañas principales las categorías encontradas y
en cada una de ellas, un despliegue que detalla de forma directa los comentarios que posee
esa e queta.

Página 41 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Este indicador ayudará al cliente cuando quiera revisar de forma directa los comentarios y
a cuál categoría corresponden. Se incluirán los siguientes criterios en la construcción de la
tabla:

1. Las pestañas de categorías serán ordenadas desde la mayor frecuencia a la menor.

2. Los comentarios aparecerán tal cual como fueron respondidos en la encuesta. A pesar
de u lizar procesos que corrigen las palabras, debemos mostrar las respuestas origi-
nales.

3. Se implementará en esta tabla el concepto de grupos de categorías. Por lo anterior,


los comentarios en las pestañas desplegables también poseerán frecuencia, indicando
cuántos comentarios engloba ese grupo.

Criterios de aceptación

Presenta datos de ejemplo y reales de forma correcta, sin errores.

Las categorías pertenecen al estudio.

La frecuencia de los grupos de categoría son correctos.

Las pestañas de categorías están ordenadas de mayor a menor.

El indicador posee una carga menor de 3[s].

Los indicadores serán generados por la API en un formato base, suficiente para que las aplica-
ciones de QServus puedan realizar modificaciones según necesiten y dependiendo del con-
texto de sus dashboard.

3.5. QSERVUS AI

QServus AI es el nombre con el cual se define la API de inteligencia ar ficial de QServus y


que proveerá todas las herramientas necesarias para realizar análisis de datos descrip vo y
predic vo según se requiera. Dentro de este diseño de REST API, se buscará implementar las
mejores prác cas de diseño y de QServus para que la comunicación sea efec va, eficiente y
de fácil comprensión.

En esta sección se explicará porqué se decidió por una REST API como arquitectura y diseño
de so ware para la aplicación. Se mostrará el modelo de datos base para realizar las dife-
rentes tareas. También, la definición de los endpoints y los formatos para que las pe ciones
sean correctas y, por úl mo, cómo serán implementadas en la API las tres soluciones descri-
tas anteriormente.

Página 42 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

3.5.1. COMUNICACIÓN ENTRE APLICACIONES

QServus posee muchas aplicaciones para dis ntos propósitos. Dentro de su conjunto, se en-
cuentran las siguientes:

1. QServus Pro: Es la aplicación principal de QServus, que reúne todas las funcionalidades
que puede ofrecer la plataforma. Está orientada a empresas más grandes donde pue-
dan personalizar sus encuestas e indicadores, además de definir tareas automá cas,
crear bitácoras para registrar interacción con clientes, etc.

2. QServus Lite: Es la versión más liviana de QServus Pro, pensada principalmente para
plataformas móviles, pero igualmente accesible mediante otros disposi vos. Está en-
focada a empresas más pequeñas que necesitan información general de sus clientes.
Debido a lo anterior, es más restric va respecto a los diseños e indicadores presentes.

3. Cliente Interno: Versión de QServus Pro enfocada principalmente en encuestas para


evaluación interna de empresas. Presenta diseños de encuesta adicionales como tam-
bién indicadores personalizados para ese contexto.

4. SAC Lite: Es una aplicación centrada en el servicio de atención a clientes, permi endo
el registro de ckets sobre las atenciones de diversas solicitudes.

5. QSend It: Una aplicación que se encarga en el envío y registro de tareas automa zadas,
principalmente de anuncios o mensajes por correo.

6. Aprendus: Aplicación de aprendizaje on-line de diversos temas.

Como se puede apreciar, son muchas aplicaciones. Crear para cada una un módulo que se
encargue de realizar análisis de inteligencia ar ficial traería los siguientes prejuicios:

Los módulos no serían escalables, ya que funcionalidades que beneficien a muchas


aplicaciones implica más empo de desarrollo debido a que se encuetran separados.

Di cil mantención de versiones de los módulos de inteligencia ar ficial, teniendo apli-


caciones con versiones más an guas del módulo que otras.

La carga de este nuevo módulo para los servidores de cada aplicación se acumularía,
haciendo que las funcionalidades principales de cada aplicación se vean mermadas.

Cualquier error que pueda presentar este módulo, al estar construido dentro de cada
aplicación, puede producir caídas o demoras en el servicio, influyendo directamente
en los requerimientos no-funcionales del up- me.

Página 43 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Muchos argumentos rechazan la idea de una implementación directa en cada aplicación, por
lo que se debe optar por un so ware único que esté a la escucha de diversas pe ciones y
que, dependiendo de qué aplicación la realiza, se ejecute siguiendo el contexto requerido.
Debido a esto, se decide la construcción de una API, ya que en contraste con las razones
anteriores:

La API es escalable, pues con una buena definición del modelo de datos y la obtención
de los recursos, puede manejar una gran can dad de datos y de muchas aplicaciones.

Al ser única, el control de versiones es más sencillo. Además, la API puede ser dividi-
da en módulos, lo que hace que ciertas funcionalidades no topen con otras y así no
afecten a su comportamiento.

La API al ser independiente de las aplicaciones, es ejecutada en un servidor aparte por


lo que la carga se concentra en un solo servidor.

No afecta en el up- me de las demás aplicaciones, ya que si la API llegase a fallar, las
aplicaciones recibirán códigos HTTP con el resultado de las pe ciones, permi éndo-
les manejar las excepciones y mantener de forma constante el porcentaje de up- me
establecido.

A con nuación, se mostrará de forma concisa el modelo de datos inicial que se u lizó para
ordenar los datos entrantes y los resultantes en los diferentes procesos y algoritmos que
serán ejecutados.

3.5.2. MODELO DE DATOS

QServus AI requiere un modelo de datos que represente todos los recursos necesarios para
los análisis como así también los resultados generados por éstos.

Página 44 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Figura 14: Modelo de datos con que la API trabajará para el análisis CRUD de sus recursos.

En la Figura se aprecian las tablas diseñadas para QServus AI. Se dividen en tres grupos:

En ty: Se centra en las tablas necesarias para QServus AI para iden ficar las aplicacio-
nes que realizan las pe ciones y filtrar información.

Analysis: Concentran las tablas que almacenarán la información crucial para iden fi-
car los recursos, como también almacenar resultados de análisis.

CategoryGroups: Consiste en tablas que almacenarán las categorías de grupos.

Estos grupos en conjunto y con la definición de los endpoints, permi rán a QServus AI a
realizar las tareas que fueron diseñadas en las secciones anteriores.

Página 45 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

3.5.3. DEFINICIÓN DE ENDPOINTS

QServus AI debe definir endpoints en los cuales las diferentes aplicaciones podrán acceder,
guardar y/o eliminar datos de la API como también ejecutar los diferentes análisis que están
a su disposición. El detalle de cada endpoint que se definió se encuentra en la sección de
Anexos, debido a su gran extensión.

Todos los endpoints presentes en la API, aunque realicen dis ntas operaciones en los datos
o análisis, presentan ciertas caracterís cas en común, que serán definidas a con nuación.

Cada endpoint debe ser solicitado con un token de auten cación que indique qué apli-
cación es la que solicita el recurso. Claramente, es parte de una capa de seguridad para
que solo las aplicaciones registradas en QServus AI puedan realizar acciones en él.

Gracias al token de auten cación anterior, también es posible definir qué datos están
disponibles para cada aplicación y restringir los accesos entre datos de las aplicaciones
si es necesario.

Incumplir con la regla del token de auten cación siempre será respondida con un error
de código HTTP 401 UNAUTHORIZED. Considera los casos cuando no se envía token o
se envía pero no está registrado en QServus AI.

Cuando una aplicación requiera acceder a los datos de otra, siempre se devolverá un
error de código HTTP 403 FORBIDDEN, indicando que no posee los permisos.

Todas las pe ciones de po POST poseen un formato estructurado y definido para


la pe ción. Hay funcionalidades que revisan el correcto comportamiento y, en caso
contrario, devolverán un error de código HTTP 400 BAD REQUEST, indicando qué parte
de la estructura está errónea o pérdida.

Los endpoint de análisis no entregarán de forma inmediata los resultados debido a que
éstos pueden demorarse. Estos serán ejecutados de forma asíncrona, y no ficarán a
la aplicación cuándo el procesamiento esté finalizado, adjuntando un iden ficador del
análisis para que puedan ser solicitados.

Página 46 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

CAPÍTULO 4
VALIDACIÓN DE LA SOLUCIÓN

En esta sección se detallará la puesta en marcha de las soluciones anteriormente definidas.


Se presentarán métricas de evaluación como también resultados de categorización. Por otra
parte, se mostrarán los indicadores de forma gráfica como también el desempeño de la API
con los dis ntos endpoints que se crearon.

4.1. ANÁLISIS DE SENTIMIENTO

Para poder hacer las comparaciones entre ambos modelos y los diferentes valores en sus
hiperparámetros, se u lizarán las siguientes métricas:

1. Accuracy (acc): Es el porcentaje, en un aspecto global, de la can dad de clasificaciones


correctas respecto al total de observaciones.

2. Precision (pr): Es el porcentaje de las clasificaciones de una clase que son correctas. Se
calcula con la siguiente fórmula:
TP
Cpr = (30)
TP + FP

3. Recall (rc): Consiste en la can dad de clasificaciones correctas de una clase respecto
a la can dad real de esa clase en los datos de entrenamiento. Este se calcula con lo
siguiente:
TP
Crc = (31)
TP + FN
4. f1-score: Es la media armónica entre las dos métricas anteriores, con el fin de obtener
una evaluación que considere ambos aspectos. Se calcula con la siguiente fórmula:
pr · rc
F1 = 2 · (32)
pr + rc

Cada una de estas métricas, a excepción del accuracy, serán diferentes para cada clase. El
accuracy cubre un aspecto más global a cómo el modelo predice de forma correcta la ca-
tegoría de cada dato. En cambio los tres restantes están más ligado a cómo el modelo se
desempeña al predecir datos de una clase u otra.

Esta evaluación se dividirá en dos fases: la primera consiste en el entrenamiento de ambos


modelos y comparar sus resultados. La segunda se vuelven a entrenar los datos pero u li-
zando cross-valida on.

Página 47 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

4.1.1. FASE 1: EVALUACIÓN DE MODELOS

Ambos modelos son entrenados con los mismos hiperparámetros, los cuales son:

Épocas: 50

Tamaño del batch: 512

Tamaño de embedding: 30

Tamaño del vocabulario: 6659

Primero, revisaremos los gráficos que definen el accuracy del modelo y, por otra parte, la
fluctuación de la función de pérdida.

Figura 15: Función de accuracy a la izquierda y la función de pérdida a la derecha, para el


modelo u lizando LSTM.

Figura 16: Función de accuracy a la izquierda y la función de pérdida a la derecha, para el


modelo u lizando GRU.

Página 48 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

A simple vista, podemos ver la presencia de sobreajuste, ya que el accuracy del conjunto de
entrenamiento mejora constantemente, mientras que en el conjunto de pruebas mejora las
primeras épocas, para después mantener su fluctuación cercano al 60 %. Esto quiere decir
que el modelo está aprendiendo de buena forma con los datos de entrenamiento, pero se
ve incapaz de demostrar esa pericia en datos que no ha visto.

Comparando ambos modelos, apreciamos que el modelo con GRU es menos propenso a
fluctuaciones y a mejorar de forma constante a través de las épocas, mientras que el modelo
con LSTM posee ciertas recaídas durante las épocas.

Para revisar esto a más detalle, la matriz de confusión muestra los falsos posi vos y nega vos
para cada clase (Figura 17):

Figura 17: Matrices de confusión para el modelo con LSTM (izquierda) y para el modelo usan-
do GRU (derecha).

Ambos modelos se desempeñan mejor e quetando respuestas posi vas, aunque LSTM es
un mejor clasificador de nega vos mientras que GRU es de respuestas mixtas. Aún así, apre-
ciamos una gran can dad de falsos para cada clase. Respecto a las métricas de evaluación,
revisar Tabla 5 y 6:

Clase Precision Recall f1-score


Nega vos 53.5 % 49.7 % 51.5 %
Mixtos 44.7 % 40.9 % 42.7 %
Posi vos 71.5 % 77.5 % 74.4 %

Tabla 5: Métricas de evaluación para el modelo con unidades LSTM.

Página 49 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Clase Precision Recall f1-score


Nega vos 50.6 % 44.5 % 47.3 %
Mixtos 42.8 % 40.2 % 41.5 %
Posi vos 70.9 % 77.4 % 74 %

Tabla 6: Métricas de evaluación para el modelo con unidades GRU.

Con esta comparación, es más evidente que el modelo con unidades LSTM ene un mejor
desempeño que el de unidades GRU. A pesar que no se diferencian mucho respecto a cuán-
tas predicciones de una clase son realmente correctas (recall), el modelo LSTM es menos
propenso a confundirse de clase al predecir.

En líneas generales, ambos modelos presentan sobreajuste debido a la complejidad de los


textos y sus e quetas, las cuales son provenientes del NPS. Debido a esta misma razón, se
realiza la segunda fase implementando cross-valida on para poder enfrentar esta proble-
má ca.

4.1.2. FASE 2: CROSS-VALIDATION

Cross-valida on consiste en par cionar los datos a entrenar asignando diferentes porciones
al conjunto de entrenamiento y de pruebas. La razón es evitar un sesgo respecto a qué datos
se encontraban en cada conjunto. Por ejemplo, al hacer una par ción puede que los datos
con sen miento posi vo estén más concentrados en el conjunto de entrenamiento que en el
de validación, lo que puede explicar el bajo desempeño de la red cuando e queta respuestas
mixtas o nega vas.

Para esta evaluación se u lizan ambos modelos y se realizan 5 ordenamientos diferentes


para los datos.

Página 50 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Figura 18: Resultados para el modelo LSTM. En la columna izquierda los resultados de en-
trenamiento y la columna derecha los de pruebas. La primera fila consiste en la métrica del
accuracy y le fila inferior a la función de pérdida.

Página 51 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Figura 19: Resultados para el modelo GRU. En la columna izquierda los resultados de entre-
namiento y la columna derecha los de pruebas. La primera fila consiste en la métrica del
accuracy y le fila inferior a la función de pérdida.

Podemos apreciar que la diferencia entre los modelos se hace mucho más evidente. El mo-
delo GRU es muy sensible a la distribución de los conjuntos de datos, influenciándose fá-
cilmente, en cambio el modelo LSTM es mucho más estable ante diferentes conjuntos de
datos. Esa estabilidad nos hace escoger, a primera vista, el modelo LSTM.

Revisando los resultados del modelo LSTM, escogemos el modelo que fue entrenado con el
cuarto ordenamiento, ya que se obtuvo una mejor precisión en el conjunto de pruebas.

Página 52 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Figura 20: Matriz de confusión del modelo LSTM con el cuarto ordenamiento del conjunto
de datos.

Clase Precision Recall f1-score


Nega vos 52.3 % 44.7 % 48.2 %
Mixtos 45.5 % 47.3 % 46.4 %
Posi vos 73.4 % 76.4 % 74.9 %

Tabla 7: Métricas de evaluación para el modelo con unidades GRU.

Tras este análisis, con el modelo entrenado con el cuarto ordenamiento, se obtuvo el mejor
resultado de la prueba. Aún así, los porcentajes en el conjunto de validación no parecen ser
muy convincentes. Para salir de dudas, comprobamos el desempeño de la red con ciertos
ejemplos, los cuales están detallados en la Tabla 8.

Página 53 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Respuesta E queta del modelo


en general se a mejorado mucho, falta tener mas tecnología o sistemas mas
Mixto
completos
Hay muchos procedimientos en donde se deben considerar a las áreas
comerciales, para mejorar el workflow de este, y para que haya seguimiento Nega vo
de tal.
implementar sistema de seguimiento de solicitudes para todas las áreas Mixto
mayor compromiso y proac vidad de las personas que integran cada una de
Nega vo
las áreas
responder el teléfono, y no dar a entender que el problema es del ejecu vo
Nega vo
sino un problema banco
Encuentro que en ocasiones falta comunicación , sin embargo dada la
Mixto
situación actual la comunicación via Teams encuentro que ha sido favorable
Que todos manejen la misma información, remar todos para el mismo lado Mixto
Excelente disposición y rapidez en la entrega de requerimientos Posi vo
Con menos paradas, se aprecia la rapidez del tren y mejora mucho la
Posi vo
experiencia del viaje
Buenas tardes,me encantó viajar y así será desde este viaje en
Posi vo
adelante,muchas gracias

Tabla 8: Desempeño de la red neuronal recurrente con respuestas de diversas encuestas.

Se aprecia que el modelo ene una predisposición a categorizar los comentarios en Mixto,
dejando en claro que al modelo le cuesta definir la dualidad posi va o nega va.

4.2. CATEGORIZACIÓN DE TEXTO

4.2.1. FUENTE DE DATOS

QServus, como se ha mencionado reiteradamente, posee muchas encuestas de diversos


clientes con preguntas de texto abierto, por lo que la la can dad de datos disponibles es
abundante. Esto si bien es una ventaja para ejecutar algoritmos de IA, trae también un pro-
blema importante que se produce al tener muchas respuestas de clientes que pertenecen a
diferentes rubros, ya que un modelo de categorización general puede no iden ficar las reales
intenciones de los encuestados, como también puede escaparse información importante de
una categoría a otra, sobre todo si las keywords van aumentando o disminuyendo su impor-
tancia según el contexto. Tras lo anterior, se considerará un contexto específico, en el cual
se tomarán sus datos y se creará un modelo de categorización de texto que pueda respon-
der a las principales problemá cas del rubro seleccionado, el cual servirá de puntapié para
ir mejorando los modelos por empresa.

Página 54 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Se considerará para este análisis las respuestas de 5 encuestas, las cuales engloban una can-
dad de 40 preguntas de texto abierto, sumando en total unas 3747 respuestas. El rubro es-
cogido para este análisis será el de finanzas, ya que es uno de los rubros que más encuestas
y respuestas posee. De manera detallada, en la Tabla 9 se presenta información cuan ta va
de la fuente de datos a u lizar.

N° de encuesta N° de preguntas de texto N° de respuestas en encuesta


1 8 169
2 8 729
3 8 1646
4 8 340
5 8 863

Tabla 9: Descripción cuan ta va de las encuestas donde se realizará la categorización de


texto con el modelo de categorización de teletrabajo.

4.2.2. DISEÑO MODELO DE CATEGORÍAS

El diseño que se ocupará en este trabajo fue construido para un contexto donde se evalúa la
experiencia con el teletrabajo dentro de una empresa, considerando el contexto de pande-
mia mundial producido por COVID-19. Para esto, se consideraron las siguientes categorías:

Tiempos de respuesta: Se refiere al empo de respuesta que perciben los trabajadores


en diversos procesos de su empresa.

Infraestructura: Explica todas las herramientas sicas que necesitan los trabajadores
para poder realizar su labor en casa. Estos pueden ser una computadora adecuada,
impresoras, etc.

Internet: Indica cómo es la experiencia con el internet de los hogares y si cumple los
estándares necesarios para un buen desempeño.

Sistemas: Posee los comentarios que se refieren a cómo los sistemas de la empresa
han funcionado en el contexto de pandemia.

Opera vidad de procesos: Cómo los procesos se han adaptado (o no) al teletrabajo.

Horario: Se refiere a cómo los empos y horarios de la ru na del trabajo en oficina


han cambiado al momento de trabajar desde casa.

Compa bilidad familiar: Explica cómo se ha compa bilizado el trabajo en casa con
las necesidades hogareñas y familiares.

Apoyo: Indica cómo la empresa ha ayudado a sus trabajadores (o no) para poder
superar las nuevas dificultades que puede presentar el teletrabajo.

Página 55 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Comunicación: Posee los comentarios que tratan sobre la comunicación entre traba-
jadores y cómo se establecen las condiciones e informaciones.

Otros: Son comentarios que no fueron categorizados en ninguna de las anteriores.

Con lo anterior definido, se realiza la categorización de las respuestas con el modelo definido.
En la tabla 10 y 11 se especifica una porción de las respuestas con su categoría asignada.

Página 56 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Comentario Categoría
agradezco la posibilidad de poder estar de manera remota sin la
Apoyo
preocupación de contagiarme
Es vital contar con plataformas robustas y con un muy buen soporte, que
Sistemas
permitan lograr con nuidad laboral.
Yo estoy con teletrabajo por mi embarazo, y por el po de trabajo que
realizaba en la oficina,se me dificultó al principio el hacer labores porque
trabajamos con documentos sicos, pero con el empo me dio la Opera vidad - Procesos
oportunidad de apoyar en ac vidades nuevas y a otras áreas por lo que
terminó siendo mejor
cuesta el horario de cierre, por que igual se cierra mas tarde Horario
Me a parecido una muy buena experiencia en lo laboral, y creo que
contamos con grupos de trabajos comprome dos con el mismo fin, generar
una atención de calidad y cercanía con el cliente, las herramientas son Apoyo
dinámicas y efec vas en el desarrollo de las labores, solo me queda
agradecer el compromiso y voto de confianza de la Compañía. Gracias !!
Es una muy buena oportunidad considerando los empos de traslado, el
riesgo de salud teniendo a un hijo asmá co y no me complica ya que Compa bilidad familiar
cumplo con mis horarios de conexión y hasta hoy sin dificultades técnicas
Ha sido una oportunidad para poder conciliar el trabajo con la familia y
Compa bilidad familiar
aprovecharla al máximo
la experiencia en casa a sido excelente para mi, lo único malo son las
reuniones fuera de horario, las cuales son han citado pasada las 18:20 horas
Horario
y se han extendido casi hasta las 20:00 horas, en lo cual ocupan nuestros
empos de estar en familia con reuniones innecesarias.-
Igual se extraña el contacto con las personas..... Comunicación
Nunca pensé que mi po de labor se podría hacer de manera remota, ha
sido maravilloso, todo lo malo también trae lago bueno y agradezco de
haber tenido esta oportunidad, que mis niños me vean a diario acá Apoyo
trabajando y compar endo con ellos es impagable, por eso estoy muy
agradecida.
se echa de menos el contacto con los compañeros de trabajo Comunicación
me hubiese per nente si me hubiesen facilitado un computador ya que lo
comparto con mi hijo, facilitaría un poco mas las cosas. si los niños pudiesen
Infraestructura
asis r al colegio el trabajo remoto seria aun mas produc vo, podría
combinarse trabajo remoto con presencial
buena experiencia trabajar en forma remota y nos podemos dar cuenta que
si se puede ,debería implementarse este sistema en un futuro no muy
Compa bilidad familiar
lejano , así poder tener mas empo con la familia y compa bilizar vida
personal con el trabajo de una mejor manera .
De repente he tenido problemas de internet, pero ha sido muy buena
Internet
experiencia.

Tabla 10: Detalle cuan ta vo sobre las respuestas y sus e quetas.

Página 57 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Agradecer a la compañía, a nuestros jefes y Gerentes por la preocupación


Apoyo
por nuestro salud, bienestar sico, Mental durante todo este período.
creo que a nuestra empresa nos falta potenciar herramientas de trabajo
Sistemas
colabora vo, whiteboard, one drive, office 365
Cumplir mis labores desde el hogar, me ha permi do ahorrarme un empo
considerable en transporte (En mi caso par cular me ahorro alrededor de 2 Horario
horas y media), lo que me permite tener una mejor calidad de vida.
en el contexto de esta crisis sanitaria, convivo con adultos mayores y niños
que requieren atención, es por ello que me gustaría que se flexibilizara el
Compa bilidad familiar
horario de colación, para poder atenderlos. obvio que sin crisis sanitaria eso
ya estaría resuelto.
Al no estar fisicamente junto con el grupo de trabajo, se hace más lenta la
comunicación para solucionar casos con problemas de los clientes, Tiempos de respuesta
seguimiento de las operaciones
solo gracias por dejar trabajar remoto, porque ha sido lejos la experiencia
Compa bilidad familiar
familiar que siempre anhele.
Creo es mas cómodo ya que uno pierde mucho empo en los traslados y es
Horario
cansador manejar mas de una hora de ida y de vuelta
Para mí lo ideal sería un modelo mixto entre presencial y remoto. Opera vidad - Procesos
Mejorar los empos de espera cuando debemos comunicarnos con Soporte
Tiempos de respuesta
de la Cía. para solucionar los problemas con nuestros equipos.
Es importante tener los Recursos básicos para trabajar en casa, una comoda
silla, uno pasa muchas horas sentado, la almohadilla de ACHS para proteger Infraestructura
la muñeca, a mi se me ha resen do.
Recomiendo que puedan facilitar las sillas , audifonos, monitor para realizar
Infraestructura
un mejor trabajo
Solo que estoy tremendamente agradecido de esta ins tución, por toda la
preocupación y el apoyo prestado soy un funcionario agradecido de trabajar Apoyo
en esta ins tución...
Mi gran problema es la calidad de internet que puedo acceder en la zona de
Internet
mi domicilio.
Teletrabajo debe ir acompañado de entrega de materiales para el trabajo,
Apoyo
tanto funcional como de apoyo.

Tabla 11: Detalle cuan ta vo sobre las respuestas y sus e quetas.

4.3. INDICADORES

Se listarán los indicadores que fueron definidos con una figura representando su resultado
final. También se expresará si los criterios de aceptación fueron logrados para cada uno de
ellos.

Página 58 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

4.3.1. GRÁFICO DE BARRAS: RÁNKING POR CATEGORÍA

Este gráfico de barras busca representar la can dad de respuestas que fueron categorizadas
con cierta e queta. Es una forma rápida de demostrar qué categorías son más mencionadas
en las respuestas.

Figura 21: Ejemplo del gráfico, que muestra la frecuencia para cada categoría.

El funcionamiento de este indicador es bastante simple, y se puede apreciar en la Figura 21


que las categorías están ordenadas de mayor a menor, indicando su frecuencia. Con esto,
sabemos cuántos comentarios están con cada e queta.

Listando los criterios de aceptación, tenemos:

1. Presenta los datos de forma correcta, sin errores: Cumple con el criterio, mostrando
la frecuencia para cada categoría en la muestra.

2. Las categorías pertenecen al estudio: Pertenecen al estudio de clientes del área finan-
ciera.

3. Las barras de categorías están ordenadas de mayor a menor: Se cumple, tal cual como
se observa en la figura.

4. El indicador posee una carga menor de 3[s]: Implementado este indicador en el servi-
dor de pruebas, la carga del indicador fue de 1,8[s], siendo luego de 0,9[s] tras u lizar
el caché del cliente.

Página 59 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

4.3.2. GRÁFICO DE BARRAS: CATEGORÍA VS SENTIMIENTO

Este gráfico busca representar cómo son los sen mientos de los comentarios agrupados bajo
una misma categoría.

Figura 22: Ejemplo de gráfico, que presenta los sen mientos de cinco categorías.

Podemos apreciar que el gráfico de la Figura 22 posee un eje X que se adapta a la can dad de
datos presentes. Además, cada barra se encuentra correctamente stackeada con un color es-
pecífico, en donde cada uno está descrito en la leyenda. Listando los criterios de aceptación,
tenemos:

1. Presenta los datos de forma correcta, sin errores: Cumple este criterio, siendo la suma
de cada sen miento igual al total presentado en el eje X con el largo de cada barra.
2. La frecuencia de los sen mientos es correcta para cada categoría: Cada sen miento
presenta frecuencias correctas.
3. El orden de la barra par cionada es correcta: Como se aprecia la base corresponde a
los posi vos, luego neutros y finalmente nega vos.
4. Las barras de categorías están ordenadas de mayor a menor: Están ordenadas de ma-
yor a menor, desde arriba a abajo, considerando la frecuencia total de respuestas por
categoría.
5. El indicador posee una carga menor de 3[s]: Implementado este indicador en el servi-
dor de pruebas, la carga del indicador fue de 1,8[s], siendo luego de 1[s] tras u lizar
el caché en el cliente.

Página 60 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Figura 23: Formato del tool p para cada barra, indicando las can dades para cada sen mien-
to.

4.3.3. NUBE DE PALABRAS MEJORADA

Este gráfico busca mostrar información importante respecto a tendencias en lo que la gente
responde, mostrando la frecuencia de unigramas y bigramas.

Página 61 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Figura 24: Ejemplo de gráfico que muestra los unigramas y bigramas más frecuentes.

Los bigramas poseen un tamaño más grande, permi endo que el usuario se percate fácil-
mente de ellos. En la Figura 24, podemos apreciar que el unigrama atención es frecuente,
pero gracias a los bigramas podemos ver que las opiniones son diversas y de contextos es-
pecíficos.

Listando los criterios de aceptación, tenemos:

1. Presenta los datos de ejemplo y reales de forma correcta, sin errores: Cumple este
criterio, mostrando la frecuencia de cada palabra en el tool p, correspondiente a las
respuesta de salud que fueron u lizadas.

2. Los bigramas destacan a pesar de su poca frecuencia: Los bigramas, debido a su im-
portancia semán ca, se muestran con un tamaño considerable en comparación con
los unigramas que poseen frecuencia parecida.

3. Las palabras enen buena ortogra a: Las palabras poseen buena ortogra a y correcto
uso de ldes.

4. El indicador posee una carga menor de 3[s]: Implementado este indicador en el ser-
vidor de pruebas, la carga de este fue de 1,1[s], siendo luego de 0,3[s] tras u lizar el
caché en el cliente.

Página 62 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

4.3.4. TREEMAP

Este gráfico busca representar de forma más didác ca e intui va la categorización de comen-
tarios y sus palabras claves más frecuentes.

Figura 25: Ejemplo de gráfico de treemap representando las categorías, su color y porcentaje
respecto al total de respuestas.

Se aprecia la forma de cuadrilátero que presenta el gráfico de la Figura 25. Además, cada
uno está segmentado en pequeños cuadriláteros, haciendo entender que estos se pueden
desglosar para encontrar más información. Cada categoría posee su color propio para dife-
renciarse, acompañados de un porcentaje que implica cuánto poseen respecto al total de
comentarios. Podemos apreciar que al hacer click en uno de los cuadriláteros, es posible
observar las palabras claves más frecuentes en cada una.

Figura 26: Ejemplo de gráfico de treemap cuando hacemos click en la categoría de calidad
del personal.

Listando los criterios de aceptación, tenemos:

1. Presenta los datos de forma correcta, sin errores: Cumple este criterio, mostrando de
forma transparente los porcentajes y frecuencias para cada categoría y palabra clave.

Página 63 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

2. Al hacer click en una figura en el primer nivel, lleva al detalle de sus palabras claves:
Cumple el criterio, donde al hacer click podemos apreciar las palabras claves. Además,
man enen el mismo color que su categoría.

3. Al hacer click en una figura en el segundo nivel, debe volver al nivel superior: Se replica
este comportamiento. Además, en caso de no ser intui vo, en la esquina superior de-
recha se presenta un botón con el nombre de la categoría, que también lleva al nivel
superior.

4. El indicador posee una carga menor de 3[s]: El indicador es cargado en 1,3[s], para
luego con uso de caché tener un empo de carga de 0.2[s].

Figura 27: Formato del tool p que, además del porcentaje, indica la frecuencia para la cate-
goría o keyword, en este caso, una palabra clave para la categoría Infraestructura.

4.3.5. GRÁFICO DE RECOMENDACIÓN/SENTIMIENTO VS CATEGORÍA

Este gráfico busca representar en un indicador las categorías y sus sen mientos o recomen-
daciones, indicando otras métricas como frecuencia total, rela va, sa sfacción neta, etc.

Página 64 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Figura 28: Ejemplo de gráfico de sen miento vs categoría, donde cada burbuja representa la
información completa de cada categoría.

Podemos apreciar que el gráfico de la Figura 28 posee una gran can dad de información en
cuanto a:

El tamaño de la burbuja indica la can dad de comentarios que fueron e quetados para
cada categoría.
El borde de cada círculo posee tres colores, donde la porción de cada perímetro co-
rresponde a la can dad de comentarios con un sen miento específico o según la re-
presentación de recomendación. Se man enen los mismos colores que el gráfico de
categoría por sen miento para la consistencia.
El porcentaje corresponde al sen miento/recomendación neta y su color ene rela-
ción con su valor y el eje dependiente.
El eje Y posee tres porciones de colores y va de un rango de -100 a 100. El centro del
círculo se posiciona respecto al eje Y según su valor de sa sfacción neta.

Considerando los criterios de aceptación para este indicador, se ene:

Presenta los datos de forma correcta, sin errores: Cumple con este criterio, siendo
proporcional los porcentajes netos y específicos de la sa sfacción, como también la
relación de los tamaños de los círculos. Además, los círculos están correctamente ali-
neados según su sa sfacción neta con el eje Y.
Los porcentajes para la sa sfacción neta o sen miento son los correctos: Cumple que
los porcentajes específicos y netos enen relación entre sí.

Página 65 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Los tamaños de los círculos corresponden a la can dad total de respuestas: Se cumple
este criterio, siendo muy notoria la diferencia de tamaños de los círculos indicando
qué categorías poseen más o menos comentarios que otra.

Ninguno de los círculos se solapan en el canvas: Como se muestra en el gráfico, ningún


círculo se solapa entre sí.

El centro del círculo está a la misma altura que su valor de sa sfacción neta y el eje
dependiente: Correcto, se aprecia que los círculos están centrados en el eje depen-
diente.

El indicador posee una carga menor de 3[s]: Cumple, ya que el indicador se demora
1,6[s] en cargar, mientras que al estar en caché se demora 0,2[s] en su carga.

Figura 29: Formato del tool p al colocar el mouse encima de una porción de borde, indicando
el porcentaje de comentarios posi vos.

4.3.6. TABLA DE COMENTARIOS

Este gráfico busca mostrar directamente los comentarios indicando la categoría a la que per-
tenecen. Además, comentarios que sean muy parecidos entre sí serán agrupados. Con esto,
la tabla debe poseer una columna con la cuenta, indicando la can dad de comentarios que
fueron agrupados en esa fila.

Página 66 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Figura 30: Tabla de comentarios, mostrando las respuestas, su categoría y frecuencia.

Se especifica correctamente el enunciado de la pregunta como las categorías y también sus


comentarios. Se u lizan tonalidades de grises, un color blanco y uso de negrita para diferen-
ciar los niveles de la tabla.

Listando los criterios de aceptación, tenemos:

Presenta los datos de ejemplo y reales de forma correcta, sin errores: Las presenta de
forma correcta, con comentarios acorde a su categoría, además de la frecuencia.
Las categorías pertenecen al estudio: Pertenecen, y se comprueban con los datos mos-
trados en los otros indicadores.
La frecuencia de los grupos de categoría son correctos: Son los correctos, además que
se contrasta con la can dad de comentarios iniciales con los finales en la tabla.

Página 67 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Las pestañas de categorías están ordenadas de mayor a menor: Se aprecia que va des-
de la categoría más frecuente hasta la que menos posee.

El indicador posee una carga menor de 3[s]: El indicador de demora 1.2[s] en cargar,
mientras que al estar en caché se demora 0,3[s] en su carga.

4.4. QSERVUS AI

Para validar el funcionamiento de la API se realiza una prueba del procedimiento completo
para la obtención de todos los indicadores implementados. Se detallan los diversos formatos,
cómo se realizan las llamadas y las respuestas recibidas por el servidor. Para organizar el
proceso, lo haremos paso a paso tal como se define en el siguiente listado:

1. api/analysis/analyse_text: Consiste en el proceso de e quetado tanto para categoría


como sen miento.

2. api/analysis/group_text: Consiste en combinar respuestas similares, para poder mos-


trar de forma ordenada el indicador de tabla de comentarios.

3. api/charts/category_ranking: Se ob ene el gráfico de ranking de categorías.

4. api/charts/wordcloud: Se ob ene el gráfico de nube mejorada.

5. api/charts/sen ment_bar: Se ob ene el gráfico de sen miento por categoría.

6. api/charts/treemap: Se ob ene el gráfico de caja de resonancia, o treemap.

7. api/charts/comment_table: Se ob ene el gráfico de tabla de comentarios.

8. api/charts/bubble_chart: Se ob ene el gráfico de burbujas para ambos casos.

Se u lizarán las respuestas de una pregunta con el enunciado ”¿Cuál es tu evaluación del
teletrabajo y cómo podría mejorarse?”. En total son 450 respuestas, y serán categorizadas
con el modelo de categorización de teletrabajo definido en la validación de la categorización
de texto.

Por úl mo, cierta información en la entrega o respuesta de los endpoints será reemplazada
por tres guiones. La razón es que la información corresponde a respuestas reales de clien-
tes de QServus, y se busca proteger la iden dad de la empresa como de las personas que
responden.

Página 68 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

4.4.1. CATEGORIZACIÓN DE DATOS

Se preparan las respuestas para el formato de entrada que pide el endpoint de analyze_text.
En el siguiente cuadro se presenta la información que fue enviada.

POST /api/analysis/analyse_text/

{
"metadata": {
"su_survey_id": 85,
"su_survey_tpl": 52,
"company_id": 7,
"model_version": 2,
"model_name": "teletrabajo_---",
},
"answers": [{
"question": {
"su_question_id": 2265,
"su_question_tpl_id": 2884,
"su_question_title": ,
"su_question_type": 32,
},
"answer": {
"su_answer_id": 111544,
"su_answer_scale": 1,
"su_answer_text": "que el horario remoto sea el mismo
que en oficina",
"su_answer_datetime": "2020-11-26 21:49:07.404232+00",
}
},...]
}

Al ser 450 preguntas, no se muestra el contenido completo de los datos de entrada, pero se
muestra el ejemplo con la primera respuesta. Los tres puntos suspensivos al final del cuadro
indican que existen más respuestas.

La respuesta obtenida por el endpoint al ingresar, fue la siguiente:

Página 69 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

{
"status": "Success",
"message": "Everything is correct, the answers are processing",
"answers_count": 450,
"questions_count": 1
}

La información que retorna el endpoint consiste en una variable que indica que el proceso fue
realizado correctamente, con un mensaje adjunto. Además, señala la can dad de respuestas
y preguntas involucradas.

Debido a la gran can dad de respuestas que puedan ser enviadas en una sola llamada, este
endpoint revisa si el formato de entrada es correcto y de forma asíncrona ac va la tarea de
categorización. Así, el cliente recibe de forma rápida una respuesta correcta o incorrecta.
Gracias al uso de webhooks, la API no ficará al cliente cuándo el procesamiento esté termi-
nado, y pueda solicitar la información mediante los indicadores.

4.4.2. AGRUPACIÓN DE TEXTOS

Posterior a la categorización de las respuestas es posible realizar la agrupación de los comen-


tarios. Como las respuestas y toda la información necesaria ya fue almacenada en la API, se
debe enviar solamente el iden ficador de la pregunta que queremos que sus respuestas, en
caso de parecerse, se agrupen.

POST /api/analysis/group_text/

{
"qid": 2265,
}

Este endpoint responde apenas termine el procesamiento, ya que el proceso es más rápido
que la categorización de texto y el payload es mucho más liviano. Tras eso, responde con un
mensaje indicando que fue procesado correctamente.

Página 70 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

POST /api/analysis/group_text/

{
"status": "Success",
"message": "All the answers were grouped successfully"
}

4.4.3. GRÁFICO DE RANKING DE CATEGORÍAS

Tras el procesamiento de las respuestas, ya es posible obtener los indicadores. Como primer
indicador, se ob ene el de ranking de categorías, el cual se logra gracias al endpoint co-
rrespondiente. Debemos, además, entregar el iden ficador de la pregunta cuyas respuestas
queremos que se reflejen en el gráfico.

GET /api/charts/category_ranking/

{
"qid": 2265,
}

Tras finalizar, se recibe un JSON con el formato específico, que con ene toda la información
para que las plataformas de QServus puedan mostrar perfectamente los indicadores. Todos
los indicadores devolverán ese po de formato.

Página 71 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Figura 31: Gráfico de ranking de categorías.

Podemos apreciar que la categoría que más se menciona es la de Internet, seguido de Apoyo,
Horarios y Compa bilidad Familiar, siendo los más importantes. Finalmente, los sistemas de
la empresa y la comunicación entre trabajadores no parece ser un tema determinante en la
evaluación.

4.4.4. GRÁFICO DE NUBE MEJORADA

Ahora, veremos cuáles son los unigramas y bigramas que más destacan en el conjunto global
de respuestas. Para eso se envía el iden ficador de la pregunta al endpoint correspondiente.

GET /api/charts/wordcloud/

{
"qid": 2265,
}

Tras realizar la pe ción al endpoint, devuelve el JSON que al renderizar, genera el gráfico de
la Figura 32.

Página 72 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Figura 32: Gráfico de nube mejorada.

Al ver el indicador, podemos apreciar que los temas más frecuentes son la nueva modalidad
de trabajo y el contexto que éste representa en los horarios laborales.

4.4.5. GRÁFICO DE BARRA: SENTIMIENTO POR CATEGORÍA

Para este indicador solo se necesita el iden ficador de la pregunta, apuntando al endpoint
que le corresponde.

GET /api/charts/sentiment_bar/

{
"qid": 2265,
}

Tras enviar la pe ción, QServus AI retorna el JSON con la información del indicador, el cual
al ser renderizado en QServus genera el gráfico de la Figura 33:

Página 73 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Figura 33: Gráfico de barras: sen miento por categoría.

Al observar el gráfico de la Figura 33, es evidente que la can dad de comentarios mixtos y
nega vos es superior a los posi vos para la mayoría de las categorías. Un mayor detalle de
las can dades de respuestas por cada po de sen miento, se ob ene a través de Tabla 12.

Categoría Nega vos Mixtos Posi vos Total


Internet 49 53 45 147
Apoyo 27 36 30 93
Horario 28 22 16 66
Compa bilidad Familiar 31 8 21 60
Infraestructura 9 15 10 34
Otros 10 9 1 20
Opera vidad - Procesos 6 5 5 16
Sistemas 4 4 2 10
Comunicación 0 1 3 4
Total 164 153 133 450

Tabla 12: Detalle cuan ta vo sobre las respuestas y sus e quetas.

4.4.6. GRÁFICO DE TREEMAP

Para la obtención de este indicador, se debe enviar al endpoint correspondiente el iden fi-


cador de la pregunta que se desea graficar.

Página 74 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

GET /api/charts/treemap/

{
"qid": 2265,
}

Tras obtener la respuesta, se renderiza el contenido y obtenemos el gráfico de la Figura 33.

Figura 34: Gráfico treemap de las respuestas.

En gráfico de Figura 34, se aprecia la can dad de palabras claves que posee cada categoría,
como también su proporción respecto al total. Es posible realizar desgloses para apreciar las
palabras claves de cada categoría (ver Figura 35).

Página 75 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Figura 35: Desglose de la categoría sistemas.

4.4.7. GRÁFICO DE TABLA DE COMENTARIOS

Este gráfico permi rá ver de mejor forma los comentarios que fueron e quetados tras el pro-
cesamiento. Se debe llamar a su endpoint correspondiente, dando también el iden ficador
de la pregunta.

GET /api/charts/comment_table/

{
"qid": 2265,
}

Esto devuelve un JSON con la información de cada respuesta y su categoría. Además, si hay
mensajes que se repi eron dentro del conjunto, serán agrupados, indicado la frecuencia de
cuantas respuestas representan.

Página 76 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Figura 36: Vista sin desglosar de la tabla con las categorías encontradas.

En la Figura 36, cada categoría posee una cuenta, donde vemos la can dad de respuestas
que fueron categorizadas. Al hacer click en los signos +, podemos ver el detalle dentro de
una e queta.

Figura 37: Desglose de la categoría apoyo.

Página 77 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Figura 38: Desglose de la categoría horario.

4.4.8. GRÁFICO DE BURBUJA

Tras el procesamiento de las respuestas, ya es posible obtener los indicadores. Como prime-
rindicador, obtendremos el de burbuja, el cual se ob ene entregando en el endpoint corres-
pondiente el iden ficador de la pregunta cuyas respuestas se desea queden reflejadas en el
gráfico..

GET /api/charts/bubble_chart/

{
"qid": 2265,
}

El endpoint devuelve un JSON con un formato específico, que con ene toda la información
para que las plataformas de QServus puedan mostrar perfectamente los indicadores.

Página 78 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Figura 39: Gráfico de burbujas de las respuestas.

En Figura 39 se aprecia que la mayor parte de los encuestados opina que Internet es lo que
podría mejorarse, además que hay opiniones muy divididas ya que las respuestas pertenecen
a varias categorías, donde todas, a excepción de Comunicación, poseen respuestas nega vas.

Página 79 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

CAPÍTULO 5
CONCLUSIONES

5.1. APRENDIZAJE DEL TRABAJO REALIZADO

Se realiza la construcción de un so ware (API) considerando el contexto de desarrollo de una


empresa específica, colaborando a que pueda comunicarse y ofrecer los diversos servicios
de forma estructurada, simple y rápida. Además, dentro de las funcionalidades del so ware,
se implementan conocimientos generales de machine learning, por una parte con el análisis
de sen miento aplicando un modelo supervisado como las redes neuronales recurrentes y,
por la otra, la categorización de texto u lizando un modelo no supervisado con asignación
de puntajes y distancias entre vectores con palabras claves. Además, se aprende conceptos
tanto de programación y diseño para la construcción de indicadores, los cuales permiten
mostrar de forma correcta la información obtenida tras el análisis. Se documenta de forma
clara el funcionamiento de los endpoints del so ware y su uso, como también las pruebas
donde se específica el flujo completo para obtener todas las funcionalidades que QServus AI
puede ofrecer. Por úl mo, este trabajo permi ó implementar los conocimientos adquiridos
en la universidad en un contexto real, teniendo que considerar no sólo el desarrollo de la
solución, si no adaptarse a requerimientos no funcionales y también de clientes.

5.2. CUMPLIMIENTO DE OBJETIVOS

En síntesis, en este trabajo se construyó una API que logra analizar las respuestas de texto
abierto asignándoles un sen miento y una categoría. Además, presenta diversos indicadores
que muestra la información de forma clara y concisa.

Respecto al primer obje vo, se logra desarrollar un modelo de red neuronal para la predic-
ción de sen mientos en respuestas de texto abierto. A pesar de la limitante de no poseer
datos con una e queta directa con sen miento, se logra encontrar una alterna va que es la
métrica de recomendación, que facilita el entrenamiento de la red neuronal. Tras ese proce-
dimiento, el modelo logró una precisión en conjunto de validación de un 60 %, ofreciendo un
desempeño aceptable. Cabe destacar que la limitante del modelo son los casos par culares,
donde la nota asignada no corresponde a la jus ficación en sí, es decir, notas muy buenas
con jus ficación que cri ca al servicio.

Con el segundo obje vo, se logra implementar un modelo no supervisado para la categori-
zación de texto. A pesar que se u lizó un modelo de categorías que puede parecer general,
debido a que está focalizado en un contexto de pandemia que ha afectado a todos, aún así
sigue siendo un modelo que se nutrió con respuestas que no cubre la totalidad de empresas
con las que QServus trabaja. Además, no siempre las respuestas de texto son tan generales,

Página 80 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

por lo que la importancia del contexto de la pregunta ayuda a que la categorización con un
modelo sea lo más enfocada posible. Mientras más respuestas se tengan de un mismo con-
texto, se logra encontrar encontrar mejores palabras claves, y las distancias entre las palabras
serán más jus ficadas, potenciando el desempeño.

Se cumple a cabalidad el tercer obje vo, creando diversos indicadores que representan de
forma correcta los resultados. Se crearon seis indicadores, los cuales consideran de forma
individual o conjunta las métricas de categoría y sen miento. Dentro de los que consideran
solo categoría están el gráfico de ranking, tabla de comentarios y treemaps, los cuales mos-
traron en la validación ser de gran u lidad, mostrando en forma simple los datos, ayudando a
iden ficar la presecia y frecuencia de las categorías en las respuestas. Los gráficos que com-
binan ambas métricas, como el gráfico de categoría vs sen miento y el gráfico de burbujas,
presentan las categorías con un contexto más completo, mostrando la intención de cada uno
de ellos, siendo un indicador muy ú l para saber en qué sectores del servicio o producto es
más importante enfocarse. Por úl mo, la nube de palabras mejorada entrega la presencia
de bigramas, que da un contexto más completo sobre las palabras de mayor frecuencia en
las respuestas. Es muy ú l como indicador de entrada, ya que da una introducción, sin con-
siderar categorías, de cómo la gente se está expresando.

Finalmente, con respecto al cuarto obje vo específico para el cual era necesario haber cum-
plido los tres anteriores, se pudo comprobar que la API funciona de manera adecuada, in-
cluyendo una capa de seguridad que permite que no solo las aplicaciones de QServus sean
las únicas que puedan realizar las tareas, si no también iden ficarlas para dar un servicio
más personalizado. A pesar de la poca variedad actual de los modelos de categorización,
que hacen que solo empresas de un rubro o contexto específico puedan beneficiarse de
esas funcionalidades, la comunicación y definición de los endpoints permiten que a futuro
se puedan mantener y proveer estas capacidades a empresas de diversos rubros, logrando
crecer tanto en pe ciones como funcionalidades.

5.3. TRABAJO A FUTURO

QServus AI ene un gran potencial dentro de la empresa consultora QServus, no solo en


escalabilidad y en cómo podrá realizar todas sus tareas cuando la can dad de clientes y res-
puestas por encuestas aumenten considerablemente, si no que también está la oportunidad
de proyectar sus servicios ofreciendo análisis más precisos y avanzados.

Respecto al análisis de sen miento, se concluye que es posible a futuro aumentar el nivel
de comprensión, u lizando emociones en reemplazo de sen mientos. A pesar que los sen -
mientos dan un buen indicio sobre la intención, las emociones son mucho más fuertes en las
opiniones de los clientes y presentan un nivel de análisis más específico. Para lo anterior se
sugiere agregar emociones como alegría, enojo, tristeza, resignación, miedo, etc. Además, se
puede definir una escala de emociones creciente desde emoción más nega va a la más po-
si va, y dar un puntaje que anime a las empresas a aumentarlas para mejorar la sa sfacción

Página 81 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

de sus clientes.

En el ámbito de categorización de texto es posible trabajar a futuro en varias aristas, como


implementación de mul -categoría que permite dar un análisis más completo a respuestas
más extensas. Por otro lado, la inclusión de sub-niveles de categorías, permi endo que ca-
tegorías generales puedan seguir siendo diversificadas para buscar conjuntos más claros. El
gran beneficiado con la abstracción de niveles de categorías sería el gráfico de treemap, ya
que su comportamiento encaja perfectamente con este nuevo requerimiento.

Se sugiere además la implementación de un modelo supervisado que tome los comentarios


categorizados mediante el modelo de reglas y pueda mejorar la categorización de modelos
de diversos rubros. Además, estos modelos supervisados tras su entrenamiento sirvirían para
poder, con un análisis posterior, lograr la especificación de análisis para dis ntas empresas
pero del mismo rubro.

Por úl mo, la creación de nuevos indicadores con diferentes gráficos. Esto ofrece a los usua-
rios una gama de representaciones de los mismos datos, que se adaptarán a sus necesidades
o costumbres. Ofrecer más opciones siempre será bienvenido para los usuarios.

5.4. REFLEXIONES PERSONALES

Este trabajo de tulo implicó una gran can dad de conocimientos en diversas áreas las cua-
les, en su conjunto, permi eron la construcción de un so ware capaz de realizar lo anterior-
mente detallado.

Un aspecto fundamental fue el aprendizaje automá co, tanto supervisado como no-
supervisado. Esto ayudó a tener una gran gama de algoritmos y herramientas disponibles
para analizar y escoger las más apropiadas para el problema. Gracias a la presencia en la
carrera de las asignaturas elec vas de Aprendizaje Automá co e Introducción a las Redes
Neuronales Ar ficiales, esta etapa del trabajo resultó fluida y se pudieron obtener los resul-
tados buscados.

Para la obtención de los datos que nutren a los algoritmos de aprendizaje automá co, es
importante el conocimiento de procesamiento de lenguaje natural NLP. Es esencial para en-
tender el contexto y los datos que se deben analizar: el rol de las palabras en una frase, cómo
transformarlas para que la computadora las pueda comprender, la corrección de texto, part
of speech de una palabra en una frase, etc. Gracias a esto, pueden an cipar errores en las
respuestas e iden ficar de mejor forma la solución a ellos.

El NLP es esencial para comprender las respuestas, pero es necesario el conocimiento del ne-
gocio y así potenciar la semán ca y el léxico de las respuestas. Esto implica conocer procesos
y diversas siglas de los clientes, complejizando aún más el significado de diversas respuestas.
Además, la conversación con los clientes fue esencial para tomar los requerimientos. Por lo

Página 82 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

tanto, las habilidades blandas también fueron importantes para la negociación de requeri-
mientos y el correcto entendimiento entre ambas partes.

La información obtenida de los algoritmos no era suficiente para los usuarios, porque seguía
siendo información compleja y sin un contexto. Para eso, el conocimiento de la analí ca
de datos y cómo representarlos de forma gráfica fue esencial, ya que permite una correcta
elección de los pos de gráficos a usar. Esto incluye qué forma poseerán los gráficos, cómo
los colores influyen en las apreciaciones de los usuarios, la formas de las figuras, tulos y
cómo los usuarios leen los gráficos. Todo lo anterior debe ser considerado con la plataforma
de QServus, por lo tanto, la inclusión de los nuevos gráficos en QServus debe ser orgánica y
no representar una ruptura respecto a los gráficos ya existentes.

Cabe concluir también, la importancia que los pasos antes mencionados deben ser trabaja-
dos en conjunto. El conocimiento de desarrollo de so ware es esencial para la construcción
de la API que alberga todas las funcionalidades y es capaz de recibir y entregar la información
en empos acotados y con una estructura estricta y ordenada. Esto implica la conexión de
diversas tecnologías, la creación de una base de datos estable, sencilla y sin redundancia.
También se necesita conocimiento de backend y frontend para el correcto procesamiento y
renderizado de información. La línea de desarrollo de so ware, que va desde Base de Da-
tos hasta Diseño de Interfaces Usuarias fueron esenciales para la elección y desarrollo de la
aplicación.

Con el so ware finalizado, se necesitaron conocimientos de servidores para el correcto le-


vantamiento de la aplicación. Se realizó la incorporación de la aplicación en el servidor, mi-
graciones de bases de datos, actualizaciones e instalación de requerimientos, asignación de
sub-dominio para acceder a los recursos y configuraciones de puertos para la comunicación
tanto interna como externa.

Finalmente, se necesitaron conocimientos de la plataforma de QServus en sí. Comprender


cómo el ecosistema de sus diversas aplicaciones funciona, sus vistas y lógicas en cada aspec-
to. Lo anterior como un proceso de la elección del so ware, su arquitectura y para evitar
replicar código o procesos ya existentes. También implica conocer los estándares de desa-
rrollo de la empresa y replicarlos para que la implementación pueda ser comprendida por
todos.

En resumen, el trabajo de tulo ofreció mucho aprendizaje en diversas áreas y también una
ac tud auto-didacta para encontrar soluciones, realizar pruebas y entregar resultados.

Página 83 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

REFERENCIAS BIBLIOGRÁFICAS

[Cho et al., 2014] Cho, K., van Merrienboer, B., Gulcehre, C., Bahdanau, D., Bougares, F.,
Schwenk, H., y Bengio, Y. (2014). Learning phrase representa ons using rnn encoder-
decoder for sta s cal machine transla on.

[Fielding, 2000] Fielding, R. (2000). Architectural styles and the design of network-based
so ware architectures.

[Gers et al., 2000] Gers, F. A., Schmidhuber, J. A., y Cummins, F. A. (2000). Learning to forget:
Con nual predic on with lstm. Neural Comput., 12(10):2451–2471.

[Goodfellow et al., 2016] Goodfellow, I., Bengio, Y., y Courville, A. (2016). Deep learning.

[Géron, 2019] Géron, A. (2019). Hands-on machine learning with scikit-learn, keras tensor-
flow.

[Hochreiter y Schmidhuber, 1997] Hochreiter, S. y Schmidhuber, J. (1997). Long short-term


memory. Neural Comput., 9(8):1735–1780.

[Jurafsky y Mar n, 2019] Jurafsky, D. y Mar n, J. (2019). An introduc on to natural language


processing, computa onal linguis cs, and speech recogni on.

[Liddy, 2001] Liddy, E. D. (2001). Natural language processing.

[Manning et al., 2008] Manning, C., Raghavan, P., y Schütze, H. (2008). An introduc on to
informa on retrieval.

[Reichheld, 2003] Reichheld, F. (2003). The one number you need to grow.

[Rumelhart et al., 1986] Rumelhart, D., Hinton, G., y Williams, R. (1986). Learning represen-
ta ons by back-propaga ng errors. Nature, (323):533–536.

[Sebas ani, 2003] Sebas ani, F. (2003). Text categoriza on.

[Sparck, 1972] Sparck, J. K. (1972). A sta s cal interpreta on of term specificity and its
applica on in retrieval. Journal of Documenta on, 28(1):11–21.

Página 84 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

ANEXOS

DEFINICIÓN DE ENDPOINTS

6.1. ENCUESTAS

DELETE /api/analysis/survey/{survey_id}/

Comportamiento esperado: El endpoint busca la encuesta almacenada y sus dependen-


cias, es decir, las preguntas y respuestas vinculadas. Luego de encontrarlas, las elimina del
sistema.

Parámetros de llamada

survey_id: Es el iden ficador de la encuesta en la aplicación que lo solicita.

Respuestas

Código 200: Cuando el token enviado sea correcto y se encuentre un iden ficador de
encuesta que le corresponda, se elimina el recurso y se devuelve un mensaje no fi-
cando.

{
"message": "The survey was successfully eliminated",
"extra_data": {
"survey_id": 32,
"count_survey_deleted": 1,
"count_question_deleted": 8,
"count_answers_deleted": 305,
}
}

Código 404: Si no existe el iden ficador para la empresa que lo está solicitando, de-
vuelve un JSON explicando el error.

Página 85 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

{
"error": "That survey does not exists"
}

6.2. PREGUNTAS

DELETE /api/analysis/question/{question_id}/

Comportamiento esperado: El endpoint busca la pregunta almacenada y también las res-


puestas vinculadas. Tras encontrarlas, las elimina del sistema.

Parámetros de llamada

ques on_id: Es el iden ficador de la pregunta en la aplicación que lo solicita.

Respuestas

Código 200: Cuando el token enviado sea correcto y se encuentre un iden ficador de
pregunta que le corresponda, se elimina el recurso y se devuelve un mensaje no fi-
cando.

{
"message": "The question was successfully eliminated",
"extra_data": {
"question_id": 1222,
"count_question_eliminated": 1,
"count_answers_eliminated": 105
}
}

Código 404: Si no existe el iden ficador para la empresa que lo está solicitando, de-
vuelve un JSON explicando el error.

{
"error": "That question does not exists"
}

Página 86 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

6.3. RESPUESTAS

DELETE /api/analysis/answer/{answer_id}/

Comportamiento esperado: El endpoint busca la respuesta almacenada y la elimina del sis-


tema.

Parámetros de llamada

ques on_id: Es el iden ficador de la respuesta en la aplicación que lo solicita.

Respuestas

Código 200: Cuando el token enviado sea correcto y se encuentre un iden ficador de
respuesta que le corresponda, se elimina el recurso y se devuelve un mensaje no fi-
cando.

{
"message": "The question was successfully eliminated",
"extra_data": {
"answer_id": 3222,
"count_answers_eliminated": 1
}
}

Código 404: Si no existe el iden ficador para la empresa que lo está solicitando, de-
vuelve un JSON explicando el error.

{
"error": "That answer does not exists"
}

6.4. MODELO DE CATEGORIZACIÓN

6.4.1. LEER KEYWORD

GET /api/analysis/keyword/{keyword_id}/

Página 87 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Comportamiento esperado: El endpoint busca la keyword almacenada y devuelve su nom-


bre, además de la categoría a la cual pertenece.

Parámetros de llamada

keyword_id: Es el iden ficador de la keyword en la aplicación.

Respuestas

Código 200: Cuando el token enviado sea correcto y se encuentre un iden ficador de
keyword que le corresponda, se devuelve un mensaje en formato JSON indicando el
nombre de la keyword y a la categoría que pertenece.

{
"keyword": "Polvo",
"category": "Limpieza",
"category_id": 25
}

Código 404: Si no existe el iden ficador para la empresa que lo está solicitando, de-
vuelve un JSON explicando el error.

{
"error": "There is not a keyword with that identifier"
}

6.4.2. CREAR KEYWORDS

POST /api/analysis/keyword/

Comportamiento esperado: Almacena la keyword considerando los datos de entrada.

Parámetros de llamada

keywords: Una lista de strings que representa la can dad de keywords a almacenar.
category: El iden ficador de la categoría a la cual pertenecerá/n la/s keyword/s.

Página 88 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

model_id: El iden ficador del modelo de categorización en el cual será almacenada/s


la/s keywords.

Respuestas

Código 200: Cuando el token enviado sea correcto y se encuentre un iden ficador de
keyword que le corresponda, se devuelve un mensaje en formato JSON indicando el
nombre de la keyword y a la categoría que pertenece.

{
"keyword": "Polvo",
"category": "Limpieza",
"category_id": 25
}

Código 404: Si no existe el iden ficador para la empresa que lo está solicitando, de-
vuelve un JSON explicando el error.

{
"error": "There is not a keyword with that identifier"
}

6.5. ANÁLISIS DE TEXTO

POST /api/analysis/analyse_text/

Comportamiento esperado: Categoriza y extrae sen miento de las respuestas incluidas en


el payload.

Parámetros de llamada

metadata: Es un objeto que posee información contextual de las respuestas.

answers: Una lista de objetos con las respuestas que serán analizadas.

Respuestas

Página 89 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Código 200: Cuando el token enviado sea correcto y toda la información del payload
cumpla con el formato establecido. El endpoint responde con un mensaje indicando
que las respuestas se estarán procesando.

{
"status": "Success",
"message": "Everything is correct, the answers are processing",
"answers_count": 234,
"questions_count": 1
}

Código 404: Este mensaje será retornado si no se cumple con la estructura correcta
del payload. Dependiendo de qué sección es la errónea, será el mensaje resultante.

{
"error": "There is not a categorization model with that
identifier for that company"
}

6.6. AGRUPACIÓN DE TEXTOS

POST /api/analysis/group_text/

Comportamiento esperado: Agrupa respuestas parecidas, para ser mostradas en el indica-


dor de tabla de comentarios.

Parámetros de llamada

qid: Es el iden ficador de la pregunta, de la cual sus respuestas serán agrupadas si es


que existen comentarios similares.

Respuestas

Código 200: Cuando el token enviado sea correcto y y existen respuestas para el iden-
ficador de pregunta otorgado.

Página 90 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

{
"status": "Success",
"message": "All the answers were grouped successfully",
}

Código 404: Este mensaje será retornado si el iden ficador otorgado no existe, o no
corresponde a la en dad que lo solicita.

{
"error": "There is not a question with that identifier"
}

Desde esta parte, las respuestas de los siguientes endpoints no serán detallados en este
documento, ya que muestra información sensible de la empresa, tanto de los mensajes que
se usan como de la forma explícita en que se generan los gráficos.

6.7. GRÁFICO RANKING POR CATEGORÍA

POST /api/chart/category_ranking/

Comportamiento esperado: Retorna un objeto con toda la información e instrucciones para


construir el gráfico de ranking por categoría.

Parámetros de llamada

qid: Es el iden ficador de la pregunta, de la cual sus respuestas serán u lizadas para
generar el indicador.

Respuestas

Código 200: Cuando el token enviado sea correcto y y existen respuestas para el iden-
ficador de pregunta otorgado.

Código 404: Este mensaje será retornado si el iden ficador otorgado no existe, o no
corresponde a la en dad que lo solicita.

Página 91 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

{
"error": "There is not a question with that identifier"
}

6.8. GRÁFICO CATEGORÍA VS SENTIMIENTO

POST /api/chart/sentiment_bar/

Comportamiento esperado: Retorna un objeto con toda la información e instrucciones para


construir el gráfico de categoría vs sen miento.

Parámetros de llamada

qid: Es el iden ficador de la pregunta, de la cual sus respuestas serán u lizadas para
generar el indicador.

Respuestas

Código 200: Cuando el token enviado sea correcto y y existen respuestas para el iden-
ficador de pregunta otorgado.
Código 404: Este mensaje será retornado si el iden ficador otorgado no existe, o no
corresponde a la en dad que lo solicita.

{
"error": "There is not a question with that identifier"
}

6.9. NUBE DE PALABRAS MEJORADA

POST /api/chart/wordcloud/

Comportamiento esperado: Retorna un objeto con toda la información e instrucciones para


construir el gráfico de nube de palabras mejorada.

Parámetros de llamada

Página 92 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

qid: Es el iden ficador de la pregunta, de la cual sus respuestas serán u lizadas para
generar el indicador.

Respuestas

Código 200: Cuando el token enviado sea correcto y y existen respuestas para el iden-
ficador de pregunta otorgado.
Código 404: Este mensaje será retornado si el iden ficador otorgado no existe, o no
corresponde a la en dad que lo solicita.

{
"error": "There is not a question with that identifier"
}

6.10. TREEMAP

POST /api/chart/treemap/

Comportamiento esperado: Retorna un objeto con toda la información e instrucciones para


construir el gráfico de treemap.

Parámetros de llamada

qid: Es el iden ficador de la pregunta, de la cual sus respuestas serán u lizadas para
generar el indicador.

Respuestas

Código 200: Cuando el token enviado sea correcto y y existen respuestas para el iden-
ficador de pregunta otorgado.
Código 404: Este mensaje será retornado si el iden ficador otorgado no existe, o no
corresponde a la en dad que lo solicita.

{
"error": "There is not a question with that identifier"
}

Página 93 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

6.11. GRÁFICO SATISFACCIÓN VS CATEGORÍA

POST /api/chart/bubble_chart/

Comportamiento esperado: Retorna un objeto con toda la información e instrucciones para


construir el gráfico de burbujas.

Parámetros de llamada

qid: Es el iden ficador de la pregunta, de la cual sus respuestas serán u lizadas para
generar el indicador.

Respuestas

Código 200: Cuando el token enviado sea correcto y y existen respuestas para el iden-
ficador de pregunta otorgado.

Código 404: Este mensaje será retornado si el iden ficador otorgado no existe, o no
corresponde a la en dad que lo solicita.

{
"error": "There is not a question with that identifier"
}

6.12. TABLA DE COMENTARIOS

POST /api/chart/comment_table/

Comportamiento esperado: Retorna un objeto con toda la información e instrucciones para


construir el gráfico de tabla de comentarios.

Parámetros de llamada

qid: Es el iden ficador de la pregunta, de la cual sus respuestas serán u lizadas para
generar el indicador.

Respuestas

Página 94 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL

Código 200: Cuando el token enviado sea correcto y y existen respuestas para el iden-
ficador de pregunta otorgado.

Código 404: Este mensaje será retornado si el iden ficador otorgado no existe, o no
corresponde a la en dad que lo solicita.

{
"error": "There is not a question with that identifier"
}

Página 95 de 95

También podría gustarte