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
- Extrayendo los datos
- Función para extraer los tweets
- Carga de datos de los políticos
- Limpieza de texto y tokenización
- Distribución temporal de los tweets de los políticos
- Frecuencia de palabras utilizadas por los políticos
- Las stop words
- Resultados de los políticos
- Código empleado
- Referencias
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 escritura.
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.

El número total de tweets de cada uno en el período de estudio se muestra en la siguiente tabla:
Alias en Twitter | Número de tweets |
---|---|
pablocasado_ | 162 |
sanchezcastejon | 122 |
Santi_ABASCAL | 67 |
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).

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

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.

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.
Autor | Número de palabras |
---|---|
pablocasado_ | 6268 |
sanchezcastejon | 4778 |
Santi_ABASCAL | 2111 |
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.
Autor | Palabras distintas |
---|---|
pablocasado_ | 1875 |
sanchezcastejon | 1585 |
Santi_ABASCAL | 930 |
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.
Autor | Longitud media | Desviación estándard |
---|---|---|
pablocasado_ | 38.93168 | 7.846276 |
sanchezcastejon | 38.84553 | 4.535891 |
Santi_ABASCAL | 31.50746 | 13.179844 |
Yolanda_Diaz_ | 32.57895 | 11.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.

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