Les WordClouds (nuages de mots-clés en français) sont des outils utiles pour synthétiser les notions les plus importantes d’un texte, d’une page web ou encore d’un livre. Plus un mot est présent dans le texte pris en considération, plus il apparaît en gros dans le wordcloud.
Il existe de nombreux sites et applications pour générer des wordclouds facilement et gratuitement. Par exemple, en voici un qui a été généré à partir d’un de nos articles d’introduction à la data science :
Il s’agit bien d’un wordcloud, mais il paraît difficile de l’utiliser pour en tirer les notions principales du texte considéré. De plus, on ne peut pas personnaliser sa forme, ses couleurs…
Si vous souhaitez customiser votre wordcloud pour le rendre plus exploitable et plus beau, il peut paraître judicieux d’utiliser Python plutôt qu’une application trouvée sur internet.
Comment créer son wordcloud sur python?
La première chose à faire est d’importer les librairies dont nous allons avoir besoin.
WordCloud et matplotlib.pyplot nous permettront d’afficher un wordcloud basique tandis que numpy et Image vont nous être utiles par la suite pour personnaliser la forme de notre wordcloud.
On commence par stocker le texte que l’on veut transformer en wordcloud dans une variable (appelée ‘text’ ici).
Pour comparer les résultats obtenus sur l’application à ceux que l’on peut avoir sur Python, nous utilisons le même texte que précédemment.
Nous sommes prêts à afficher notre premier wordcloud :
Certes, ce wordcloud est encore moins exploitable que celui que l’on a généré depuis un site, mais pas de panique! Nous allons vite l’améliorer.
La première chose qui saute aux yeux, c’est que les mots comme ‘de’, ‘la’, ‘le’… ont une importance démesurée dans notre wordcloud (c’est logique puisqu’ils sont très souvent utilisés). Cependant, ils ne sont d’aucune aide quand on essaye de repérer les notions clés d’un texte: on aimerait bien s’en débarrasser.
Heureusement, il est facile de supprimer les mots non pertinents en les stockant dans une liste et en utilisant l’argument stopwords :
C’est déjà beaucoup mieux! On peut enfin tirer des informations pertinentes de notre wordcloud.
Un problème persiste : le rendu n’est vraiment pas beau, il faut régler ça.
Commençons par personnaliser sa forme.
Pour cela, on doit simplement choisir un masque (par exemple ici nous allons utiliser un masque en forme de nuage, disponible sur google images).
Pour rendre ce masque exploitable par la librairie python, il faut que nous le transformions en tableau numpy. Si une valeur du tableau est “255”, alors aucun mot d’apparaîtra dans la zone correspondante.
Enfin, on peut personnaliser la couleur de notre wordcloud en utilisant la méthode recolor.
Ici, on crée une fonction couleur qui permet de colorer chaque mot dans un ton bleuté:
On a enfin un wordcloud exploitable et (relativement) beau!
En plus, nous n’avons utilisé que les fonctions les plus basiques de la librairie python.
Si vous voulez aller plus loin, et apprendre des choses encore plus intéressantes que les wordclouds, vous pouvez nous contacter directement en ligne pour avoir plus d’informations sur nos formations en data science !