Logo Studenta

Arquitectura_analisis_sentimientos_Chaparro_2018

¡Este material tiene más páginas!

Vista previa del material en texto

Diseño de una arquitectura de software para el análisis de sentimientos aplicado a las opiniones 
de usuarios en Twitter sobre los servicios ofrecidos en el sistema de salud en Colombia. 
 
 
Juan Carlos Chaparro Cruz, jucachap@gmail.com 
Joan Andrés Romero Loaiza, jromero880@hotmail.com 
 
 
 
 
Tesis de Maestría presentada para optar al título de Magíster en Ingeniería de Software 
 
 
Asesor: Iván Mauricio Cabezas Troyano, Doctor (PhD) en Ingeniería con énfasis en ciencias de 
la computación 
 
 
 
 
 
Universidad de San Buenaventura Colombia 
Facultad de Ingeniería 
Maestría en Ingeniería de Software 
Santiago de Cali, Colombia 
2018 
mailto:jucachap@gmail.com
mailto:jromero880@hotmail.com
 
 
 
 
2 
Citar/How to cite [1] 
Referencia/Reference 
 
Estilo/Style: 
IEEE (2014) 
[1] J. C. Chaparro Cruz, J. A. Romero Loaiza, “Diseño de una arquitectura de 
software para el análisis de sentimientos aplicado a las opiniones de usuarios en 
Twitter sobre los servicios ofrecidos en el sistema de salud en Colombia.”, 
Tesis Maestría en Ingeniería de Software, Universidad de San Buenaventura 
Cali, Facultad de Ingeniería, 2018. 
 
 
 
 
Maestría en Ingeniería de Software, Cohorte V. 
Laboratorio de Investigación para el Desarrollo de la Ingeniería de Software (LIDIS). 
 
 
 
Bibliotecas Universidad de San Buenaventura 
 
 
 
 
 
 
• Biblioteca Fray Alberto Montealegre OFM - Bogotá. 
• Biblioteca Fray Arturo Calle Restrepo OFM - Medellín, Bello, Armenia, Ibagué. 
• Departamento de Biblioteca - Cali. 
• Biblioteca Central Fray Antonio de Marchena – Cartagena. 
 
 
 
Universidad de San Buenaventura Colombia 
 
Universidad de San Buenaventura Colombia - http://www.usb.edu.co/ 
 
Bogotá - http://www.usbbog.edu.co 
Medellín - http://www.usbmed.edu.co 
Cali - http://www.usbcali.edu.co 
Cartagena - http://www.usbctg.edu.co 
Editorial Bonaventuriana - http://www.editorialbonaventuriana.usb.edu.co/ 
Revistas - http://revistas.usb.edu.co/ 
 
Biblioteca Digital (Repositorio) 
http://bibliotecadigital.usb.edu.co 
 
http://www.usb.edu.co/
http://revistas.usb.edu.co/
https://co.creativecommons.org/?page_id=13
https://co.creativecommons.org/?page_id=13
 
 
 
 
3 
 
 
Dedicatoria 
 
Dedico este proyecto de Tesis a todos los que en silencio luchan por sus sueños. 
Juan Carlos Chaparro. 
 
A todas las personas que de una u otra manera aportaron en la realización de este sueño. 
Joan Andrés Romero Loaiza. 
 
 
 
 
 
 
 
 
 
 
Agradecimientos 
 
Agradecemos a todas las personas involucradas en la realización de este proyecto de Tesis para 
la obtención de nuestro título como Magister en Ingeniería de Software. 
 
Profesor Iván Mauricio Cabezas 
Profesor Fernando Barraza 
Profesor Hugo Erazo 
Profesor Jose Luis Jurado 
Profesor Johan Bejarano 
Profesora Rocio Segovia 
Profesor Diego Gomez 
 
 
 
 
 
 
 
4 
 
Resumen 
 
Una necesidad actual es la de poder entender cómo la inteligencia artificial se involucra en las 
actividades humanas del día a día, proveer capacidades de comunicación e interacción a los 
sistemas de cómputo, en donde las formas de establecer ese contacto humano-computador dejen 
de ser cada vez menos los medios tradicionales como lo son el teclado y el mouse y pasen ahora 
a ser medios audiovisuales y lingüísticos que permitan una comunicación "natural" con los 
sistemas del futuro. Una de las ramas de la inteligencia que más nos hace pensar en este avance 
tecnológico es la de Análisis de Sentimientos. En este proyecto se aborda el diseño de una 
arquitectura de software que permita el procesamiento de un lenguaje formal escrito. Se investiga 
la forma de cómo el diseño de una arquitectura de software podrá "analizar" un texto desde una 
fuente de datos dada, separarla en sus componentes lingüísticos, para luego organizar y 
categorizar según lo que el mismo lenguaje plantea como algo positivo, negativo o neutral. A 
través de las técnicas del Análisis de Sentimientos se busca encontrar esta categorización en 
textos que como fuente de datos para este proyecto será la red social Twitter. 
 
Para este proyecto se elige hacer Análisis de Sentimientos dentro del contexto del servicio de 
salud obligatorio en Colombia, se aplicaron las técnicas computacionales establecidas para lograr 
los objetivos a través de la ingeniería de software que al final permitieron plantear una 
arquitectura de software. 
 
 
 
 
 
5 
Contenido 
 
Dedicatoria 3 
Agradecimientos 3 
Resumen 4 
Contenido 5 
1. Introducción 7 
1.1 Pregunta De Investigación 7 
1.2 Planteamiento Del Problema 8 
1.3 Propuesta De Solución 8 
1.4 Justificación 9 
1.5 Objetivos 10 
1.5.1 Objetivo General 10 
1.5.2 Objetivos Específicos 10 
2. Marco Teórico 11 
2.1 Arquitectura De Software 11 
2.1.1 Estilo Arquitectónico 11 
2.1.2 Atributos De Calidad Para Una Arquitectura De Software 12 
2.1.3 Atributos De Calidad Por Estilo Arquitectónico 14 
2.1.4 Patrones De Arquitectura De Software 14 
2.1.5 Taller De Atributos De Calidad - QAW 15 
2.1.6 Método De Análisis De Intercambio De Arquitectura - ATAM 17 
2.2 Análisis De Sentimientos 20 
2.2.1 Conceptualización 20 
2.2.2 Preprocesamiento De Textos 24 
2.2.2.1 Extracción 24 
2.2.2.2 Eiminación De Palabras Vacias (Stop Words) 24 
2.2.2.3 Identificación De La Raíz De Una Palabra (Stemming) 24 
2.2.3 Clasificación De Textos 25 
2.2.3.1 Técnica De Naive Bayes 25 
2.2.3.2 Técnica De Máxima Entropía 25 
 
 
 
 
6 
2.2.3.3 Técnica De Support Vector Machine 26 
2.2.3.4 Técnica De Árboles De Decisión 26 
2.2.4 Natural Language Toolkit 27 
2.2.5 Evaluación de Clasificadores 28 
2.2.5.1 Matriz de Confusión 28 
2.2.5.2 Precisión 29 
2.2.5.3 Recall 29 
2.2.5.4 Medida F 30 
3. Proceso de Ingeniería 31 
3.1 Exploración Y Selección 31 
3.1.1 Selección De Estilo Arquitectónico 31 
3.2 Construcción 36 
3.2.1 Diseño De Arquitectura De Software Para El Análisis De Sentimientos 36 
3.2.2 Selección Del Conjunto De Entrenamiento 38 
3.2.3 Evaluación Y Selección Del Clasificador 43 
3.2.4 Prototipo Funcional 50 
3.3 Evaluación 57 
3.3.1 Evaluación de la Arquitectura 57 
3.3.2 ATAM Definición de Fases 58 
3.3.3 Resultados Metodología ATAM 58 
3.3.3.1 Conjunto de Escenarios Priorizados y Preguntas Asociadas 59 
3.3.3.2 Árbol de Utilidad 60 
4. Observaciones Finales y Recomendaciones 61 
4.1 Conclusiones 61 
4.2 Trabajos Futuros 62 
5. Bibliografía 63 
 
 
 
 
 
 
 
 
7 
 
1. Introducción 
 
El objetivo de esta investigación es plantear una arquitectura de software que permita hacer 
análisis de sentimientos, para clasificar las opiniones y comentarios de usuarios entre negativos, 
positivos y neutrales cuando estos están dentro de las categorías que los relacionan con algún 
tema del servicio de salud en Colombia. La fuente de donde se escogen estas opiniones, es decir 
la fuente de los datos, es la red social Twitter, esta red social es un sistema que permite compartir 
ideas, opiniones, comentarios en no más de 140 caracteres. Esta red social está ampliamente 
difundida a nivel internacional y es famosa por su sencillez y facilidad de uso. 
 
Los comentarios escritos por los usuarios en esta red social se buscarán por categorías que dentro 
del contexto de Twitter son llamados Hashtags, estos son una frase o palabra sin espacios 
precedida por el símbolo "#", usada especialmente en redes sociales para identificar mensajes de 
un tema en particular. 
 
Ejemplos de Hashtag que categorizan el tema de salud en Colombia: 
 
 #poscolombia 
 #saludcolombia 
 #saludencolombia 
 #epscolombia 
 #ley100 
 #eps 
 #ips 
 
Se plantea una solución arquitectural desde la Ingeniería de Software para obtener y organizar 
conceptos, tecnologías, metodologías de trabajo, todo bajo un esquema de desarrollo ágil que 
permita crear un prototipo funcional y que podrá hacer ver y entender cómo y cuálesmecanismos del análisis de sentimientos se pueden usar para clasificar desde las opiniones de 
los Colombianos uno de los temas más complejos en una economía en desarrollo como lo es la 
Colombiana y su servicio obligatorio de salud. 
 
1.1 Pregunta De Investigación 
 
¿Cúal es el diseño de una arquitectura de software que soporte el análisis de sentimientos para el 
procesamiento y categorización de las opiniones de usuarios de la red social Twitter con respecto 
a los servicios ofrecidos por el sistema de salud en Colombia? 
 
 
 
 
 
 
8 
1.2 Planteamiento Del Problema 
 
El problema que se encuentra es que no se ha definido una arquitectura de software que permita 
hacer la clasificación entre positiva, negativa y neutral de los datos extraídos de la red social 
Twitter. 
 
Con todos los datos que se puede obtener de manera libre desde Internet, donde se plasman 
opiniones de muchos Colombianos con respecto al tema de como es el servicio de salud en 
Colombia, no hay un estudio que permita hacer esta clasificación como lo plantea el análisis de 
sentimientos y las entidades prestadoras del servicio en salud, el gobierno y los ciudadanos están 
separados los unos de los otros sin conocer o entender cuáles son esas opiniones y cómo estas 
afectan de manera positiva o negativa la prestación del servicio. 
 
1.3 Propuesta De Solución 
 
El desarrollo de este trabajo de ingeniería es el diseño y prototipado de un sistema basado en esta 
arquitectura de software, para extraer opiniones y comentarios de usuarios de la red social 
Twitter y se procesen usando análisis de sentimientos, esta información podrá ser categorizada 
según el idioma base escogido el cual es el Español, se podrán conocer si estos son positivos, 
negativos o simplemente neutrales que no apuntan a ningún extremo en particular (tal como se 
ilustra en la Figura 1.1). 
 
 
Figura 1.1. Opiniones de usuarios en redes sociales fuera del alcance de las entidades prestadoras del servicio de salud y de las 
entidades de control gubernamentales. 
 
 
 
 
 
 
9 
Propuesta de solución: 
 
● Diseñar una arquitectura de software que soporte el análisis de sentimientos con los datos 
de la red social Twitter. 
● Hacer minería de textos con los datos de la red social Twitter basados en los hashtags con 
los que se categorizan los mensajes de los usuarios. 
● Definir como punto de evaluación el tema de la prestación del servicio de salud en 
Colombia. 
 
1.4 Justificación 
 
Una arquitectura de software dentro del marco de la ingeniería de software actualmente es el 
insumo primordial como base de un sistema que está orientado a la automatización de algún 
proceso en general. 
 
El planteamiento de la arquitectura de software para hacer análisis de sentimientos se validará 
con un prototipo funcional, que se construirá usando la biblioteca de funciones para 
procesamiento de textos llamada NLTK del lenguaje de programación Python. 
 
Con el prototipo funcional basado en la arquitectura de software planteada se tiene una 
oportunidad para interconectar usuarios digitales y entidades de salud en Colombia, y presenciar 
el poder de los sistemas no convencionales en favor del mejoramiento continuo y fortalecimiento 
de las instituciones de salud en Colombia. Su importancia radicará en que se mantengan todos 
los procesos y mecanismos de las opiniones positivas y se trabaje en mejorar y estabilizar las 
opiniones marcadas como negativas. 
 
 
 
 
 
 
10 
1.5 Objetivos 
 
A continuación, se plantean los objetivos generales y específicos asociados a esta investigación. 
 
1.5.1 Objetivo General 
 
Diseñar una arquitectura de software para soportar análisis de sentimientos de opiniones de 
usuarios en la red social Twitter sobre el tema del servicio de salud en Colombia. 
 
 
1.5.2 Objetivos Específicos 
 
● Seleccionar el modelo de arquitectura de software adecuado que se ajuste a las 
necesidades para el análisis de sentimientos para opiniones en español de los usuarios de 
la red social Twitter. 
 
● Diseñar y construir el prototipo de los componentes necesarios para realizar análisis de 
sentimientos de opiniones de usuarios en español obtenidos en la red social Twitter. 
 
● Realizar un proceso de experimentación para validar los componentes diseñados para el 
análisis de sentimientos. 
 
● Aplicar un método de evaluación de arquitecturas de software para validar cada uno de 
los atributos del diseño propuesto. 
 
 
 
 
 
11 
2. Marco Teórico 
 
En este capítulo se definen los conceptos básicos que permiten entender el desarrollo del proceso 
de ingeniería que se presentan en la sección 3. Se tendrán en cuenta los conceptos teóricos de 
arquitecturas de software, análisis de sentimientos y técnicas de evaluación de resultados. 
 
2.1 Arquitectura De Software 
 
Para la ingeniería de sistemas, una arquitectura es la infraestructura de software dentro de la cual 
cada componente de la aplicación proporcionada al usuario puede ser especificada, desplegada y 
ejecutada [22]. 
 
Los componentes o bloques de construcción que conforman las partes de un sistema de software 
se definen en tres tipos, estos son: 
 
● Elementos de datos: Contienen la información que será transformada. 
 
● Elementos de proceso: Transforman los elementos de datos. 
 
● Elementos de conexión: Llamados también conectores, que bien pueden ser elementos 
de datos o de proceso, y mantienen unidas las diferentes piezas de la arquitectura. 
 
Una relación es la conexión entre los componentes. Puede definirse también como una 
abstracción de la forma en que los componentes interactúan en el sistema a través de los 
elementos de conexión. Es importante reconocer que una relación se concreta mediante los 
conectores [4]. 
 
2.1.1 Estilo Arquitectónico 
 
Un estilo arquitectónico es un conjunto de reglas que dan los lineamientos para construir un 
sistema. Estos indican cómo se organizan los componentes, como son manipulados los datos, y 
cómo se comunican los componentes entre ellos. 
 
Están condicionados por un principio en particular tales como proceso secuencial de datos, 
jerarquía de componentes, entre otros. Cada arquitectura tiene un impacto positivo y negativo 
sobre unos atributos de calidad, dando ventajas y desventajas unas sobre otras [14]. 
 
Algunos estilos de arquitectura son [4]: 
 
 
 
 
 
12 
● Datos Centralizados: Clientes acceden a datos compartidos en un repositorio de manera 
frecuente. 
 
● Flujo De Datos: Transformaciones sobre piezas sucesivas de datos de entrada. El dato 
entra al sistema y fluye entre los componentes hasta llegar a su destino final (salida o 
repositorio). 
 
● Máquinas Virtuales: Simulan funcionalidad que no es nativa en la plataforma que está 
implementado. 
 
● Llamada Y Retorno: Programa principal que tiene el control del sistema y varios 
subprogramas se comunican con él a través de llamados. 
 
● Componentes Independientes: Procesos u objetos independientes que se comunican a 
través de mensajes. 
 
● Orientación A Servicios: Componentes que pueden ser invocados y cuya descripción de 
interfaz puede ser publicada y descubierta. 
 
2.1.2 Atributos De Calidad Para Una Arquitectura De Software 
 
La calidad del software se define como el grado en el cual un software posee una combinación 
adecuada de atributos. Los atributos de calidad son requisitos adicionales del sistema, los cuales 
son características que debe tener el sistema, pero no son considerados como requisitos 
funcionales [4]. 
 
Se establecen en dos grupos: 
 
● Los observables vía ejecución se pueden ver en la Tabla 2.1: determinan el 
comportamiento en tiempo de ejecución. 
 
● No observables vía ejecución, listados en la Tabla 2.2: se establecen durante el desarrollo 
del sistema. 
 
 
 
 
 
 
 
 
 
 
 
 
13 
Tabla 2.1 
Atributos de calidad observables víaejecución 
Atributo Descripción 
Disponibilidad Disponibilidad para el uso 
Confidencialidad Ausencia de acceso no autorizado a la información 
Funcionalidad Realizar el trabajo para el cual fue desarrollado 
Desempeño Cumplir con sus funciones dentro de restricciones de 
velocidad, exactitud, entre otras 
Confiabilidad Mantenerse operativo a lo largo del tiempo 
Seguridad Servir a usuarios legítimos. Restringir los accesos no 
autorizados mediante negación del servicio 
 
 
 Tabla 2.2 
 Atributos de calidad no observables vía ejecución 
Atributo Descripción 
Configurabilidad Poder realizar ciertos cambios al sistema 
Integrabilidad Trabajar correctamente componentes que fueron desarrollados 
por separado al integrarlos 
Integridad Ausencia de alteraciones inapropiadas de la información 
Interoperabilidad Habilidad para trabajar con otros sistemas 
Modificabilidad Poder realizar cambios futuros al sistema 
Mantenibilidad Capacidad para hacer reparaciones y evoluciones 
Portabilidad Poder ser ejecutado en diferentes ambientes 
Reusabilidad Componentes puedan ser usados en otros sistemas 
Escalabilidad Poder ampliar el diseño arquitectónico, datos o procedimental 
Prueba Facilidad para mostrar fallas ante un conjunto de pruebas 
 
 
 
 
 
 
14 
2.1.3 Atributos De Calidad Por Estilo Arquitectónico 
 
Cada uno de los estilos arquitectónicos está directamente relacionado con uno o varios atributos 
de calidad, que, al aplicar el estilo, pueden llegar a ser abordados de manera adecuada. A 
continuación, en la Tabla 2.3 se hace un resumen de los atributos de calidad por estilo: 
 
Tabla 2.3 
Resumen de atributos de calidad por estilo arquitectónico 
Estilo Atributos De Calidad 
Datos Centralizados Integrabilidad, escalabilidad, modificabilidad 
Flujo de Datos Reusabilidad, modificabilidad, mantenibilidad 
Máquinas Virtuales Portabilidad 
Llamada y Retorno Modificabilidad, escalabilidad, desempeño 
Componentes Independientes Modificabilidad, escalabilidad 
Orientación a Servicios Interoperabilidad, desempeño, seguridad, confiabilidad, 
disponibilidad, modificabilidad, pruebas, usabilidad, 
escalabilidad 
 
2.1.4 Patrones De Arquitectura De Software 
 
Los patrones de una arquitectura de software guían a los desarrolladores en como diseñar los 
componentes y además definen como estos componentes deben interactuar [20]. 
 
Dentro de los patrones de arquitectura más comúnmente usados y difundidos se encuentran los 
siguientes: 
 
● Arquitectura En Capas: Las capas organizadas de forma horizontal, donde cada capa 
posee un rol definido dentro de la aplicación (Presentación, Lógica y/o Lógica de 
Negocio, Persistencia). Se puede hablar de capas abiertas o cerradas para permitir una 
comunicación abierta y detallada por restricciones. 
 
● Arquitectura Conducida Por Eventos: La arquitectura conducida o manejada por 
eventos es una arquitectura distribuida y asíncrona para producir aplicaciones altamente 
escalables. Esta arquitectura es desacoplada con un propósito definido en sus 
componentes que reciben y procesan los eventos asíncronamente. Consiste en dos tipos 
de topologias, el mediador (mediator) y el corredor (broker). 
 
 
 
 
 
15 
● Arquitectura Microkernel: Se puede entender como dos tipos de componentes de 
arquitectura de software: Un Core del sistema y Módulos específicos (plug-ins). El Core 
del sistema contiene solo la mínima funcionalidad para hacer el sistema operacional. Los 
módulos son podrían trabajar independientes o en consorcio con otros, teniendo en cuenta 
que esta práctica estaría generando dependencia. Este patrón de arquitectura podría ser 
usado como parte de otras arquitecturas o embebido dentro de estas mismas. 
 
● Arquitectura Microservicios: Cada componente de la arquitectura micro servicios 
funciona como una unidad separada. Este patrón aumenta la escalabilidad y 
desacoplamiento. Se piensa como servicios de componentes, envés de servicios dentro de 
una arquitectura de micro servicios. Los servicios de componentes podrían contener uno 
ó más módulos que representan una única funcionalidad o una porción independiente del 
negocio de la aplicación. En su correcto nivel de diseño granulado está el mayor de los 
retos para este patrón de arquitectura. Los componentes son accedidos a través de alguno 
de los protocolos de acceso remotos (JMS, AMQP, REST, SOAP, RMI, entre otros). 
 
● Arquitectura Basada En Espacio: También conocido como el patrón de arquitectura 
cloud (nube), minimiza los factores que limitan el escalamiento de una aplicación. La 
información de la aplicación es mantenida en memoria y replicada en todas las unidades 
de procesamiento activas. De esta manera las unidades pueden incrementar o disminuir 
de acuerdo con la cantidad de peticiones que se hacen el tiempo. Se manejan 
principalmente dos componentes, la unidad de procesamiento y el middleware 
virtualizado. La unidad de procesamiento se encarga de replicar la data de las 
aplicaciones y el middleware se encarga de la comunicación entre ellas. En el middleware 
también existen 4 componentes: La grilla de mensajes, la grilla de datos, la grilla de 
procesamiento y administrador de despliegue. 
 
2.1.5 Taller De Atributos De Calidad - QAW 
 
Se definirá QAW como referencia de Quality Attribute Workshop, que significa 
Taller/Metodología de Atributos de Calidad. Es una metodología que permite a los interesados 
del proyecto determinar los atributos de calidad de un sistema [1]. 
 
Es de vital importancia tener claro todos los requisitos de un sistema desde las etapas iniciales 
del desarrollo. Teniendo claros estos requisitos, puede determinarse de manera adecuada los 
atributos de calidad del sistema. Todos los interesados en el proyecto deben dar su punto de vista 
y determinar en conjunto cada uno de los detalles del sistema. 
 
La metodología del QAW se centra en el sistema y es enfocado hacia los interesados, los cuales 
pueden expresar sus necesidades y expectativas con atributos de calidad de su interés. Todo esto 
se desarrolla en etapas previas al desarrollo de la arquitectura para describir de una manera clara 
 
 
 
 
16 
los atributos de calidad que son importantes y las responsabilidades de cada uno de ellos se 
utilizan escenarios, que son historias de interacción del sistema. 
 
El QAW se compone de los siguientes pasos: 
 
1. Presentación E Introducción: Se describe la motivación del QAW y se explica cada 
paso del método. Se hace una introducción a cada uno de los interesados. 
 
2. Presentación Del Negocio/Misión: Uno de los interesados hace la presentación del 
contexto del negocio, la misión del sistema y de los requisitos funcionales de alto nivel, 
restricciones y requisitos de los atributos de calidad. 
 
3. Presentación Del Plan De Arquitectura: De los involucrados, el encargado de la parte 
técnica explica los planes y estrategias que se tienen para cumplir con los requisitos del 
negocio, requisitos técnicos y restricciones. Y en caso de que existan diagramas de 
contexto, diagramas de sistemas de alto nivel y otras descripciones que se encuentren 
escritas. 
 
4. Identificación De Controladores De Arquitectura: Dada la información de los pasos 
anteriores, se obtiene una lista en consenso de los controladores de arquitectura tales 
como requisitos de alto nivel, controladores del negocio, restricciones y los atributos de 
calidad. 
 
5. Lluvia De Escenarios: Los involucrados realizan escenarios en los cuales se plantean sus 
perspectivas del sistema. Es recomendable que cada uno de ellos contribuya al menos con 
dos escenarios. Se debe asegurar que cada uno de los escenarios represente un 
controlador arquitectural y que cada uno de estos tengan al menos un escenario 
representando. 
 
6. Consolidación De Escenarios: Entre los involucrados se deben revisar todos los 
escenarios e identificar todos aquellos que sean similaresen contenido. Estos escenarios 
deben ser combinados dejando solo uno, todo con la aprobación de los interesados que 
escribieron estos escenarios. 
 
7. Priorización De Escenarios: Se asigna un número de votos a cada involucrado 
correspondiente al 30% del total de escenarios después de la consolidación. Los 
interesados dan sus votos a los escenarios, los cuales son contados y su resultado dará el 
orden de priorización. 
 
 
 
 
 
17 
8. Refinamiento De Escenarios: Los primeros cuatro o cinco escenarios después de la 
priorización, son refinados con un detalle más profundo. En este se describe el 
requerimiento que afecta, el atributo de calidad asociado y se detalla posibles problemas 
que puedan presentarse. 
 
El QAW permite reunir una gran cantidad de interesados que pueden llegar a clarificar aspectos 
y contradicciones sobre los requisitos del sistema. También clarifica los atributos de calidad, se 
genera una mejor documentación arquitectónica y da un soporte para el análisis y pruebas 
durante la vida útil del sistema. 
 
2.1.6 Método De Análisis De Intercambio De Arquitectura - ATAM 
 
ATAM es la técnica para analizar arquitecturas de software. Esta técnica ayuda a verificar que 
una arquitectura satisface los objetivos de calidad planteados y también da una idea de cómo 
estos objetivos interactúan entre sí [12]. Esas decisiones de diseño son críticas, tienen 
consecuencias más trascendentales y son difíciles de cambiar después de que se haya 
implementado un sistema. 
 
Al evaluar una arquitectura con ATAM, el objetivo es comprender las consecuencias de las 
decisiones arquitectónicas con respecto a los requisitos de los atributos de calidad del sistema. 
 
Un sistema está motivado por un conjunto de objetivos funcionales y de calidad. ATAM es un 
medio para determinar si estos objetivos son alcanzables por la arquitectura tal como se concibió 
antes de hacer una inversión de recursos. 
 
El propósito de ATAM es evaluar las consecuencias de las decisiones arquitecturales con base en 
los requisitos de atributos de calidad. El ATAM está destinado a ser un método de identificación 
de riesgos, un medio para detectar áreas de riesgo potencial dentro de la arquitectura de un 
sistema de software complejo. Esto tiene muchas implicaciones: 
 
● El ATAM puede ser realizado en etapas tempranas del ciclo de vida de desarrollo. 
● Puede hacerse en forma relativamente económica y rápida 
● Producirá análisis proporcionales al nivel de detalle de la especificación de la 
arquitectura. Además, no necesita producir análisis detallados de ningún atributo de 
calidad medible de un sistema para tener éxito. En cambio, el éxito es logrado mediante 
la identificación de tendencias. 
 
En particular, se quieren encontrar decisiones claves que presenten riesgos para cumplir los 
requisitos de calidad y decisiones clave que todavía no han sido tomadas. Finalmente, ATAM 
ayuda a la organización a desarrollar una serie de análisis, fundamentos y directrices para la toma 
de decisiones sobre la arquitectura. 
 
 
 
 
18 
 
El proceso de ATAM consiste en nueve pasos. A pesar de que los pasos están enumerados, 
sugiriendo linealidad, este no es un proceso que deba ser estrictamente en cascada. La 
importancia de esos pasos es delinear claramente las actividades del ATAM junto con los 
resultados de estas actividades. Los pasos son los siguientes: 
 
1. Presentación Del ATAM: se explica el proceso que cada uno de los involucrados 
seguirá, permitiendo resolver preguntas y establecer el contexto y expectativas para las 
actividades. Esta describe brevemente los pasos, las técnicas que serán usadas para 
elicitación y análisis y las salidas de la evaluación. 
 
2. Presentación De Controladores De Negocio: el gerente de proyecto presenta una visión 
general del sistema desde una perspectiva empresarial. Debe describir los requisitos más 
importantes, restricciones (técnicas, administrativas, económicas o políticas), objetivos y 
contexto, principales interesados y los controladores de arquitectura. 
 
3. Presentación De La Arquitectura: será presentada por el arquitecto líder o equipo de 
arquitectura en el nivel de detalle apropiado. Es un paso importante ya que la cantidad de 
información disponible y documentada afectará directamente el análisis que es posible y 
su calidad. Se deben cubrir restricciones técnicas, interacción con otros sistemas y 
enfoques arquitecturales usados para cumplir los atributos de calidad. 
 
4. Identificar Enfoques Arquitectónicos: son identificados los enfoques y estilos 
arquitectónicos por el equipo de análisis, más no son analizados. Estos representan los 
medios de la arquitectura para abordar los atributos de calidad de mayor prioridad. 
También definen las estructuras importantes del sistema y la forma en que éste puede 
crecer, responder a cambios, resistir ataques, integrarse con otros sistemas, entre otros. 
 
5. Generar Árbol De Utilidad De Atributos De Calidad: el equipo de evaluación trabaja 
con el equipo de arquitectura, el gerente y los representantes del cliente para identificar, 
priorizar y refinar los objetivos de calidad más importantes del sistema. El resultado del 
proceso de generación del árbol de utilidades es una priorización de requisitos de 
atributos de calidad específicos, realizados como escenarios. 
 
6. Analizar Enfoques Arquitectónicos: una vez el alcance de la evaluación ha sido 
definido mediante el árbol de utilidad, el equipo de evaluación puede explorar los 
enfoques arquitectónicos que realizan los atributos de calidad importantes. Esto se hace 
con el objetivo de documentar aquellas decisiones arquitecturales e identificar sus 
riesgos, puntos sensibles y compensaciones. 
 
 
 
 
 
19 
7. Lluvia De Ideas Y Priorización De Escenarios: generar un conjunto de escenarios 
facilita la tarea de la lluvia de ideas. Los escenarios son ejemplos de estímulos 
arquitectónicos para representar el interés de los interesados y entender los requisitos de 
atributos de calidad. Hay dos tipos de escenarios, los de caso de uso donde el interesado 
es un usuario final que utiliza el sistema para ejecutar alguna función, y los escenarios de 
cambios representan cambios en el sistema (escenarios de crecimiento y de exploración). 
Una vez obtenidos los escenarios, deben ser priorizados mediante votación, asignando a 
cada involucrado un número de votos igual al 30% del total de escenarios. 
 
8. Analizar Enfoques Arquitectónicos: después de recopilados y analizados los 
escenarios, el arquitecto comienza el mapeo de los escenarios mejor clasificados en las 
descripciones arquitectónicas que se hayan presentado. Asumiendo que en el paso 
anterior no se produjo ningún escenario prioritario que no estuviera cubierto por análisis 
previos, ésta es una actividad de prueba: se espera y se supone descubrir poca 
información nueva. 
 
