6 mins read

Minería de datos a partir de tweets de políticos españoles

flags waving on old ornate city building on fine day
Photo by ArtHouse Studio on Pexels.com

En este artículo se van a analizar los tweets de cuatro políticos españoles de diferente ideología. Mediante la utilización de datos públicos utilizando el api de Twitter y empleando como herramienta R, un lenguaje de programación estadístico y gráfico, se crearán perfiles de cada uno de estos políticos.

Los cuatro políticos son Santiago Abascal, Pablo Casado, Yolanda Díaz y Pedro Sánchez. Se extraerán los últimos tweets de cada uno de ellos. Se analizarán las palabras que dicen y se verá cual es la frecuencia de palabras que más utilizan. Se realizará un análisis de texto.

El API de Twitter

Para compartir información en Twitter de la forma más amplia posible se permite el acceso a los datos de Twitter mediante el uso de una API (interfaces de programación de aplicaciones). Twitter permite crear aplicaciones dentro del entorno de desarrollador en la dirección https://api.twitter.com/. Únicamente es necesario tener cuenta en Twitter para poder utilizar esta pasarela y obtener datos.

Los datos de Twitter son únicos y se extraen a partir de datos que los usuarios deciden compartir de forma pública. Esta plataforma de API de Twitter ofrece acceso amplio a los datos de Twitter que los usuarios han decidido compartir con el mundo. Tenemos que tener en cuenta que como toda API tiene unos límites de uso. En este caso, el límite diario de actualizaciones se subdivide en límites más pequeños con intervalos de media hora. Los Retweets se cuentan como Tweets.

Extrayendo los datos

Una vez creado nuestro perfil en la web de desarrolladores de Twitter es el momento de extraer los datos. Como se comentó anteriormente se va a utilizar la API de twitter. Además, se emplea la librería rtweet, un “raspador” de datos que se comunica con la API de Twitter.

Para la extracción de datos será necesario estar registrado en la plataforma y además, crear una aplicación, Twitter app, asociada. De ese modo podemos acceder a los contenidos de Twitter a través de programas. Para crear una app se puede acceder a la siguiente dirección https://developer.twitter.com/en/portal/projects-and-apps.

Se van a analizar los tweets de:

  • Usuario @sanchezcastejon, máximo de 200 tweets.
  • Usuario @Santi_ABASCAL”, máximo de 200 tweets.
  • Usuario @pablocasado_”, máximo de 200 tweets.
  • Usuaria = “@Yolanda_Diaz_”, máximo de 200 tweets.

Para el análisis se quiere recuperar tantos tweets como sea posible, pero hay un límite máximo de tweets recuperados por consulta de 200 y existe una limitación de tiempo entre consulta y consulta. Hay que tener en cuenta que:

  • Independientemente de quien escriba un tweet, todos los tweets tiene un ID global numérico único que tiene una marca temporal, lo que permite identificar tweets por el momento temporal en el que se creó.
  • La API de twitter tiene un argumento api.getUserTimeline() que puede especificar el max_id, lo que permite recuperar únicamente tweets más antiguos.
  • Se crea un fichero de almacenamiento para cada uno de los cuatro políticos, únicamente con sus últimos tweets.

Función para extraer los tweets

Se crea una función que lo que va a hacer es extraer los datos de tweets publicados recientemente por un usuario y los almacena en un fichero csv. Los argumentos de esta función serán 3:

  • usuario, que identifica a un usuario de Twitter.
  • maxtweets, el número de tweets que se recuperan.
  • output_file_name, nombre el fichero de escriura.

Se leen los datos y se identifican por ID y se extraen los nuevos tweets. Posteriormente se concatenan los datos.

Carga de datos de los políticos

Se cargan los datos utilizando la API de twitter. Los datos utilizados en este análisis se han obtenido mediante la función definida en el apartado anterior. Se crean cuatro ficheros .csv como puede verse en la Fig. 1. No se incluyen los retweets, únicamente los tweets que ha escrito la persona analizada.

Figura 1. Ficheros generados

El número total de tweets de cada uno en el período de estudio se muestra en la siguiente tabla:

Alias en TwitterNúmero de tweets
pablocasado_162
sanchezcastejon122
Santi_ABASCAL67
Yolanda_Diaz_171

El número de tweets recuperados es entre 171 de Yolanda Díaz y los 67 de Santiago Abascal. De entre toda la información disponible que puede verse en la Fig. 2, en este análisis únicamente se va a emplear: autor del tweet (screen_name), fecha de publicación (created_at), identificador del tweet (status_id) y contenido (text).

políticos
Figura 2. Variables de análisis

Al final nos da una cabecera de datos de este tipo:

políticos
Figura 3. Cabecera de los datos, 10 primeros campos

Limpieza de texto y tokenización

Vale, ya tenemos los datos. Pero esos datos es necesario limpiarlos para extraer información más relevante. El proceso de limpieza de texto consiste en eliminar del texto lo que no aporta información. En este artículo el principal objetivo es estudiar el perfil lingüístico de las personas y analizar el sentimiento que transmiten. Se va a eliminar, por tanto: urls de páginas web, signos de puntuación, etiquetas HTML, caracteres sueltos y números.

