TopiTuit: Una herramienta de apoyo para el análisis de ...

47
TopiTuit: Una herramienta de apoyo para el análisis de entorno comunicacional en Twitter utilizando técnicas de modelado de tópicos y análisis de sentimiento Camila Gómez Schrader Felipe Escobar Avila Asesora: Haydemar María Núñez Castro Co-asesora: Anamaría Irmgard Mojica Hanke Departamento de Ingeniería de Sistemas y Computación Facultad de Ingeniería Universidad de los Andes Enero, 2021

Transcript of TopiTuit: Una herramienta de apoyo para el análisis de ...

Page 1: TopiTuit: Una herramienta de apoyo para el análisis de ...

TopiTuit: Una herramienta de apoyo para el análisis de entorno comunicacional en Twitter utilizando técnicas de modelado de tópicos y análisis de sentimiento

Camila Gómez Schrader

Felipe Escobar Avila

Asesora: Haydemar María Núñez Castro

Co-asesora: Anamaría Irmgard Mojica Hanke

Departamento de Ingeniería de Sistemas y Computación

Facultad de Ingeniería

Universidad de los Andes

Enero, 2021

Page 2: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 2 de 47

Resumen

La cantidad de información que se produce cada día en los medios de comunicación

es cada vez más grande. Lo anterior ocasiona que la labor de los analistas de entorno

comunicacional, la cual se centra principalmente en el análisis de esta información, se vuelva

cada vez mas tediosa y desgastante. Por esta razón, este proyecto busca facilitar la labor de

estos analistas por medio de una herramienta web que les permite consultar, analizar y extraer

información relevante de grandes volúmenes de información de la red social Twitter. Para

esto, se construye una herramienta a la que se le denomina TopiTuit, por medio de la cual los

analistas pueden realizar búsquedas según las cuentas, fechas y temas de interés.

Posteriormente, teniendo en cuenta estos parámetros, se utilizan técnicas de modelado de

tópicos y de análisis de sentimiento y se construyen tableros de control que permiten

visualizar los resultados de los modelos con el fin de soportar los análisis requeridos. Al

validar el funcionamiento de la aplicación mediante la opinión de un experto en el tema, se

determina que TopiTuit logra, de forma satisfactoria, apoyar el trabajo de los analistas

ayudándoles a visualizar patrones que son difíciles de identificar a simple vista cuando se

debe analizar una gran cantidad de tuits.

Page 3: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 3 de 47

Agradecimientos

En primer lugar, quisiéramos agradecer a nuestros padres, pues su esfuerzo nos ha

permitido llegar a ser quien somos hoy en día tanto profesionalmente como personalmente.

En segundo lugar, queremos ofrecer un especial agradecimiento a nuestra asesora Haydemar

Núñez por su constante apoyo y por introducirnos en el área del aprendizaje automático,

cuyos beneficios han venido tomando una mayor relevancia en diferentes áreas. De igual

forma, agradecemos a nuestra co-asesora Anamaría Irmgard, por poner a nuestro servicio sus

diferentes conocimientos en las diferentes temáticas utilizadas.

Page 4: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 4 de 47

Contenido 1. Introducción ................................................................................................................. 6

2. Descripción general ...................................................................................................... 8

2.1 Objetivos ................................................................................................................ 8

2.2 Antecedentes ......................................................................................................... 8

2.2.1 Análisis de entorno ........................................................................................ 9

2.2.2 Análisis de sentimiento ................................................................................ 10

2.2.3 Modelado de tópicos .................................................................................... 12

3. Diseño y especificaciones ........................................................................................... 14

3.1 Definición del problema ..................................................................................... 14

3.2 Especificaciones .................................................................................................. 15

3.2.1 Parámetros (entradas) ................................................................................ 15

3.2.2 Resultados (salidas) ..................................................................................... 16

3.2.3 Requerimientos no funcionales .................................................................. 17

3.3 Restricciones ....................................................................................................... 18

4. Desarrollo del diseño .................................................................................................. 18

4.1 Recolección de Información ............................................................................... 19

4.2 Alternativas de diseño ........................................................................................ 19

5. Implementación .......................................................................................................... 22

5.1 Descripción de la implementación ..................................................................... 22

5.1.1 Construcción de la base de datos y extracción de tuits ............................. 23

5.1.2 Implementación de los modelos .................................................................. 24

5.1.3. Desarrollo de la herramienta web .............................................................. 27

5.2. Resultados ........................................................................................................... 28

5.2.1 Personalización de parámetros .................................................................. 29

5.2.2 Modelado de tópicos .................................................................................... 33

5.2.3. Análisis de sentimiento ................................................................................ 39

6. Validación ................................................................................................................... 41

6.1. Método de validación .......................................................................................... 41

6.2. Resultado de la validación .................................................................................. 41

7. Conclusiones ............................................................................................................... 43

Page 5: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 5 de 47

7.1. Discusión .............................................................................................................. 43

7.2. Trabajo futuro .................................................................................................... 45

8. Referencias ................................................................................................................. 46

Page 6: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 6 de 47

1. Introducción

Desde hace varias décadas atrás, los datos han adquirido mayor relevancia en los

procesos de toma de decisiones y se han convertido en un punto de referencia para la

identificación de problemas y/o soluciones. Los datos e información que se han generado a

través de diferentes medios le han permitido al ser humano esclarecer posibles ordenes

lógicos ante hechos aleatorios y encontrar patrones que anteriormente parecían ocultos

(Dir&Ge, 2019). Por esto, es que una gran diversidad de usuarios, desde un candidato

presidencial hasta una empresa privada, han venido aplicando el análisis de entorno

comunicacional. Con la aplicación de técnicas de análisis de entorno, es posible identificar

la relación que guardan entre sí diferentes eventos de datos. Ahora bien, si incluso antes del

boom de las redes sociales, una persona por sí sola no tenía la capacidad de procesar toda la

información que diariamente se escuchaba en la radio, se veía en televisión o se leía en los

periódicos, pensar que hoy en día es posible es siquiera inútil planteárselo.

La cantidad de información y datos con la que se cuenta hoy en día no tiene

precedentes, y a futuro se prevé que siga creciendo exponencialmente. Para 2025 se estima

que existirá una cantidad de datos aproximada a los 175 ZB, y actualmente cada minuto se

reproducen 4.7 millones de videos en YouTube, se envían 200 millones de correos

electrónicos y se construyen 480 mil tuits (NodeGraph, 2020). Los negocios y

organizaciones se enfrentan a un mundo cada vez más globalizado, más competitivo y

cambiante. La competencia se hace cada día más fuerte y por tanto el desarrollo de nuevas

estrategias que le permitan a las empresas diferenciarse se convierte en una necesidad cada

vez más relevante (Ceballos Agudelo, 2013). Uno de los factores clave para lograr esto es el

análisis de entorno comunicacional de la organización y de las entidades externas al

negocio. Por medio de este análisis, se pueden analizar los diferentes factores relevantes que

puedan brindar una ventaja competitiva a la entidad y además les permite a las organizaciones

tomar mejores decisiones y comprender diferentes escenarios (Licha, 2000).

Ahora bien, este análisis debe ser realizado por un experto en el tema, a los cuales se

les denomina analistas de entorno comunicacional. Estos profesionales realizan, de manera

Page 7: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 7 de 47

cotidiana, análisis a partir de los registros temáticos en diarios impresos, radio, televisión y

medios digitales (redes sociales y portales informativos). Cuando se evalúa el contexto de

esta manera, se le denomina análisis del entorno pasivo, o sencillamente análisis o

seguimiento de medios, y se parte del supuesto de que estos medios representan de forma

relevante el estado de la situación actual dentro de una sociedad y un momento determinado

(Licha, 2000).

No obstante, teniendo en cuenta la interminable cantidad de información

disponible, y que estos analistas deben indagar, recopilar, organizar y procesar las fuentes de

información (periódicos, TV, Twitter), es evidente que es necesario construir una

herramienta informática que ayude a realizar gran parte del trabajo, pues resulta imposible

que un analista pueda lograr analizar esta cantidad de información por sí solo.

Con el fin de facilitar la labor de los analistas de entorno comunicacional, el presente

proyecto de grado propone desarrollar una herramienta web que permita analizar grandes

volúmenes de información de la red social Twitter y obtener análisis sintetizados por medio

de herramientas de procesamiento de lenguaje natural y de aprendizaje automático. La

aplicación debe poder ajustarse a los requerimientos del analista permitiéndole así configurar

las cuentas, los periodos y los temas de interés en el análisis. Por otra parte, se buscará realizar

tableros de control que muestren de manera informativa los resultados de un modelo de

tópicos y de un modelo de análisis de sentimiento. Lo anterior, le permitirá al analista

identificar los tópicos latentes de una colección de documentos (tuits) y además poder

visualizar la polaridad (positivo, negativo y neutro) de estos. Para su desarrollo, se propone

utilizar una base de datos MongoDB, desplegar el back-end (desarrollado en Python) con

Django, y realizar la interfaz de usuario con React.

Con el objetivo de poder explicar de forma consistente el proyecto desarrollado, se

propone exponer primero una descripción general del proyecto teniendo en cuenta los

objetivos, antecedentes y la identificación del problema. Seguidamente, se expondrán las

consideraciones y especificaciones del diseño, así como su desarrollo. A continuación, se

hablará del proceso de implementación, así como de la validación de la herramienta y se

terminará con la presentación de las conclusiones del proyecto.

Page 8: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 8 de 47

2. Descripción general

2.1 Objetivos

General:

• Realizar una aplicación que apoye los análisis requeridos por los analistas de entorno

comunicacional utilizando técnicas de procesamiento de lenguaje natural y de

aprendizaje automático teniendo como base la red social Twitter.

Específicos:

• Construir una base de datos robusta y escalable para el almacenaje de los tuits

capturados. Construir un mecanismo de extracción de tuits relevantes para el analista

mediante el uso del API (Application Programming Interface) de Twitter.

• Implementar un modelo LDA (Latent Dirichlet Allocation), el cual es un modelo

probabilístico generativo de tópicos, que relaciona palabras para determinar los

tópicos latentes de los tuits.

• Implementar un modelo de análisis de sentimiento para identificar la polaridad

(positivo, neutro o negativo) de los tuits.

• Construir tableros de control con visualizaciones relevantes para el negocio.

2.2 Antecedentes

Con el fin de proporcionar un marco teórico que permita entender de mejor manera los

conceptos aplicados en el proyecto, esta sección busca explicar, bajo la luz de la literatura,

lo que es e análisis de entorno, el modelado de tópicos y el análisis de sentimiento. Así mismo

se mostrarán algunos de los trabajos relacionados con estas áreas.

Page 9: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 9 de 47

2.2.1 Análisis de entorno

El análisis de entorno es un instrumento que permite evaluar la incertidumbre del

contexto que es generada principalmente por la impredecibilidad del comportamiento de las

variables (Licha, 2000). Esta herramienta contribuye de forma significativa a comprender el

contexto socioeconómico, político, social, cultural y científico-técnico en que se desarrollará

determinada acción.

Bajo la perspectiva organizacional, el análisis de entorno es una herramienta que ayuda

a las organizaciones a generar alertas sobre posibles riesgos externos que puedan afectar su

operación y, a su vez, a aprovechar e identificar posibles oportunidades (Ceballos Agudelo,

2013). Por otra parte, el análisis de entorno es una herramienta clave de la gerencia social,

pues por medio de ella se puede realizar un examen temprano del contexto donde tendrá lugar

el desarrollo de políticas, programas y proyectos sociales, identificándose las oportunidades

y riesgos del contexto para su ejecución (Licha, 2000).

Existen dos enfoques del análisis de entorno en la literatura: el análisis pasivo y el análisis

activo. En lo que concierna al análisis de entorno pasivo, el estudio de tendencias se hace con

base a la información desplegada en medios de comunicación, pues al analizar un número

relevante y significativo de periódicos, revistas, programas de televisión, libros,

documentales y otras fuentes, a lo largo de un determinado periodo, se puede obtener una

representación apropiada de los eventos y problemas emergentes. Por otra parte, dentro del

análisis de entorno activo se encuentra la metodología QUEST por sus siglas en inglés: Quick

Environmental Scanning Technique. Esta metodología busca orientar a la organización hacía

la identificación de los cambios que generan un mayor impacto sobre ella. La

implementación de esta metodología va desde la identificación de problemas hasta la

elaboración de la estrategia y se soporta en el monitoreo continuo del cambio (Licha, 2000).

El análisis del entorno se ha vuelto cada vez más relevante en la medida en que vivimos

en un mundo cada vez más globalizado y competitivo. Para las organizaciones, esto último

trae consigo amenazas y oportunidades que implican incorporar procesos estratégicos a la

organización, de tal forma que se logre un ajuste adecuado entre variables internas y variables

externas del entorno donde se desenvuelve (Zapata et al., 2015). Por tal razón, es que más

Page 10: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 10 de 47

entidades han recurrido al uso de esta herramienta, para así mantenerse competitivas en un

entorno cambiante.

2.2.2 Análisis de sentimiento

El análisis de sentimiento es un campo de investigación dentro del procesamiento del

lenguaje natural que busca extraer de forma automática y utilizando técnicas

computacionales, la información subjetiva expresada en un documento dado y acerca de un

tema determinado (Sande, 2018). En esta medida, este análisis tiene como principal objetivo

determinar si un documento tiene una opinión positiva, negativa o neutra. Teniendo en cuenta

que resulta bastante útil conocer la opinión de las personas sobre cualquier cosa, este tipo de

análisis se ha convertido en una herramienta de apoyo dentro de los procesos de toma de

decisiones en las organizaciones (Tellez et al., 2017).

Tradicionalmente, el análisis de sentimiento se ha abordado como una tarea de

clasificación que enfrenta dos problemas. El primero, consiste en la transformación de los

textos en una representación adecuada y el segundo, consiste en la identificación del

algoritmo de clasificación a utilizar en la tarea. El algoritmo más utilizado para esta

clasificación es el de máquinas de soporte vectorial (SVM) (Tellez et al., 2017).

El análisis de sentimiento presenta beneficios múltiples al momento de su aplicación. Por

esto mismo es que los principales interesados en el avance de este campo de investigación

son los gobiernos y las empresas. Poder identificar lo que las personas piensan de productos,

medidas y/o políticas es una herramienta valiosa, y su uso puede ofrecer ventajas

competitivas que eran impensables hasta hace pocos años (Sande, 2018). Algunos de los usos

de este tipo de análisis son: la validación de opinión de productos y servicios, corrección de

puntuación según los mensajes expresados, mejoras de los sistemas de recomendación,

posicionamiento de publicidad online según la percepción de las páginas, conocer la

percepción de reputaciones políticas y análisis del mercado financiero.

Page 11: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 11 de 47

2.2.2.1 Casos de aplicación e investigaciones del análisis de sentimiento

Dentro del análisis de sentimiento se han realizado diferentes casos de aplicación, así

como proyectos de investigación que buscan mejorar su rendimiento bajo diferentes

contextos. Por ejemplo, Tellez et al. en el 2017 realizaron un caso de estudio sobre la

transformación de textos en español para el análisis de sentimiento en Twitter. El propósito

de esta investigación consistía en identificar el conjunto de transformaciones (lematización,

derivación, eliminación de entidades, entre otros), tokenizadores (ej. n-gramas de palabras)

y los esquemas de ponderación de tokens, que proporcionaran un mejor desempeño en la

exactitud de un clasificador SVM (Máquina de Soporte Vectorial) entrenado con dos

conjuntos de datos en español. Dentro de esta investigación, Tellez et al. proponen una

combinación de n-gramas basados en palabras y q-gramas basados en caracteres que logra

mejorar el tradicional uso de combinaciones de palabras en los conjuntos de datos utilizados.

Por otra parte, Sande (2018) elabora un proyecto de investigación en el que busca entrenar

varios modelos haciendo uso de un “corpus” de tuits y utilizando diferentes técnicas de tal

forma que se pueda identificar cuál de todas las combinaciones es la mejor. En sus resultados,

así como lo manifestado en otros proyectos de investigación, es posible ver que el algoritmo

que obtiene un mejor desempeño corresponde a las máquinas de soporte vectorial.

Adicionalmente, el uso de ponderaciones normalizadas como TF y TF-IDF y el uso de

stemming (derivación) contribuyen a aumentar le eficacia del modelo aportando así al

rendimiento global.

Otro proyecto desarrollado utilizando análisis de sentimiento, es el de García (2014). En

este se buscaba estudiar los principales métodos utilizados en la literatura para realizar un

caso de aplicación del análisis de sentimiento sobre las elecciones presidenciales primarias

realizadas en Alianza por Chile, entre los candidatos Andrés Allamand y Pablo Longueira.

Haciendo uso de este tipo de análisis se buscó predecir los resultados de las primarias

identificando las personas que estaban a favor de los candidatos respectivos, así como

aquellos que se posicionaban en contra de uno o ambos candidatos. Al comparar los

resultados obtenidos con el modelo y los resultados de las elecciones en urnas realizadas en

Page 12: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 12 de 47

Julio de 2013 en Chile, se evidenció que el análisis realizado logró predecir el resultado final

con un margen de error bajo.

Un último ejemplo de un proyecto de investigación acerca del análisis de sentimiento es

el realizado por Diaz-Galeano et al. (2019). Este proyecto fue desarrollado en la octava

edición del taller TASS (Task of Sentiment Analysis at SEPLIN) en Bilbao, España, y se

propuso trabajar el análisis de sentimiento a nivel de un tuit. La propuesta incluía dos

subtareas principales: análisis de sentimiento monolingüe y multilingüe sobre conjuntos en

español de España, Uruguay, Perú, Costa Rica y México. Esta edición del taller atrajo la

participación de alrededor de 13 sistemas que seguían y demostraban los resultados

presentados en talleres similares. La mayoría de los modelos evaluados se fundamentaban en

el aprendizaje profundo y en el uso de características lingüísticas personalizadas.

2.2.3 Modelado de tópicos

El modelado de tópicos es básicamente encontrar los temas/tópicos de mayor relevancia

en un conjunto de documentos al que se le denomina “corpus” (Hammoe, 2018). Estas

técnicas han sido utilizadas durante años para determinar los tópicos en documentos como

artículos, novelas, noticias, etc, y de forma más reciente se han utilizado en contextos como

Twitter, donde se aplica la misma idea, pero teniendo en cuenta diferencias sustanciales como

el tamaño de los documentos (tuits) y el tipo de contenido (Vilares et al., 2014).

Ahora bien, el tipo de modelo que se utiliza para esta tarea es generalmente matemático

y estocástico, lo que implica que los resultados son probabilidades (Chandía, 2016). Los

tópicos generalmente se definen como una función de densidad 𝑝!(𝑤) donde 𝑤 es una palabra

y 𝑝! es la función de densidad para el tópico 𝑖. Por lo tanto, 𝑝!(𝑤) es la probabilidad de 𝑤

dado el tópico 𝑖. Un modelo de tópicos generativo es un modelo que permite la clasificación

de documentos nuevos (no vistos) una vez el modelo ha sido entrenado, sin tener que ir a

través de todo el “corpus” algo útil cuando se tiene un flujo constante de documentos (Risch,

2016).

Page 13: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 13 de 47

Uno de los modelos más utilizados y reconocidos para modelado de tópicos, y el cúal su

utilizó en este proyecto es el Latent Dirichlet Allocation (LDA). Este es un modelo generativo

de tópicos, y asume que cada palabra en un documento es generada a partir de un tópico que

a su vez es seleccionado a partir de la distribución de tópicos de cada documento. La

distribución de tópicos para cada documento es generada a partir de una distribución

Dirichlet, ocasionando que el modelo LDA le permita a un documento estar conformado por

multiples tópicos en diferentes proporciones. (Risch, 2016). Cabe mencionar que este modelo

se puede considerar como una evolución de la técnica LSA (Latent semantic analysis), que

asume que palabras con significado similar tendrán ocurrencia en documentos similares o del

mismo contexto, y del PLSA (Probabilistic latent semantic analysis), el cual tiene como

principal objetivo modelar las coocurrencias bajo un marco estadístico para poder encontrar

la estructura semántica de los datos (Chandía, 2016).

2.2.3.1 Casos de aplicación e investigaciones del modelado de tópicos

En el trabajo realizado por Hammoe (2018), el autor busca brindarle una solución a una

empresa que se dedica a dar soluciones de Big Data a otras empresas, construyendo un

modelo LDA para identificar los tópicos en un conjunto de tuits relevantes para la compañía,

específicamente trabajando con datos de empresas de telecomunicaciones. En el trabajo,

concluye que la herramienta desarrollada puede realmente dar cuenta de los tópicos

significativos entre los comentarios y opiniones de los usuarios, para así entender las

necesidades de la compañía. Una limitación encontrada fue que se debe mejorar la detección

de stop words para mejorar el modelo, y tener en cuenta que este debe ser entrenado

constantemente, dada la gran diversidad y cantidad de nueva información en la red social a

diario. Para esto último se debe entender que los parámetros, en especial el número de

tópicos, deben ser dinámicos en el tiempo (Hammoe, 2018).

Por otra parte, el proyecto de investigación presentado por Risch (2016) busca evaluar el

modelo LDA para detectar tópicos en un flujo (stream) de mensajes cortos (tuits). En este,

se plantean, entre otras, dos preguntas de investigación relevantes para este proyecto: ¿Cómo

el denominado spam afecta el desempeño del modelo LDA? Y ¿Un vocabulario estático

Page 14: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 14 de 47

implica que el modelo LDA va a tener un peor desempeño con un vocabulario viejo que con

un vocabulario nuevo creado para el conjunto de datos? En los resultados encuentra que el

spam si afecta el desempeño del algoritmo y se deben implementar técnicas para reducirlo, e

incluso aumentar el número de tópicos, para que el modelo por si solo detecte el spam en

algunos tópicos. Además, encontró que un vocabulario viejo no necesariamente afecta el

desempeño del modelo, pero se debe tener en cuenta el contexto y las cuentas de las que se

leen los tuits, pues esto diversifica en gran proporción el vocabulario (Risch, 2016).

3. Diseño y especificaciones

3.1 Definición del problema

El análisis de entorno comunicacional se ha convertido en una herramienta necesaria para

diferentes tipos de organizaciones y personas naturales. Este tipo de análisis ha venido siendo

utilizado por una gran variedad de usuarios, desde un candidato presidencial hasta empresas

privadas, para así poder desarrollar estrategias que les permitan cumplir sus objetivos y

prevenir riesgos.

Como se mencionó anteriormente, para poder realizar el análisis de manera pasiva, se

debe analizar una gran cantidad de fuentes de información, incluyendo periódicos, revistas y

redes sociales. Esta tarea es desarrollada normalmente por un analista de entorno, en cuyo

caso debe analizar, por sí solo, grandes volúmenes de información que se presentan en estos

medios y generar reportes que sean de utilidad para el negocio. Debido a lo anterior, esta

tarea puede tomar mucho tiempo, ser desgastante e incluso causar que haya cierta

desinformación, pues la capacidad de un analista sin una herramienta adecuada es limitada.

Adicionalmente, realizar su trabajo de forma manual, hace que los analistas del entorno

comunicacional inviertan su tiempo consultando grandes cantidades de información en lugar

de enfocarse en las tareas analíticas, las cuales son, en última instancia, las que agregan valor

a las organizaciones.

Page 15: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 15 de 47

Teniendo esto en cuenta, la herramienta web desarrollada, a la cual se le atribuye el

nombre de TopiTuit, busca apoyar el trabajo de los analistas del entorno comunicacional para

que estos puedan ser más eficientes. Esta herramienta es capaz de analizar grandes volúmenes

de información de la red social Twitter y además proveer hallazgos acerca de polaridades y

tópicos respectivos del conjunto de documentos (tuits), ahorrándoles tiempo y permitiéndoles

concentrarse en lo sustancial del análisis.

3.2 Especificaciones

Ahora bien, es pertinente definir las especificaciones exactas del proyecto. En primer

lugar, se establecen los requerimientos funcionales de la herramienta, es decir, los

requerimientos que debe cumplir en cuanto a la entrada y la salida de datos e información.

Más adelante, se analizan los requerimientos no funcionales.

3.2.1 Parámetros (entradas)

• Cuentas de Twitter de interés: El parámetro de mayor relevancia en este caso es el

listado de cuentas de Twitter que resulten de interés para el analista. Esto es

sencillamente, definir que personas, organizaciones o movimientos quiere analizar y

obtener su nombre de usuario en Twitter, por ejemplo “@eltiempo” o “@ivanduque”.

Estas cuentas serán las tenidas en cuenta para generar el análisis y los reportes. La

herramienta debe pedirle al analista esta información de manera sencilla y por interfaz

gráfica.

• Periodo de análisis: Otro parámetro esencial es el periodo de análisis. Para esto, el

analista debe definir una fecha de inicio y una fecha final para el análisis. Luego, el

análisis se podrá realizar teniendo en cuenta los tuits que se publicaron después o en

la fecha inicial definida, y antes o en la fecha final definida. Esto le permite al analista

analizar periodos de tiempo definidos y de interés. De igual forma que las cuentas, la

Page 16: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 16 de 47

herramienta debe pedirle estas fechas en la interfaz gráfica y de forma sencilla (ej. un

calendario).

• Temas/palabras clave: El analista debe poder, de forma opcional, seleccionar un

listado de palabras clave de interés. De esta forma, se tendrán en cuenta únicamente

tuits que cumplan los parámetros anteriores, y que además incluyan al menos una de

las palabras clave. Si no se especifica ninguna palabra clave, solo se toman en cuenta

los tuits que cumplan las demás restricciones. Nuevamente, estas palabras clave

deben poder ser ingresadas por el analista en la interfaz gráfica de forma sencilla.

• Número de tópicos: Como fue mencionado anteriormente, el modelo LDA para el

modelado de tópicos requiere que una entrada sea el número de tópicos a modelar.

Para esto, se define que lo más cómodo para el analista es que este parámetro se

determine automáticamente como una recomendación, y luego el analista tenga la

opción de modificar este parámetro e ingresar el número de tópicos que quiere

modelar.

3.2.2 Resultados (salidas)

Luego de ingresar los parámetros definidos en la sección anterior, la herramienta debe

tomarlos y utilizarlos para construir los modelos pertinentes, para finalmente obtener los

resultados finales que el analista de entorno utilizará como insumo para su trabajo. Estos

resultados son:

• Importancia de palabras por tópico: El analista debe poder ver gráficamente la

importancia de las palabras en cada tópico modelado. Es decir, poder ver qué palabras

y en qué proporción conforman cada tópico.

• Visualización de temas y sus palabras: El analista debe poder visualizar de forma

sencilla y rápida los diferentes tópicos y las palabras que lo conforman.

• Proporción de tópicos en el conjunto de tuits: El analista debe poder ver la

proporción de tópicos presente en el conjunto de tuits analizados. Es decir, visualizar

cuántos tuits fueron clasificados en cada tópico.

Page 17: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 17 de 47

• Tuits por tópico: El analista debe poder visualizar de forma sencilla a qué tópico

pertenece cada tuit analizado.

• Proporción de polaridades en el conjunto de tuits: El analista debe poder ver la

proporción de polaridades presente en el conjunto de tuits analizados. Es decir,

visualizar cuantos tuits fueron clasificados en cada polaridad posible (positivo, neutro

o negativo).

• Polaridad de los tuits: El analista debe poder visualizar de forma sencilla qué

polaridad se le asignó a cada tuit analizado, y darle la oportunidad al analista de

cambiar esa polaridad.

3.2.3 Requerimientos no funcionales

Ahora, es pertinente analizar los requerimientos no funcionales de la herramienta. En

este punto es esencial entender las necesidades del usuario. En este caso, y cómo se

mencionó anteriormente, el usuario será un analista de entorno comunicacional.

Generalmente estos analistas son periodistas o psicólogos, entre otros profesionales

similares, y por lo tanto hay que tener en cuenta que no son expertos en sistemas,

algoritmos o modelos de aprendizaje automático. En este sentido, es indispensable que

las acciones que tenga que realizar sean lo más sencillas posibles y con vocabulario

común. Además, los resultados deben ser visuales, sencillos de entender, y sin

vocabulario o figuras que puedan no ser comprendidas o generar confusión para el

usuario. Teniendo esto en mente, los principales requerimientos no funcionales de la

aplicación están relacionados con la usabilidad, específicamente:

• La herramienta debe ser intuitiva y el usuario debe poder aprender a usarla de

forma rápida (aproximadamente en menos de 30 minutos).

• Se deben prevenir los errores cometidos por el usuario al máximo, y si se

cometen, se deben poder arreglar de forma inmediata.

• El sistema no debe presentar figuras o vocabulario ajeno al conocimiento del

usuario, por ejemplo, elementos especializados de los algoritmos.

Page 18: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 18 de 47

3.3 Restricciones

El desarrollo de la herramienta cuenta principalmente con tres restricciones de diseño. En

primer lugar, el acceso a los tuits se debe realizar por medio del API de Twitter para

desarrolladores utilizando el servicio de statuses/user_timeline. Este servicio cuenta con un

límite de 100,000 peticiones por día, ocasionando que el número de tuits que se pueden pedir

por medio del API sea restringido. Adicionalmente, el método de user_timeline únicamente

puede retornar, como máximo, los últimos 3200 tuits de un usuario, incluyendo los retuits

(Twitter, Inc., 2020). Por lo tanto, si se desea adquirir una gran cantidad de tuits, de una gran

cantidad de cuentas, de tal forma que se supere cualquiera de estos límites, esto se deberá

realizar de forma periódica. Es decir, el usuario deberá realizar estas peticiones

paulatinamente y además deberá tener en cuenta que al adicionar una cuenta nueva no se

tiene acceso a los tuits de periodos muy antiguos. Por lo tanto, una buena estrategia es

mantener el uso de las cuentas relativamente constante en el tiempo.

Por otra parte, se tiene como restricción de usabilidad, que los tiempos de carga y

limpieza de los tuits en la base de datos son elevados, pues estos deben sufrir varias

transformaciones para poder ser utilizados en el modelo y tener un buen desempeño. En

último lugar, teniendo en cuenta que para el desarrollo de los análisis se deben utilizar

librerías de gran tamaño y complejidad relacionadas con el procesamiento de lenguaje

natural, el aprendizaje automático y la limpieza de datos, el tiempo de inicialización de la

aplicación puede verse afectado significativamente. Debido a lo anterior, existen tiempos en

los procesos que inevitablemente pueden ser percibidos por el usuario como tiempos

demorados.

4. Desarrollo del diseño

El proceso de diseño se estructuró principalmente en cinco partes. En primer lugar, se

determinó la base de datos a utilizar que se ajustara de mejor manera a los requerimientos del

proyecto. En segundo lugar, se establecieron las librerías de soporte en Python que se

Page 19: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 19 de 47

utilizarían para la extracción y limpieza de los tuits, la implementación del modelo de tópicos

y la realización del análisis de sentimiento. En tercer lugar, se analizaron diferentes

herramientas para el desarrollo del back-end de la aplicación web de tal forma que soportara

los métodos desarrollados en Python. Por último, se realizó el diseño de los tableros de

control analizando las posibles librerías que se podrían utilizar al momento de realizar la

interfaz de usuario.

4.1 Recolección de Información

La fuente principal de información de la herramienta corresponde a Twitter. Esta es una

red social en la que grupos de amigos, familiares, compañeros de trabajo, entre otros, pueden

comunicarse por medio de mensajes rápidos que pueden contener fotos, videos, enlaces y

texto. A estos mensajes cortos se les denomina tuits y contienen un límite de 140 caracteres

como máximo.

Twitter ha tomado cada vez mayor relevancia dentro del análisis del entorno

comunicacional, pues es una plataforma dentro de la cual diariamente se expresan grandes

volúmenes de opiniones sobre diversos temas. De hecho, cada minuto se estima que se

construyen alrededor de 480 mil tuits (NodeGraph, 2020).

Ahora bien, Twitter permite el acceso a la información de la plataforma por medio de un

API para desarrolladores, pero primero es fundamental registrarse en su portal y crear una

aplicación con el fin de obtener unas credenciales con las cuales se puede adquirir acceso

limitado a sus servicios.

4.2 Alternativas de diseño

Con el fin de proponer una herramienta que cumpliera con los objetivos planteados se

tomaron varias decisiones de diseño. Lo primero a tener en cuenta fue la elección de la base

de datos. Para esto, era preciso considerar que se debía guardar una gran cantidad de tuits y

Page 20: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 20 de 47

poder acceder a ellos de forma rápida y sencilla. MongoDB es una base de datos de tipo

documental, con gran trayectoria y amplia documentación. En este caso, fue sencillo ver

cómo se podía implementar una colección de tuits donde cada documento sería un tuit

diferente. Además, MongoDB es una base de datos que permite gran escalabilidad y

flexibilidad, pues tiene fácil adaptación si surge algún cambio en la estructura y necesidades

de la aplicación. Otra ventaja de este tipo de base de datos es que necesita menos recursos,

por lo general, que otras como por ejemplo de tipo relacional. También es relevante que

MongoDB tiene grandes optimizaciones para consultas grandes. Por estas razones, y por su

sencillez en su uso e integración con otras herramientas, se decidió utilizar MongoDB como

base de datos.

La siguiente alternativa de diseño fue seleccionar las librerías a utilizar para desarrollar

la extracción de los tuits, la limpieza de los tuits, el modelo LDA y el análisis de sentimiento.

• Extracción de tuits: Para realizar la extracción de los tuits y poder guardarlos en

la base de datos se decidió utilizar la librería Tweepy, la cual permite, en lenguaje

Python, acceder al API de Twitter (con credenciales válidas de desarrollador de

Twitter) (Tweepy, 2020).

• Limpieza de tuits: Ahora bien, la limpieza de los tuits es fundamental para el

correcto funcionamiento de los modelos. Para realizar esto, se encontró una

librería llamada Tweet-Preprocessor, la cual tiene posibles configuraciones para

quitar elementos como hashtags, URLs, menciones a otros usuarios, entre otros.

(Özcan, 2020). Además de esto, se halló una librería para quitar los emoticones

de los tuits, pues estos son codificaciones que pueden ensuciar el texto. Esta

librería se llama Demoji, y permite encontrar los emoticones presentes en un texto

y reemplazarlos por algún valor especificado (Solomon, 2020). Además de esto,

se decidió utilizar la librería Stanza para tokenizar y lematizar los textos, lo cual

es indispensable para el modelo LDA. Esta es una librería desarrollada por el NLP

Group de la Universidad de Stanford (Peng et al., 2020). Por último, es necesario

eliminar las palabras vacías (sin significado), algo que se realiza con la librería

NTLK, que se especializa en programas que manejan y procesan el lenguaje

natural (NLTK Project, 2020), y además con una lista de palabras vacías para

Page 21: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 21 de 47

español creada por Gene Diaz que se encuentra en un repositorio en Github (Diaz,

2020).

• Modelo LDA: Una vez los tuits están limpios, pueden ser procesados para

construir el modelo de tópicos. Para construir este modelo, se decidió utilizar la

librería Gensim, especializada en modelado de tópicos, incluyendo una

implementación de LDA. Esta es una librería bastante utilizada para realizar estas

tareas en Python, y cuenta con documentación extensa. (Řehůřek, 2020)

