Tutoriel complet : de l’extraction documentaire à la cartographie

Ce tutoriel vise à cartographier un corpus de documents via l’identification des lieux cités dans les textes. Il démarre par l’extraction de documents déjà océrisés et disponibles sur Gallica (par exemple, les guides de voyage). Ceux-ci seront traités par une chaîne TAL (Traitement Automatique de la Langue) pour reconnaître les entités nommées de lieux utiles pour la cartographie (c’est-à-dire toutes les occurrences de lieux repérées). À partir de cette liste de lieux, l’outil d’alignement va faire concorder les entités en comparant les lieux avec d’autres bases de données dans lesquelles d’autres informations seront récupérées (données de géolocalisation : latitude et longitude, région). Le dernier outil de cartographie récupère ces informations géographiques pour placer les lieux sur une carte exportable.

4 notebooks sont nécessaires pour ce tutoriel. Ils sont disponibles sur le dépôt Github suivant : https://github.com/baoia/tutoriel_extraction_cartographie.

  • BaOIA_gallica_txt.ipynb
  • BaOIA_reconnaisance_extraction_entites.ipynb
  • BaOIA_alignement_lieux.ipynb
  • BaOIA_cartographie_complete.ipynb
  • BaOIA_cartographie_categorisee.ipynb

Préparation préalable : télécharger le dépôt Github (sur le bouton vert « Code », cliquer sur « Download ZIP »). Double-cliquer sur le fichier télécharger pour en extraire le contenu. À la base du compte Google Drive de travail, ajouter le dossier dont le nom, s’il reste inchangé, est : tutoriel_extraction_cartographie-main.

Le schéma suivant permet de visualisation les ajouts de fichiers/dossiers qui seront effectués dans le dossier de travail. Les noms des fichiers/dossiers reprennent les exemples de nommage fournis dans le tutoriel. Le dossier de travail Google Drive correspond au dossier « tutoriel_extraction_cartographie-main » précédemment téléchargé sur GitHub. Les fichiers ou dossiers en rouge sont ceux mobilisés dans l’étape d’après.


  • Étape 1 : Extraction de l’océrisation de documents (Gallica)

Document d’entrée/nécessaire : fichier Excel au format .xlsx. Ce fichier doit contenir AU MOINS les liens Gallica vers les documents OU les identifiants ark. Exemple : https://gallica.bnf.fr/ark:/12148/bpt6k63947766 OU bpt6k63947766. Un lien doit être indiqué par case, sur une colonne du fichier Excel. Ce n’est pas un problème si le fichier Excel contient d’autres informations (titre, auteur, date, etc.). Exemple de fichier Excel :

Ici, c’est la colonne D qui contient les liens vers Gallica. Il faut ajouter ce document Excel (ici appelé « Corpus de Guides Paris ») au dossier contenant les notebooks sur le Google Drive.

  • Accès au notebook et pas à pas

Ouvrir le notebook « BaOIA_gallica_txt.ipynb ».

1ère cellule : Son exécution permet de se connecter à son drive Google sur lequel vont être téléchargés tous les documents (cf. aide technique).

2ème cellule : avant d’exécuter la cellule, remplir les champs demandés :

            – chemin_vers_le_dossier_de_travail : il est inutile de le changer si le dossier de travail est le même que celui téléchargé de GitHub contenant les carnets et le fichier Excel avec la liste des documents, soit /content/drive/My Drive/tutoriel_extraction_cartographie-main/ .

            – chemin_vers_le_fichiers_excel : il s’agit du chemin précédent auquel vient s’ajouter à la fin le nom du fichier Excel avec son extension. Le fichier Excel exemple se nomme « Corpus de Guides Paris », donc le chemin final sera : /content/drive/My Drive/tutoriel_extraction_cartographie-main/Corpus de Guides Paris.xlsx.

            – nom_de_la_feuille : un fichier Excel peut contenir plusieurs feuilles, il faut indiquer celle qui contient les liens vers les documents sur Gallica ou bien leurs identifiants ARK. La feuille est indiquée en bas à gauche du fichier Excel. Dans notre exemple, la feuille de travail s’appelle « Guides Paris », c’est donc l’information exacte à indiquer dans la case.

            – lettre_de_la_colonne : c’est la lettre qui correspond à la colonne qui contient les liens : ici, la colonne D.

            – nom_dossier_telechargement : indiquer le nom du dossier souhaité dans lequel les fichiers texte extraits seront téléchargés. Ici, il est nommé « fichiers textes guides gallica ».

Lancer la cellule. Laisser la cellule s’exécuter (plusieurs minutes sont nécessaires pour télécharger les fichiers). Ici, pour 12 liens, la cellule s’exécute en 3 minutes et 30 secondes.

  • Résultats

Dans le dossier de travail Google drive, on peut voir que le dossier a été créé et qu’il contient les fichiers textes nommés avec leur date, le titre du document téléchargé et son identifiant ARK.

⚠ Seuls les documents océrisés sont téléchargeables au format texte. Ainsi, si le nombre de documents présents dans le dossier de téléchargement est inférieur à celui du nombre de liens dans le fichier Excel d’origine, c’est que le document n’a pas été océrisé par la BnF et donc que le texte n’est pas téléchargeable. En dessous du script s’affiche les documents concernés.

Documents de sortie/créés : fichiers au format .txt dans le dossier de travail. Il est possible de les ouvrir et de les consulter. Ils contiennent uniquement le texte brut océrisé, il n’y a donc aucune indication bibliographique ou de mise en page.

  • Étape 2 : Reconnaissance et extraction des entités nommées 

Documents d’entrée : dossier contenant un ou plusieurs fichier.txt. Ce sont les textes préalablement téléchargés lors de l’étape 1.

Cet outil permet de repérer les noms de lieux cités dans les textes d’un corpus, ainsi que de les extraire. Un modèle préalablement entraîné sur un grand nombre de textes est utilisé pour la reconnaissance.

  • Accès au notebook et pas à pas

Ouvrir « BaOIA_reconnaisance_extraction_entites.ipynb ».

1ère cellule de code : Cette cellule permet d’une part, le téléchargement du modèle en charge de la reconnaissance des entités : ainsi il faut choisir la langue des textes pour la reconnaissance des entités (Français, Anglais, Allemand, Espagnol ou Italien). L’installation et donc l’exécution de la cellule est plutôt longue.
D’autre part, son exécution permet de se connecter à son drive Google sur lequel vont être téléchargés tous les documents (cf. aide technique).

2ème cellule de code : Cette cellule permet la reconnaissance et l’extraction des entités nommées. Trois champs doivent être préalablement remplis :

            – chemin_vers_le_dossier_de_travail : Il s’agit du chemin vers le dossier de travail sur Google Drive. En suivant les étapes précédentes, le chemin est : /content/drive/My Drive/tutoriel_extraction_cartographie-main/ (si on l’a laissé tel quel).

            – chemin_vers_le_dossier_de_fichiers_txt : il s’agit du dossier dans lequel les fichiers textes ont été préalablement téléchargés (cf. étape 1). Ce dossier doit être dans le dossier de travail courant. En suivant les étapes précédentes, le chemin est : /content/drive/My Drive/tutoriel_extraction_cartographie-main/fichiers textes guides gallica/.

            – nom_du_dossier_des_entites : indiquer le nom du dossier choisi dans lequel les listes d’entités vont être enregistrées. Ici, le nom choisi est « entites lieux guides ». Ce dossier sera créé dans le dossier de travail renseigné plus haut.

Il est ensuite possible de choisir en cochant/décochant les cases les entités souhaitées extraites. Pour la réalisation de la cartographie (objectif de ce tutoriel complet), seuls les lieux nous intéressent mais le reste des entités peut être tout de même souhaité.

Pour chaque document, une fichier de chaque entité est créé avec la liste (au format .txt). Exemple : en cochant les 4 cases pour 2 documents, 8 fichiers vont être créés. Exécuter la cellule, cette étape est plutôt longue. Par exemple pour 7 documents, le temps d’exécution est de 12 minutes.

  • Résultats

Téléchargement de fichiers sous format .txt, un pour chaque document du corpus avec la liste des lieux, personnages, organisation et divers (suivant les cases cochées) détectés par le modèle Spacy entraîné. Un temps de correction à la main peut être envisagé suivant le nombre d’erreurs trouvés lors de la consultation des fichiers textes. Plus le corpus est conséquent, moins les erreurs de reconnaissance prendront de l’importance et inversement. Il est possible de modifier les fichiers, veuillez cependant à conserver la structure du fichier (un lieu par ligne).

  • Étape 3 : Alignement des données et analyses statistiques

Documents d’entrée : fichiers .txt contenant la liste des lieux par document.

L’outil d’alignement a pour but d’identifier un lieu reconnu en l’alignant avec des bases de données extérieures. L’alignement est effectué en liant les informations avec la base de connaissance Wikidata. L’alignement permet aussi d’extraire des informations sur les lieux détectés. En effet, avec cet outil, nous extrayons les données de géolocalisation spatiales, les coordonnées. La latitude et la longitude permettent le placement des lieux sur une carte ainsi que des descriptions rapides des lieux qui permettent de créer des cartes catégorisées. Un petit outil statistique permet de les comparer.

  • Accès au notebook et pas à pas

Ouvrir « BaOIA_alignement_lieux.ipynb ».

1ère cellule : Son exécution permet de se connecter à son drive Google sur lequel vont être téléchargés tous les documents (cf. aide technique).

2ème cellule : Elle lie les informations avec Wikidata et créée deux fichiers de données regroupant toutes les informations extraites pour chaque lieu. Avant de lancer la cellule, remplir les champs suivants :

            – chemin_vers_le_dossier_de_travail : il s’agit du chemin vers le dossier de travail sur le Google Drive.

            – chemin_vers_les_listes_de_lieux : c’est le chemin vers le dossier contenant les listes de lieux précédemment extraites. En suivant les chemins préexistant, le chemin est : /content/drive/MyDrive/tutoriel_extraction_cartographie-main/entites lieux guides/.

            – langue_pour_l_alignement : il convient de choisir la même langue que celle utilisée pour la reconnaissance, c’est la langue d’écriture des noms de lieux.

            – nom_fichier_donnees_lieux : c’est le nom du fichier de sortie qui sera créée pour recenser tous les lieux et les informations. C’est aussi celui qui sera utilisé ensuite pour la cartographie. Il est un format JSON (bien rajouter le suffixe de format de fichier), difficilement lisible à l’œil nu mais utilisable comme fichier de données. Ici, il s’appelle : données lieux corpus guides.json

            – nom_fichier_excel_donnes_lieux : c’est le même fichier que le fichier .json mais qui lui, sera lisible pour l’utilisateur, car il est créé au format Excel. Veillez à bien rajouter le suffixe .xlsx : ici, le fichier s’appelle donnees lieux corpus guides tab.xlsx.

Lancer la cellule. ⚠ Cette étape est très longue ! ⚠

3ème cellule : cette cellule est OPTIONNELLE. Elle permet de connaître le nombre ainsi que la proportion de chaque « type de lieux » détecté. Par exemple : elle permet de voir que 50 communes ont été détectées, 3 parcs, 6 pays, etc. Le résultat s’affiche en dessous de la cellule. Ce sont les catégories qui seront utilisées pour la création de cartes catégorisées.
Elle permet aussi de jeter un coup d’œil sur les résultats obtenus par l’alignement. Si, par exemple, on remarque des types de lieux incohérents, cela peut signifier qu’il peut être judicieux d’effectuer quelques retouches à la main sur le document JSON ou bien sur le document précédent, puis de relancer l’alignement.

  • Résultats

– Un fichier Excel contenant la liste des lieux reconnus ainsi que des informations extraites de Wikidata : le type de lieu comme il est référencé, les coordonnées géographiques quand c’est un lieu précis reconnu (un pays n’aura pas de coordonnées géographiques car son aire géographique est trop étendue) ainsi qu’une brève description du lieu.
– Un fichier de données au format JSON contenant les mêmes informations que le fichier Excel. Ce fichier est utile pour la création des cartes : c’est le fichier d’entrée des outils cartographiques qui suivent.

  • Étape 4 : Cartographies

Cartographie complète

Documents d’entrée : fichier JSON contenant tous les lieux reconnus et alignés.

  • Accès notebook et pas à pas

Ouvrir « BaOIA_cartographie_complete.ipynb ».

1ère cellule : Son exécution permet de se connecter à son drive Google sur lequel vont être téléchargés tous les documents (cf. aide technique).

2ème cellule : Elle permet de créer la carte à partir de tous les lieux détectés. Deux champs sont à remplir avant de lancer la cellule :

            – chemin_vers_le_dossier_de_travail : il s’agit du chemin vers le dossier de travail sur le Google Drive.

            – nom_fichier_donnees_lieux : il s’agit du fichier de données au format JSON créé précédemment, soit dans notre cas : « donnes lieux corpus guides.json ».

            – nom_carte : c’est le nom du fichier contenant la carte créée. C’est un fichier au format HTML, c’est-à-dire qu’il s’ouvre dans un navigateur internet. Ce format permet de créer des cartes interactives, contrairement aux formats images. Il est important de conserver le suffixe de format .html dans le champ à remplir.

Lancer la cellule : la carte s’affiche en dessous et la carte est créée dans le dossier de travail. Pour visualiser le fichier HTML, il faut d’abord le télécharger sur son ordinateur (et donc en dehors du Google Drive) pour l’ouvrir.

3ème cellule : OPTIONNELLE : ajout de son propre fonds de carte (voir l’encadré / tutoriel précis pour cette étape à la toute fin de ce tutoriel)

  • Résultat

Fichier contenant la carte et tous les points placés au format HTML. Ce fichier est téléchargé dans le dossier de travail sur le Google Drive.

Cartographie catégorisée interactive

Documents d’entrée : fichier JSON contenant tous les lieux reconnus et alignés.

  • Accès au notebook et pas à pas

Ouvrir « BaOIA_cartographie_categorisee.ipynb ».

1ère cellule : Son exécution permet de se connecter à son drive Google sur lequel vont être téléchargés tous les documents (cf. aide technique).

2ème cellule : la deuxième cellule permet de créer la carte à partir des tous les lieux détectés. Deux champs sont à remplir avant de lancer la cellule :

            – nom_fichier_donnees_lieux : il s’agit du fichier de données au format JSON créé précédemment, soit dans notre cas : « donnes lieux corpus guides.json ».

            – nom_carte : c’est le nom du fichier contenant la carte créée. C’est un fichier au format HTML, c’est-à-dire qu’il s’ouvre dans un navigateur internet. Ce format permet de créer des cartes interactives, contrairement aux formats images. Il est important de conserver le suffixe de format .html dans le champ à remplir.

Lancer la cellule : la carte s’affiche en dessous, et la carte est créée dans le dossier de travail. Pour visualiser le fichier HTML, il faut d’abord le télécharger sur son ordinateur (et donc en dehors du Google Drive) pour l’ouvrir.

– 3ème cellule : OPTIONNELLE : ajout de son propre fonds de carte (voir l’encadré / tutoriel précis pour cette étape à la toute fin)

  • Résultat

Fichier contenant la carte et tous les points placés au format HTML. Ce fichier est téléchargé dans le dossier de travail sur le Google Drive.


Créer et ajouter son fond de carte

Si l’on veut ajouter son fond de carte personnalisé :

1. Création d’un compte sur : https://mapwarper.net/.

2. Téléchargement du fond de carte sur Map Warper (la meilleure résolution possible est recommandée) → dans l’onglet « Upload map », il est possible de charger le fond de carte que l’on veut utiliser et indiquer toutes les métadonnées nécessaires.

3. Dans l’onglet « Rectify » : il faut indiquer le plus de points identiques sur les deux cartes pour permettre la superposition du fond de carte chargé sur des données géolocalisées. Cliquer sur un point sur chaque carte, puis cliquer sur « Add control point » en dessous des cartes. Répéter l’opération le plus de fois possible pour obtenir un bon résultat. Dans l’encadré en dessous des deux fonds de carte, cliquer sur « Warp image » : le fond s’ajoute. Si le résultat n’est pas satisfaisant, il est possible d’ajouter d’autres repères pour améliorer la qualité du nouveau fond de carte créé.

4. Se rendre dans l’onglet « Export ». Dans « Map services », copier le lien entier se situant après « Tiles (Google/OSM scheme) : », débutant par http et se terminant par .png.

5. Remplir ensuite les champs de la cellule contenu dans l’outil de cartographie utilisé pour ce tutoriel :

– nom_fichier_donnees_lieux : nom du fichier JSON contenant l’ensemble des données géographiques.
– lien_tiles_pour_fond_carte : il faut COLLER ici le lien précédemment copié sur le site dans l’onglet « Export ».
– nom_carte_fond : c’est le nom de sortie que l’on veut donner au fichier au format HTML créé.

Résultat : Le fichier est téléchargé dans le dossier de travail sur Google Drive. Il faut le télécharger sur son ordinateur pour ensuite l’ouvrir dans un navigateur web.