Tutoriel: Comment coder un
robot journaliste!

Ce tutoriel est une version simplifiée d’un atelier donné pour la Fédération professionnelle des journalistes du Québec.

Ce n’est plus une surprise pour personne: les robots envahissent tous les secteurs d’activité, et le journalisme n’est pas en reste.

En mars 2014, un algorithme codé par le journaliste Ken Schwencke du Los Angeles Times écrivait automatiquement un article concernant un tremblement de terre survenu dans la région. De nos jours, des articles économiques, sportifs et même politiques sont écrits par des algorithmes.

Inspiré par mon collègue américain et son initiative qui a beaucoup fait parler d’elle, je vous montre ici comment créer votre propre robot qui écrira des articles à votre place, le tout à l’aide du langage de programmation Python. Notre robot reporter va extraire les données concernant les tremblements de terre ayant eu lieu au Canada et va écrire tout seul un bref article sur le plus récent à s’être produit dans la zone sismique de Charlevoix!

Si vous n’avez jamais codé de votre vie, je vous suggère de commencer par un autre de mes tutoriels, intitulé Vos premiers pas en programmation. Mais vous pouvez aussi tout simplement lire l’article ci-dessous par simple curiosité! 🙂

*****

Dans de nombreux cas, les articles écrits par les journalistes se ressemblent. Que ce soit une partie de soccer, des résultats financiers ou un tremblement de terre, le reporter fait toujours à peu près la même chose: il analyse des données, puis écrit un texte dont la structure est toujours plus ou moins la même.

De façon simplifiée, c’est comme si le journaliste avait un texte un trou et qu’il le comblait avec des données différentes à chaque fois. Par exemple:

Un séisme d’une magnitude de XX a frappé XX à XX h XX min.

Donc, si on trouve les données correspondantes, on sera facilement capable de combler les trous et notre article sera écrit!

 

I Extraire les données

Dans le cas d’un tremblement de terre, les données utilisées se résument grosso modo à la date, la magnitude et le lieu. Ces informations sont toujours formatées de la même manière et présentées de la même façon par les autorités.

Par exemple, dans le cas des tremblements de terre au Canada, les plus récentes secousses se retrouvent automatiquement sur le site de Séisme Canada. Sur ce site web, vous avez accès à tous les tremblements de terre des 30 derniers jours (vous pouvez même avoir tous ceux de la dernière année).

tremblement dernier mois

Si vous jetez un coup d’oeil au code source de ce tableau, vous allez vous rendre compte qu’il s’agit d’un tableau html.

tableau tremblement

Les cellules de chaque colonne possèdent un headers. C’est parfait, les données vont être très faciles à extraire.

Pour manipuler le code html, vous allez avoir besoin de la librairie BeautifulSoup. Si vous ne l’avez pas déjà installée, faites le en ouvrant votre terminal et en tapant le code ci-dessous. En cas de problème, suivez les instructions de la documentation officielle.

sudo beautifulsoup

Et voici le code complet pour extraire les données en Python!

En Python, on peut faire des commentaires dans le code en les précédant de #. L’ordinateur ne les prendra pas en compte. J’utilise cette technique pour vous expliquer le code ci-dessous. Seule exception: les deux premières lignes, que l’ordinateur utilise pour savoir quel encodage il doit utiliser.

Une fois le script lancé dans votre terminal, vous devriez voir les informations de chaque tremblement de terre apparaître à l’écran.

terminal_donnes_tremblement

II Écrire le texte

Maintenant que nos données sont traitées et bien organisées dans une liste, il ne nous reste plus qu’à écrire notre article!

Pour cet exemple, on va écrire un texte à propos du plus récent tremblement de terre ayant eu lieu dans la zone sismique de Charlevoix, non loin de la ville de Québec.

Je vous disais qu’on allait combler un texte à trou. En fait, on va faire un petit peu plus que cela. Notre texte va s’adapter à nos données! Par exemple, en fonction de la magnitude, notre robot va utiliser des formulations différentes pour insister sur la puissance du tremblement de terre ou, au contraire, sa faible intensité.

Pour ce faire, on ajoute les lignes suivantes à notre script.

En ajoutant cette partie du script à la première, vous obtiendrez un robot capable d’écrire un article tout seul!

Lancez le script dans votre terminal. Normalement, vous devriez voir quelque chose qui ressemble à ceci.

article pret tremblement

III Conclusion

Et voilà! Vous venez de créer un algorithme capable d’écrire sur commande un article sur le plus récent tremblement de terre dans la région sismique de Charlevoix!

Pour l’instant, ce robot est très simple. Mais vous pouvez le complexifier pour composer un article plus fourni avec davantage de données, avec davantage de variations dans la structure ou même pour ajouter une carte interactive à partir des coordonnées géographiques.

Et, évidemment, le plus intéressant serait d’ajouter quelques lignes de code à votre robot reporter pour qu’il surveille la page de Séisme Canada, détecte lorsqu’un tremblement de terre vient de se produire à Charlevoix et publie automatiquement un article sur votre site web!

N’hésitez pas à me suivre sur Twitter, Facebook et LinkedIn pour être tenu au courant de mes prochains tutoriels. 🙂

 

Un commentaire sur “Tutoriel: Comment coder un
robot journaliste!

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *