Trucs et astuces

Comment je prépare le tableau de bord des sujets les plus traités par les sites d’actu

Cap­ture d’écran d’un script Python

C’est sans doute le pro­jet le plus ambi­tieux et le plus com­plexe que j’aie mené à bien depuis que j’ai lan­cé Dans mon labo il y a bien­tôt quatre ans. Il m’a fal­lu pas mal d’après-midi plu­vieux et de jours fériés bla­fards pour ter­mi­ner le tableau de bord qui liste les sujets les plus pré­sents dans les sites d’actualité fran­çais.

Il est deve­nu pos­sible grâce aux pro­grès que j’ai réa­li­sés en Python, un lan­gage de pro­gram­ma­tion pri­sé des data­jour­na­listes. De mon côté, j’ai dû sérieu­se­ment m’y mettre cou­rant 2017, notam­ment pour affi­cher en direct les résul­tats des élec­tions légis­la­tives au sein de la carte inter­ac­tive que j’ai pré­pa­rée pour Contexte.

Pour explo­rer les flux XML mis à dis­po­si­tion par le minis­tère de l’Intérieur le soir des scru­tins, j’ai trou­vé en Python, avec sa syn­taxe acces­sible et ses mul­ti­plies librai­ries dis­po­nibles, un par­te­naire idéal. (Mais il est aus­si pos­sible de faire ça très bien avec d’autres solu­tions, comme R.)

Et ces connais­sances m’ont ouvert de nou­veaux hori­zons, notam­ment ceux de la recon­nais­sance auto­ma­ti­sée d’entités nom­mées. Un domaine qui, m’a-t-on expli­qué, a beau­coup pro­gres­sé grâce au patient tra­vail de des­crip­tion et de clas­se­ment réa­li­sé par les contri­bu­teurs de Wiki­pe­dia.

J’ai d’abord tra­vaillé, tou­jours pour Contexte, sur les thé­ma­tiques les plus pré­sentes dans le dis­cours des dépu­tés pour enri­chir le trom­bi­no­scope de l’Assemblée natio­nale que le site pro­pose à ses abon­nés. C’est alors que m’est venue l’idée de pro­po­ser une démarche com­pa­rable, mais avec les médias en ligne.

1. Scraper les flux RSS des sites d‘actu avec Python

J’ai lis­té, dans une Google Sheet, les sites que je sou­hai­tais étu­dier, en ren­sei­gnant pour cha­cun l’adresse de son flux RSS prin­ci­pal.

Mon script de scra­ping (dis­po pou les curieux) com­mence par récu­pé­rer cette liste, et va cher­cher dans chaque flux le titre et la des­crip­tion (le cha­pô ou le début du texte) de chaque article. Il récu­père aus­si sa date de publi­ca­tion, et enre­gistre le tout dans un fichier Json dédié à chaque site (voir par exemple celui du Monde).

Tous les flux RSS n’étant pas construits de la même façon, il a fal­lu prendre en compte les dif­fé­rents cas de figure : ain­si, le résu­mé de l’article se trouve dans un élé­ment qui peut être nom­mé « des­crip­tion », « sum­ma­ry », « content»…

2. Créer un corpus de textes et le faire analyser par TextRazor

La suite de ce script va conca­té­ner ensemble les titres et résu­més de chaque article publiés dans une période don­née (depuis sept jours, cette semaine ou ce mois) pour en faire un seul et même texte.

Ce cor­pus va ensuite être envoyé à Tex­tRa­zor, via la librai­rie Python que met à dis­po­si­tion ce ser­vice d’analyse séman­tique. Ce der­nier est gra­tuit jusqu’à 500 requêtes par jour, un quo­ta lar­ge­ment suf­fi­sant pour ce pro­jet.

Par­mi les ser­vices équi­va­lents, Tex­tRa­zor a un autre avan­tage : non seule­ment son outil d’extraction des enti­tés nom­mées ren­voie la liste des thé­ma­tiques détec­tées au sein du cor­pus sou­mis, mais il four­nit aus­si pour cha­cune un score de rele­vance («per­ti­nence », que j’ai fina­le­ment tra­duit en « pré­sence » dans mon tableau de bord).

Ain­si, s’il détecte les mots « GPA », « ges­ta­tion pour autrui » ou « mère por­teuse » dans un texte, Tex­tra­zor réunit ses expres­sions dans une seule thé­ma­tique (en géné­ral le titre de la notice Wiki­pe­dia dédiée). Et donne à cette der­nière une note, de 0 à 1, selon que l’entité lui semble plus ou moins per­ti­nente dans le texte four­ni.

C’est à la fois la force et la fai­blesse de ma méthode : ce sco­ring me per­met de géné­rer les mul­tiples clas­se­ments, mais je n’ai pas « la main » sur son éla­bo­ra­tion.

Mal­gré quelques mau­vaises sur­prises, l’observation des résul­tats obte­nus m’a toute fois ras­su­ré : Le Pari­sien est en géné­ral le média où le thème « Paris » est le plus pré­sent ; on retrouve sou­vent « Jean-Luc Mélen­chon » bien clas­sé dans les résul­tats de Poli­tis ; Sput­nik et RT France sont bien pla­cés au clas­se­ment pour le thème « Vla­di­mir Pou­tine ».

4. Héberger les scripts sur un serveur chez PythonAnywhere

Cette par­tie-là du chan­tier serait une pro­me­nade de san­té pour un déve­lop­peur back-end même débu­tant. A un jour­na­liste bidouilleur comme moi, elle a pris pas mal de temps et d’énergie.

Une fois le script Python décrit ci-des­sus mis au point, je ne pou­vais pas l’exécuter moi-même plu­sieurs fois par jour sur mon ordi­na­teur afin de dis­po­ser de don­nées tou­jours fraîches pour ali­men­ter un éven­tuel tableau de bord.

Sur les conseils d’amis déve­lop­peurs, j’ai regar­dé plu­sieurs offres d’hébergement comme Ama­zon Web Ser­vices ou Google Cloud Plat­form, mais la lon­gueur des pro­cé­dures d’installation et des tuto­riels pro­po­sés m’a vite refroi­di. Je me suis rabat­tus sur Python Anyw­here. un ser­vice peu oné­reux et qui s’est révé­lé mieux adap­té à un noob comme moi.

Même avec cette solu­tion, je suis pas­sé par mal, de guides d’utilisation, de pages d’aide et de ques­tions Stack Over­flow avant d’arriver mes fins : faire tour­ner mon script de scra­ping plu­sieurs fois par jour.

4. Créer le tableau de bord en front à partir d’un fichier Json optimisé

Une fois toutes ces listes de thé­ma­tiques récu­pé­rées et enre­gis­trées dans le fichier Json de chaque média, un autre script Python, lui aus­si héber­gé sur Pytho­nA­nyw­here, va pré­pa­rer un fichier Json com­mun et de taille réduite.

Ce der­nier sera récu­pé­ré, au moment où le tableau de bord publié Dans mon labo se charge, par votre navi­ga­teur.  Au final, c’est donc Chrome, Fire­fox ou Edge qui va construire l’infographie à l’intérieur de la page.

Je ne détaille­rais pas sur ce tra­vail de déve­lop­pe­ment front-end, clas­sique com­bi­nai­son de HTML, de CSS et de Javas­cript, mais si vous avez des ques­tions sur cette par­tie, je serai ravi d’y répondre !

A ce stade, la prin­ci­pale dif­fi­cul­té pour moi a été de s’assurer que le char­ge­ment des don­nées puis la construc­tion de l’infographie se fasse dans un délai rai­son­nable : lors des pre­mières étapes, le tout pre­nait par­fois une bonne dizaine de secondes, ce qui es rédhi­bi­toire.

Pour chaque média, j’ai choi­si de ne pas inté­grer une thé­ma­tique si son score était infé­rieur à un cer­tain seuil (en ce moment, 0,4/1), et de n’afficher une thé­ma­tique dans la liste prin­ci­pale que si elle était pré­sente dans au moins quatre médias.

Il m’a fal­lu pas mal d’allers-retours entre scripts Python sur le ser­veur et code Javas­cript dans le navi­ga­teur pour réduire ce délai et obte­nir une expé­rience suf­fi­sam­ment fluide, mais il  reste sans doute pas mal d’optimisation pos­sible.

5. Préparer la suite avec des analyses hebdomadaires et mensuelles

Comme beau­coup l’ont fait remar­quer dès la publi­ca­tion du tableau de bord, les résul­tats seront inté­res­sants à obser­ver dans le temps, au-delà de la pho­to­gra­phie actuelle (les sept der­niers jours). Mon script réa­lise déjà des ana­lyses heb­do­ma­daires et men­suelles, qui ne sont pas affi­chées mais que j’espère uti­li­ser quand j’aurais davan­tage de recul.

Voi­là ! Je suis en tout cas curieux de savoir vos remarques, cri­tiques ou pro­po­si­tions d’amélioration dans les com­men­taires de ce post ou bien, pour les timides, dans un mes­sage pri­vé.

Mis à jour le 2/2 à 10h15. Pré­ci­sion sur les seuils (point 4) et point 5 ajou­té.

Comment j’ai réalisé les cartes de France de la VO et de la VF

Comme sou­vent, le tra­vail que j’ai réa­li­sé pour ma petite enquête sur la France de la VO et celle de la VF met en jeu toute une série d’outils que j’ai décou­vert au fil des ans, qu’il s’agisse de scra­ping, de join­tures de tables ou de repré­sen­ta­tion par ana­mor­phoses. L’ensemble des don­nées dont je me suis ser­vi est dis­po­nible dans une Google Sheet.

Je vais en décrire les dif­fé­rentes étapes, ce qui peut être utile si vous sou­hai­tez vous lan­cer dans un chan­tier com­pa­rable. N’hésitez pas à mettre votre grain de sel dans les com­men­taires.

1. Récupérer la liste des séances avec un scraping en deux étapes avec Outwit Hub

Pour com­men­cer, il fal­lu que je me consti­tue une base conte­nant l’ensemble des salles de ciné­ma de France. Par chance, le site Cine­fil pro­pose des pages lis­tant tous les cinés d’un dépar­te­ment (par exemple, ceux situés dans l’Ain).

J’ai d’abord géné­ré auto­ma­ti­que­ment une URL pour chaque dépar­te­ment sur cinefil.com dans Google Sheet. J’ai ouvert cette pre­mière liste dans Out­wit Hub, un logi­ciel de scra­ping qui m’a per­mis de ras­sem­bler une liste de 1 409 salles. Pour cha­cune, j’ai aus­si récu­pé­ré l’URL de sa page sur cinefil.com.

Sur ces 1 409 URL, j’ai fait pas­ser un second scra­per, afin de récu­pé­rer la liste des films dif­fu­sés dans chaque salle sur une jour­née, avec les horaires des séances et la ver­sion dif­fu­sée (VF ou VO). J’ai obte­nu ain­si une liste de 14 423 films et de 20 182 séances.

2. Déterminer la langue de tournage dans chaque film avec OMDB

Après quelques heures de tra­vail, je me suis aper­çu d’une chose toute bête mais qui m’avait échap­pé : sur Cine­fil, les séances des films en langue fran­çaise sont indi­quées « en VF », ce qui ne per­met pas de les dif­fé­ren­cier auto­ma­ti­que­ment des films en langue étran­gère dif­fu­sés en VF

Il a donc fal­lu que j’établisse une liste des 982 films dif­fé­rents dif­fu­sés sur toute la France ce jour-là (le 28 avril), et que je trouve un moyen de déter­mi­ner, pour cha­cun d’entre eux, s’il s’agit à l’origine d’un film tour­né en langue fran­çaise ou en langue étran­gère.

L’API Omdb m’a per­mis de récu­pé­rer cette infor­ma­tion dans un bon nombre de cas, par l’intermédiaire de Cloud Ignite, un module com­plé­men­taire de Google Sheet par­ti­cu­liè­re­ment pra­tique.

Pour le reste, j’ai réa­li­sé des croi­se­ments – par exemple, un film qui n’est dif­fu­sé qu’en VO sur toute la France ne peut être qu’un film en langue étran­gère – et des déduc­tions – par exemple, une copro­duc­tion France/Suisse/Belgique a de bonnes chances d’être tour­née en fran­çais.

Ce tri s’est révé­lé fas­ti­dieux et le résul­tat n’est pas garan­ti sans erreurs, mais j’ai esti­mé sa fia­bi­li­té suf­fi­sante pour conti­nuer à avan­cer, en met­tant de côté tous les films en langue fran­çaise.

3. Géolocaliser chaque salle de cinéma avec ezGecode

J’avais déjà récu­pé­ré l’adresse et le code pos­tal de chaque ciné­ma sur sa page Cine­fil. Pour en déduire sa lati­tude et sa lon­gi­tude, j’ai uti­li­sé un autre module com­plé­men­taire de Google Sheet, ezGeo­code.

La grande majo­ri­té des salles a ain­si été géo­lo­ca­li­sée auto­ma­ti­que­ment et avec une très bonne fia­bi­li­té, et j’ai réus­si à pla­cer le reste grâce à des recherches manuelles dans Google Maps.

 4. Déterminer le code commune pour chaque salle de cinéma

Afin de « marier » la base que je me suis ain­si consti­tuée avec les don­nées démo­gra­phiques four­nies par l’Insee ou les résul­tats élec­to­raux dis­po­nibles sur le site du minis­tère de l’Intérieur, il me fal­lait déter­mi­ner le code Insee de la com­mune où se trouve cha­cun des ciné­mas de ma liste.

J’ai pu le faire grâce à une table de cor­res­pon­dances et à la base offi­cielle des codes pos­taux, toutes deux dis­po­nibles sur Data.gouv.fr. Une série de recherches ver­ti­cales plus tard, j’avais pour chaque salle de ciné­ma des infor­ma­tions comme la popu­la­tion de la ville, le taux de pau­vre­té, le vote Macron…

Des tableaux croi­sés dyna­miques m’ont ensuite per­mis de conso­li­der les résul­tats pour cha­cune des 278 loca­li­tés fran­çaises pour­vues d’au moins une salle de ciné­ma (avec au moins une séance pro­gram­mée ce jour-là), puis pour chaque dépar­te­ment.

5. Réaliser les deux cartes interactives avec Carto