• Análisis de sentimiento: Otra parte esencial de la aplicación es realizar un

análisis de sentimiento. Para esto, se decidió utilizar la librería SentiLeak, la cual

otorga un valor numérico a un texto representando la polaridad de este. Si el valor

es negativo, significa que el texto tiene una polaridad (sentimiento) negativa, si el

valor es cero implica que es neutro, y si el valor es positivo implica un sentimiento

positivo. Es una librería de gran utilidad especializada en textos en español y pre-

entrenada ampliamente (Ortega, 2020). Teniendo en cuenta que para entrenar un

modelo de estos es necesario tener un gran número de textos (tuits) etiquetados

por un experto, lo mejor en este caso fue utilizar una librería de este estilo donde

el entrenamiento ya se realizó.

Una vez definidas las librerías y herramientas principales para el desarrollo como tal

de la extracción y limpieza de los tuits y de los modelos de tópicos y de sentimiento, fue

pertinente definir qué herramienta o framework utilizar para construir la aplicación web, de

manera que se pudiera estructurar el código en python como back-end. Para esto, se

propusieron dos opciones: Django y Flask. Ambas son bastante utilizadas y con amplia

documentación, pero Django soporta aplicaciones un poco más complejas y viene lista para

trabajar en el desarrollo, mientras que Flask es para aplicaciones un poco más sencillas, y se

debe construir prácticamente desde cero. Debido a que se tenía un previo conocimiento de

Django y a que este tiene una mayor trayectoria, se decidió utilizar este framework para el

back-end de la aplicación, pues además tiene múltiples herramientas para acelerar el

desarrollo (Django Project, 2020).

Page 22: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 22 de 47

Luego de esto, fue pertinente decidir cuál sería la herramienta o framework para

realizar el front-end que utilizaría el API construido en Django. Teniendo en cuenta que la

aplicación se podía diseñar como una SPA (Single Page Application) y que se tenían fuertes

conocimientos en el framework React, además de su gran popularidad hoy en día y su amplia

documentación, se decidió utilizar esta herramienta para construir el front-end (Facebook,

2020).

5. Implementación

A continuación, se muestra el diagrama de despliegue de la aplicación con el fin de

visualizar los diferentes componentes de la herramienta y sus interacciones.

Figura 1. Diagrama de despliegue

5.1 Descripción de la implementación

El proceso de implementación se realizó principalmente en tres fases. En la primera fase

se realizó la estructuración de la base de datos, así como los métodos de extracción de tuits.

La segunda fase consistió principalmente en la implementación de los métodos de limpieza

Page 23: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 23 de 47

de los tuits, del modelado de tópicos y del análisis de sentimiento. Por último, se realizó la

elaboración de la herramienta web con la interfaz de usuario.

5.1.1 Construcción de la base de datos y extracción de tuits

La base de datos desarrollada en MongoDB consta de tres colecciones, una para

almacenar las cuentas de Twitter que han sido de interés para el analista, otra para almacenar

los tuits de las cuentas y la última que almacena los parámetros de búsqueda establecidos por

el analista por medio de la interfaz gráfica.

Un documento en la colección de cuentas consta de los siguientes campos: id, nombre,

cuenta de Twitter, ubicación, descripción, número de seguidores, id del tuit almacenado más

reciente, un booleano indicando si la cuenta se encuentra activa en este momento y la URL

de la imagen.

Por otra parte, un documento en la colección de tuits tiene los siguientes atributos: id,

fecha de creación, texto, texto semi limpio, arreglo con las palabras del texto limpio, id de la

cuenta, URL de la imagen de la cuenta, cuenta de Twitter, nombre de la cuenta y polaridad.

Cabe mencionar que el texto semi limpio corresponde al texto del tuit transformado a

minúscula y después de eliminar URLs, palabras reservadas, números, emoticones, emojis y

la puntuación. Por otra parte, el texto limpio consiste en el texto semi limpio tokenizado,

lematizado y sin palabras vacías o stop words. El procedimiento de limpieza se describe con

mayor detalle en la sección 5.1.2.1.

En cuanto a la colección de parámetros, esta únicamente almacena un documento que

busca mantener los últimos parámetros de búsqueda del usuario. Este documento tiene como

atributos los campos: id, fecha de inicio del periodo de interés, fecha de fin del periodo de

interés y un arreglo de temas de interés.

Ahora bien, como se mencionó en la sección anterior, la extracción de tuits se realiza

utilizando la librería Tweepy y por medio del API para desarrolladores de Twitter. Una vez

se obtienen los tuits, estos son almacenados en la base de datos MongoDB utilizando la

Page 24: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 24 de 47

librería Pymongo. De manera concreta los métodos implementados en esta fase corresponden

a:

• Adquisición de cuentas activas: Se obtienen aquellas cuentas cuyo atributo “activa”

en la base de datos se encuentre en verdadero.

• Activar una cuenta: Se actualiza el atributo “activa” con un valor de verdadero para

una cuenta especifica. Si esta no existe en la base de datos, se utiliza el API de Twitter

para obtenerla mediante el nombre de usuario y luego se almacena en la base de datos.

• Desactivar una cuenta: Se actualiza el atributo “activa” con valor de falso para una

cuenta especifica.

• Recolección de tuits nuevos de las cuentas activas: Se buscan los tuits nuevos de

las cuentas que se encuentran activas en la base de datos, teniendo en cuenta el id del

último tuit almacenado para esa cuenta, de tal forma que no se traigan tuits repetidos

de Twitter. De igual forma, se descartan aquellos tuits que sean re-tuits y

seguidamente, se almacenan en la base de datos.

• Extracción de un conjunto de tuits teniendo en cuenta parámetros: Se extraen de

la base de datos los tuits que se encuentren dentro de un periodo especifico, que sean

de las cuentas activas en el momento y que finalmente contengan en su texto alguna

de las palabras clave o temas.

• Adquisición de los parámetros: Se obtiene el documento de parámetros de la base

de datos con los últimos valores.

• Actualización de parámetros: Se actualiza el documento de parámetros con nuevas

configuraciones.

5.1.2 Implementación de los modelos

5.1.2.1 Limpieza de tuits

Una vez que se tienen los mecanismos para obtener los tuits de Twitter y almacenarlos

en la base de datos, es necesario implementar métodos que permitan preparar los textos para

que puedan ser utilizados en los modelos. Realizar estos procedimientos es necesario, pues

Page 25: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 25 de 47

los tuits generalmente vienen bastante contaminados y esto afecta directamente el desempeño

de los modelos. El procedimiento de limpieza que se llevó a cabo es el siguiente:

1. Eliminación de URLs, palabras reservadas, números y emoticones: Se utiliza la

librería Tweet-Preprocessor para remover los enlaces, palabras reservadas como “rt”

o “fav”, los números y los emoticones. Estos últimos hacen referencia a cuando se

utilizan elementos de puntuación para percibir expresiones (ej. “:)”).

2. Transformación a minúscula: Se convierten todas las letras del texto a minúscula

para estandarizar.

3. Eliminación de puntuación: Se remueven todos lo símbolos asociados a puntuación

del texto.

4. Eliminación de emojis: Se utiliza la librería Demoji para quitar las imágenes o

pictogramas que se utilizan para expresar emociones. Estos difieren de los emoticones

al ser imágenes y no contener caracteres de texto.

5. Tokenización y lematización: Se divide el texto del tuit en palabras para así poder

tratar cada una individualmente. Adicionalmente, se reemplazan las palabras por su

respectivo lema, con el fin de no tener palabras separadas cuyo significado sea el

mismo. Estos dos pasos se realizaron utilizando la librería Stanza de Stanford.

6. Eliminación de palabras vacías: Se eliminan aquellas palabras que no contribuyen

al análisis como lo son artículos, pronombres, preposiciones, etc. Esto se realiza por

medio de una mezcla de varios diccionarios de palabras vacías. Uno de los

diccionarios corresponde al proporcionado por la librería NLTK. También se utiliza

la lista construida por Gene Diaz y, además, se proporciona una lista de palabras

brindada por la asesora del proyecto: la profesora Haydemar Núñez.

El proceso de limpieza de los tuits se decide hacer al momento de introducir los tuits

traídos de Twitter en la base de datos. Lo anterior, con el fin de evitar un mayor tiempo de

ejecución de los modelos.

Page 26: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 26 de 47

5.1.2.2 Implementación del modelado de tópicos

En primer lugar, con el fin de obtener un mejor modelo se computaron los bigramas en

el conjunto de tuits que recibe el modelo. Los bigramas son parejas de palabras que aparecen

frecuentemente juntas y pueden tener un significado más significativo que las palabras por sí

solas (ej. Aprendizaje automático). Lo anterior se realizó utilizando el componente Phrases

de Gensim. Los bigramas se adicionan al arreglo de palabras del tuit respectivo para que

puedan ser tenidos en cuenta en el análisis.

Seguidamente se crea un diccionario a partir de los tuits utilizando el componente

