Descarga la aplicación para disfrutar aún más
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
Compartir