9. Presentación De Resultados: se presenta toda la información recogida durante el 
proceso. Se incluye el contexto del negocio, requisitos de conducción, restricciones y la 
arquitectura. Lo más importante, sin embargo, es el conjunto de salidas de ATAM: los 
enfoques y estilos arquitecturales documentados, el conjunto de escenarios y su 
priorización, el conjunto de preguntas basadas en atributos, el árbol de utilidad, los 
riesgos descubiertos, los no riesgos documentados, los puntos de sensibilidad y los puntos 
de intercambio encontrados. 
 
Estos pasos son generalmente agrupados en dos fases. La primera fase es centrada en la 
arquitectura y se concentra en elicitar información arquitectural y analizarla. La segunda fase es 
centrada en los involucrados y se concentra en elicitar sus puntos de vista y verificar los 
resultados de la primera fase. 
 
 
 
 
 
 
 
 
 
20 
2.2 Análisis De Sentimientos 
 
2.2.1 Conceptualización 
 
El análisis de sentimientos es una técnica computacionalque permite categorizar información 
válida desde fuentes textuales, basándose en el procesamiento del lenguaje natural [18]. 
 
En la Figura 2.1 se ejemplifica proceso de análisis de sentimientos. En una primera etapa se tiene 
la recolección de datos que en este caso de estudio corresponde a redes sociales de uso público. 
Posteriormente se realiza el procesamiento de dicha información para finalmente obtener su 
categorización y poder mostrar a través de la organización de los datos cuál es el sentimiento 
asociado a los textos revisados. 
 
 
Figura 2.1. Análisis de sentimientos basado en las redes sociales 
 
La clasificación asociada que se encuentra mediante procesamiento computacional se puede 
resumir en tres categorías: 
 
● Positivo 
● Negativo 
● Neutral 
 
Las siguientes imágenes son un ejemplo claro de clasificación de los datos entre positivo, 
negativo y neutral, encontrados en la red social Twitter por medio del hashtag "#saludcolombia". 
 
 
 
 
 
21 
 
Figura 2.2. Dato categorizado como positivo. 
 
 
Figura 2.3. Dato categorizado como negativo. 
 
 
 
 
 
22 
 
Figura 2.4. Dato categorizado como neutral. 
 
Explotar información subjetiva es de gran importancia actualmente, hay demasiado contenido 
sobre casi cualquier tema en las redes sociales y de las opiniones de sus usuarios, y de allí se 
puede extraer valiosa información para su categorización y posterior estudio. Para las empresas y 
mercadotecnia se hace muy importante conocer cuál es la opinión de los usuarios hacia sus 
productos y servicios, para los mismos clientes es importante conocer cuál fue el nivel de 
satisfacción usando esos mismo productos y servicios por otros clientes, y de esta manera tener 
una idea efectiva de cual llenaría mejor las expectativas. 
 
Cuando nos referimos a productos y servicios apuntamos a cualquier ámbito de consumo, ya sea 
elementos de la canasta familiar, viajes, vivienda, estudios, electrónicos y gobierno entre otros. 
 
El análisis de sentimientos como rama de la inteligencia artificial está lejos de poder utilizar las 
teorías cognitivas de la emoción o el afecto para poder tomar decisiones. Éstas pueden ser útiles 
para entender sobre similitudes y contrastes entre sentimientos o casi que entender etiquetas 
naturales de los textos [19] como se puede ver en la Tabla 2.4, donde se presentan las emociones 
básicas humanas y sus opuestos, también en la Tabla 2.5 se observa como la suma de dos de las 
emociones básicas generan un sentimiento y su sentimiento opuesto. 
 
 
 
 
23 
 
Tabla 2.4 
Contraste de Emociones de Plutchik 
Emoción Básica Emoción Opuesta 
Alegria Tristeza 
Confianza Disgusto 
Miedo Ira 
Sorpresa Anticipación 
 
Tabla 2.5 
Contraste de Emociones y Sentimientos de Plutchik 
Emociones Básicas Sentimiento Sentimiento Opuesto 
Anticipación + Alegría Optimismo Desaprobación 
Alegrías + Confianza Amor Remordimiento 
Confianza + Miedo Sumisión Desprecio 
Miedo + Sorpresa Temor Agresividad 
Sorpresa + Tristeza Desaprobación Optimismo 
Tristeza + Disgusto Remordimiento Amor 
Disgusto + Ira Desprecio Sumisión 
Ira + Anticipación Agresividad Temor 
 
El análisis computacional de sentimientos consiste en detectar estas emociones, quién las posee, 
cúal es el aspecto que genera la emoción, cuál es el tipo de emoción, o su polaridad (positiva, 
negativa o neutral) y cuáles son las sentencias que la contienen [11]. 
 
 
 
 
 
 
24 
Por lo cual la información obtenida del análisis de sentimientos la podríamos resumir en los 
siguientes ítems: 
 
● Polaridad de sentimientos sobre el servicio de salud. 
● Nivel de fidelización de clientes. 
● Opinión pública sobre representantes políticos o situaciones de interés social. 
● Predicciones sobre resultados de elecciones. 
● Tendencias de mercado. 
 
2.2.2 Preprocesamiento De Textos 
 
Los métodos de preprocesamiento de juegan un papel muy importante en las técnicas de minería 
de datos y sus aplicaciones. Este es el primer paso para el proceso de minería de datos [24]. 
 
2.2.2.1 Extracción 
 
Método utilizado para tokenización que es la tarea de cortar en pedazos una secuencia de 
caracteres y una unidad de texto definida, cuyos pedazos son llamados tokens, y a mismo tiempo 
descartando ciertos caracteres como la puntuación. 
 
2.2.2.2 Eiminación De Palabras Vacias (Stop Words) 
 
Las palabras vacías deben ser removidas de un texto por que hacen que el texto se vuelva pesado 
y menos importante para el análisis. Remover estas palabras reduce la dimensionalidad del 
espacio de términos. Las palabras más comunes en documentos de textos son artículos, 
preposiciones, pronombres, entre otros que no dan el significado a los documentos. Estas 
palabras son tratadas como palabras vacías, entre las cuales podemos encontrar: el, en, un, una, 
con y son eliminadas de los documentos porque no se miden como palabras claves en la minería 
de textos. 
 
2.2.2.3 Identificación De La Raíz De Una Palabra (Stemming) 
 
Steeming es el método utilizado para identificar la raíz de una palabra. El propósito de este 
método es remover varios sufijos, para reducir el número de palabras, para tener trozos precisos, 
ahorrar tiempo y espacio de memoria. En esta técnica, la traducción de formas morfológicas de 
una palabra a su raíz es hecha suponiendo que cada una está semánticamente relacionada. Hay 
dos puntos a considerar mientras se realiza el proceso de stemming: 
 
 
● Las palabras que no tienen el mismo significado deben mantenerse separadas 
 
 
 
 
25 
● Se supone que las formas morfológicas de una palabra tienen el mismo significado básico 
y por lo tanto deben ser asignadas al mismo origen. 
 
Estas dos reglas son buenas y suficientes en aplicaciones de minería de textos o procesamiento 
de lenguaje. Stemming generalmente se considera como un dispositivo que mejora la memoria. 
 
2.2.3 Clasificación De Textos 
 
En un sistema de análisis de sentimientos se buscan características y patrones asociadas a 
opiniones, emociones y sentimientos. El objetivo principal es el que prevé cual es la categoría a 
la cual se puede asociar el texto, esta puede ser positiva, negativa o neutral. Se revisarán a 
continuación las técnicas asociadas a la clasificación de textos. 
 
2.2.3.1 Técnica De Naive Bayes 
 
Corresponden a un modelo simple de clasificación que tiene un buen funcionamiento para 
categorización de textos. El algoritmo asume que cada una de las caracteristicas es independiente 
de las otras dada una clase [9]. De esta manera se tiene la ecuación 2.1: 
 
𝑃(𝑐|𝑡) =
𝑃(𝑐) 𝑃(𝑡|𝑐)
𝑃(𝑡)
 (2.1) 
 
Donde 𝑐 es una clase específica y 𝑡 es el texto que se quiere clasificar. 𝑃(𝑐) y 𝑃(𝑡) son las 
probabilidades correspondientes a la clase y el texto, y 𝑃(𝑡|𝑐) es la probabilidad de que un texto 
aparezca dada una clase. En el caso de la investigación, 𝑐 corresponde a los sentimientos 
POSITIVO, NEUTRAL y NEGATIVO, y 𝑡 corresponde a cada uno de los datos a clasificar. 
La meta es seleccionar el valor de 𝑐 que maximice 𝑃(𝑐|𝑡), donde 𝑃(𝑤𝑖|𝑐) es la probabilidad de 
la 𝑖 − é𝑠𝑖𝑚𝑎característica en el texto 𝑡 aparezca dada la clase 𝑐. Para esto se necesita entrenar 
parámetros de 𝑃(𝑐) y 𝑃(𝑤𝑖|𝑐), los cuales son fáciles de obtener en el modelo de Naive Bayes y 
que corresponde a la estimación de probabilidad máxima de cada uno. Al hacer la predicción de 
un nuevo texto 𝑡, se calcula el logaritmo de la probabilidad 𝑙𝑜𝑔 𝑃(𝑐) + 𝛴𝑖 𝑙𝑜𝑔 𝑃(𝑤𝑖|𝑐) de las 
diferentes clases, y toma la clase con más alto logaritmo de probabilidad como predicción. 
 
2.2.3.2 Técnica De Máxima Entropía 
 
La idea detrás de esta técnica, abreviada como MaxEnt, es que se deberían preferir los modelos 
más uniformes que satisfacen una restricción dada. Estos modelos son basados en características. 
En un escenario de dos clases, usar estos modelos es equivalentea usar regresión logística para 
encontrar la distribución sobre las clases. MaxEnt difiere con Naive Bayes en que no realiza 
suposiciones de independencia para sus características, lo que conlleva a poder agregar 
 
 
 
 
26 
características como bigramas y expresiones sin preocuparnos por la superposición de 
características [8]. El modelo está representado con la ecuación 2.2: 
 
𝑃(𝑐|𝑑, 𝜆) =
𝑒𝑥𝑝[𝛴𝑖𝜆𝑖𝑓𝑖(𝑐,𝑑)]
𝛴𝑐′𝑒𝑥𝑝[𝛴𝑖𝜆𝑖𝑓𝑖(𝑐,𝑑)]
 (2.2) 
 
Donde 𝑐 corresponde a la clase, 𝑑 es el texto y 𝜆 es el vector de peso. Estos vectores deciden la 
importancia de una característica en la clasificación. Un mayor peso significa que la 
característica es un indicador fuerte para la clase. El vector de peso es obtenido mediante la 
optimización de lambdas con el fin de maximizar la probabilidad condicional. 
 
