Skip to content
Snippets Groups Projects

CNRS

Tutoriel - ANF TDM 2022 Python Geoparsing

Supports pour l'atelier Librairies Python et Services Web pour la reconnaissance d’entités nommées et la résolution de toponymes de la formation CNRS ANF TDM 2022.

Dans ce tutoriel, nous montrons comment utiliser des librairies Python pour la reconnaissance des entités nommées (Named Entity Recognition) et pour la résolution de toponymes (Geocoding). Pour cela, nous utiliserons les librairies (spaCy, Stanza) et Perdido.

Nous expérimenterons et comparerons ces librairies au travers deux études de cas : le traitement d'articles encyclopédiques (corpus issu du projet GEODE) et le traitement de descriptions de randonnées (corpus issu du projet ANR CHOUCAS).

Animateurs: Ludovic Moncla (INSA Lyon) et Alice Brenon (CNRS / INSA Lyon)

Tâches et problématiques abordées

  1. Reconnaissance et classification des entités nommées en français
  2. Résolution de toponymes (problématique de désambiguïsation)
  3. Créer et afficher une carte à partir d'un texte

Comment exécuter ce notebook

Sur le «cloud»

Vous pouvez exécuter le notebook à distance en utilisant Open In Colab ou Binder. Sinon, pour exécuter ce tutoriel depuis un environnement local sur votre ordinateur, vous pouvez suivre les instructions ci-dessous.

Installer en local

Avec conda

Conda est un système de gestion de paquets et d'environnement open source. Il installe, exécute et met à jour rapidement les paquets et leurs dépendances. Nous l'utiliserons pour gérer l'environnement python et toutes les bibliothèques python nécessaires pour les tutoriels. Il existe plusieurs façons d'installer conda sur votre ordinateur :

  1. Anaconda distribution: fournit des applications, de nombreux paquets de science des données et d'apprentissage automatique sont déjà installés.
  2. Miniconda: une installation minimale pour conda, sans application graphique
  3. Miniforge: une autre installation minimale pour conda, sans application graphique (recommandée pour les puces Mac ARM M1 ou M2 (Apple Silicon))
Clôner ce dépôt git
git clone https://gitlab.liris.cnrs.fr/lmoncla/tutoriel-anf-tdm-2022-python-geoparsing.git
Configurer l'environnement avec toutes les dépendances nécessaires
Méthode 1
  • Uilisateurs MacOS/Linux : Créer un nouvel environnement nommé tdm-geoparsing-py39 avec toutes les dépendances nécessaires en utilisant le fichier de configuration environment-osx-linux.yml :
conda env create -f environment-osx-linux.yml
  • Uilisateurs Windows : Créer un nouvel environnement nommé tdm-geoparsing-py39 avec toutes les dépendances nécessaires en utilisant le fichier de configuration environment-win64.yml :
conda env create -f environment-win64.yml
  • Activer l'environnement
conda activate tdm-geoparsing-py39
Méthode 2
  • Créer un nouvel environnement nommé tdm-geoparsing-py39
conda create -n tdm-geoparsing-py39 python=3.9
  • Activer l'environnement
conda activate tdm-geoparsing-py39
  • Installer le paquet fiona avec conda (évite une erreur lors de l'installation de cette dépendence avec pip)
conda install fiona==1.8.21
  • Installer les dépendances avec pip
pip install -r requirements.txt

Lancer le serveur Jupyter

jupyter notebook

Avec Docker

Vous pouvez directement démarrer un conteneur avec le tutoriel et toutes ses dépendances en tappant:

docker run -p 8888:8888 --rm geodeproject/geoparsing-tutorial:latest

Le serveur jupyter, tournant à l'intérieur du conteneur, ne pourra pas ouvrir votre navigateur automatiquement mais vous pouvez y accéder normalement en suivant les instructions qui s'affichent alors dans le terminal au démarrage du serveur.

Avec Guix

Si le gestionnaire de paquet guix est installé sur votre machine, vous pouvez démarrer directement un environnement de travail depuis le channel du projet GÉODE.

En supposant que vous vous trouvez dans une copie du channel (pas du présent dépôt contenant le tutoriel, il n'est pas nécessaire si vous utilisez guix), vous pouvez démarrer un conteneur semblable à celui accessible via docker avec la commande suivante:

guix shell --container --network -L . geoparsing-tutorial -- /bin/sh -c 'jupyter-notebook $GUIX_ENVIRONMENT/srv/notebooks'

Comment modifier ce tutoriel

C'est également avec guix qu'a été généré le conteneur docker ci-dessus. Les étapes suivantes peuvent constituer une base de travail si vous avez besoin de régénérer un conteneur intégrant des modifications de ce dépôt. Elles s'exécutent aussi dans une copie locale du channel du projet (ou bien alors il faut remplacer l'argument . — dossier courant — de l'option -L par le chemin vers cette copie ou avoir ajouté le channel du projet à la liste des channels connus par guix — fichier channels.scm)

Re-calculer une image de base pour le conteneur

(cette étape est optionnelle car incluse dans la suivante mais elle prend du temps et il peut être rassurant de la voir s'exécuter directement dans le shell, bien que seul le chemin affiché à la fin de l'opération soit nécessaire à l'étape suivante)

guix pack -f docker -L . -S /bin=bin -S /srv=srv geoparsing-tutorial

Import de cette image dans docker

Si vous avez exécuté l'étape précédent, vous pouvez remplacer directement la sous-commande $(…) par la sortie en /gnu/store/.*.tar.gz qui s'est normalement affiché (mais la réexécuter ne posera pas de soucis, et guix ne refera pas deux fois le travail).

docker load < $(guix pack -f docker -L . -S /bin=bin -S /srv=srv geoparsing-tutorial)

Finaliser l'image

À partir de cette couche de base nommée automatiquement geoparsing-tutorial:latest, le conteneur définitif est généré en suivant le Dockerfile présent dans ce dépôt (vous devez donc revenir dans une copie locale de ce dépôt contenant le tutoriel et le fichier Dockerfile pour cette dernière étape).

docker build -f Dockerfile .