JPO : Webinar d'information sur nos formations → RDV mardi à 17h30.

¿Cómo generar un Wordcloud con Python?

wordclouds python

Las Wordcloud (nubes de palabras) son herramientas útiles para resumir los conceptos más importantes de un texto, una página web o un libro. Cuanto más presente esté una palabra en el texto considerado, más grande aparecerá en la nube de palabras. Hay muchos sitios y aplicaciones para generar nubes de palabras de forma fácil y gratuita. Por ejemplo, aquí hay uno que se generó a partir de uno de nuestros artículos de introducción a la ciencia de los datos :

Es una nube de palabras, pero parece difícil utilizarla para extraer los conceptos principales del texto considerado. Además, no puedes personalizar su forma, sus colores…
Si quieres personalizar tu nube de palabras para hacerla más usable y más bonita, puede ser una buena idea utilizar Python en lugar de una aplicación encontrada en Internet.

¿Cómo crear tu nube de palabras con python?

Lo primero que hay que hacer es importar las bibliotecas que vamos a necesitar.

WordCloud y matplotlib.pyplot nos permitirán mostrar una nube de palabras básica, mientras que numpy e Image serán útiles más adelante para personalizar la forma de nuestra nube de palabras.

Comenzamos almacenando el texto que queremos transformar en una nube de palabras en una variable (llamada aquí «texto»).
Para comparar los resultados obtenidos en la aplicación con los obtenidos en Python, utilizamos el mismo texto que antes. 

Estamos listos para publicar nuestra primera nube de palabras :

Certes, Por supuesto, esta nube de palabras es aún menos utilizable que la que generamos a partir de un sitio, pero ¡no te asustes! Pronto lo mejoraremos.

Lo primero que llama la atención es que palabras como ‘de’, ‘la’, ‘le’… tienen una importancia desmesurada en nuestra nube de palabras (esto es lógico ya que se utilizan con mucha frecuencia). Sin embargo, no son de ninguna ayuda cuando se trata de localizar los conceptos clave en un texto: nos gustaría deshacernos de ellos.

Afortunadamente, es fácil eliminar las palabras irrelevantes almacenándolas en una lista y utilizando el argumento «stopwords»:

¡Esto ya es mucho mejor! Por fin podemos obtener información relevante de nuestra nube de palabras. Queda un problema: el renderizado no es realmente bonito, tenemos que arreglarlo.

Empecemos por personalizar su forma. Para ello, simplemente tenemos que elegir una máscara (por ejemplo aquí utilizaremos una máscara de nube, disponible en google images).

Wordcloud

Para que esta máscara pueda ser utilizada por la biblioteca de python, necesitamos transformarla en un array de numpy. Si un valor de la matriz es «255», no aparecerá ninguna palabra en el campo correspondiente.

Por último, podemos personalizar el color de nuestra nube de palabras utilizando el método de recolor.

Aquí, creamos una función de color que colorea cada palabra en un tono azul :

Por fin tenemos una Wordcloud utilizable y (relativamente) bonita. Además, sólo hemos utilizado las funciones más básicas de la biblioteca de Python

Si quiere ir más allá y aprender cosas aún más interesantes que las nubes de palabras, puede ponerse en contacto con nosotros directamente en línea para obtener más información sobre nuestras formaciones en ciencia de datos.

¿No está disponible?

Déjenos su dirección de correo electrónico para que podamos enviarle los nuevos artículos cuando se publiquen.