2.2.3.3 Técnica De Support Vector Machine 
 
Está basado en el principio de minimización de riesgos estructurales para la teoría de aprendizaje 
computacional, cuya idea es encontrar una hipótesis ℎ en el cual se pueda garantizar el error 
verdadero más bajo. El error verdadero de ℎ es la probabilidad que ℎ caiga en un error en un 
ejemplo de prueba no visto y seleccionado al azar [10]. Se puede usar un límite superior para 
conectar el error verdadero de una hipótesis ℎ con el error de ℎ en el conjunto de entrenamiento 
y la complejidad de 𝐻 (medida por la dimensión VC1), el espacio de hipótesis que contiene ℎ. 
Support Vector Machine, denotado como SVM, encuentra la hipótesis ℎ aproximada que minice 
el límite del error verdadero a través de controles efectivos y eficientes de la dimensión VC de 
𝐻. 
 
Aprendiendo la forma de umbral lineal en su forma básica, pero que a través de complementos 
adecuados a su núcleo pueden ser usados para aprender clasificadores polinomiales, redes de 
función básica radial y redes neuronales sigmoideas de tres capas. También tiene la habilidad de 
que su aprendizaje puede ser independiente de la dimensionalidad del espacio de características, 
midiendo la complejidad de la hipótesis basado en el margen por el cual están separados los 
datos y no por la cantidad de las características. 
 
2.2.3.4 Técnica De Árboles De Decisión 
 
Provee una descomposición jerárquica del espacio del conjunto de datos en el cual se usa una 
condición en el valor del atributo para dividir los datos. La condición o predicado es la presencia 
o ausencia de una o más palabras. La división del espacio de datos es hecha recursivamente hasta 
que los nodos hoja alcancen un número mínimo de registros que son utilizados para la 
clasificación [17]. 
 
 
1
 La dimensión Vapnik-Chervonenkis se usa para dar límites superiores e inferiores a la complejidad de la muestra 
en clases infinitas de conceptos [7] 
 
 
 
 
27 
Los árboles tienen tres tipos de nodos [23]: 
 
● Un nodo raíz que no tiene aristas entrantes y cero o más aristas de salida 
● Nodos internos, cada uno de los cuales tiene exactamente una arista de entrada y dos o 
más aristas de salida 
● Hojas o nodos terminales, cada uno de los cuales tiene exactamente una arista de entrada 
y ninguna arista de salida. 
 
En un árbol de decisión, cada nodo hoja es asignada a una etiqueta de clase. Los nodos no 
terminales, los cuales incluyen la raíz y los nodos internos, contienen condiciones de prueba de 
atributos para separar registros que tienen diferentes características. 
 
Existen varias medidas que pueden ser usadas para determinar la mejor manera para separar los 
registros, las cuales están definidas en términos de la distribución de la clase de los registros 
antes y después de separados. La expresión 𝑝(𝑖|𝑡) denota la fracción de registros que pertenecen 
a la clase 𝑖 en un nodo 𝑡. En ocasiones, se omite la referencia al nodo 𝑡 expresando la fracción 
como 𝑝𝑖. 
 
Las medidas creadas para seleccionar la mejor manera de separar son basados frecuentemente en 
el grado de impureza que los nodos hijos. Cuanto menor sea el grado de impureza, más sesgada 
será la distribución de clase. Entre las medidas de impureza se tienen las expresadas en las 
ecuaciones 2.3 a la 2.5: 
 
𝐸𝑛𝑡𝑟𝑜𝑝í𝑎(𝑡) = −𝛴𝑖=0
𝑐−1 𝑝(𝑖|𝑡) 𝑙𝑜𝑔2 𝑝(𝑖|𝑡) (2.3) 
 
𝐺𝑖𝑛𝑖(𝑡) = 1 − 𝛴𝑖=0
𝑐−1[𝑝(𝑖|𝑡)]2 (2.4) 
 
𝐶𝑙𝑎𝑠𝑖𝑓𝑖𝑐𝑎𝑐𝑖ó𝑛 𝑑𝑒 𝐸𝑟𝑟𝑜𝑟(𝑡) = 1 − 𝑚𝑎𝑥𝑖[𝑝(𝑖|𝑡)] (2.5) 
 
Donde 𝑐 es el número de clases y 0 𝑙𝑜𝑔2 0 = 0 en los cálculos de entropía. 
 
 
2.2.4 Natural Language Toolkit 
 
Denotada por NLTK, es un conjunto de módulos de programas, conjuntos de datos y tutoriales 
que apoyan la investigación y la enseñanza en lingüística computacional y procesamiento de 
lenguaje natural (NLP). NLTK está escrita en el lenguaje de programación Python y distribuida 
bajo licencia de código abierto GPL [3]. 
 
 
 
 
 
28 
Con el paso del tiempo la herramienta ha sido reescrita para simplificar muchas estructuras de 
datos lingüísticos y aprovechando las últimas mejoras en el lenguaje Python. 
 
Un conjunto de módulos base define tipos de datos básicos y sistemas de procesamiento que son 
usados en toda la herramienta. El módulo de token se encarga del procesamiento de texto, tales 
como palabras o frases. El módulo de árbol define estructuras de datos para representar 
estructuras de árbol sobre texto, tales como árboles de sintaxis y árboles morfológicos. El 
módulo de probabilidad codifica distribuciones de frecuencia y distribuciones de probabilidad, 
incluida una variedad de técnicas estadísticas de suavizado [16]. 
 
Los demás módulos definen estructuras de datos e interfaces para hacer tareas específicas de 
NLP. Entre ellos tenemos módulos de parseo, de etiquetado, autómatas de estado finito, 
comprobación de tipos, visualización y clasificación de textos. 
 
2.2.5 Evaluación de Clasificadores 
 
2.2.5.1 Matriz de Confusión 
 
Considerando el problema de estimar 𝑘 clases para un conjunto de prueba contenidas en 𝑛 
instancias, las clases predecidas son representadas por 𝐶𝑖, mientras que las clases estimadas tal 
como se definen en el clasificador son representadas por 𝐶�̂�. Los resultados arrojados por los 
clasificadores pueden ser organizados en una matriz de confusión. Esta matriz representa como 
las instancias son distribuidas sobre estimados (filas) y las clases predecidas (columnas). La 
Tabla 2.7 muestra la representación de la matriz de confusión [15]. 
 
Los terminos 𝑛𝑖𝑗corresponden a la cantidad de instancias de clase 𝑖 por el clasificador, cuando en 
realidad corresponden al número de clase 𝑗. De esta manera, los términos diagonales (𝑖 = 𝑗) 
corresponden a las instancias correctamente clasificadas, mientras que los valores fuera de esa 
diagonal (𝑖 ≠ 𝑗) representa instancias clasificadas incorrectamente. 
 
 
Tabla 2.7 
Representación de Matriz de Confusión 
 𝐶1 . .. 𝐶𝑘 
𝐶1̂ 𝑛11 . .. 𝑛1𝑘 
. .. . .. . .. . .. 
𝐶�̂� 𝑛𝑘1 . .. 𝑛𝑘𝑘 
 
 
 
 
29 
 
Considerando una clase 𝑖 en particular, se pueden distinguir los siguientes tipos de instancias: 
verdaderos positivos (𝑇𝑃) y falsos positivos (𝐹𝑃) que corresponden a instancias correcta e 
incorrectamente clasificadas de 𝐶�̂�. Los verdaderos negativos (𝑇𝑁) y los falsos negativos (𝐹𝑁) 
son instancias correcta e incorrectamente no clasificadas como 𝐶�̂� respectivamente. 
 
La exactitud predictiva es definida según la ecuación 2.6: 
 
𝐸𝑥𝑎𝑐𝑡𝑖𝑡𝑢𝑑 = (𝑇𝑃 + 𝑇𝑁) / (𝑇𝑃 + 𝐹𝑃 + 𝑇𝑁 + 𝐹𝑁) (2.6) 
 
Sin embargo, esta exactitud no es apropiada para datos que se encuentren desequilibrados [5]. 
Como ejemplo del caso de estudio, consideremos que los comentarios positivos y negativos se 
encuentran en una proporción más grande que los comentarios neutrales. Para estos casos pueden 
usarse medidas tales como precisión, recall y medida F. 
 
2.2.5.2 Precisión 
 
Corresponde al número de ejemplos positivoscorrectamente clasificados dividido por el número 
de ejemplos etiquetados por el sistema como positivos. De acuerdo a la notación definida en la 
sección 2.2.4.1 se tiene expresa según la ecuación 2.7 [21]: 
 
𝑃𝑟𝑒𝑐𝑖𝑠𝑖ó𝑛 =
𝑇𝑃
𝑇𝑃 + 𝐹𝑃
 (2.7) 
 
2.2.5.3 Recall 
 
Hace referencia al número de ejemplos positivos correctamente clasificados dividido por el 
número de ejemplos positivos en los datos [21]. Se encuentra representado como se ve en la 
ecuación 2.8: 
 
𝑅𝑒𝑐𝑎𝑙𝑙 =
𝑇𝑃
𝑇𝑃 + 𝐹𝑁
 (2.8) 
 
 
 
 
 
 
30 
2.2.5.4 Medida F 
 
Es una medida que combina las ventajas y las desventajas de la precisión y el recall, cuyo 
resultado refleja la bondad de un clasificador ante una clase dada [5]. La medida F representa la 
compensación entre los diferentes valores de 𝑇𝑃, 𝐹𝑃 y 𝐹𝑁. La expresión para la medida F está 
dada por la ecuación 2.9: 
 
𝑀𝑒𝑑𝑖𝑑𝑎 𝐹 =
(1+𝛽2) ∗ 𝑟𝑒𝑐𝑎𝑙𝑙 ∗ 𝑝𝑟𝑒𝑐𝑖𝑠𝑖ó𝑛
𝛽2 ∗ 𝑟𝑒𝑐𝑎𝑙𝑙 + 𝑝𝑟𝑒𝑐𝑖𝑠𝑖ó𝑛
 (2.9) 
 
Donde 𝛽 corresponde a la importancia relativa de la precisión contra el recall. Usualmente este 
valor 𝛽 se establece como 1. 
 
 
 
 
 
 
 
31 
3. Proceso de Ingeniería 
 
En esta sección se detalla todo el trabajo ejecutado para hacer análisis de sentimientos a textos 
escritos por los usuarios de la red social Twitter y los resultados obtenidos. 
 
3.1 Exploración Y Selección 
 
3.1.1 Selección De Estilo Arquitectónico 
 
Existen diversos estilos arquitectónicos que pueden ser aplicados a una solución específica de 
acuerdo con los controladores que la rijan y los atributos de calidad que se identifiquen y sean 
más relevantes en el diseño. 
 
A continuación, se detallan los procesos realizados en cada uno de los pasos sugeridos por el 
QAW y los aspectos relevantes identificados en cada uno de ellos. 
 
Paso 1: Presentación E Introducción 
 
El equipo se compone por los investigadores de la presente investigación y adicional se cuenta 
contó con la revisión y validación de los resultados de la metodología por un arquitecto experto. 
Los miembros del equipo tuvieron claro cuáles fueron los pasos a tratar en la metodología. En 
cuanto a los roles de cada uno, ambos tuvieron igualdad de funciones. 
 
Paso 2: Presentación Del Negocio Y Misión 
 
Definición de los requisitos del sistema: 
 
● Descarga de los datos de acuerdo con los hashtags que sean tendencia y que hablen sobre 
salud en Colombia. 
● Clasificar estos datos descargados en una de las tres categorías de análisis de 
sentimientos: positivo, neutral o negativo. 
● Parametrizar los hashtags que sean tendencia. 
● Parametrizar el clasificador a ser utilizado. 
● Exponer interfaces que permitan realizar los procesos anteriores de manera independiente 
y que puedan llegar a ser programados. 
 
Paso 3: Presentación Del Plan De Arquitectura 
 
En el modelo preliminar se hizo un análisis de cómo debería ser la interacción de los diferentes 
componentes que fueron desarrollados. Para esto, se tiene como base la presentación de un 
diagrama de alto nivel. Adicional del plan del diseño, se tienen claras las siguientes 
consideraciones: 
 
 
 
 
32 
 
● Se debe realizar el refinamiento de atributos de calidad, los cuales conllevarán a la 
selección del estilo arquitectónico adecuado para cada uno de ellos. 
● Las librerías y APIs utilizadas para el desarrollo de componentes debe ser de uso libre, 
que no se requiere el pago de licencias. 
● El procesamiento de lenguaje natural de la información de Twitter debe ser en español. 
● La información filtrada debe ser única y exclusivamente de temas que traten temas de la 
salud y de entidades prestadoras del servicio de salud en el territorio colombiano. 
 
Paso 4: Identificación De Controladores De La Arquitectura 
 
En los pasos anteriores, se refinan los requisitos del proyecto y algunos controladores 
arquitecturales relevantes. Extrayendo cada uno de ellos y los que se van a tener en cuenta para 
el diseño, se tiene los siguientes: 
 
● Definición de estilo arquitectónico adecuado para realizar análisis de sentimientos de 
información de la red social Twitter sobre el tema de los servicios de salud en Colombia. 
 
● Desarrollo de los componentes necesarios para realizar la recuperación de información de 
Twitter y realizar el respectivo procesamiento para el análisis de sentimientos de cada 
uno de los datos descargados. 
 
● Evaluación del modelo arquitectónico propuesto. 
 
● Se establece la restricción de las APIs y librerías a ser usadas deben ser de uso público y 
libre. 
 
● Desde la presentación del plan de la arquitectura se identifica que los atributos de calidad 
que se deben tener en cuenta para el diseño de la arquitectura son: Interoperabilidad, 
modificabilidad y escalabilidad, definidos en la Tabla 3.1. 
 
 
 
 
 
 
 
 
 
33 
Tabla 3.1 
Atributos de calidad y significado 
Atributo De Calidad Significado 
Interoperabilidad La interoperabilidad es la capacidad que tiene un producto o un 
sistema, cuyas interfaces son totalmente conocidas, para 
funcionar con otros productos o sistemas existentes o futuros y 
eso sin restricción de acceso o de implementación. 
Modificabilidad Habilidad para hacer cambios al sistema de una forma rápida y 
poco costosa. Es el atributo de calidad más íntimamente 
relacionado con la arquitectura. 
Escalabilidad Es la capacidad de la aplicación para funcionar correctamente si 
el tamaño de procesamiento se incrementa. La escalabilidad 
debe ser alcanzada sin modificaciones de la arquitectura 
subyacente, a parte de los cambios inevitables de configuración. 
Una arquitectura no escalable, cuando el tamaño de 
procesamiento se incrementa su throughput se decrementa y el 
tiempo de respuesta se incrementa exponencialmente. 
 
Paso 5: Lluvia de Escenarios 
 
Entre los stakeholders investigadores, se plantean diferentes escenarios que puedan llegarse a 
presentar durante la puesta en marcha del prototipo funcional de la arquitectura. Cada uno aporta 
dos escenarios, teniendo en cuenta que puedan ser tenidos en cuenta por lo menos una vez uno de 
los atributos de calidad definidos, siendo ellos los siguientes: 
 
1. Se deben descargar los datos directamente de la plataforma Twitter de acuerdo con 
los filtros que se necesiten. 
2. Se deben procesar todos los datos que sean descargados de manera periódica sin 
importar el número que se recuperen. 
3. Se debe poder modificar los parámetros para la descarga de la información de Twitter 
de acuerdo con nuevas tendencias en cuanto a los términos de búsqueda. 
4. A medida que se tenga más información en la base de datos, el sistema podrá 
clasificar mejor los datos de la red social, para identificar el sentimiento asociado 
 
Paso 6: Consolidación de Escenarios 
 
Debido a la cantidad de participantes de escenarios y el trabajo conjunto que se hizo al momento 
de la consideración de estos, no se presentan escenarios repetidos y cada uno se encarga de una 
funcionalidad específica dentro del sistema. 
 
 
 
 
 
 
34 
Paso 7: Priorización de Escenarios 
 
Se generaron 4 escenarios entre los stakeholders del sistema. Para cada uno de ellos se 
obtuvieron un total de 2 votos para realizar la priorización. Haciendo la priorización de los 
escenarios se tienen en orden con su respectiva votación: 
 
● Escenario 2: Se deben procesar todos los datos que sean descargados de manera 
periódica sin importar el número que se recuperen. (2 votos) 
● Escenario 3: Se debe poder modificar los parámetros para la descarga de la información 
de Twitter de acuerdo con nuevas tendencias. (1 voto) 
● Escenario 4: A medida que se tenga más información en la base de datos, el sistema 
podrá clasificar mejor los datos de la red social, para identificar el sentimiento asociado. 
(1 voto) 
● Escenario 1: Se deben descargar los datos directamente de la plataforma Twitter deacuerdo con los filtros que se necesiten. (0 votos) 
 
Paso 8: Refinamiento de Escenarios 
 
El método de QAW sugiere que se realice el refinamiento de 4 o 5 escenarios. Debido a la 
cantidad de escenarios que salieron durante el proceso, se decide hacer el refinamiento a los tres 
primeros escenarios, que fueron los que obtuvieron votos durante la priorización. 
 
Refinamiento de Escenario para Escenario 2 
Escenario: Se deben procesar todos los datos que sean descargados de manera 
periódica sin importar el número que se recuperen 
Objetivos de Negocio: Realizar el análisis de sentimientos de la información obtenida de 
Twitter 
Atributos de Calidad 
Relevantes: 
Escalabilidad 
 
Estímulo: Procesar toda la información que obtenga de Twitter 
Fuente de 
Estímulo: 
API de Twitter 
Ambiente: Procesamiento de datos 
Artefacto: Componente de análisis de sentimientos 
Respuesta: Procesamiento y clasificación de los datos 
Medida de 
Respuesta: 
Cantidad de aciertos sobre total de datos procesados 
Preguntas: ¿Qué tanta precisión se debe tener en cuenta al momento de hacer el 
análisis de sentimientos? 
Problemas: Mala clasificación de los datos 
 
 
 
 
C
o
m
p
o
n
e
n
te
s 
 
 
 
 
35 
Refinamiento de Escenario para Escenario 3 
Escenario: Se debe poder modificar los parámetros para la descarga de la 
información de Twitter de acuerdo con nuevas tendencias 
Objetivos de Negocio: Descarga de información de Twitter para análisis de sentimientos 
Atributos de Calidad 
Relevantes: 
Modificabilidad 
 
Estímulo: Poder utilizar todas las tendencias que sean útiles para el análisis 
Fuente de 
Estímulo: 
API de Twitter 
Ambiente: Descarga de los datos 
Artefacto: Componente de descarga 
Respuesta: Datos con tendencias parametrizadas 
Medida de 
Respuesta: 
 
Preguntas: ¿Qué tan cambiante son las tendencias de Twitter respecto a temas 
de salud en Colombia? 
Problemas: Presencia de nuevas tendencias que no sean analizadas y contengan 
información que pueda ser relevante 
 
Refinamiento de Escenario para Escenario 4 
Escenario: A medida que se tenga más información en la base de datos, el 
sistema podrá clasificar mejor los datos de la red social, para 
identificar el sentimiento asociado 
Objetivos de Negocio: Realizar el análisis de sentimientos de la información obtenida de 
Twitter 
Atributos de Calidad 
Relevantes: 
Escalabilidad 
 
Estímulo: Tener un conjunto de entrenamiento robusto 
Fuente de 
Estímulo: 
Datos analizados 
Ambiente: Matriz de entrenamiento para el análisis de sentimientos 
Artefacto: Componente de análisis de sentimientos 
Respuesta: 
Medida de 
Respuesta: 
 
Preguntas: ¿Qué tan grande debe ser la matriz de entrenamiento? 
Problemas: No pasarle una matriz de entrenamiento con datos verídicos que 
lleven a un procesamiento de datos 
 
Terminado todo el proceso, se logró tener claridad sobre cuáles eran los requisitos del proyecto, 
controladores de arquitectura, posibles escenarios y la forma de abordarlos y resultados 
esperados, y los atributos de calidad. Entre los atributos de calidad que se definieron para el 
diseño de la arquitectura se tienen interoperabilidad, modificabilidad y escalabilidad. Todo el 
diseño debe realizarse para que estos atributos sean tenidos en cuenta en cada uno de los 
C
o
m
p
o
n
e
C
o
m
p
o
n
e
 
 
 
 
36 
componentes de la arquitectura y que al momento de realizarse la validación arrojan un alto 
grado de cumplimiento. 
 
Otro de los puntos que se puede concluir al aplicar la metodología, es la de seleccionar el estilo 
arquitectónico adecuado entre los posibles estudiados. De acuerdo a los atributos de calidad y 
controladores identificados, una de las arquitecturas que se amolda al proceso es la Orientada a 
Servicios. Este estilo será el que se tenga en cuenta para el diseño y construcción del prototipo de 
la investigación. 
 
