Arquitectura de Software para Análisis de Textos Utilizando Inteligencia Artificial
Arquitectura de Software para Análisis de Textos Utilizando Inteligencia Artificial
Arquitectura de Software para Análisis de Textos Utilizando Inteligencia Artificial
2021-03
ARQUITECTURA DE SOFTWARE
PARA ANÁLISIS DE TEXTOS
UTILIZANDO INTELIGENCIA ARTIFICIAL
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
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 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 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
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 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
14 Modelo de datos con que la API trabajará para el análisis CRUD de sus recursos. 45
ix
17 Matrices de confusión para el modelo con LSTM (izquierda) y para el modelo
usando GRU (derecha). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
23 Formato del tool p para cada barra, indicando las can dades para cada
sen miento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
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
x
34 Gráfico treemap de las respuestas. . . . . . . . . . . . . . . . . . . . . . . . . 75
ÍNDICE DE TABLAS
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.
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.
2. Marco conceptual: Se definen todos los conceptos necesarios para tener una com-
prensión base respecto al trabajo realizado en la memoria.
Página 1 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL
Página 2 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL
CAPÍTULO 1
DEFINICIÓN 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.
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:
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.
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.
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
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.
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.
La colección de restricciones que una REST API debe cumplir para su correcto uso son:
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.
Página 6 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL
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:
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.
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.
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.
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:
Página 8 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL
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)
σ̂
z α2 ∗ √ (3)
n
σ̂ σ̂
[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
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:
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.
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
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:
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:
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
La función de frecuencia de términos puede u lizar otras fórmulas para determinar su peso,
como por ejemplo:
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}|
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:
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.
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.
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
Capas: Es un conjunto de neuronas las cuales generalmente poseen caracterís cas si-
milares
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]
σ(W X − b) (11)
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:
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
Página 18 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL
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]
Página 19 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL
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:
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:
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:
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.
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.
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:
Página 21 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL
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 .
ht = ot ∗ tanh(Ct ) (24)
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
En la Figura 7 se aprecia la estructura de una unidad GRU, la cual se compone de las siguientes
partes:
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:
Página 23 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL
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.
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.
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. 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
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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:
Página 30 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL
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:
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.
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.
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
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.
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).
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:
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 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.
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
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
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.
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
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.
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.
Criterios de aceptación
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.
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 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.
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.
• 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.
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
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:
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.
Criterios de aceptación
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
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
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.
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.
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:
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.
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.
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.
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
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.
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
Para poder hacer las comparaciones entre ambos modelos y los diferentes valores en sus
hiperparámetros, se u lizarán las siguientes métricas:
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.
Página 47 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL
Ambos modelos son entrenados con los mismos hiperparámetros, los cuales son:
Épocas: 50
Tamaño de embedding: 30
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.
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:
Página 49 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL
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.
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.
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.
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
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.
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.
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:
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.
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.
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.
Página 57 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL
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
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.
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
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.
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.
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.
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.
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.
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.
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.
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
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:
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
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.
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.
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"
}
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
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.
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
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.
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
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.
Página 74 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL
GET /api/charts/treemap/
{
"qid": 2265,
}
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
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.
Página 77 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL
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
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
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.
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.
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.
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.
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.
[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.
[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}/
Parámetros de llamada
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}/
Parámetros de llamada
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}/
Parámetros de llamada
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"
}
GET /api/analysis/keyword/{keyword_id}/
Página 87 de 95
ARQUITECTURA DE SOFTWARE PARA ANÁLISIS DE TEXTOS UTILIZANDO INTELIGENCIA ARTIFICIAL
Parámetros de llamada
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"
}
POST /api/analysis/keyword/
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
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"
}
POST /api/analysis/analyse_text/
Parámetros de llamada
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"
}
POST /api/analysis/group_text/
Parámetros de llamada
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.
POST /api/chart/category_ranking/
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"
}
POST /api/chart/sentiment_bar/
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"
}
POST /api/chart/wordcloud/
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/
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
POST /api/chart/bubble_chart/
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"
}
POST /api/chart/comment_table/
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