Análisis exploratorio de texto de los programas electorales de las elecciones catalanas del 14F

Al igual que hice el pasado mes de junio para las elecciones vascas y gallegas del 12J, así como hace más de un año para las elecciones generales del 10N del 2019, tengo a bien presentar el análisis exploratorio de texto de los programas electorales que hay disponibles para los principales partidos que concurren a las elecciones catalanas del 14F de 2021.

Preprocesamiento de datos

El procedimiento ha sido el siguiente:

  1. Descarga de los programas electorales que están recopilados por Betevé en el enlace: https://beteve.cat/politica/programes-electorals-2021-catalunya-eleccions-14f/. Los de Ciudadanos/Ciutadans y PP están en formato web, así que los he guardado en formato .txt. Todos los demás los he guardado en .pdf. En todos los casos, he cogido los programas en catalán.
  2. Lectura de datos en R y limpieza de signos de puntuación, números, código, cabeceras y pies de página que se repiten en cada página del documento (y que aumentan artificialmente la frecuencia de sus términos). Se han pasado todas las palabras a minúscula y se han retirado los términos vacíos o stopwords. He usado el listado de stopwords en catalán que están recogidas en tm::stopwords() y lo he complementado con otras palabras presentes en este listado que enlazo (como por ejemplo «del» o «dels»).
  3. Con los documentos resultantes, he hecho matrices de frecuencia de términos y los he utilizado para las nubes de palabras y los análisis de componentes principales y escalamiento multidimensional.
  4. Alternativamente, los he guardado en formato tidy para hacer un análisis de los bigramas más frecuente.

Se podría haber aplicado stemming, pero mi experiencia de otros análisis me dice que no modifica apenas la situación y por contra disminuye bastante la interpretabilidad. Todo el código se puede consultar en este enlace a GitHub: https://github.com/picanum/analisis_14F/blob/main/script_cat.R

Análisis exploratorio

Uno de los resultados destacables es que los programas son muy desiguales en longitud. Mientras que el de En Comú Podem supera las 50.000 palabras no vacías, el del PP ronda las 1.500. Esta discrepancia de longitudes afecta ligeramente a la comparabilidad, aunque en todo momento vamos a emplear frecuencias relativas.

Los términos más repetidos en los programas de cada partido son los que podéis observar en el siguiente wordcloud (a mayor tamaño, más veces aparece). Hay varios temas que llaman la atención; por ejemplo, el término «catalunya» es el más repetido de todos los programas, con mayor importancia en los de Ciudadanos/Ciutadans, Junts y PDeCAT (el tamaño de esa palabra es mucho mayor que el resto). Sin embargo, en el programa de la CUP no está ni entre los 20 términos más repetidos.

Estas son los términos más repetidos en general. Sin embargo, podríamos ver cuáles son los términos más «propios» de cada partido, es decir, cuáles son los términos que más aparecen en cada programa en comparación con el resto de programas. Esto se puede hacer tomando la frecuencia relativa de un término en un programa concreto, y dividiéndola entre la frecuencia relativa media entre los programas. Si ese cociente es >1, entonces ese término es más común encontrarlo en ese programa que en los demás.

He realizado ese cálculo teniendo en cuenta únicamente el 5% de términos con mayor promedio de apariciones (frecuencia relativa). El resultado se presenta en los siguientes diagramas de barras. Vamos recorriéndolo por partidos:

  • En el PP, se observan muchos verbos en futuro («combatrem», «lluitarem», «aprovarem»…), términos relacionados con la economía y algún otro con otras políticas («inmigració»).
  • En el PSC, es de destacar el uso del término «federal», 6 veces por encima de la media. Otros términos aluden al desarrollo («progrés», «bienestar»).
  • En Cs, se observan muchos términos relacionados con la infancia y las familias, así como el término «esquadra» (que debe ser una alusión al cuerpo policial).
  • En ECP, además de los términos «comú» (muy probablemente por automenciones) y «proposem» (ya que muchas propuestas de su programa se presentan con la frase «Per això, proposem» o similares), destacan términos relacionados con el medio ambiente y la industria, así como «lgtbi».
  • En Junts, además del propio término «junts» (de nuevo por automenciones), vuelven a destacar los verbos en futuro en referencia al desarrollo, que se complementan con otros como «competitivitat».
  • En el PDeCAT, además de «cosa» (muchas veces en forma de «la qual cosa»), destacan términos relacionados con la juventud y el deporte así como «rural» y «rurals».
  • En el de ERC, destacan los términos republicanos acompañados de «horizó» (luego observaremos que suelen ir unidos), seguidos de términos relacionados con las competencias lingüísticas y algunos de la familia de «implementar». Destacar también el importante papel del término «lgtbi» en ese programa.
  • En la CUP, destacan ampliamente los términos relacionados con la banca y las clases populares, así como otros relacionados con la soberanía y la autodeterminación. También juega un papel importante el término «feminista».

Podemos hacer el mismo cálculo para, en lugar de palabras sueltas, bigramas. Los bigramas no son otra cosa que un grupo de dos palabras consecutivas, y la frecuencia en la que se da cada uno nos puede ayudar a ver algunos términos más complejos que en un análisis de palabras sueltas se nos escapan. El resultado se puede observar en los siguientes diagramas de barras:

Hay muchos puntos en común con los resultados presentados en el diagrama de barras de antes (el de los términos individuales), pero hay otras cosas a destacar:

  • En el programa de Ciudadanos/Ciutadans toman relevancia el bienestar animal y el sistema de salud.
  • En el de la CUP volvemos a ver esa presencia de términos relacionados con la banca pública, pero se cuelan algunos relacionados con la economía y las universidades.
  • En el de ECP vemos que el bigrama «equitat territorial» es el más «propio» de su programa, seguido de algunos otros relacionados con la cuestión territorial y con el estado del bienestar.
  • En el de ERC gana mucho peso la lengua de signos junto a otros relacionados con el desarrollo y con el derecho a decidir.
  • En el de Junts salen a flote términos relacionados con la cuestión territorial, la lengua y la cultura que en el análisis de términos individuales no estaban tan presentes.
  • En el del PDeCAT destacan mucho los autónomos, junto a otros términos relacionados con la administración pública.
  • En el del PP, destacan los programas de ayuda y bigramas relacionados con la actividad empresarial.
  • Por último, en el del PSC destacan bigramas referidos al desarrollo, a la crisis (¿del COVID?) y a la transición energética.

Similitud entre programas

¿Cómo podemos medir el grado de similitud entre programas electorales? Para ello, suelo utilizar dos aproximaciones que emplean las matrices de frecuencia de términos que he comentado anteriormente: el Análisis de Componentes Principales (ACP) y el escalamiento multidimensional (MDS). El primero usa correlaciones en el uso de términos para reducir las dimensiones de la matriz, mientras que el segundo se basa en las distancias (en mi caso, euclídeas) entre programas usando la frecuencia de los términos.

El resultado del ACP aplicado a los programas de las elecciones catalanas nos arroja el siguiente biplot, que llega a explicar más de un 82% de la varianza atendiendo a las dos primeras componentes (dimensiones) a las que hemos logrado reducir la matriz de términos.

¿Y qué nos muestra el biplot? En este gráfico, cuanto más cercanas están las flechas, más correladas están las variables (en este caso, programas). Por tanto, podemos decir que el PP está más correlado con el programa de Ciudadanos/Ciutadans que con el programa de la CUP, y viceversa. Los programas de Junts y PDeCAT están tan correlados que prácticamente se superponen sus flechas. Un poco más alejados están los tres partidos de izquierdas (por orden de cercanía a Junts y PDeCAT: PSOE, ECP y ERC), muuuuy pero que muy cercanos entre sí. Es curioso como el orden que presenta el biplot se corresponde en un cierto modo con la ubicación de cada partido en la escala ideológica (con muchos matices, claro está).

Podemos incluir dentro del biplot los términos, para ver así cuáles son los «culpables» de que cada partido ocupa la posición que ocupa. Así, observamos que PP ocupa sus posiciones por el mayor uso de términos como «aprovarem» o «impulsarem», que Cs lo ocupa por su mayor uso de «suport», «generalitat», «atenció» o «empreses», que Junts y PDeCAT lo hacen por su uso de «sector», «llei» o «public», y que el resto de partidos están ahí por su mayor uso de «polítiques», «salut», «drets», «sistema», «garantir» o «social», entre otros. Hay otros términos, como «catalunya» o «persones», que quedan bastante a la derecha por lo que podemos asumir que son más corales, aunque «catalunya» tiende a ser más usado por los del cuadrante superior (PP, Cs, Junts y PDeCAT).

Por otra parte, el resultado del escalamiento multidimensional nos muestra la siguiente geografía, que en cierto modo es similar a la anterior (Junts y PDeCAT muy juntos, así como ECP, ERC y PSC aunque con este último algo más cerca de Junts y PDeCAT, Cs y PP por su lado), aunque destaca bastante el aislamiento del programa del PP. Es posible que el escaso número de palabras haya jugado un papel importante en ese aislamiento.

¿Cómo aparece la ciencia en cada programa?

A petición de @FuturaConjetura en Twitter, he querido analizar cuánto se mencionan los términos relacionados con la ciencia en cada programa electoral, y en referencia a qué conceptos.

Para ello, he tomado aquellos términos cuya raíz fuese «cièn», «cientif» o «científ» y he sumado sus frecuencias relativas. El resultado es el que se puede observar en el gráfico. Casi un 0.1% de las palabras no vacías en el programa de Junts es un término de la familia de ciencia. Por contra, no hay ninguna mención a términos de este tipo en el programa del PP. Hay que decir que estos porcentajes dependen bastante de la forma en la que se haya redactado cada programa y no tienen por qué ser una medida perfecta del peso de la ciencia en cada uno de ellos.

¿De qué suelen ir acompañados los términos de la familia de la ciencia? He hecho un wordcloud que muestra los términos que suelen acompañar a los científicos en cada bigrama para cada uno de los programas. De nuevo: aquellos de mayor tamaño son los que más acompañan a los términos científicos. Podemos observar que en el programa de Junts se relacionan más con términos como «llei», «salut» o «catalunya». En el caso del PDeCAT y del PSC, vemos términos más relacionados con la tecnología, mientras que en el caso de ECP van más acompañados de investigación y universidades (de forma similar a Ciudadanos/Ciutadans). Por último, en el programa de la CUP los vemos más asociados a términos como «innovació», «coneixement» o «cultura», y de nuevo con «comunitat» (lo cual también pasa en el de ECP). En general, parece que en los programas se relaciona la ciencia a la innovación tecnológica, las leyes o la investigación.

Hay muchos más análisis que se podrían realizar sobre estos programas, o incluso podrían refinarse los que se han hecho ya. El preprocesamiento de los documentos también tiene margen de mejora. En todo caso, espero que este análisis exploratorio haya sido útil de alguna manera a quienes estáis llamad@s a votar el próximo 14 de febrero.

Si (y solo si) te ha gustado este post, considera darme una oportunidad en Twitter para que siga haciendo más análisis de este tipo. Y si tienes alguna pregunta que te da corte hacerme, puedes enviármela al CuriousCat de forma anónima.

Dinos algo de esto