3.2 Construcción 
 
3.2.1 Diseño De Arquitectura De Software Para El Análisis De Sentimientos 
 
De acuerdo con los controladores definidos, se realizó el diseño de la arquitectura la cual va ser 
la propuesta base para realizar análisis de sentimientos de información descargada de Twitter 
sobre temas de salud en Colombia. 
 
Se definieron los módulos principales que se crearon para los procesos base de la propuesta 
como lo son la recuperación de datos, análisis de sentimientos y visualización de resultados. 
Siguiendo el modelo de vistas de arquitectura 4+1 [13], se definen las vistas en las Figuras 3.1 a 
la 3.5 para el diseño incluyendo cada uno de los componentes y las librerías que son utilizadas en 
ellos. 
 
 
Figura 3.1. Vista Lógica de la arquitectura propuesta 
 
 
 
 
 
37 
 
Figura 3.2. Vista de Procesos de la arquitectura propuesta 
 
 
Figura 3.3. Vista de Desarrollo de la arquitectura propuesta 
 
 
Figura 3.4. Vista Física de la arquitectura propuesta 
 
 
 
 
 
38 
 
Figura 3.5. Definición de escenarios para la arquitectura propuesta 
 
Para el primer componente correspondiente a la recuperación de información de Twitter, se 
realizó una conexión con la API expuesta por Twitter para la descarga de los datos de acuerdo a 
los parámetros suministrados, los cuales serán guardados en una bodega de información. 
 
El segundo componente de análisis de sentimientos, el cual tendrá como entrada los datos 
descargados por el primer componente. Para este proceso se utilizará la librería NLTK, la cual 
fue configurada para realizar todo el procesamiento de textos y demás procesos necesarios para 
el análisis de sentimientos en español. 
 
Un tercer componente complementario a los dos anteriores también fue desarrollado, el cual 
corresponde a un generador de reportes, que organiza los resultados para entender la información 
descargada y clasificada por los otros componentes. 
 
Cada uno de estos componentes podrán ser accedidos a través de una interfaz de usuario donde 
se pueda realizar cualquiera de los procesos principales y además poder visualizar los reportes de 
una manera que pueda ser interpretada fácilmente por el usuario final. 
 
3.2.2 Selección Del Conjunto De Entrenamiento 
 
Para realizar el análisis de sentimientos se definió un conjunto de datos, los cuales expresan 
formas conocidas de cada uno de los posibles sentimientos. Este conjunto de datos fue utilizado 
tanto para el entrenamiento como para la validación del clasificador a ser utilizado. 
 
Internet provee diferentes opciones de las cuales pueden llegar a ser extraídos textos los cuales 
puedan ser utilizados como conjunto de datos. Dado el tema central de la investigación que 
corresponde a la salud, acotamos los lugares de búsqueda a redes sociales mediante el uso de 
tendencias, sitios especializados de salud en los cuales los usuarios dejen sus opiniones sobre 
este tema, entre otros. Una de estas opciones es Google Maps, en el cual se registran diversos 
sitios como restaurantes, centros comerciales, almacenes, hospitales, clínicas y demás. Esta 
plataforma permite que los usuarios califiquen algún lugar en un rango de 1 a 5 (representado en 
estrellas) y adicional de que hagan sus opiniones sobre el sitio que están visitando. 
 
 
 
 
 
39 
Para el caso de estudio, se obtuvieron los comentarios de las clínicas y hospitales de ciudades 
capitales de Colombia, siendo ellas Bogotá, Medellín, Cali, Barranquilla, Cartagena y 
Bucaramanga. En la Figura 3.6 se puede observar el detalle de una clínica de la ciudad de Cali, 
donde se identifica la cantidad de calificaciones realizadas por usuarios y con su respectiva 
calificación promedio. 
 
 
Figura 3.6. Ubicación de clínica y puntuación en Google Maps 
 
En la Figura 3.7, se puede observar el listado de todas las calificaciones y se realiza un resumen 
de la cantidad de calificaciones por puntuación. Por cada una de las ellas se observa la 
puntuación suministrada por el usuario,así como un comentario opcional complementando. 
 
 
 
 
 
40 
 
Figura 3.7. Resumen de puntuación y comentarios de clínica en Google Maps 
 
De todas las clasificaciones por cada uno de los lugares, se descargan aquellas que tengan 
puntuación y comentario y que sean en español. Estos comentarios con su puntuación son 
organizados en una hoja electrónica, identificando la clínica u hospital al cual pertenece y la 
ciudad en la que se encuentra. En la Tabla 3.2 se puede ver el esquema de cómo van a ser 
organizados los comentarios que fueron obtenidos. En total son 1369 registros. 
 
Para dar una clasificación a cada uno de los comentarios descargados, se tienen en cuenta las 
siguientes opciones: 
 
● Positivo: en caso de que el comentario exprese algo a favor. 
● Negativo: en caso de que el comentario expresa inconformidad. 
● Neutral: cuando el comentario no exprese aspectos positivos o negativos 
● No Útil: todos aquellos comentarios no relevantes con temas de salud o que no aportan 
para la clasificación 
 
 
 
 
 
 
 
 
41 
Tabla 3.2 
Esquema de organización de comentarios de Google Maps 
Ciudad Clínica Comentario Estrellas 
Bogotá Clínica del Country Buena atención 5 
Se supone que es una de la 
mejores, paga uno medicina 
prepagada para tener que estar 
cuatro horas esperando que 
atiendan a los niños, pésimo 
servicio pediátrico. 
1 
Urgencias es lento, normal, pero 
avanza. Por lo menos no es caótico 
como en otras clinicuchas 
3 
Agradezco la atención que me 
prestaron. Fue rápida y muy 
profesional. Dios bendiga a sus 
doctores y grupo de auxiliares. Un 
saludo. 
5 
Cali Fundación Valle del Lili La Clínica Valle del Lili, 
auspiciada en buena parte por la 
Fundación Valle del Lili, está 
catalogada como una de las 
instituciones prestadoras de salud 
más importantes de América 
Latina. Sus servicios en general 
son de alto nivel, con la más alta 
tecnología y el cuerpo médico de 
más alto perfil y competencias 
laborales. 
5 
Yo estuve ahí me hicieron un 
transplante y muy buena atención 
5 
Considerada una de las mejores 
clínicas de país y de Suramérica. 
4 
Muy demorada la atención en el 
laboratorio y rayos x y adicional 
excesivo el cobro del parqueadero. 
2:30 horas $5.500 
1 
 
 
 
 
 
42 
Como guía de para la clasificación se toma el comentario y no la puntuación, ya que se pudo 
identificar al obtener la colección de datos que muchas veces se daba una puntuación baja con 
comentarios positivos o viceversa. La calificación realizada por cinco personas, las cuales 
revisaron cada uno de los comentarios y dependiendo su contenido le asignaron una de las 
opciones mencionadas anteriormente. Cuando todos los evaluadores dieron una clasificación a la 
totalidad de los comentarios, se hicieron ponderaciones de las clasificaciones para determinar la 
clasificación final de cada uno de ellos. 
 
De todos los comentarios clasificados, se obtuvieron los resultados consignados en la Tabla 3.3: 
 
Tabla 3.3 
Resultados de calificación de comentarios 
Clasificación Comentarios 
Positivo 732 
Negativo 360 
Neutral 76 
No Útil 203 
 
De los comentarios clasificados como positivo, negativo y neutral, se realizaron procesos de 
filtrado eliminando aquellos comentarios que sean repetidos. Posterior a este proceso quedan un 
total de 1025 comentarios relevantes como conjunto de entrenamiento, distribuidos según 
resultados de la Tabla 3.4 y representados en la Figura 3.8: 
 
Tabla 3.4 
Comentarios depurados por sentimiento 
Clasificación Comentarios 
Positivo 594 
Negativo 355 
Neutral 76 
 
 
 
 
43 
 
 
Figura 3.8. Distribución de comentarios por sentimiento 
 
3.2.3 Evaluación Y Selección Del Clasificador 
 
Como se definió en secciones anteriores, se usará como herramienta para el análisis de 
sentimientos NLTK basada en el lenguaje de programación de Python. Esta librería dentro de su 
implementación cuenta con diferentes clasificadores los cuales pueden llegar a ser utilizados para 
analizar y clasificar cada uno de los datos que sean descargados a través de la API de Twitter. 
Los clasificadores para ser analizados para la selección corresponden a los siguientes: 
 
● Naive Bayes 
● Máxima Entropía 
● Support Vector Machines (SVM) 
● Árboles de Decisión 
 
Como conjunto de datos se tomará el definido anteriormente, que consta de un total de 1025 
comentarios entre las tres clases definidas para el análisis de sentimientos. Este conjunto de datos 
fue distribuido en un 70% para entrenamiento y el 30% restante utilizado para validar dicho 
conjunto de entrenamiento, los cuales son seleccionados de manera aleatoria para un total de 718 
comentarios para entrenamiento y 307 para validación. Teniendo estos grupos de datos para 
entrenamiento y validación, son entrenados cada uno de los clasificadores implementados y 
clasificados cada uno de los comentarios para validación, almacenando el resultado obtenido 
para cada clasificador. 
 
Posterior al proceso de clasificación, se creó la matriz de confusión para clasificadores 
multiclase, de los cuales se obtienen medidas como precisión, recall y medida F1 por clase. Estas 
 
 
 
 
44 
métricas ayudarán a la selección del clasificador adecuado para el conjunto de datos 
seleccionado. 
 
Este procedimiento de validación se realiza con tres conjuntos aleatorios diferentes de 
entrenamiento y validación, con la finalidad de tener resultados precisos ante diferentes entradas 
y poder definir una tendencia en los clasificadores. Los resultados de estas tres validaciones se 
pueden evidencias en las Tablas 3.5 a la 3.7 y en las Figuras 3.9 a la 3.11. Para las tablas tener en 
cuenta las siguientes convenciones: 
 
● Pos: Sentimiento Positivo 
● Neg: Sentimiento Negativo 
● Neu: Sentimiento Neutral 
 
Tabla 3.5 
Precisión de clasificadores para primeros tres conjuntos de prueba 
 Conjunto de Prueba 1 Conjunto de Prueba 2 Conjunto de Prueba 3 
 
Bayes Max 
Ent 
SVM Árboles Bayes Max 
Ent 
SVM Árboles Bayes Max 
Ent 
SVM Árboles 
Pos 0.75 0.68 0.87 0.86 0.79 0.69 0.91 0.90 0.69 0.60 0.82 0.80 
Neg 0.33 - 0.50 0.45 0.17 - 0.50 0.33 0.40 - 0.63 0.47 
Neu 0.82 0.92 0.86 0.76 0.88 0.94 0.86 0.76 0.85 0.97 0.88 0.77 
 
 
Figura 3.9. Distribución de precisión de clasificadores para primeros tres conjuntos de prueba 
 
 
 
 
 
45 
Tabla 3.6 
Recall de clasificadores para primeros tres conjuntos de prueba 
 Conjunto de Prueba 1 Conjunto de Prueba 2 Conjunto de Prueba 3 
 
Bayes Max 
Ent 
SVM Árboles Bayes Max 
Ent 
SVM Árboles Bayes Max 
Ent 
SVM Árboles 
Pos 
 0.96 0.99 0.96 0.90 0.95 0.99 0.95 0.87 0.95 0.99 0.94 0.90 
Neg 
 0.04 - 0.20 0.36 0.05 - 0.37 0.37 0.07 - 0.34 0.24 
Neu 
 0.56 0.34 0.84 0.73 0.64 0.34 0.84 0.79 0.57 0.28 0.79 0.73 
 
 
Figura 3.10. Distribución de recall de clasificadores para primeros tres conjuntos de prueba 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
46 
Tabla 3.7 
Medida F1 de clasificadores para primeros tres conjuntos de prueba 
 Conjunto de Prueba 1 Conjunto de Prueba 2 Conjunto de Prueba 3 
 
Bayes Max 
Ent 
SVM Árboles Bayes Max 
Ent 
SVM Árboles Bayes Max 
Ent 
SVM Árboles 
Pos 
0.84 0.80 0.91 0.88 0.86 0.81 0.93 0.88 0.80 0.75 0.88 0.85 
Neg 
0.07 - 0.29 0.40 0.08 - 0.42 0.35 0.12 - 0.44 0.32 
Neu 
0.67 0.49 0.85 0.75 0.74 0.50 0.85 0.77 0.68 0.43 0.84 0.75 
 
 
 
Figura 3.11. Distribución de medida F1 de clasificadores para primeros tres conjuntos de prueba 
 
Los datos analizados en las tres primeras validaciones no fueron uniformes en cuanto a cantidad 
de comentarios por sentimiento, siendo los positivoscon mayor participación y los neutrales con 
una cantidad menor respecto a los otros. Para probar el comportamiento de los clasificadores con 
otra distribución de comentarios, se decide hacer una cuarta validación con un subconjunto de 
datos del seleccionado, pero esta vez teniendo igual número de comentarios por sentimiento. Se 
toman 76 comentarios aleatorios por sentimiento para un total de 228 comentarios. A estos se 
aplica de igual manera la distribución 70% para entrenamiento y 30% para validación que fue 
utilizada en las anteriores validaciones. 
 
Una última validación es realizada con la misma cantidad uniforme en cuanto al conjunto de 
datos se refiere. Esta vez se toman los 228 comentarios seleccionados de la validación anterior 
como entrenamiento y se realiza la validación con el total de 1025 comentarios. Los resultados 
 
 
 
 
47 
de las validaciones 4 y 5 se pueden evidenciar en las Tablas 3.8 a la 3.10 y en las figuras 3.12 a 
la 3.14. 
 
Tabla 3.8 
Precisión de clasificadores para conjuntos de prueba 4 y 5 
 Conjunto de Prueba 4 Conjunto de Prueba 5 
 
Bayes Max 
Ent 
SVM Árboles Bayes Max 
Ent 
SVM Árboles 
Pos 
0.56 0.67 0.76 0.33 0.80 0.85 0.93 0.91 
Neg 
0.45 0.53 0.52 0.53 0.40 0.42 0.42 0.27 
Neu 
0.89 0.71 0.58 0.42 0.98 0.96 0.90 0.73 
 
 
Figura 3.12. Distribución de precisión de clasificadores para conjuntos de prueba 4 y 5 
 
 
 
 
 
 
48 
Tabla 3.9 
Recall de clasificadores para conjuntos de prueba 4 y 5 
 Conjunto de Prueba 4 Conjunto de Prueba 5 
 
Bayes Max 
Ent 
SVM Árboles Bayes Max 
Ent 
SVM Árboles 
Pos 
0.92 0.75 0.67 0.25 0.93 0.91 0.88 0.55 
Neg 
0.24 0.43 0.52 0.43 0.78 0.87 1.00 0.93 
Neu 
0.70 0.74 0.65 0.61 0.50 0.64 0.71 0.83 
 
 
Figura 3.13. Distribución de recall de clasificadores para conjuntos de prueba 4 y 5 
 
 
 
 
 
 
 
49 
Tabla 3.10 
Medida F1 de clasificadores para conjuntos de prueba 4 y 5 
 Conjunto de Prueba 4 Conjunto de Prueba 5 
 
Bayes Max 
Ent 
SVM Árboles Bayes Max 
Ent 
SVM Árboles 
Pos 
0.70 0.71 0.71 0.29 0.86 0.88 0.90 0.68 
Neg 
0.31 0.47 0.52 0.47 0.53 0.57 0.59 0.42 
Neu 
0.78 0.72 0.61 0.50 0.67 0.77 0.79 0.77 
 
 
Figura 3.14. Distribución de medida F1 de clasificadores para conjuntos de prueba 4 y 5 
 
Los resultados de los conjuntos de datos 1, 2 y 3, muestran resultados no tan distantes y un poco 
más equilibrados en los tres sentimientos entre los clasificadores SVM y árboles de decisión. En 
la validación 4, se observa que árboles de decisión merma un poco los buenos resultados 
obtenidos en la primera validación, dejando paso a un repunte de máxima entropía y de nuevo a 
SVM. La última validación muestra resultados más equilibrados entre todos los clasificadores, 
siendo SVM el que más destaca entre los demás. Analizando los resultados de todas las 
validaciones, se puede decir SVM fue el clasificador que mejor comportamiento tuvo y fue 
constante en sus resultados independiente de la distribución de datos con el que se entrenará en el 
dominio de opiniones sobre temas de salud. 
 
La técnica de SVM implementada utiliza la estrategia de uno contra el resto la cual es específica 
para clasificadores multiclase, ayudando a que el proceso de clasificación sea adecuado y 
preciso, creando clasificadores por clase y tratándolo como si fueran binarios, lo que hace que 
 
 
 
 
50 
siempre se presentan datos desiguales en cantidad de positivos y no positivos y haciendo que su 
comportamiento sea el mismo para conjuntos de entrenamiento iguales o desiguales en cantidad 
de registros por clase. Esto pudo ser corroborado con los resultados de las 5 validaciones que 
fueron realizadas para los clasificadores. 
 
3.2.4 Prototipo Funcional 
 
El diseño de la arquitectura propuesta se empleó en la implementación del prototipo funcional, 
con el cual se verifica cada uno de los requisitos del sistema y se valida que los controladores de 
arquitectura identificados sean cumplidos en su totalidad. 
 
Como almacén de datos se decidió utilizar una base de datos NoSQL como MongoDB, esta base 
de datos permite versatilidad y facilidad al momento de almacenar todos los datos que sean 
descargados sin necesidad de hacer relaciones complejas para tener un registro completo. 
 
También se almacenará el conjunto de entrenamiento para el análisis de sentimientos y algunos 
parámetros de configuración que serán detallados más adelante. 
 
Para el primer componente de recuperación de información se utiliza la API suministrada por 
Twitter, la cual retorna un JSON que es un acrónimo de JavaScript Object Notation, es un 
formato de texto ligero para el intercambio de datos. con información relevante de cada dato en 
la red social Twitter. Esta API puede ser configurada con ciertos parámetros para filtrar la 
información que se necesita para el tema específico de la investigación: salud en Colombia y 
comentarios solamente en español. Los parámetros que pueden ser agregados para la búsqueda 
son nombre de usuario, rango de fechas de los datos a obtener, palabras clave o hashtag y 
lenguaje (Idioma). 
 
Para nuestro caso de estudio, los parámetros que se usarán son el rango de fecha, el lenguaje y la 
palabra clave para filtrar por hashtags. Estos hashtags son las tendencias con las cuales se van a 
filtrar todos los datos del universo que se encuentra en la base de datos de Twitter para extraer 
únicamente aquellos que hablen de temas sobre salud en Colombia. Los hashtags que vayan 
siendo tendencia pueden ser parametrizados en una colección de la base de datos, de la misma 
manera en los cuales pueden ser eliminados algunos hashtags que ya no tengan relevancia para el 
tema de la investigación. 
 
La Figura 3.15 muestra el esquema estructural del primer componente, el cual para su 
funcionamiento expone una interfaz REST la cual se invoca para descargar los datos de acuerdo 
con los hashtags configurados. Dicha API recibe como parámetros el rango de fecha en la cual se 
quieren descargar los datos, primero la fecha desde y segundo la fecha hasta. El formato de la 
fecha debe iniciar con el año (de cuatro dígitos), el mes (de dos dígitos) y finalmente el día 
(también de dos dígitos) sin ningún espacio ni carácter entre ellos. El servicio configura para la 
 
 
 
 
51 
descarga el idioma español, el cual se encuentra almacenado en una colección de la base de datos 
que contiene parámetros generales. 
 
 
Figura 3.15. Diagrama de componente de recuperación de información de Twitter 
 
Esta API puede ser utilizada desde una aplicación en caso de que se desee hacer una descarga 
específica de datos o puede programarse para que en un periodo de tiempo determinado se 
descargue la información de Twitter de acuerdo con los parámetros establecidos. 
 
Para el componente de análisis de sentimientos, se realizó un diseño arquitectural reflejado en la 
Figura 3.16. En este es obtenido el conjunto de entrenamiento seleccionado y que se encuentra 
almacenado en una colección de la base de datos. A cada uno de los comentarios sin importar su 
clasificación, son aplicadas técnicas de preprocesamiento de textos tales como conversión en 
minúscula, tokenización, eliminación de palabras vacías y stemming a cada una de las palabras. 
 
 
 
 
 
52 
 
 
Figura 3.16. Diagrama de componente de clasificación de datos extraídos de la red social Twitter 
 
Teniendo los comentarios procesados, se extrae una lista con todas las palabras distintas y la 
frecuencia de apariencia de cada una de ellas. Con esta lista y con un ayuda de un extractor de 
características, se crea un diccionario que indica las palabras que están contenidas en cada una de 
los comentarios, que en conjunto aplicando estas características al clasificador y pasando el 
conjunto de comentarios generan una lista con el diccionario de características y el sentimiento 
asociado a cada uno de ellas. 
 
Definida la lista de

Continuar navegando