Identificador de tendencias en Redes Sociales

Benelli, Juan - Alberti, Diego

Supervisor(es): Prada, Juan José - Etcheverry, Mathías

Resumen:

En la actualidad, millones de personas utilizan redes sociales para compartir mensajes, noticias y opiniones sobre diversos temas. Algunos de ellos se vuelven populares producto de una gran cantidad de mensajes publicados. En el caso específico Twitter, los mensajes públicos llamados tweets generan tendencias, en inglés llamadas Trending Topics. En este trabajo, para cada tendencia se intenta encontrar el tweet que generó la mayor repercusión, candidato a ser el que disparó la popularidad de la tendencia. De forma automatizada, se conecta con Twitter para obtener las tendencias de Uruguay y sus tweets asociados, utilizando scripts implementados con el lenguaje Python. Dado que la versión utilizada de la API de Twitter devuelve los tweets que nombran las tendencias de forma textual, tuvimos que dividir el problema en dos. En primer lugar, dada la masa de tweets cuyo texto contiene la expresión que es tendencia, fue necesario construir un clasificador utilizando un modelo de Regresión Logística para descartar aquellos que no son relevantes de procesar ya que no refieren la tendencia. Utilizando la técnica de Bag of Words y una medida de distancia relativa entre un tweet y una tendencia, calculada mediante la técnica word embeddings, se determina si un tweet es relevante o no. En segundo lugar, utilizando los tweets que refieren a una tendencia, se intenta encontrar cuál de ellos es su "disparador", intentando contemplar tanto su repercusión en la red, como el hecho de haberse publicado cuando la tendencia aún no surgió. Para esto, se entrena una Red Neuronal que analiza características como la cantidad de interacciones del tweet, su tiempo de vida, la cantidad de tweets que se generan en la siguiente hora de publicado, entre otras. Finalmente, a modo de poder visualizar la tarea realizada, se implementa utilizando NodeJS y React una aplicación web que permite seleccionar una tendencia previamente procesada, para ver cuál fue su disparador. Los resultados experimentales muestran que el modelo de clasificación determina si el tema de un tweet es relevante para su tendencia asociada con un 79% de accuracy, para un corpus de tweets construido durante el transcurso del proyecto. Por otra parte, el modelo de predicción del tweet disparador presenta un 81% de F1-score bajo las mismas condiciones. Comparando los resultados de cada momento respecto a sus líneas bases utilizadas, en ambos casos se puede afirmar que la solución implementada resuelve de mejor manera los problemas enfrentados en este proyecto.


Detalles Bibliográficos
2021
Inteligencia Artificial
Aprendizaje Automático
Aprendizaje Supervisado
Procesamiento de Lenguaje Natural
Clasificación
Redes Sociales
Tendencia
Twitter
Español
Universidad de la República
COLIBRI
https://hdl.handle.net/20.500.12008/33027
Acceso abierto
Licencia Creative Commons Atribución - No Comercial - Sin Derivadas (CC - By-NC-ND 4.0)
Resumen:
Sumario:En la actualidad, millones de personas utilizan redes sociales para compartir mensajes, noticias y opiniones sobre diversos temas. Algunos de ellos se vuelven populares producto de una gran cantidad de mensajes publicados. En el caso específico Twitter, los mensajes públicos llamados tweets generan tendencias, en inglés llamadas Trending Topics. En este trabajo, para cada tendencia se intenta encontrar el tweet que generó la mayor repercusión, candidato a ser el que disparó la popularidad de la tendencia. De forma automatizada, se conecta con Twitter para obtener las tendencias de Uruguay y sus tweets asociados, utilizando scripts implementados con el lenguaje Python. Dado que la versión utilizada de la API de Twitter devuelve los tweets que nombran las tendencias de forma textual, tuvimos que dividir el problema en dos. En primer lugar, dada la masa de tweets cuyo texto contiene la expresión que es tendencia, fue necesario construir un clasificador utilizando un modelo de Regresión Logística para descartar aquellos que no son relevantes de procesar ya que no refieren la tendencia. Utilizando la técnica de Bag of Words y una medida de distancia relativa entre un tweet y una tendencia, calculada mediante la técnica word embeddings, se determina si un tweet es relevante o no. En segundo lugar, utilizando los tweets que refieren a una tendencia, se intenta encontrar cuál de ellos es su "disparador", intentando contemplar tanto su repercusión en la red, como el hecho de haberse publicado cuando la tendencia aún no surgió. Para esto, se entrena una Red Neuronal que analiza características como la cantidad de interacciones del tweet, su tiempo de vida, la cantidad de tweets que se generan en la siguiente hora de publicado, entre otras. Finalmente, a modo de poder visualizar la tarea realizada, se implementa utilizando NodeJS y React una aplicación web que permite seleccionar una tendencia previamente procesada, para ver cuál fue su disparador. Los resultados experimentales muestran que el modelo de clasificación determina si el tema de un tweet es relevante para su tendencia asociada con un 79% de accuracy, para un corpus de tweets construido durante el transcurso del proyecto. Por otra parte, el modelo de predicción del tweet disparador presenta un 81% de F1-score bajo las mismas condiciones. Comparando los resultados de cada momento respecto a sus líneas bases utilizadas, en ambos casos se puede afirmar que la solución implementada resuelve de mejor manera los problemas enfrentados en este proyecto.