J’ai ensuite pré­pa­ré deux séries de don­nées, l’une avec toutes les salles où la part de la VO est majo­ri­taire (#team­vo), et l’autre avec les salles plu­tôt VF (#teamvf).

J’ai créé deux cartes basées sur ces jeux dans Car­to, et j’ai ajou­té dans cha­cune d’elle un calque sup­plé­men­taire, avec les contours de chaque dépar­te­ment et une cou­leur en fonc­tion de la part de la VO ou de la VF à cette échelle.

J’ai pas­sé pas mal de temps à cher­cher des réglages satis­fai­sants pour la taille des cercles, les nuances de cou­leurs ou encore la répar­ti­tion des dépar­te­ments en cinq caté­go­ries (choix des inter­valles).

6. Réaliser les cartes anamorphosées avec Qgis et Scapetoad

J’avais déjà uti­li­sé les ana­mor­phoses (car­to­grams en anglais) pour une série de cartes du monde tel que le voient les médias fran­çais qui avait tapé dans l’œil de pas mal d’observateurs. J’avais envie de com­men­cer mon article avec ce type de visiuels, que je trouve facile à appré­hen­der même pour des lec­teurs peu friands d’infographies.

J’ai récu­pé­ré un tra­cé des dépar­te­ments fran­çais au for­mat sha­pe­file sur OpenS­treet­Map.

J’ai ouvert ce fichier dans l’éditeur de cartes Qgis afin d’associer à chaque dépar­te­ment le nombre de séances en VO et en VF pour un mil­lion d’habitants.

C’est sur la base de ces deux don­nées que j’ai réa­li­sé les défor­ma­tions de la carte de France dans Sca­pe­Toad, un petit uti­li­taire dédié à la créa­tion d’anamorphoses.

7. Créer une série de graphiques dans Datawrapper

Pour ter­mi­ner, j’ai repris une der­nière fois mes don­nées pour iso­ler une série de chiffres de syn­thèse afin de créer les gra­phiques de syn­thèses qui figurent à la fin de l’article, en repre­nant les codes cou­leur.

Comment j’ai réalisé les cartes du monde selon les médias français

C’est sans doute l’expérience publiée sur ce site qui m’a don­né le plus de fil à retordre. Il a fal­lu pas­ser par de nom­breuses et fas­ti­dieuses étapes pour arri­ver à la publi­ca­tion de la série de cartes du monde tel que le voient les médias fran­çais Dans mon labo.

Mais je suis content du ren­du un peu arty de ces ana­mor­phoses – j’ai emprun­té l’idée et une par­tie de la méthode à Alter­mondes, qui en avait réa­li­sé une à l’occasion de sa cam­pagne de crowd­fun­ding.

1. Scraper les résultats de recherche Google en Python

C’était la pre­mière fois que je réa­li­sais un tra­vail d’extraction auto­ma­tique de don­nées en conce­vant un script dans un lan­gage de pro­gram­ma­tion plu­tôt qu’en uti­li­sant un logi­ciel dis­po­sant d’une inter­face gra­phique, comme Out­wit Hub.

Je me suis ser­vi de Scra­py, un outil qui m’a beau­coup faci­li­té la tâche, mais que je n’ai pas réus­si à ins­tal­ler sur mon Mac (la faute à El Capi­tan, semble-t-il) : il a fal­lu res­sor­tir un por­table sous Linux pour par­ve­nir à le lan­cer.

La mise au point du script m’a pris pas mal de temps, mais une fois que j’ai com­pris la logique, j’ai avan­cé rela­ti­ve­ment vite : il suf­fi­sait en effet de repé­rer l’endroit de la page des résul­tats de recherche où figure la men­tion « Envi­ron x résul­tats ».

Le plus com­pli­qué à été de com­po­ser avec les sécu­ri­tés qui se déclenchent sur les ser­veurs de Google quand on le sol­li­cite trop : même en ralen­tis­sant beau­coup le rythme du robot pas­sant sur ces pages, je finis­sais tou­jours par voir mon adresse IP blo­quée.

2. Analyser les résultats dans Google Sheets

C’est en com­men­çant à trier et à fil­trer les résul­tats obte­nus que je me suis aper­çu qu’ils n’étaient pas tou­jours fiables : pour cer­tains pays, les résul­tats trou­vés dans Google Actua­li­tés (tous médias confon­dus) étaient en effet ajou­tés au résul­tats trou­vés sur un média par­ti­cu­lier…

J’ai alors ten­té ma chance sur Bing, mais ce der­nier ne per­met pas d’effectuer une recherche com­bi­nant plu­sieurs termes (avec l’opérateur OR) en ciblant un nom de domaine par­ti­cu­lier.

De retour sur Google, j’ai fini par obte­nir des don­nées cohé­rentes en limi­tant la recherche aux pages publiées lors de l’année écou­lée.

Il a fal­lu aus­si trai­ter quelques cas par­ti­cu­liers – par exemple, le mot « Cana­da » appa­raît sur toutes les pages du Huf­fing­ton Post et de Buzz­feed, ces deux sites pro­po­sant un accès vers leur édi­tion cana­dienne.

Il reste sans doute de petites aber­ra­tions de ce genre dans les don­nées uti­li­sées pour faire les cartes, mais j’ai consi­dé­ré qu’elles n’étaient pas pré­ju­di­ciables, vu la taille finale des cartes et leur niveau impor­tant de défor­ma­tion.

3. Ajouter les résultats obtenus à une carte du monde grâce à QGIS

Le logi­ciel de car­to­gra­phie avan­cé QGIS m’a per­mis d’ouvrir un sha­pe­file (fichier de contours) trou­vé sur The­ma­tic­Map­ping et de lui asso­cier mes propres don­nées via des recherches ver­ti­cales dans la table.

Pour que ça marche, il faut une clé com­mune aux deux fichiers : en l’occurence, le code ISO à trois chiffres, que j’avais pris soin d’utiliser pour chaque pays étu­dié – je l’ajoute désor­mais sys­té­ma­ti­que­ment à toutes mes feuilles de cal­cul quand elles sont basées sur des pays, une pré­cau­tion qui se révèle sou­vent utile.

4. Réaliser les anamorphoses avec ScapeToad

Dis­po­nible sur tous les OS via Java, Sca­pe­Toad est un petit logi­ciel plu­tôt bien fichu qui va réa­li­ser la défor­ma­tion du fichier sha­pe­file en tenant compte, pour chaque pays, d’une valeur numé­rique dis­po­nible dans la table asso­ciée au fichier de contours.

Le résul­tat peut être enre­gis­tré au for­mat d’image vec­to­riel SVG, ce qui per­met de l’utiliser ensuite à n’importe quelle taille.

Atten­tion : pour une carte du monde, les temps de cal­cul et de sau­ve­garde sont impor­tants (sur­tout quand il faut recom­men­cer la mani­pu­la­tion vingt fois pour vingt médias dif­fé­rents…).

5. Améliorer le résultat dans Adobe Illustrator

Le fichier SVG obte­nu peut être faci­le­ment ouvert et modi­fié dans Illus­tra­tor, ce qui m’a per­mis de chan­ger la cou­leur et la trans­pa­rence des pays, et de créer une ver­sion PNG uti­li­sée pour le par­tage Face­book.

Une fois les vingt cartes obte­nues, j’ai créé la petite info­gra­phie per­met­tant de bas­cu­ler d’un média à l’autre en HTML, CSS et JQue­ry. Enfin, j’ai uti­li­sé Data­wrap­per pour réa­li­ser les deux gra­phiques éga­le­ment pré­sents dans l’article.

3 outils pour organiser le boulot d’une rédac’ web (enfin, essayer)

Image extraite du fim "Playtime” de Jacques Tati.
Image extraite du fim « Play­time” de Jacques Tati.

Avant, orga­ni­ser le tra­vail de sa rédac­tion, c’était simple. On accro­chait les pages déjà envoyées à l’imprimeur sur un des murs, et quand ce mur était rem­pli, c’est qu’on pou­vait aller boire un canon. Ailleurs, on lis­tait sim­ple­ment les sons ou les vidéos prêtes à être dif­fu­sés dans un conduc­teur, en notant leur durée et en fai­sant gaffe à ne pas empié­ter sur l’émission qui vient après.

Et puis boum, le web est arri­vé. La place est infi­nie, et désor­mais, le seul fac­teur limi­tant, c’est l’énergie des jour­na­listes qui doivent publier les conte­nus. Et peu à peu, l’offre des sites d’actu s’est diver­si­fiée, ne se limi­tant plus à la reprise de dépêches AFP plus ou moins enri­chies.

Com­ment dès lors évi­ter le chaos et orga­ni­ser le tra­vail de son équipe, sachant que cer­tains conte­nus peuvent être pré­pa­rés en quelques minutes (voire en quelques secondes, s’agissant d’un tweet), quand d’autres vont prendre des jours voire des semaines ?

Le meilleur outil, c’est celui dont on se sert

Et com­ment s’assurer d’avoir un flux de copie assez nour­ri pour ali­men­ter ces bêtes insa­tiables que sont les sites de flux, où l’internaute doit trou­ver du nou­veau à se mettre sous la sou­ris à chaque heure du jour ou de la nuit ?

Je liste ici trois outils qui peuvent vous être utiles, mais le plus inté­res­sant sera sans doute vos propres méthodes et les témoi­gnages que vous allez lais­ser dans les com­men­taires ci-des­sous.

Gar­dez en tête aus­si que le meilleur outil du monde, c’est celui dont on se sert. Donc si vous avez pour habi­tude de grif­fon­ner la liste des trucs en cours sur les dos d’une vieille enve­loppe, et que tout le monde est heu­reux comme ça, vous n’avez sans doute pas besoin de lire la suite.

Et puis ne rêvez pas : ce n’est pas parce que vous leur met­tez en place un sys­tème d’organisation que vos troupes vont spon­ta­né­ment s’en empa­rer – c’est l’effet « j’ai ouvert un Google Doc pour que tout le monde mette ses idées mais per­sonne ne s’en sert !»

Si vous sou­hai­tez que le col­lec­tif adopte votre nou­vel outil, c’est à d’abord à vous de vous en ser­vir et de vous assu­rer qu’il soit à jour. C’est seule­ment au bout de quelques semaines à mon­trer l’exemple que vos col­lègues seront (peut-être) assez convain­cus de l’utilité de votre « usine à gaz » qu’ils auront envie de mon­ter à bord à leur tour.

1. Trello, de la liste des courses au projet complet

Exemple de tableau de bord Trello (cliquez pour agrandir).
Exemple de tableau de bord Trel­lo (cli­quez pour agran­dir).

C’est un outil très simple à prendre en main et d’une grande plas­ti­ci­té : Trel­lo peut vous ser­vir à gérer votre liste de courses heb­do­ma­daire comme à mener à bien un pro­jet de nou­velle rubrique ou de refonte.

Le prin­cipe : sur un tableau de bord,  on liste toutes les tâches de l’équipe dans des colonnes qu’on peut nom­mer, dépla­cer et mul­ti­plier à volon­té. Exemple sur l’image ci-des­sous : sujets « pos­sibles », « prêts à publier », « publiés » et « repor­tés ».

Le vrai plus de Trel­lo, c’est qu’il fonc­tionne comme des pou­pées russes :

  • En cli­quant sur une tâche prin­ci­pale, on peut y lis­ter des tâches secon­daires, ajou­ter des fichiers, des com­men­taires, un indi­ca­teur colo­ré…
  • On peut mul­ti­plier les tableaux de bord : par exemple un pour le ser­vice sports et un autre pour le ser­vice inter­na­tio­nal, ou encore un pour les sujets à court terme et un autre pour les enquêtes à long terme.

2. Google Sheet, pour les amoureux des feuilles de calcul

Exemple de “backlog” réalisé avec Google Sheet.
Exemple de “back­log” réa­li­sé avec Google Sheet.

Si vous êtes comme moi un amou­reux du tableur en ligne Google Sheet, sachez que vous pou­vez aus­si l’utiliser comme un ges­tion­naire de pro­jets, et qu’il se révèle, de façon sur­pre­nante, très effi­cace dans ce rôle – voir l’exemple d’un site d’étudiants en école de jour­na­lisme dont j’ai pilo­té le lan­ce­ment, ci-des­sus.

Dans ce cas, vous par­ta­ge­rez votre docu­ment avec tous les col­la­bo­ra­teurs concer­nés, puis vous lis­te­rez un sujet par ligne de votre tableau (pen­sez à figer la ligne d’en-tête). Ensuite, vous aurez besoin des fonc­tion­na­li­tés sui­vantes :

  • Com­men­taire de cel­lule. Je l’ai décou­vert il y a peu : un fil de com­men­taires peut être créé pour chaque cel­lule d’une feuille. Les par­ti­ci­pants à cette conver­sa­tion très ciblée reçoivent une noti­fi­ca­tion par e-mail à chaque nou­veau post.
    Clic droit sur la cel­lule -> « Insé­rer un com­men­taire » dans le menu contex­tuel
  • Mise en forme condi­tion­nelle. Per­met, par exemple, de pas­ser une cel­lule sur fond rouge si le mot « impor­tant » est détec­té à l’intérieur.
    Menu For­mat -> Mise en forme condi­tion­nelle
  • Tri des don­nées. Per­met de chan­ger l’ordre des lignes selon l’une des colonnes, par exemple pour affi­cher les sujets mar­qués « impor­tants » en pre­mier.
    Clic droit sur la lettre de la colonne concer­née, puis « Trier de A à Z »
  • Vues fil­trées. Per­met, par exemple, uni­que­ment les sujets pour les­quelles la colonne « état d’avancement » est « en cours » et la colonne « prio­ri­té » est « très impor­tant ».
    Menu Don­nées -> Vues fil­trées
  • Vali­da­tion des don­nées. Per­met de for­cer l’utilisateur à choi­sir le conte­nu d’une cel­lule entre plu­sieurs valeurs pré­dé­ter­mi­nées, et de créer un petit menu dérou­lant.
    Menu Don­nées -> Vali­da­tion
  • Pro­tec­tion de plages. Per­met de ver­rouiller cer­taines feuilles, cer­taines colonnes ou cer­taines plages de cel­lules, afin d’éviter que des uti­li­sa­teurs patauds ne mettent le bazar dans votre bel édi­fice.
    Menu Don­nées -> Feuilles et plages pro­té­gées
  • Retour à la ligne dans le texte des cel­lules. Par défaut, le texte d’une cel­lule est tron­qué s’il est trop long pour la taille de cette der­nière (sauf si la cel­lule d’à côté et vide). Mais on peut pré­voir un retour à la ligne auto­ma­tique. Atten­tion tout de même, dans ce cas, la hau­teur totale de votre feuille à l’écran va avoir ten­dance à aug­men­ter dan­ge­reu­se­ment, et vous per­drez le côté syn­thé­tique de l’outil.
    Icône « Acti­ver le retour à la ligne auto­ma­tique” de la barre d’outils
  • Et aus­si… Vous pou­vez expor­ter une feuille au for­mat PDF, par exemple pour com­mu­ni­quer l’état d’avancement à votre chef ou à toute l’équipe par e-mail ; consul­ter l’historique des révi­sions voire reve­nir à une ver­sion anté­rieure en cas de plan­tade ; attri­buer un iden­ti­fiant unique à chaque ligne pour une meilleure tra­ça­bi­li­té.

3. Basecamp, une belle interface pour des projets plus complexes

Capture d'écran d'une démo de Basecamp.
Cap­ture d’écran d’une démo de Base­camp.

C’est un peu la Rolls des ges­tion­naires de pro­jets : avec son desi­gn épu­ré et son inter­face aux petits oignons, Base­camp ne fait pas mal aux yeux quand on le charge et ne dérou­te­ra pas les moins agiles du cla­vier dans votre équipe.

Mais il n’est pas gra­tuit, et vous n’aurez peut-être pas besoin d’autant de fonc­tion­na­li­tés (calen­drier, groupe d’utilisateurs, fonds de docu­ments…) si vous ne publiez que trois articles par semaine.

Coté open source et gra­tuit, on peut citer Red­mine, mais son inter­face char­gée est davan­tage étu­diée pour des déve­lop­peurs, et elle risque de décou­ra­ger le com­mun des mor­tels.

Voi­là ! Main­te­nant c’est à vous de racon­ter vos expé­riences en termes d’outils et d’organisation du tra­vail en géné­ral.

Je passe dans beau­coup de rédac­tions et je vois beau­coup de sys­tèmes en place, mais sou­vent leurs uti­li­sa­teurs n’ont pas l’air très satis­faits, je pense qu’un peu de par­tage d’expérience fera du bien à tout le monde.

Comment j’ai exploré plus de 500 chroniques de Bernard Guetta

La liste des chroniques de Bernard Guetta dans Google Sheet.
La liste des chro­niques de Ber­nard Guet­ta dans Google Sheet.

Comme sou­vent pour les pro­jets que je mène Dans mon labo, ma petite enquête autour des chro­niques de Ber­nard Guet­ta sur France  Inter m’a ame­né à uti­li­ser toute une pano­plie d’outils. Je les passe rapi­de­ment en revue dans cet article, en espé­rant que ça vous aide pour vos propres tra­vaux.

1. Récupérer le texte des chroniques avec Outwit Hub

Cette pre­mière étape a été rapide, la construc­tion du site de France Inter le ren­dant très simple à « scra­per ». Une page d’archives pro­pose en effet des liens vers cha­cune des chro­niques. Je l’ai char­gée dans Out­wit Hub puis ai deman­dé à ce der­nier d’attraper toutes les URL concer­nés (elles contiennent toutes la chaîne de carac­tères « emis­sion-geo­po­li­tique»).

Tou­jours dans Out­wit Hub, j’ai ensuite mis au point un scra­per pour extraire les élé­ments inté­res­sants du code HTML de la page, à com­men­cer par le texte. Vous pou­vez télé­char­ger cet extrac­teur (c’est un petit fichier XML) et l’importer dans Out­wit Hub si vous sou­hai­tez faire un tra­vail simi­laire avec d’autres conte­nus publiés sur le site de France Inter.

2. Nettoyage des textes avec Open Refine

Les textes récu­pé­rés étaient glo­ba­le­ment propres. Open Refine m’a cepen­dant per­mis de sup­pri­mer de mon échan­tillon les chro­niques du rem­pla­çant de Ber­nard Guet­ta, Antho­ny Bel­lan­ger (clas­sées dans la même rubrique sur le site de France Inter), ain­si que quelques entrées sans texte (cor­res­pon­dant à des pages vides sur le site).

J’ai éga­le­ment éga­le­ment pu reti­rer le code du lec­teur vidéo Dai­ly­mo­tion par­fois pré­sent en haut des textes.

3. Décompte des pays dans Google Sheet

Une fois les don­nées net­toyées, je les ai expor­tées au for­mat CSV et impor­tées dans le tableur Google Sheet. J’ai ajou­té une feuille avec une liste des pays du monde com­pi­lée par Wiki­pe­dia.

Dans cette deuxième feuille, j’ai pu cher­cher, grâce à la fonc­tion COUNTIF, les occu­rences de chaque pays dans la colonne concer­née de la pre­mière feuille.

J’ai fait quelques tests et pas­sé en revue la liste pour trai­ter quelques cas par­ti­cu­liers. Par exemple, pour la Bir­ma­nie, le mot Myan­mar est par­fois uti­li­sé ; le Nigé­ria est par­fois écrit « Nige­ria » ; le mot Congo peut dési­gner deux pays, le Congo-Braz­za­ville ou le Congo-Kin­sha­sa : le mot Hol­lande est un pays mais aus­si un pré­sident fran­çais…

Il n’est d’ailleurs pas exclu qu’il reste des erreurs après ce trai­te­ment, n’hésitez pas à me contac­ter si vous pen­sez en avoir déce­lé.

4. Croisement avec les données de la Banque mondiale

Un module com­plé­men­taire de Google Sheet m’a per­mis de tra­duire auto­ma­ti­que­ment les cel­lules conte­nant le nom du pays du fran­çais vers sa ver­sion anglaise.

J’ai récu­pé­ré la liste des codes ISO à trois carac­tères des pays du monde, et grâce à la fonc­tion VLOOKUP, j’ai pu attri­buer le bon code ISO à chaque pays de ma propre liste, non sans une série de cor­rec­tions « à la main ».

Le tout est un peu fas­ti­dieux, mais quand cette mani­pu­la­tion fini, c’est magique : avec comme clé com­mune le code ISO, il devient facile de croi­ser un tel fichier avec des cen­taines d’autres dis­po­nibles sur le Web.

Le site de la Banque mon­diale contient ain­si des séries de don­nées sur beau­coup d’indicateurs : popu­la­tion, super­fi­cie, PIB… Et le tableau qu’on télé­charge contient aus­si le code ISO, la fonc­tion VLOOKUP per­met donc de faire le rap­pro­che­ment auto­ma­ti­que­ment et sans risque d’erreur.

Exemple de nuage de points dans Google Sheet
Exemple de nuage de points dans Google Sheet

J’ai ensuite uti­li­ser la fonc­tion CORREL de Google Sheet pour cher­cher très faci­le­ment des cor­ré­la­tions (par exemple entre la popu­la­tion d’un pays et le nombre de fois où il est cité) d’une colonne de mon docu­ment à l’autre.

5. Réalisation de la carte avec TileMill

Je ne vais pas m’étendre sur cette par­tie du tra­vail, d’autant que Tile­Mill n’est plus main­te­nu – il est cen­sé être rem­pla­cé par Map­box Stu­dio, logi­ciel que j’ai tes­té et que je n’aime pas trop.

je suis par­ti du sha­pe­file conte­nant les déli­mi­ta­tions de chaque pays (y com­pris les zones contes­tées, comme le Soma­li­land ou le Saha­ra occi­den­tal, ce qui peut être source de pro­blèmes), et j’ai pu insé­rer dans le fichier DBF asso­cié des colonnes conte­nant mes propres don­nées – non sans mal.

L’avantage de Tile­Mill, c’est qu’il per­met de une confi­gu­ra­tion très pré­cise de la carte, des cou­leurs avec les­quelles « colo­rier » les pays au desi­gn des info-bulles, en pas­sant par le niveau de détails sou­hai­té à chaque niveau de zoom.

L’inconvénient, c’est que tout ça prend beau­coup de temps, au point que je ne sais pas si je recom­man­de­rai un outil aus­si sophis­ti­qué pour un tra­vail plus régu­lier au sein d’une rédac­tion.

J’ai l’impression qu’aucune solu­tion de car­to­gra­phie actuelle ne donne plei­ne­ment satis­fac­tion quand on est plus un bri­co­leur qu’un déve­lop­peur, mais vous avez peut-être de bons tuyaux à échan­ger dans les com­men­taires.

La carte créée dans Tile­Mill s’exporte faci­le­ment dans un compte Map­box, depuis lequel on récu­père le code d’intégration, sous forme d’iframe et avec quelques options inté­res­santes, comme la désac­ti­va­tion du zoom via la molette de la sou­ris.

6. Etude des textes avec le logiciel de lexicométrie TXM

C«était la par­tie la plus nou­velle pour moi dans ce pro­ces­sus : tes­ter des outils de lexi­co­mé­trie. Le socio­logue Bap­tiste Coul­mont, que je remer­cie au pas­sage, m’a conseillé sur Twit­ter d’essayer TXM, logi­ciel pri­sé des cher­cheurs dans ce domaine.

J’ai dû pas­ser par pas mal de tuto­riels et de guides, pour apprendre par exemple à « éti­que­ter » un cor­pus de texte, afin de trier les mots entre adjec­tifs, adverbes, verbes… Au pas­sage, j’ai appris des mots rigo­los comme « hapax » ou « lem­ma­ti­sa­tion ».

Les fonc­tion­na­li­tés qui m’ont le plus bluf­fé sont l’affichage des concor­dances (les mots qui pré­cèdent ou suivent chaque occu­rence d’un mot don­né du texte) et celle des cooc­cur­rences (les mots qui se retrouvent sou­vent au voi­si­nage d’un mot don­né du texte).

Mais si les pos­si­bi­li­tés de cet outils semblent pas­sion­nantes, je recom­mande pas mal de patience à ceux qui veulent s’y col­ler.

7. Réalisation des graphiques avec Datawrapper

Pas grand chose à signa­ler ici : j’ai pré­pa­ré mes tableaux dans Google Sheet, je les ai copiés/collés dans Data­wrap­per et j’ai pu figno­ler la pré­sen­ta­tion des gra­phiques que vous avez vus.

Pré­ci­sion : l’intégration d’un gra­phique sur son propre site requiert désor­mais la sous­crip­tion à un abon­ne­ment payant, déci­sion que lequel Mir­ko Lorenz a expli­quée sur le blog de la socié­té.

Voi­là ! Il y avait sans doute bien plus simple pour arri­ver au même résul­tat, et je compte d’ailleurs sur vos conseils dans les com­men­taires ci-des­sous.

Je ne peux publier le cor­pus sur lequel j’ai tra­vaillé (ce serait une forme de repro­duc­tion sans auto­ri­sa­tion des textes), mais vous pou­vez télé­char­ger une syn­thèse par pays ou bien me contac­ter pour obte­nir l’ensemble de mes don­nées.

5 outils qui vont vous aider à sortir le scoop de l’année

Dustin Hoffman et Robert Redford dans « Les Hommes du président »
Dus­tin Hoff­man et Robert Red­ford dans « Les Hommes du pré­sident »

Ima­gi­nez la scène. Un homme vous a contac­té et don­né ren­dez-vous au der­nier sous-sol d’un par­king mal éclai­ré. En jetant des regards par des­sus son épaule, les doigts trem­blants, il vous confie un gros disque dur, en expli­quant qu’il y a là-dedans des docu­ments explo­sifs pour la mul­ti­na­tio­nale dans laquelle il tra­vaille. Puis il dis­pa­raît sans deman­der son reste.

Vous voi­là en pos­ses­sion de don­nées qui seront, peut-être, à l’origine du scoop de votre car­rière. Tout jour­na­liste web a rêvé de vivre un tel moment – d’ailleurs, Edward, si jamais tu passes par ici, sache que j’ai une clé PGP, moi, pas comme cet étour­di de Glenn Green­wald.

Pro­blème : « Il est rare qu’un lan­ceur d’alertes se pointe après avoir ras­sem­blé toutes les infor­ma­tions utiles aux jour­na­listes dans un texte de quinze pages », a rap­pe­lé le spé­cia­liste en data­jour­na­lisme Frie­drich Lin­den­berg lors de son inter­ven­tion au Fes­ti­val de jour­na­lisme de Pérouse la semaine der­nière.

C’est plus pro­ba­ble­ment dans un fatras de mil­liers de docu­ments au for­mat PDF, Excel, Word, Power­point et leurs équi­va­lents qu’il va vous fal­loir fouiller, si vous vou­lez y déni­cher l’information exclu­sive qui vous vau­dra la gloire.

Heu­reu­se­ment, de plus en plus d’outils existent pour vous aider dans ce genre de situa­tions, sou­vent mis au point pour les jour­na­listes à l’occasion des pré­cé­dentes fuites de grande ampleur. Lin­den­berg en a décrit six, que voi­ci :

Capture d'écran du site de de DocumentCloud.
Cap­ture d’écran du site de de Docu­ment­Cloud.

Plu­tôt que navi­guer à l’aveugle dans le disque dur qu’on vous a refi­lé, avec le ges­tion­naire de fichiers de Win­dows ou de Mac OS, Docu­ment­Cloud per­met de sto­cker l’ensemble des docu­ments, de les par­cou­rir plus confor­ta­ble­ment, de les anno­ter et même de les inté­grer ensuite à vos articles.

Comme vous ris­quez d’avoir besoin d’aide dans vos démarches, vous pour­rez aus­si don­ner accès à vos pré­cieux fichiers à d’autres uti­li­sa­teurs ou groupes d’utilisateurs, en gérant fine­ment les auto­ri­sa­tions des uns et des autres.

Pour créer votre compte sur ce ser­vice, il vous fau­dra cepen­dant deman­der un accès à l’équipe qui a fon­dé ce ser­vice, en pré­sen­tant votre pro­jet. Une fois ins­tal­lé, Docu­ment­Cloud peut aus­si ser­vir à cen­tra­li­ser les docu­ments uti­li­sés par toute votre rédac­tion, et peut-être opé­rer des rap­pro­che­ments entre deux enquêtes sépa­rées.

Atten­tion quand même : si vos docu­ments sont vrai­ment explo­sifs, du genre à faire sau­ter la Répu­blique, vous évi­te­rez d’utiliser ce ser­vice direc­te­ment en ligne, mais vous l’installerez plu­tôt « en local », soit sur votre ordi­na­teur seule­ment – sachant que dans un cas pareil, bien d’autres pré­cau­tions s’imposent.

  • Over­view pour faire par­ler les gros ensembles de docu­ments
Capture d'écran du site d'Overview.
Cap­ture d’écran du site d’Overview.

L’outil a été mis au point à l’origine par l’agence AP et la Knight Foun­da­tion pour explo­rer les docu­ments de l’armée amé­ri­caine sur la guerre en Afgha­nis­tan dif­fu­sés par Wiki­leaks.

Ses algo­rithmes opèrent des rap­pro­che­ments entre les concepts qu’il a détec­té dans les mil­lions de fichiers que vous lui avez fait ava­ler (jusqu’aux sons au for­mat MP3), en créant des liens entre ces dif­fé­rents clus­ters. Pour explo­rer les e-mails pira­tés de Sony, Over­view se révèle ain­si beau­coup plus effi­cace que l’outil mis en ligne par le site de Julian Assange.

Il per­met aus­si de taguer vos recherches pour les retrou­ver plus faci­le­ment, et pro­pose plu­sieurs modes de visua­li­sa­tion. « L’équipe qui s’en occupe est très inté­res­sée par les nou­veaux outils d’analyse et les nou­veaux chal­lenges, explique Lin­den­berg. Ils vous aide­ront dans vos recherches, et peuvent amé­lio­rer une fonc­tion­na­li­té en quelques heures seule­ment. » Over­view peut aus­si être ins­tal­lé en local.

  • Crow­da­ta pour que les inter­nautes vous aident dans votre quête
Capture d'écran du site de Vozdata.
Cap­ture d’écran du site de Voz­da­ta.

Après avoir pas­sé vos week-ends et vos nuits à cher­cher la pièce maî­tresse per­due dans le gros tas d’octets qu’on vous a mis sur les bras, vous avez un coup de mou ? Il est temps de deman­der à Inter­net de vous venir en aide.

Crow­da­ta est l’outil qui a ser­vi au quo­ti­dien argen­tin La Nacion à lan­cer Voz­da­ta, une opé­ra­tion de crowd­sour­cing pour laquelle chaque inter­naute était invi­té à exa­mi­ner un des 6 500 docu­ments comp­tables four­nis par les séna­teurs afin y cher­cher d’éventuelles irré­gu­la­ri­tés. Inven­teur de cet exer­cice de trans­pa­rence, le Guar­dian le repro­duit chaque année pour les notes de frais des dépu­tés bri­tan­niques.

Crow­da­ta peut se bran­cher direc­te­ment sur Docu­ment­Cloud, pour vous faci­li­ter encore la tâche. Mais vous aurez sans doute besoin de l’aide d’un déve­lop­peur pour l’installer, et faire de tous vos lec­teurs deds enquê­teurs en pan­toufles.

  • Tabu­la  pour extraire des tableaux dans des docu­ments PDF
Capture d'écran du site de Tabula.
Cap­ture d’écran du site de Tabu­la.

Sou­vent uti­li­sé pour la dif­fu­sion d’études ou de rap­ports, le PDF est un for­mat qui empoi­sonne la vie des data­jour­na­listes, parce qu’il n’est pas vrai­ment conçu pour qu’on puisse réuti­li­ser les divers élé­ments com­po­sant un docu­ment.

Avec Tabu­la, il suf­fit de sélec­tion­ner le tableau qui vous inté­resse pour les lignes et les colonnes et les mani­pu­ler dans un tableur. Selon Lin­den­berg, Tabu­la est l’une des meilleures solu­tions pour cette tache, mais elle n’est pas par­faite : des déca­lages entre les colonnes peuvent appa­raître et cor­rompre votre série de don­nées.

C’est pour ça qu’il teste sou­vent plu­sieurs outils pour un même tableau, avant d’opter pour celui qui s’en sort le mieux (selon mon expé­rience, Adobe Acro­bat fait ça plu­tôt bien, mais il est payant).

  • Aleph pour croi­ser vos don­nées avec d’autres sources
Capture d'écran du site d'Aleph.
Cap­ture d’écran du site d’Aleph.

Pour tirer cette affaire au clair, vous aurez peut-être besoin de croi­ser vos pré­cieux fichiers avec d’autres sources exis­tantes. C’est ce que pro­pose Aleph, outil encore expé­ri­men­tal mais avec lequel vous pou­vez jouer pour cher­cher si la per­son­na­li­té ou l’entreprise sur laquelle vous tra­vaillez appa­raît ailleurs, grâce à des repré­sen­ta­tions gra­phiques.

Uti­li­ser davan­tage le recou­pe­ment avec des bases déjà en lignes, c’est deve­nu « la croi­sade per­son­nelle » de Lin­den­berg :

« Il faut que les jour­na­listes d’investigation acceptent de dire à des gens comme moi qui sont les per­sonnes ou entre­prises qui les inté­ressent, cette infor­ma­tion res­tant confi­den­tielle, bien sûr.

Dès que j’ai cette liste, je peux mener des recherches dans une grande quan­ti­té de docu­ments déjà publiés, et acti­ver des noti­fi­ca­tions dès qu’une nou­velle cor­res­pon­dance est trou­vé. Mais les jour­na­listes ne lâchent pas faci­le­ment ce genre d’info, il faut encore que je trouve un moyen de les convaincre. »

7 fautes de français qui n’en sont pas, en fait

J’aurais pu titrer cette note « Confes­sions d’un emmer­deur ». Après ma sor­tie d’école de jour­na­lisme, j’ai été pen­dant plu­sieurs années secré­taire de rédac­tion, un tra­vail qui com­prend en géné­ral beau­coup de relec­ture de copie ou de pages.

Un TOP ou un Gre­visse à por­tée de main, j’ai décou­vert quelques-unes des sub­ti­li­tés de la langue fran­çaise, désuètes ou char­mantes selon le point de vue.

Le pro­blème avec ce type d’occupation pro­fes­sion­nelle, c’est qu’elle tend à faire de vous un aya­tol­lah, cor­ri­geant par réflexe les fautes de ses amis à l’oral, et capable de par­tir en guerre sainte contre les impies qui enchaînent les solé­cismes sans réa­li­ser l’horreur de leur sacri­lège.

Mes années pas­sées à bos­ser sur le Web m’ont pro­fon­dé­ment adou­ci. D’abord parce que rele­ver une faute dans un article qui peut être cor­ri­gé, c’est moins dou­lou­reux, pour le lec­teur comme pour l’auteur, que de la voir impri­mée pour l’éternité.

Ensuite parce que j’ai décou­vert qu’il y avait deux sortes d’internautes qui signa­laient les fautes d’orthographe :

  • ceux qui n’ont que mépris pour le jour­na­liste cou­pable d’un faux pas,  « alors que c’est quand même votre métier d’écrire », et y voient la preuve défi­ni­tive de votre incu­rable incom­pé­tence ;
  • ceux qui s’excusent vrai­ment de vous déran­ger, « mais il manque un mot dans le titre de l’article, je sais, je suis un peu obses­sion­nel et vous devez avoir d’autres chats à fouet­ter, encore par­don ».

Avec le temps et sauf misan­thro­pie pro­fonde, vous avez assez vite envie d’appartenir à la seconde caté­go­rie plu­tôt qu’à la pre­mière.

Enfin, la fré­quen­ta­tion des blogs et forums spé­cia­li­sés comme des ouvrages de réfé­rence m’a ensei­gné que dans bien des cas, il n’y a pas de règles impla­cables mais une série d’exceptions et de sous-excep­tions.

Vous pou­vez pas­ser vos soi­rées à apprendre la dizaine de pages consa­crées à l’accord du par­ti­cipe pas­sé des verbes pro­no­mi­naux que compte le TOP. Ou bien vous pou­vez déci­der que vous avez mieux à faire de votre vie.

Mais le pire, c’est quand j’ai appris que cer­taines des règles que je ché­ris­sais tant étaient par­fois dis­cu­tables, d’autres fois à côté de la plaque. En voi­ci un rapide flo­ri­lège, que vous aurez sûre­ment à cœur de com­plé­ter ou de cri­ti­quer dans les com­men­taires.

1. « Par contre » est tout à fait correct

Mar­tine Rous­seau et Oli­vier Hou­dart, cor­rec­teurs au Monde.fr, le rap­pe­laient déjà dans leur blog Sauce piquante en 2007 :

  « La locu­tion “par contre”, mal­gré les attaques récur­rentes dont elle est l’objet […] est tout à fait cor­recte. »

Portrait de Voltaire, auteur inconnue (Gallica.bnf.fr)
Por­trait de Vol­taire, auteur incon­nu (Gallica.bnf.fr)

Un wiki­pé­dien véhé­ment l’a d’ailleurs fait reti­rer de la notice Fautes de fran­çais des­ti­née aux contri­bu­teurs de l’encyclopédie en ligne. « Par ailleurs » et « par avance » sont cor­rects, pour­quoi pas « par contre », argu­mente-t-il.

« C’est une double pré­po­si­tion : c’est ça le pro­blème, un pro­blème de gram­maire », réplique Rara dans un com­men­taire de cet article – preuve que les contemp­teurs du « par contre » n’ont pas dépo­sé les armes. 

C’est paraît-il Vol­taire qui est entré en guerre contre « par contre », et c’est donc la faute à Vol­taire si je l’ai tant de fois rem­pla­cé par « cepen­dant » ou « en revanche ».

Sur Langue-fr.net, on lira avec inté­rêt un décryp­tage de ce curieux ostra­cisme, défen­du par Lit­tré mais com­bat­tu par Gre­visse :

« C’est plu­tôt une affaire de socio­lin­guis­tique : employer “en revanche” plu­tôt que “par contre” dénote l’appartenance cultu­relle à un milieu maî­tri­sant un code social, celui de l’expression — un code dont l’emploi est un signe de recon­nais­sance impli­cite pour “ceux qui savent”.»

Si vous écri­vez « par contre » dans votre texte, vous rejoin­drez un club qui compte notam­ment « Toc­que­ville, Sten­dhal, Mau­pas­sant, Gide, Girau­doux, Saint-Exu­pé­ry, Mal­raux, Ber­na­nos, De Gaulle » par­mi ses membres. Il y a pire com­pa­gnon­nage.

2. On peut écrire « autant pour moi » si on veut

C’est l’un des sujets les plus polé­miques sur les forums dédiés à la langue fran­çaise. Beau­coup sou­lignent l’origine mili­taire de l’expression : si l’officier diri­geant un exer­cice se trompe dans ses consignes, il va deman­der à sa troupe de reve­nir « au temps » ini­tial de la manœuvre, « pour moi » parce que c’est lui, et non les exé­cu­tants, qui s’est trom­pé.

Mais cette expli­ca­tion est elle-même contes­tée, et puis après tout,  si l’expression « autant pour moi » s’est impo­sée au fil du temps, c’est parce qu’elle a tout autant de sens que sa variante.

Je le confesse, j’aime bien écrire « au temps pour moi », par pure coquet­te­rie. Mais je res­pecte et appré­cie les par­ti­sans du camp d’en face.

3. « Une auteure », « une écrivaine », « une entraîneure»… et pourquoi pas ?

Il y a quelques années, croi­ser l’expression « une auteure » ou « une écri­vaine » dans un texte me fai­sait pleu­rer des larmes de sang.

Mais alors que les com­bats fémi­nistes sont de mieux en mieux relayés dans la socié­té ou sur les réseaux sociaux, j’avoue être en panne d’arguments contre vous si vous écri­vez votre amour pour « l’écrivaine George Sand » ou votre res­pect envers Corinne Diacre, « pre­mière entraî­neure d’une équipe de foot pro­fes­sion­nelle fran­çaise ».

Et je suis plu­tôt content d’utiliser une langue qui vit et évo­lue, plu­tôt qu’une col­lec­tion de règles figées pour l’éternité dans quelque vieux gri­moire de l’Académie fran­çaise.

Je n’en suis pas à accor­der chaque mot avec des tirets («moti­vé-e-s») ou à prô­ner la règle de proxi­mi­té pour l’accord de l’adjectif – quoique l’usage actuel n’ait rien de bien satis­fai­sant intel­lec­tuel­le­ment, qui oblige  à écrire : « Trois mil­lions d’infirmières et un méde­cin se sont retrou­vés dans la rue pour mani­fes­ter. »

Quand je tra­vaillais à Rue89, on s’était don­né comme règle de ne pas en avoir, et de lais­ser l’auteur d’un article choi­sir de fémi­ni­ser ou non cer­tains mots, selon ses convic­tions per­son­nelles. De même, Rue89 pou­vait être du fémi­nin ou du mas­cu­lin selon le contexte («le site d’information Rue89 » mais « les rive­rains de la Rue89 », par exemple).

4. Oui, on peut « supporter » une équipe de foot

Si j’avais gagné un cen­time d’euro à chaque fois que j’ai lu un tweet ou un com­men­taire dénon­çant l’emploi du mot « sup­por­ter » au sens de « sou­te­nir » dans un article sur le sport, j’aurais sans doute assez d’argent pour offrir des cours de fran­çais aux auteurs de ces récla­ma­tions.

« Sup­por­ter » figure pour­tant bien dans le dic­tion­naire du CNRTL avec cette défi­ni­tion : « aider acti­ve­ment, don­ner son sou­tien moral ou maté­riel à » et « encou­ra­ger, sou­te­nir ». Avec un exemple d’emploi qui date de 1897.

Si j’essaie de ne pas recou­rir trop sou­vent aux angli­cismes pour pri­vi­lé­gier – quand c’est pos­sible et que ça ne nuit pas à la com­pré­hen­sion – leur équi­valent fran­çais, j’ai ten­dance à pen­ser que leur traque sys­té­ma­tique finit par res­sem­bler au chan­tier d’un bar­rage contre le Paci­fique.

Ou alors, pour faire bonne mesure, il faut aus­si chas­ser les mots « algo­rithme » (qui vient de l’arabe), « bivouac » (emprun­té à l’allemand) et « albi­nos » (d’origine espa­gnole). Bon cou­rage.

5. Paris est belle et Paris est beau

Les noms de ville sont-ils fémi­nins ou mas­cu­lin ? Vous pou­vez essayer de trou­ver une règle, ce qui vous amè­ne­ra à des acro­ba­ties comme celles repé­rées par Francaisfacile.com :

 « Quelques lin­guistes sug­gèrent par­fois de se réfé­rer à la der­nière syl­labe : le nom d’une ville est en effet sou­vent fémi­nin si ce nom se ter­mine par une der­nière syl­labe muette (comme par exemple : Bruxelles, Rome), alors qu’il est sou­vent mas­cu­lin si ce nom se ter­mine par une der­nière syl­labe sonore (comme par exemple : Dakar, Oslo).

Tou­te­fois, cela pour­rait conduire à de mau­vaises inter­pré­ta­tions (par exemple : “La Nou­velle-Orléans” est fémi­nin alors que la der­nière syl­labe est sonore).

D’autres lin­guistes sug­gèrent par­fois de se réfé­rer à la der­nière lettre : le nom d’une ville est en effet sou­vent fémi­nin si ce nom se ter­mine par une voyelle (comme par exemple : Rome), alors qu’il est sou­vent mas­cu­lin si ce nom se ter­mine par une consonne (comme par exemple : Dakar, Paris).

Tou­te­fois, cela pour­rait éga­le­ment conduire à de mau­vaises inter­pré­ta­tions (par exemple : “La Nou­velle-Orléans” est fémi­nin alors que la der­nière lettre est une consonne).»

Ou alors, vous vous sou­ve­nez que selon Tino Ros­si, Paris est la « reine du monde » et que per­sonne n’a embê­té René Clé­ment pour avoir titré son film « Paris brûle-t-il ?». Et vous déci­dez de faire comme ça vous chante. Un peu de liber­té lan­ga­gière ne fait jamais de mal.

6. Pour « impacter » et « prioriser », le combat est déjà perdu

On est d’accord, « impac­ter » n’est pas un très joli mot. Il a cepen­dant le mérite d’être effi­cace : on peut lui pré­fé­rer « avoir des consé­quences sur », par exemple, mais c’est un chouïa plus long (edit : “affec­ter » fait très bien l’affaire, me sug­gère Emma­nuelle Ducros, jour­na­liste à L’Opinion). Et « impac­ter » est désor­mais dans le Larousse.

Même chose pour « prio­ri­ser », que le Robert accueille désor­mais dans ses pages (plus pru­dent, le CNRL le donne par­mi les syno­nymes pos­sibles sans en avoir fait une entrée dans son lexique).

Je pro­pose de ces­ser les hos­ti­li­tés contre ceux qui uti­lisent ces deux mots, et de concen­trer le feu contre ceux qui s’obstinent à « pal­lier à un pro­blème » et ceux qui uti­lisent le sub­jonc­tif après « après que ». Ceux-là méritent vrai­ment notre châ­ti­ment.

7. Lamartine aimait bien « le jour d’aujourd’hui »

Le com­bat contre l’abominable expres­sion « au jour d’aujourd’hui » ne date pas du jour d’aujourd’hui, jus­te­ment. Pierre Larousse s’échinait déjà à lui faire un sort dans son Grand dic­tion­naire du XIXe siècle, paru en 1864. Le texte est savou­reux :

« Cet adverbe, com­po­sé de cinq mots, “à le jour de hui”, est peut-être l’exemple le plus frap­pant du prin­cipe d’agglutination sui­vant lequel se sont for­més un grand nombre de mots de notre langue. […]

Hui” était évi­dem­ment suf­fi­sant pour rendre l’idée expri­mée par le latin “hodie” ; mais, par une des redon­dances si fré­quentes dans notre ancienne langue, on ajou­ta à cet adverbe les mots “au jour de”, et l’on eut “au jour de hui”, “aujourd’hui”.

Et ce pléo­nasme ne suf­fi­sant pas encore au peuple, il dit “au jour d’aujourd’hui”, comme nous le montre Vadé [un chan­son­nier de l’époque, ndlr] : “Les gar­çons du jour d’aujourd’hui savent si bien emboi­ser les filles que je devrions en être soules.”

Cepen­dant Lamar­tine a su employer cette locu­tion vicieuse avec une poé­tique éner­gie : “Dans ce cercle bor­né, Dieu t’a mar­qué ta place. / L’univers est à lui. / Et nous n’avons à nous que le jour d’aujourd’hui.”

Il nous sou­vient même avoir enten­du de nos propres oreilles “au jour du jour d’aujourd’hui”. N’est-ce pas ici le cas de dire : quand on prend du galon, on n’en sau­rait trop prendre ?

Voi­là com­ment nous ren­dons, par une accu­mu­la­tion de mots que nos pères expri­maient par un mono­syl­labe. Qu’on vienne donc nous dire main­te­nant que le pro­grès consiste à sim­pli­fier. »

C’est vrai qu’à part chez Lamar­tine, on peine à trou­ver un usage élé­gant de « au jour d’aujourd’hui ». Mais après tout, comme le montre Larousse, « aujourd’hui » est déjà un pléo­nasme. Peut-être fini­rons-nous par apprendre à aimer « au jour d’aujourd’hui »,  qui écorche encore les oreilles cent cin­quante ans plus tard ?

(Mer­ci à l’intraitable Emma­nuelle Bon­neau, jour­na­liste à Rue89 qui m’a souf­flé quelques-uns des exemples de cet article.)

Comment j’ai fouillé dans des dizaines de milliers de notices Wikipédia

Pour réa­li­ser le Top 50 des sites d’info les plus cités sur Wiki­pe­dia, j’ai uti­li­sé une série d’outils dont je m’étais par­fois déjà ser­vi dans d’autres pro­jets :

  • J’ai repé­ré des séries de notices inté­res­santes grâce à l’outil CatS­can pro­po­sé par Wiki­pé­dia.
  • J’ai uti­li­sé des tech­niques de data scra­ping pour par­cou­rir auto­ma­ti­que­ment des mil­liers de notices avec l’extension Fire­fox Out­wit Hub.
  • J’ai net­toyé les résul­tats obte­nu grâce à Open Refine.
  • J’ai dres­sé les clas­se­ments avec Google Sheets, le tableur de Google Drive.
  • J’ai réa­li­sé les gra­phiques avec Data­wrap­per.
  • J’ai pré­sen­té les tableaux de façon inter­ac­tive avec le plug-in JQue­ry Data­tables.

Comme cha­cun de ces ser­vices peut vous inté­res­ser, je reviens pas à pas dans cet article sur la méthode uti­li­sée, en don­nant des liens vers les fichiers de don­nées obte­nues.  N’hésitez pas à réuti­li­ser ces der­nières pour d’autres tra­vaux, et tenez-moi au cou­rant de vos trou­vailles dans les com­men­taires.

A plu­sieurs reprises, j’ai fait des choix qui m’ont sem­blé cohé­rents avec l’objectif de ce pro­jet. Que vous soyez wiki­pé­dien ou jour­na­liste, vous aurez sans doute envie de les dis­cu­ter, ce que je vous encou­rage for­te­ment à faire, je suis là pour ça.

1. Bâtir un échantillon avec CatScan

La pre­mière dif­fi­cul­té, c’était de trou­ver une série de notices Wiki­pé­dia per­ti­nentes.

J’ai d’abord pen­sé à pro­gram­mer Out­wit Hub pour en col­lec­ter de façon tota­le­ment aléa­toires, en uti­li­sant par exemple le lien « Explo­rer au hasard » de l’encyclopédie. Mais mon « robot » s’est vite per­du dans des fiches sans lien avec l’actualité ou dans diverses pages de listes.

J’ai alors décou­vert CatS­can et je m’en suis ser­vi pour obte­nir les liens de notices figu­rant dans toute une série de caté­go­ries et sous-caté­go­ries. En par­tant la caté­go­rie Eve­ne­ment de Wiki­pé­dia, j’ai sélec­tion­né les sous-caté­go­ries sui­vantes (elles-mêmes divi­sées en une mul­ti­tude de sous-caté­go­ries :

  • Evé­ne­ment en cours
  • Evé­ne­ment à venir
  • Evé­ne­ment récent
  • Jour­née com­mé­mo­ra­tive ou thé­ma­tique
  • Mas­sacre
  • Evé­ne­ment his­to­rique en météo­ro­lo­gie
  • Salon
  • Marche
  • Contro­verse
  • Fes­ti­val

CatS­can m’a ren­voyé une liste de 16741 notices (sur un total de plus de 1,6 mil­lion publiés sur la Wiki­pé­dia en fran­çais, soit envi­ron 1%) sur des sujets très variés. La taille de cette liste m’a paru suf­fi­sante – au-delà, les dif­fé­rents logi­ciels dont je me suis ser­vi n’aurait de toute façon pas pu fonc­tion­ner cor­rec­te­ment.

2. Programmer un scraper avec Outwit Hub

Bien que l’interface de ce logi­ciel de scra­ping soit inti­mi­dante (euphé­misme), Out­wit Hub n’est pas si com­pli­qué à uti­li­ser, une fois qu’on a digé­ré les tuto­riels de base. Il suf­fit d’identifier où se trouvent dans le code source les infor­ma­tions qu’on recherche et com­ment elles sont struc­tu­rées en lan­gage HTML.

En l’occurrence, les liens se trou­vant dans les par­ties qui m’intéressaient («Notes et réfé­rences » et « Voir aus­si » notam­ment) sont dans des balises liens («a») por­tant la classe CSS « exter­nal text ».

Capture d’écran 2014-09-10 à 19.16.20
Cap­ture d’écran de Out­wit Hub

Il suf­fit alors de créer un « extrac­teur »,en indi­quant à Out­wit Hub les chaînes de carac­tères se trou­vant juste avant et juste après l’information ciblée.  Par exemple, pour l’URL externe :

<a class="external text" href="

et

">

Pour extraire plu­sieurs infor­ma­tions à la fois (l’URL, mais aus­si le nom de domaine et le texte du lien), j’ai cepen­dant dû construire une expres­sion régu­lière. Sans vous faire un cours com­plet sur ces trucs-là (ce dont je serais bien inca­pable), sachez qu’on les croise un peu par­tout (de Yahoo Pipes à Adobe Inde­si­gn en pas­sant par les dif­fé­rents lan­guages de pro­gram­ma­tion).

Pour un non-déve­lop­peur, c’est un peu pénible à apprendre, mais ça rend bien des ser­vices, ça en vaut donc la peine.  Après avoir pas mal trans­pi­ré, j’ai fini par bâtir l’expression sui­vante (sûre­ment per­fec­tible, d’ailleurs) :

/class="external text".*href="(http://.*?)(/.*?)">(.*?)</a>/

Out­wit Hub était alors paré pour le moment le plus agréable du pro­jet, celui où l’ordinateur tra­vaille à votre place : il a suf­fit de lui deman­der de pas­ser cet extrac­teur sur chaque page de l’échantillon, puis d’exporter tous les résul­tats obte­nus dans un gros fichier CSV (20 Mo).

3. Nettoyer les résultats avec Open Refine

Quand vous sou­hai­ter inter­ve­nir sur de gros fichiers de don­nées, les fonc­tion­na­li­tés les plus cou­rantes (comme Recher­cher / Rem­pla­cer) ne suf­fisent pas.

C’est là qu’Open Refine (ancien­ne­ment Google Refine) se révèle par­ti­cu­liè­re­ment utile, parce qu’il per­met de faire via une inter­face gra­phique très bien fichue des mani­pu­la­tions de tables qui doivent se faire sinon via des lignes de com­mande.

Là encore, il faut accep­ter de se plon­ger dans les tuto­riels et les pages d’aide pour apprendre à effec­tuer les opé­ra­tions sou­hai­tées, mais c’est du temps bien inves­ti, croyez-moi.

Dans le cadre de ce pro­jet, je me suis ser­vi de Google Refine pour pré­sen­ter pro­pre­ment chaque don­née dont j’avais besoin :

  • l’URL de la notice Wiki­pé­dia « scra­pée »
  • l’URL du lien externe repé­ré
  • le nom de domaine du lien externe repé­ré (par exemple, slate.fr)
  • le texte du lien (sou­vent le titre de l’article)

J’ai aus­si répar­ti ces noms de domaines en deux caté­go­ries : « Actu » et « Autres » (pour tous les liens vers des sites annuaires, ins­ti­tu­tion­nels, ou per­son­nels).

C’était l’étape la plus fas­ti­dieuse : pour évi­ter d’y pas­ser la jour­née et de faire plan­ter Open Refine, je me suis limi­té aux médias cités au moins 30 fois dans l’échantillon.

Cer­tains sites dans cette liste avaient un sta­tut ambi­gu : j’ai conser­vé ceux pro­po­sant à la fois des articles et des sta­tis­tiques ou pages de réfé­rence (par exemple, Allo­ci­né), et d’exclure les purs annuaires (comme IMDB).

J’ai aus­si pra­ti­qué quelques regrou­pe­ments, pour les sites pos­sé­dant plu­sieurs sous-domaines (par exemple, en fusion­nant les liens vers www.lefigaro.fr et elections.lefigaro.fr en lefigaro.fr).

Si ça vous inté­resse d’explorer vous aus­si ces don­nées, vous pou­vez télé­char­ger l’intégralité des liens de l’échantillon ou l’intégralité des liens vers des sites de médias dans des fichiers CSV désor­mais net­toyés.

4. Dresser les classements avec Google Sheets

On approche du but : en impor­tant le CSV conte­nant tous les liens vers des sites de médias dans une feuille de cal­cul Google Sheets, il ne reste plus qu’à créer un rap­port de tableau croi­sé dyna­mique char­gé de comp­ter le nombre de liens pour chaque nom de domaine.

Cette infor­ma­tion est éga­le­ment dis­po­nible dans Open Refine, mais j’avais besoin d’une pré­sen­ta­tion par cel­lules pour pou­voir en faire un gra­phique dans la fou­lée.

(Je n’ai jamais vrai­ment com­pris com­ment fonc­tion­naient vrai­ment ces rap­ports, et je suis bien embê­té quand je dois expli­quer leur fonc­tion­ne­ment lors de for­ma­tions. Je me contente d’essayer diverses com­bi­nai­sons de lignes, de colonnes et de valeurs pour obte­nir le résul­tat sou­hai­té, ce qui finit tou­jours par arri­ver à force d’essais.)

5. Faire le graphique avec Datawrapper

Je ne sais pas s’il est pos­sible de tom­ber amou­reux d’un logi­ciel ou d’un ser­vice web, mais si c’est le cas, je dois confier une pas­sion sans doute exces­sive pour Data­wrap­per – selon moi, Mir­ko Lorenz, son pro­gram­meur,  a déjà sa place réser­vée au para­dis des déve­lop­peurs.

Un copié/collé des don­nées de Google Sheets et quelques réglages dans une inter­face mer­veilleu­se­ment bien pen­sée, et zou, le gra­phique est prêt.

6. Un tableau filtrable avec Datatables

A ma connais­sance, il existe peu d’outils acces­sibles pour pré­sen­ter de longues séries de don­nées pro­pre­ment à l’intérieur d’un article. Le plug-in JQue­ry Data­tables fait ça vrai­ment très bien, mais il faut être suf­fi­sam­ment à l’aise en HTML, en CSS et en JQue­ry pour s’en ser­vir.

J’ai donc récu­pé­ré le flux Json du Google Sheet pour bâtir dyna­mi­que­ment le tableau conte­nant les 23 014 liens vers des sites de médias, et acti­vé Data­tables une fois la table ter­mi­née.

7. Des échantillons sur des thématiques

Pour conti­nuer à explo­rer l’encyclopédie, j’ai choi­si des thèmes plus pré­cis et repé­ré des caté­go­ries (et leurs sous-caté­go­ries) de notices por­tant sur le sport, la poli­tique, la Bre­tagne et la BD.

J’ai fait subir le trai­te­ment décrit ci-des­sus aux liens externes ain­si repé­rés (ça va beau­coup plus vite la deuxième fois).

Voi­ci les don­nées récu­pé­rées, éga­le­ment dis­pos dans Google Sheet :