Tokenizar un texto consiste en dividir el texto en las unidades que lo conforman, entendiendo por unidad el elemento más sencillo con significado propio para el análisis en cuestión, en este caso, las palabras. Se crea una función que permita realizar esto. Lo que hace esta función es eliminar el símbolo @ y # de las palabras a las que acompañan.

Distribución temporal de los tweets de los políticos

Vamos a ver la distribución temporal de los tweets de los políticos. De las cuatro cuentas analizadas no todas publican todos los días y no siempre es un tweet únicamente en un mismo día. En la Fig. 4 se ve la distribución de los tweets. Hay una zona que no refleja el gráfico al no importar los datos de esos días la fórmula que se ha utilizado, no quiere decir que no hayan publicado esos días, de hecho, sí que lo hicieron.

políticos
Figura 4. Número de tweets frente a Fecha de publicación.

Frecuencia de palabras utilizadas por los políticos

De todos los tweets de los cuatro líderes políticos ahora contamos las palabras que utiliza cada usuario. Se estudia con qué frecuencia y el significado. Como hay usuarios con más tweets que otros es lógico que aparezcan más palabras.

AutorNúmero de palabras
pablocasado_6268
sanchezcastejon4778
Santi_ABASCAL2111
Yolanda_Diaz_5571

Ahora si nos fijamos en las palabras diferentes que utilizan estos perfiles llegamos a la siguiente tabla. Debido a que hay menos tweets por parte de Santiago Abascal es lógico que haya menos palabras.

AutorPalabras distintas
pablocasado_1875
sanchezcastejon1585
Santi_ABASCAL930
Yolanda_Diaz_1785

La media de palabras por tweet de cada uno es la que se muestra en la siguiente tabla, en el cual la desviación estándard es la media más menos la cantidad que se muestra. El que más palabras utiliza en sus tweets es Pablo Casado, seguido muy de cerca por Pedro Sánchez.

AutorLongitud mediaDesviación estándard
pablocasado_38.931687.846276
sanchezcastejon38.845534.535891
Santi_ABASCAL31.5074613.179844
Yolanda_Diaz_32.5789511.507462

Las stop words

En los tweets se observa que los términos más frecuentes son artículos, preposiciones, pronombres…, en general, palabras que no aportan información relevante sobre el texto. Estas palabras se les conoce como stopwords. Para cada idioma existen distintos listados de stopwords, además, dependiendo del contexto, puede ser necesario adaptar el listado.

Se crea una lista de stopwords y se añade “amp” que suele aparecer en código html. Desechando todas esas palabras que no aportan nada a un mensaje de una persona se filtran los datos.

Resultados de los políticos

Pablo Casado las palabras que más utiliza son Sánchez y gobierno. Pedro Sánchez la palabra que más utiliza es España y hoy. Santiago Abascal utiliza más España y españoles, mientras que Yolanda Díaz utiliza hoy y trabajo. Todos los datos se ven a continuación.

políticos

Pablo Casado, como es el lider de la oposición, actúa como tal y las palabras que más utiliza son referidas al gobierno que tiene en frente. Pedro Sánchez utiliza palabras como gobierno, España, pais, avanzar, recuperación, etc., que tienen que ver con un mensaje de un presidente de gobierno.

Santiago Abascal utiliza palabras como España, españoles, fronteras, europa, criminales, etc., que tienen que ver con su mensaje político. Por último, Yolanda Díaz, es lógico que esté la palabra trabajo al ser la ministra de Trabajo del gobierno de España. También utiliza palabras como diálogo, futuro, personas, derechos, etc, que tienen que ver con su carácter conciliador. En todo caso, se ve que son políticos por las palabras que más utilizan.

Código empleado

El código empleado es una modificación del código creado por Joaquín Amat Rodrigo que puedes obtener desde aquí -> https://github.com/JoaquinAmatRodrigo/Estadistica-con-R. Si alguien lo necesita puede contactar conmigo para obtenerlo.

Referencias

  • https://github.com/JoaquinAmatRodrigo/Estadistica-con-R
  • https://github.com/JoaquinAmatRodrigo/Estadistica-con-R/blob/master/PDF_format/38_Text_minig_con_R_ejemplo_practico_Twitter.pdf
  • https://www.rdocumentation.org/packages/stringr/versions/1.4.0
  • https://www.rdocumentation.org/packages/tidytext/versions/0.3.2
  • https://www.rdocumentation.org/packages/quanteda/versions/3.1.0
  • https://www.rdocumentation.org/packages/rtweet/versions/0.7.0
  • https://developer.twitter.com/en/portal/projects-and-apps

Avelino Dominguez

👨🏻‍🔬 Biologist 👨🏻‍🎓 Teacher 👨🏻‍💻 Technologist 📊 Statistician 🕸 #SEO #SocialNetwork #Web #Data ♟Chess 🐙 Galician

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Previous Story

Best Black Friday Deals on Amazon

Next Story

Artificial intelligence based on big data – Airbnb case

%d bloggers like this: