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
- Reconnaissance et classification des entités nommées en français
- Résolution de toponymes (problématique de désambiguïsation)
- 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 ou
.
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 :
- Anaconda distribution: fournit des applications, de nombreux paquets de science des données et d'apprentissage automatique sont déjà installés.
- Miniconda: une installation minimale pour conda, sans application graphique
- 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 configurationenvironment-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 configurationenvironment-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 avecpip
)
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 .