Saltar al contenido (presiona la tecla Intro)
Javier Ladino

Javier Ladino

{Data/Design/Engineer}

  • Inicio
  • Portfolio
  • Sobre mí
  • EN 🇺🇸
  • FR 🇫🇷
DataViz

Análisis visual del discurso presidencial en Francia con python

Introducción

Este proyecto será mi primera experimentación con las herramientas de Web scraping, donde mediante el lenguaje Python pretendo al final hacer un análisis visual de las palabras más comunes entre los discursos de posesión de los presidentes François Hollande (2012) y Emmanuel Macron (2022), estos discursos fueron obtenidos del sitio web oficial https://www.vie-publique.fr/ .

Utilizaremos la dependencia BeatifulSoup de Python para extraer la información de cada discurso en su url específica, y después usaremos el paquete Word_cloud para convertirlo en una nube de las palabras más utilizadas logrando así nuestra primera visualización de datos.

Luego, mediante la dependencia Matplotlib obtendremos una visualización del top 10 de las palabras más comunes, logrando comparar visualmente cada discurso según su texto.

Concluiremos con algunas hipótesis al finalizar el ejercicio, donde al lado de los resultados entenderemos la utilidad de cada herramienta para el tratamiento y la visualización de datos hacia el conocimiento.

Datos

Toda la información utilizada está publicada en el portal oficial de Vida Pública del gobierno francés, en su enlace está disponible para todos y esta uso será solamente con fines académicos.

Por cronología, escogí el último discurso de investidura del presidente Macron realizado el 7 de mayo de 2022 y el discurso de investidura del presidente Hollande del 15 de mayo de 2012. (Fue obviado el discurso intermedio de reelección del presidente Macron, del 14 de mayo de 2017)

Técnicamente el proyecto está implementado en Python sobre un notebook de JupyterLab de manera local y todos sus archivos serán alojados en GitHub para su consulta y actualización.

METODOLOGÍA

Importación de dependencias

Importamos todas las dependencias a utilizar en nuestro notebook.

#Import requests for web scraping
import pandas as pd
import requests as rq
import numpy as np
import collections

# Matplotlib and associated plotting modules
import matplotlib.cm as cm
import matplotlib.colors as colors

import matplotlib as mpl
import matplotlib.pyplot as plt

# import k-means from clustering stage
from PIL import Image 
from matplotlib import rcParams

Si quieren experimentar con otras dependencias o instalar más paquetes según sus objetivos de proyecto pueden hacerlo directamente sobre el notebook, ejemplo:

!pip install lxml

Yo intento trabajar siempre con notebooks en JupyterLab de manera local bajo un ambiente virtual de Anaconda (Conda env), también utilizo COLAB de Google y Deepnote que funcionan muy bien como máquinas virtuales si el proyecto se presta. (Siempre dependerá del consumo de máquina en el procesamiento de los datos y de la calidad de conexión a internet)

Proceso de obtención y limpieza de datos

Importamos BeautifulSoup para extraer todo el documento html de cada discurso y lo convertimos luego en tipo texto (STR).

Primero utilizamos el discurso de investidura del presidente Hollande del 15 de mayo de 2012

#Import BeautifulSoup for html structure information from our request
from bs4 import BeautifulSoup

page = rq.get('https://www.vie-publique.fr/discours/185063-declaration-de-m-francois-hollande-president-de-la-republique-sur-son')

soup = BeautifulSoup(page.text, 'lxml')

data = [element.text for element in soup.find_all('span', {'class': 'text-formatted'})] #Retrieving text
data = str(data) #Convert to string
data

Tienes 3 opciones como analizador o Parser de Beatifulsoup, al final elegí lxml.
En la documentación de la librería encontrarás las diferencias:

  • html.parser– incorporado – no se necesitan dependencias adicionales.
  • html5lib– el más indulgente – mejor úsalo si el HTML está roto.
  • lxml– el más rápido.

Al obtener la información como texto, instalamos el paquete Word_clouds para Python, con esto logramos visualizar nuestra primera «nube de palabras«.

Debes saber que existe un paquete llamado StopWords o palabras vacías que según la Wikipedia es el nombre que reciben las palabras sin significado como artículos, pronombres, preposiciones, etc. que son filtradas antes o después del procesamiento de datos en lenguaje natural.
Para esto lo instalamos en nuestro notebook así:

!pip -q install stop-words

Con esto evitamos que estas palabras compitan con nuestro análisis.

Nube de palabras

Word Cloud o nube de palabras es una técnica con la cual visualizamos datos de texto en los que el tamaño de cada palabra indica su frecuencia o importancia.

Como propuesta vamos a utilizar la silueta de cada presidente como contenedor de nuestra Nube de Palabras, con esto asociamos los datos a su origen de manera visual.

Ahora vamos a graficar con Matplotlib en Python el top 10 de las palabras más repetidas del discurso del Presidente Hollande.

Ahora es el turno de visualizar el discurso de investidura del presidente Macron realizado el 7 de mayo de 2022 con el mismo procedimiento anterior.

Análisis de resultados

Discurso de investidura del presidente François Hollande del 15 de mayo de 2012.

Top 10 de palabras:
#1 Francia, #2 Necesidad, #3 República, #4 Todos, #5 Confianza, #6 Lugar, #7 Justicia, #8 Democracia, #9 Francés, #10 País.

Discurso de investidura del presidente Macron realizado el 7 de mayo de 2022

Top 10 de palabras:

#1 Francia, #2 País, #3 Pueblo, #4 República, #5 Proyecto, #6 Actuar, #7 Tiempo, #8 Mandato, #9 Continuar, #10 Mayo.

Conclusión

Podemos generar varias hipótesis al realizar este ejercicio de visualización, sobretodo si partimos que en 10 años de diferencia han ocurrido muchos acontecimientos que han cambiado el discurso presidencial, sumado a la explosión de información (y desinformación) generada en las redes sociales e internet, a los problemas de seguridad con atentados terroristas, a los problemas y acciones contra el cambio climático, a la crisis social y económica por el desplazamiento forzado de inmigrantes por el mundo, a la pandemia del Covid-19 y la fragilidad del sistema médico, y luego para cerrar, con una guerra entre Ucrania y Rusia con una amenaza nuclear que desestabiliza todos los sectores de la sociedad.

El 2012 fue un año intenso en Francia, por una campaña electoral manchada por el terrorismo y el regreso al poder de los socialistas con muchos desafíos y baja popularidad para François Hollande, mientras que el 2022 (todavía en curso) viene de cargar con los resultados de todo tipo que deja la pandemia del Covid-19, sumado a la posición de Francia (y la Unión Europea) frente al conflicto armado de Ucrania y Rusia, donde tras la reelección de Emmanuel Macron recae una gran responsabilidad en sacar a flote al país en medio de la incertidumbre energética, social y social que azota el mundo.

Podemos notar que las palabras comunes entre los dos discursos son: Francia, República y País, que se fijan como la base de un texto presidencial que involucra toda la Nación, su sentido de pertenencia, orgullo y libertad, un sentimiento que por encima de todo hace parte del pueblo francés a lo largo de su territorio.

Para el discurso del 2012, es de resaltar la equivalencia de siete palabras en segundo lugar de uso (Necesidad, república, todos, confianza, lugar, justicia y democracia), siendo la confianza a mi modo de ver, la palabra que enmarca el eje de su mensaje, primero porque después de 17 años vuelve el socialismo al poder y después por marcar una diferencia entre él y su predecesor, Nicolas Sarkozy, apoyándose en el ejercicio del poder con dignidad y simplicidad.

Ahora para el 2022, Emmanuel Macron tras derrotar en segunda vuelta a la ultraderechista, Marine Le Pen, utilizó en su discurso un lenguaje que involucró la proyección, la diplomacia y la inclusión, donde en mi punto de vista son las palabras: Proyecto y Actuar, las cuales dan forma a ese futuro que es anhelado por todos los franceses, involucrando a sus seguidores y detractores a encarar la situación y continuar con el desarrollo del país a pesar de los tiempos que se viven en medio de la incertidumbre.

Podemos concluir que utilizar este tipo de herramientas como Web Scraping en Python para facilitar la comprensión del discurso presidencial, nos ayuda a identificar visualmente patrones que normalmente están ligados a la coyuntura, pero que también tienen un contexto interpretado por cada cuál según su posición personal.

Sobra aclarar que es solo mi opinión y una interpretación más del mensaje que quiere transmitir un presidente de una Nación al ponerse en el poder frente a millones de personas.

Consulte el código en Python de todo el proyecto en el repositorio de GitHub


References

  • https://github.com/amueller/word_cloud/
  • https://www.vie-publique.fr/discours/202852-declaration-de-m-emmanuel-macron-president-de-la-republique-sur-les-p
  • https://www.vie-publique.fr/discours/285059-emmanuel-macron-07052022-investiture-president-de-la-republique
  • https://matplotlib.org/


Este proyecto está implementado siguiendo el tutorial de Luis Novelo que pueden encontrar en su GitHub, gracias a él y sus cursos en Platzi estoy muy motivado para nunca parar de aprender.

Proyectos relacionados

Movilidad urbana y energía: cómo diseñamos un dashboard para medir CO₂ en Nantes, Rennes y Niort

septiembre 3, 2025

🦉Las aves de Bogotá, Colombia 🐦

mayo 1, 2022

Cómo utilizar mapas interactivos de isócronas para encontrar una vivienda cerca de la escuela en Nantes

mayo 17, 2023
© Copyright 2026 Javier Ladino. Perfect Portfolio | Desarrollado por Rara Theme.Funciona con WordPress.