Dictionary de la librería Gensim. Luego, a este diccionario se le realiza un filtro y se eliminan

aquellas palabras o bigramas que aparecen en menos de 5 documentos o en más del 70% de

los textos, pues en este caso, estas palabras no representan un contenido significativo.

Seguido a esto, se forma el “corpus”, el cual es una representación de bolsa de palabras de

los documentos. Esto se realiza aplicando la función doc2bow al diccionario.

A continuación, con el fin de obtener un mejor desempeño en el modelo, se realiza un

ciclo en el que se calcula el valor de coherencia para el modelo con diferente número de

tópicos. Esto se realiza utilizando la función CoherenceModel de la librería Gensim. Una vez

calculado esto, es posible determinar el número de tópicos adecuado para el modelo. Lo

anterior se hace encontrando el valor máximo de coherencia obtenido, pero también

limitando a que haya palabras suficientes (5 como mínimo) para cada tópico, pues la

repetición de palabras en los tópicos puede simbolizar una similitud indeseada.

Establecido el número óptimo de tópicos, se procede a construir el modelo LDA

utilizando la función LdaModel de la librería Gensim. La función utilizada permite que el

modelo aprenda los hiperparámetros alpha y beta a partir del “corpus”. Por medio de esto,

se obtienen los tópicos junto con las palabras que lo componen y su nivel de importancia.

Es pertinente mencionar que se habilitó la posibilidad de correr el modelo con un número

de tópicos especifico, sin realizar la optimización, en caso tal de que el usuario desee

establecer por sí mismo este número.

Page 27: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 27 de 47

5.1.2.3 Implementación del análisis de sentimiento

Ahora bien, en relación con la implementación del análisis de sentimiento, se determinó

que la forma más eficiente de realizarlo era al momento de almacenar los tuits en la base de

datos. Es decir, una vez se obtiene el tuit de Twitter, se utiliza la función compute_sentiment

de la librería SentiLeak para determinar la polaridad presente en el texto. El modelo da como

resultado un valor numérico, pero se determinó que, en el contexto de este proyecto, lo

relevante era definir si existía una polaridad positiva, neutra o negativa. Por lo tanto, se aplica

un condicional en donde si el valor resultante es menor a 0, se asigna una polaridad negativa

al tuit, si el valor es igual a 0 la polaridad se toma como neutra y finalmente si esta es mayor

a 0 se asigna una polaridad positiva. De este modo, al obtener los tuits de la base de datos ya

se cuenta con el sentimiento.

5.1.3. Desarrollo de la herramienta web

Para el desarrollo de la herramienta web se decidió utilizar React para la interfaz de

usuario y Django con el fin de exponer un API que permita acceder a los resultados de los

modelos. El API implementado expone los siguientes servicios:

• Activar cuenta (POST): Permite activar una cuenta por medio de su nombre de

cuenta en Twitter. Si el nombre de cuenta no existe, se le informa al usuario. Si la

cuenta ya existía en la base de datos, su atributo “activa” se cambia a “verdadero”.

• Desactivar cuenta (PUT): Cambia el estado de una cuenta, modificando su atributo

“activa” a “falso”.

• Cambiar fechas de búsqueda (PUT): Permite modificar el rango de fechas que se

tendrá en cuenta para la búsqueda de tuits y posterior construcción de los modelos.

• Modificar temas/palabras clave (PUT): Permite agregar/eliminar palabras clave,

las cuales se tendrán en cuenta para obtener los tuits que se utilizarán para construir

los modelos.

Page 28: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 28 de 47

• Construir modelos (POST): Una vez el usuario establece los parámetros (cuentas,

fechas y palabras clave), puede confirmar para construir el modelo de tópicos y

estructurar los datos que se enviarán al front-end para visualizar los resultados.

• Modificar el número de tópicos (PUT): El modelo se construye con el número de

tópicos que mejor coherencia resulta, pero el usuario tiene la oportunidad de

modificar este parámetro y reconstruir el modelo de tópicos.

• Filtrar los tuits por tópico: El usuario puede visualizar los tuits analizados y

asignados a un tópico. En esta interfaz tiene la oportunidad de filtrar los tuits por

tópico, es decir, mostrar los tuits de un tópico específico que escoja.

• Modificar la polaridad de un tuit (PUT): La aplicación asigna una polaridad

(positivo, neutro o negativo) a cada tuit utilizando un modelo de sentimiento, pero el

usuario tiene la posibilidad de cambiar la polaridad de un tuit según su criterio en la

interfaz de análisis de sentimiento.

• Filtrar los tuits por polaridad: El usuario puede visualizar los tuits analizados y su

polaridad asignada. En esta interfaz tiene la oportunidad de filtrar los tuits por

polaridad, es decir, mostrar los tuits de una polaridad específica que escoja.

En cuanto a las imágenes, donde se puede apreciar el aspecto de la herramienta, estas se

encuentran en la sección de resultados.

5.2. Resultados

Los resultados del proyecto corresponden a una herramienta web que facilita el análisis

de un gran volumen de tuits utilizando técnicas de modelado de tópicos y de análisis de

sentimiento. A continuación, se explica de forma detallada las funcionalidades ofrecidas por

la herramienta.

Page 29: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 29 de 47

5.2.1 Personalización de parámetros

Esta pestaña de la aplicación corresponde a la pantalla de inicio de la herramienta y tiene

como finalidad permitirle al analista seleccionar los parámetros de selección de los tuits para

el desarrollo de los modelos. Cabe mencionar que se decidió utilizar una plantilla, con el fin

de tener un aspecto visual de la herramienta agradable. La plantilla fue desarrollada por

Creative Tim para su libre uso (Creative Tim, 2020)

Figura 2. Vista selección de parámetros

Se pueden seleccionar, inicialmente, tres parámetros para la selección de tuits. A

continuación, se busca explicar cada uno de ellos y mostrar en que partes de esta vista pueden

ser seleccionados.

Page 30: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 30 de 47

5.2.1.1 Selección de cuentas activas

Figura 3. Selección de cuentas activas

La selección de cuentas para el análisis según los intereses del analista puede realizarse

en la sección de “Cuentas de interés”. Esta sección se puede ver en la Figura 3, Como se ve

en la imagen, se cuenta con una barra buscadora en la cual el analista puede ingresar una

cuenta nueva que desee tener en cuenta para el análisis. Seguidamente se muestra una lista

de las cuentas que se encuentran activas actualmente y se le da la opción al usuario de

desactivar cada cuenta utilizando el botón “desactivar”.

Page 31: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 31 de 47

5.2.1.2 Selección del periodo de interés

Figura 4. selección del periodo de interés

La selección del periodo de interés puede realizarse en la sección de “Periodo de

Análisis”. Esta sección se puede ver en la Figura 4. En esta, se cuenta con dos calendarios,

uno para la selección de la fecha de inicio del periodo, y otro para la selección de la fecha fin

del periodo.

5.2.1.3 Selección de temas de interés

Figura 5. Selección de temas de interés

Page 32: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 32 de 47

La selección de temas de interés/palabras clave se puede realizar en la sección llamada

“Temas”, y se puede apreciar en la figura 5. En esta, el usuario puede insertar los temas que

quiera que se tengan en cuenta para la búsqueda de tuits y/o eliminarlos de manera sencilla.

5.2.1.4 Actualización de los parámetros

Figura 6. Actualización de parámetros

En la figura 6 se puede apreciar la parte inferior de la interfaz de parámetros. Una vez el

usuario seleccionó las cuentas, fechas y temas de interés, debe oprimir el botón “Actualizar

parámetros y modelos”, de forma que se tomen los parámetros, se seleccionen los tuits

correspondientes y se construyan los modelos para poder generar las visualizaciones. Cabe

aclarar que entre más cuentas y mayor el periodo de análisis, el tiempo de ejecución

incrementará.

Page 33: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 33 de 47

5.2.2 Modelado de tópicos

Figura 7. Vista modelado de tópicos

Una vez el usuario actualiza los parámetros y construye los modelos, puede acceder a

la pestaña “Tópicos”. Al ingresar a esta, encontrará una interfaz que se puede apreciar en la

figura 7. El detalle de esta interfaz se explica a continuación.

5.2.2.1 Modificación del número de tópicos

Figura 8. Modificación del número de tópicos

Como se explicó anteriormente, la aplicación determina el número de tópicos que

resulta en una mayor coherencia del modelo y lo construye utilizando ese número de tópicos.

Page 34: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 34 de 47

En la figura 8 se puede observar la parte superior de la interfaz de modelado de tópicos. En

esta, se le informa al usuario cuantos tópicos se modelaron, y le da la opción de seleccionar

un nuevo número de tópicos utilizando un deslizador. Una vez elige el número de tópicos

que quiere modelar, oprime el botón “Re-calcular modelo”, y la aplicación vuelve a construir

el modelo con el número de tópicos especificado. Una vez termina, las vistas de esta interfaz

se actualizan automáticamente.

5.2.2.2 Visualización de palabras por tópico y su importancia

Figura 9. Visualización de palabras por tópico y su importancia

Una vez el usuario está satisfecho con el número de tópicos, puede proceder a observar

y analizar las vistas. La primera de ellas es “Análisis de tópicos”, y se puede observar en la

figura 9. En esta, se visualiza una gráfica de barras por cada tópico modelado. Cada una de

estas gráficas muestra la importancia de las principales palabras dentro del tópico respectivo.

De esta forma, el analista puede entender de qué palabras y en qué medida está construido

cada tópico.

Page 35: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 35 de 47

5.2.2.3 Nubes de palabras

Figura 10. Nubes de palabras

La siguiente pestaña de la interfaz de modelado de tópicos es “Nubes de palabras”, y

se puede observar en la figura 10. En esta vista, se encuentra una nube de palabras por cada

tópico modelado, al igual que en la primera pestaña. Aunque la información es similar a la

pestaña anterior, es una forma mucho más sencilla y rápida de entender de qué palabras se

conforma cada tópico. Entre más grande la palabra, más importancia tiene dentro del tópico.

Esta visualización es una gran manera de entender los diferentes tópicos de forma intuitiva.

Page 36: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 36 de 47

5.2.2.4 Discriminación por tuit

Figura 11. Discriminación por tuit tópicos

La última pestaña de la interfaz de modelado de tópicos es “Discriminación por tuit”,

y se puede observar en la figura 11. En esta vista se encuentran los tuits analizados

catalogados por el tópico que le fue asignado. Esto es, discriminados según el tópico al que

con mayor probabilidad pertenecen. El detalle de esta vista se describe a continuación.

Page 37: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 37 de 47

5.2.2.4.1 Distribución de tuits por tópico

Figura 12. Distribución de tuits por tópico

En la parte superior de la vista de “Discriminación por tuit” se encuentra la gráfica

que se observa en la figura 12. En esta se observa la distribución del conjunto de tuits

analizado según el tópico al que pertenece. Es decir, se puede ver la proporción de tuits de

cada tópico sobre el total de tuits analizados. Si se pasa el puntero por encima, se muestra el

número exacto de tuits de ese tópico. Además, si el usuario hace click en algún tópico, se

aplica un filtro y se muestran solo los tuits de ese tópico en la parte baja, que será descrita a

continuación.

Page 38: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 38 de 47

5.2.2.4.2 Detalle de distribución de tuits por tópico

Figura 13. Detalle tuits por tópico

En la parte inferior de la vista “Discriminación por tuit” se encuentra un listado de los

tuits analizados, el cual se puede apreciar en la figura 13. Cada tuit tiene un borde y una

especificación en la parte inferior que indican a que tópico pertenece. Además, las palabras

principales de los diferentes tópicos son resaltadas en los tuits, con el color del tópico en el

que tienen mayor relevancia. Si hay un filtro determinado, solo se visualizan los tuits

asignados a ese tópico específico.

Page 39: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 39 de 47

5.2.3. Análisis de sentimiento

Figura 14. Vista análisis de sentimiento

Una vez el usuario actualiza los parámetros y oprime el botón para construir los

modelos, puede acceder a la pestaña “Sentimiento” en la interfaz principal. En este se

visualiza una gráfica en la parte superior y un listado de tuits en la parte inferior. El detalle

de estas vistas se explica a continuación.

5.2.3.1. Distribución de tuits por sentimiento

Figura 15. Distribución de tuits por sentimiento

Page 40: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 40 de 47

En la parte superior de esta vista se encuentra la gráfica que se observa en la figura

15. En esta gráfica se observa la proporción de tuits de cada polaridad sobre el total de tuits

analizados. Además, si se pasa el mouse sobre una polaridad, se puede ver el número de tuits

que tienen esa polaridad asignada. Adicionalmente, el usuario puede dar click en una

polaridad y se aplicará un filtro a los tuits que se visualizan en la vista que se describe a

continuación.

5.2.3.2. Detalle de distribución de tuits por sentimiento

Figura 16. Detalle de distribución de tuits por sentimiento

En la parte inferior de la interfaz de “Sentimiento” se encuentra el listado de tuits

analizados. Este listado se puede observar en la figura 16, y cada tuit tiene el borde del color

respectivo a su polaridad para una fácil identificación. Adicionalmente, el usuario tiene la

posibilidad de cambiar la polaridad de un tuit según su criterio utilizando el botón a la derecha

del tuit. Al cambiar la polaridad se actualiza inmediatamente en la interfaz, así como en la

base de datos para futura referencia. Por otra parte, si hay algún filtro aplicado desde la

gráfica superior, en este listado solo estarán presentes aquellos tuits que tengan esa polaridad

específica.

Page 41: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 41 de 47

6. Validación

Luego de la construcción de la aplicación, es importante validarla con un experto. En este

caso, se acudió al Licenciado Francisco Vallenilla, un experto en el análisis de entorno

comunicacional. El detalle y los resultados de este proceso de validación se describen a

continuación.

6.1. Método de validación

Para validar la aplicación con el experto, se utiliza el cuestionario PSSUQ (Post Study

System Usability Questionnaire). Este es un cuestionario de 16 preguntas estandarizadas con

gran trayectoria y frecuentemente utilizado para medir la satisfacción percibida por un

usuario de un sitio web, software o producto. Este cuestionario se originó de un proyecto de

IBM en 1988, y tras algunos cambios y mejoras se llegó a la versión 3, la cual se utiliza hoy

en día y se utiliza en este estudio (UX Research, s.f.). En este caso específico, se utilizó un

subconjunto de preguntas del PSSUQ de 9 preguntas, teniendo en cuenta la funcionalidad de

la herramienta.

6.2. Resultado de la validación

El cuestionario aplicado consiste en 9 preguntas, cada una con una escala con 7

opciones para elegir (y adicionalmente la opción N/A). La escala se define de la siguiente

manera:

Totalmente de acuerdo (1) – Totalmente en desacuerdo (7)

Los resultados, una vez el experto probó la aplicación, fueron los siguientes:

Page 42: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 42 de 47

Figura 17. Cuestionario PSSUQ

PSSUQ 1 2 3 4 5 6 7 NA

1. En general, estoy satisfecho con lo fácil que es usar este sistema.

X

2. Fue sencillo usar este sistema. X

3. Pude completar la tarea y escenario rápidamente usando este sistema.

X

4. Cada vez que cometía un error al usar el sistema, podía recuperarme fácil y rápidamente.

X

5. Fue fácil encontrar la información que necesitaba.

X

6. La información fue efectiva para ayudarme a completar las tareas y los escenarios.

X

7. La organización de la información en las pantallas del sistema fue clara.

X

8. Este sistema tiene todas las funciones y capacidades que espero que tenga.

X

9. En general, estoy satisfecho con este sistema.

X

Page 43: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 43 de 47

De manera general es posible ver que el experto se encuentra satisfecho con la

herramienta desarrollada, las funcionalidades implementadas, la información expuesta y la

organización del sistema. El resultado final es un promedio de 2.11, lo cual se considera

satisfactorio en una escala de 1 a 7, pero dejando ver que hay detalles que pueden ser

mejorados. En cuanto a aspectos a mejorar, el experto presentó una sugerencia la cuál es

mostrar los tuits completos en la sección de discriminación por tuit en la interfaz del

modelado de tópicos. Actualmente, se exponen los tuits después de pasar por el proceso de

limpieza, tokenización y lematización, sin embargo, el experto recalca que es de vital

importancia mostrar el texto original del tuit, de la misma forma que se realiza en la sección

de análisis de sentimiento.

7. Conclusiones

7.1. Discusión

El objetivo de este proyecto fue construir una herramienta para facilitar el trabajo de

los analistas de entorno comunicacional, utilizando técnicas de modelado de tópico y de

análisis de sentimiento. El resultado fue una aplicación web que tiene la capacidad de

procesar grandes volúmenes de datos, en este caso de la red social Twitter, para construir

visualizaciones que le permitan al analista entender la información. La gran ventaja de esta

herramienta es que le ahorra tiempo y trabajo al analista, pues capturar, procesar, entender y

visualizar la información de un gran número de tuits es una tarea que es muy dispendiosa de

forma manual, y prácticamente imposible de realizar con la gran cantidad de datos que se

generan en la red social. Además, la herramienta brinda la posibilidad de ser personalizable

según las necesidades del análisis, pues permite elegir las cuentas y fechas que quiere

analizar, así como incluir temas/palabras clave para realizar un análisis de mayor precisión.

Específicamente, se buscó realizar dos grandes tareas en el análisis. En primer lugar, se

buscó implementar una tarea de modelado de tópicos, la cual básicamente toma los tuits

resultantes de la búsqueda según los parámetros y determina los tópicos latentes y las

palabras que componen el tópico. Para mostrar los resultados de este modelo al analista, se

Page 44: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 44 de 47

construye una visualización en donde se tiene una gráfica por tópico mostrando la

importancia de las principales palabras dentro del tópico. Además, se construyeron unas

nubes de palabras para la rápida y fácil identificación de los tópicos modelados. Adicional a

esto, se muestra una gráfica con la proporción de tuits de cada tópico dentro del conjunto de

tuits analizado, así como un listado de estos tuits donde, para cada uno, se visualiza el tópico

al que pertenece con mayor probabilidad y las palabras más representativas de cada tópico

resaltadas. Por otra parte, se buscó implementar un análisis de sentimiento. En este sentido,

se clasifica cada tuit como positivo, neutro o negativo utilizando un modelo pre-entrenado.

En cuanto a visualización, se construye una gráfica con la proporción de tuits de cada

polaridad respecto al total de tuits analizados, y se muestra un listado de los tuits donde se

aprecia la polaridad de cada uno. Para complementar esto, se da la opción al usuario de

modificar la polaridad asignada de cada tuit según su criterio para futura referencia.

Con esto, se pretendió apoyar al analista de entorno de manera que pueda identificar

patrones de lo que se está publicando en Twitter según sus parámetros de búsqueda, bien sea

acerca de los tópicos latentes o del sentimiento (polaridad) presente. Ahora bien, para

entender si la herramienta realmente cumple sus objetivos y es de utilidad a los analistas del

entorno comunicacional, se le solicitó a un experto en el tema probarla y diligenciar una

versión adaptada del cuestionario PSSUQ para medir su satisfacción. A partir de esto se

identificó que la herramienta cumple su objetivo y el experto se encuentra bastante satisfecho

con, pues el resultado del cuestionario fue un promedio de 2.11 en una escala de 1 a 7 (1

siendo lo mejor), aunque es importante tener en cuenta que hay oportunidades de mejora para

hacer la experiencia del usuario más satisfactoria. Además, el experto sugirió que en la

interfaz de modelado de tópicos se muestre el texto original del tuit, y no solo el texto

tokenizado y lematizado como se hace actualmente. Esta sugerencia, y lo que se discutirá en

la siguiente sección (trabajo futuro), permitirá que la satisfacción de los usuarios pueda

mejorar.

Page 45: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 45 de 47

7.2. Trabajo futuro

Finalmente, es pertinente identificar el trabajo futuro que se puede realizar. En primer

lugar, se debe tomar en cuenta el resultado del cuestionario para realizar mejoras en la

aplicación como por ejemplo mejorar la facilidad para encontrar la información. Para esto,

se puede incluir una sección en la cual se describa las funcionalidades de la herramienta y su

ubicación, de tal forma que sea más fácil la manipulación por parte de los analistas. Además,

se deben tener en cuenta las recomendaciones brindadas por el experto, pues su experiencia

y conocimiento son muy valiosos para el mejoramiento de la herramienta. Específicamente

se debe realizar la modificación de la exhibición del texto del tuit en la discriminación de

tuits en la sección del modelado de tópicos, para que se pueda visualizar el texto original y

completo del tuit como se hace en la sección de análisis de sentimiento.

Además de esto, se considera que TopiTuit es una herramienta base para el análisis de

entorno comunicacional, a la que se le pueden adicionar múltiples funcionalidades y

visualizaciones. En primer lugar, construir más visualizaciones con la información, como

análisis temporal o visualizaciones específicas de cada cuenta analizada pueden hacer la

herramienta más robusta. También es pertinente tener en cuenta que la implementación de la

herramienta puede realizarse con plataformas o herramientas de mejor desempeño, lo cual

probablemente resultará en algunos costos, pero permitirá una ejecución más rápida y

robusta. Por otra parte, entendiendo el gran volumen de información que existe hoy en día,

la herramienta se puede extender para utilizar información de varias redes sociales más como

Facebook o Instagram, así como portales web como por ejemplo páginas de noticieros o

revistas. De esta forma, se tendría una perspectiva más global de lo que se piensa y comenta

y se obtendrían resultados más amplios y completos. De igual forma, se podrían utilizar más

técnicas de modelado de tópicos y de análisis de sentimiento y cruzar los resultados para

obtener información más precisa y robusta. Por último, sería interesante construir

recomendaciones al analista de cuentas relacionadas a otras o que tengan contenido de un

tópico específico, así como recomendaciones de fechas y palabras clave teniendo en cuenta

sucesos importantes que ocurran en la región.

Page 46: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 46 de 47

8. Referencias

Dir&Ge. (10 de septiembre de 2019). La importancia de los datos en las empresas. Obtenido de https://directivosygerentes.es/innovacion/noticias-innovacion/aplazame-datos#:~:text=Los%20datos%20permiten%20dejar%20a,acciones%20seg%C3%BAn%20la%20informaci%C3%B3n%20disponible&text=En%20Aplazame%2C%20los%20datos%20son,%2C%20operaciones%2C%20ventas%2C%2

NodeGraph. (26 de Marzo de 2020). How much data is on the internet? The Big Data Facts Update 2020. Obtenido de NodeGraph: https://www.nodegraph.se/how-much-data-is-on-the-internet/

Ceballos Agudelo, E. J. (2013). El análisis del entorno y su relación con la Estrategia Gerencial y la Prospectiva. Revista CIES –ISSN 22116-0167. Volumen4. Número01, 9-18.

Licha, I. (2000). EL ANÁLISIS DEL ENTORNO: HERRAMIENTA DE LA GERENCIA SOCIAL.

García, L. M. (Agosto de 2014). Análisis de sentimientos y predicción de eventos en Twitter. Santiago de Chile, Chile: Universidad de Chile.

Sande, J. C. (Junio de 2018). Análisis de Sentimientos en Twitter. Catalunya, España: Universitat Oberta de Catalunya.

Chandía, B. (Marzo de 2016). Aplicación y evaluación LDA para asignación de tópicos en datos de Twitter. Valparaíso, Chile.

Risch, J. (Enero de 2016). Detecting Twitter topics using Latent Dirichlet Allocation. Uppsala, Suecia.

Hammoe, L. (2018). DETECCIÓN DE TÓPICOS Utilizando el Modelo LDA. Buenos Aires, Argentina.

Twitter, Inc. (2020). Get Tweet timelines. Obtenido de Twitter Developer: https://developer.twitter.com/en/docs/twitter-api/v1/tweets/timelines/api-reference/get-statuses-user_timeline

Tweepy. (2020). Obtenido de Tweepy: https://www.tweepy.org/

Özcan, S. (2020). Obtenido de Tweet-Preprocessor: https://pypi.org/project/tweet-preprocessor/

Solomon, B. (2020). Obtenido de demoji: https://pypi.org/project/demoji/

Řehůřek, R. (2020). Obtenido de Gensim. Topic modelling for humans: https://radimrehurek.com/gensim/

Ortega, F. (2020). Obtenido de SentiLeak: https://pypi.org/project/SentiLeak/

Django Project. (2020). Obtenido de django: https://www.djangoproject.com/

Facebook. (2020). Obtenido de React: https://es.reactjs.org/

NLTK Project. (2020). Obtenido de Natural Language Toolkit: https://www.nltk.org/

Page 47: TopiTuit: Una herramienta de apoyo para el análisis de ...

Página 47 de 47

Diaz, G. (2020). Obtenido de Stopwords Spanish (ES): https://github.com/stopwords-iso/stopwords-es

Creative Tim. (2020). Paper Dashboard React. Obtenido de Creative Tim: https://www.creative-tim.com/product/paper-dashboard-react

UX Research. (s.f.). PSSUQ (Post-Study System Usability Questionnaire). Obtenido de UIUX Trend: https://uiuxtrend.com/pssuq-post-study-system-usability-questionnaire/#:~:text=The%20PSSUQ%20(Post%2DStudy%20System,System%20Usability%20Metrics)%20in%201988.

Vilares, D., Alonso, M. A., & Gómez-Rodríguez, C. (2014). A linguistic approach for determining the topics of Spanish Twitter messages. Journal of Information Science, 1-20.

Tellez, Eric & Miranda-Jiménez, Sabino & Graff, Mario & Moctezuma, Daniela & S. Siordia, Oscar & Villaseñor García, Elio. (2017). A case study of Spanish text transformations for twitter sentiment analysis. Expert Systems with Applications. 81. 457-471. 10.1016/j.eswa.2017.03.071.

Zapata Rotundo, Gerardo J., & Mirabal, Alberto, & Canet Giner, María Teresa (2015). EL ENTORNO DE LA ORGANIZACIÓN: UN ESTUDIO DE SUS TIPOLOGÍAS Y SU VINCULACIÓN CON LA PERCEPCIÓN DIRECTIVA Y EL DISEÑO ORGANIZATIVO. Ciencia y Sociedad, 40(4),785-822. ISSN: 0378-7680. Obtenido de: https://www.redalyc.org/articulo.oa?id=870/87043449006

Peng Qi, Yuhao Zhang, Yuhui Zhang, Jason Bolton and Christopher D. Manning. (2020). Stanza: A Python Natural Language Processing Toolkit for Many Human Languages. In Association for Computational Linguistics (ACL) System Demonstrations. 2020.