diff --git a/Tutoriel-geoparsing.ipynb b/Tutoriel-geoparsing.ipynb
index ed6195ca54932a0fcca77c0d4be8193a7b0b2632..84bf715ac4226015e0c768b60a89ee4fa64a946e 100644
--- a/Tutoriel-geoparsing.ipynb
+++ b/Tutoriel-geoparsing.ipynb
@@ -24,13 +24,13 @@
     "  - à partir de la librairie Python [Perdido](https://github.com/ludovicmoncla/perdido) dans un [Pandas dataframe](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html) (articles encyclopédiques et descriptions de randonnées) ;\n",
     "  - à partir de fichiers txt importés depuis le disque dur.\n",
     "- Manipuler et interroger un dataframe\n",
-    "- Utiliser des librairies de reconnaissance d'entités nommées ([spaCy](https://spacy.io), [Stanza](https://stanfordnlp.github.io/stanza/index.html) et [Perdido](https://github.com/ludovicmoncla/perdido))\n",
-    "- Utiliser la librarie `Perdido` pour le geoparsing :\n",
+    "- Utiliser les librairies [Stanza](https://stanfordnlp.github.io/stanza/index.html), [spaCy](https://spacy.io) et [Perdido](https://github.com/ludovicmoncla/perdido) pour la reconnaissance d'entités nommées\n",
     "  - afficher les entités nommées annotées ;\n",
-    "  - cartographier les lieux geocodés.\n",
-    "- Comparer les résultats de`spaCy`, `Stanza` et `Perdido`\n",
-    "- Discuter les limites des 3 outils pour la tâche de NER\n",
-    "- Illustrer la problématique de désambiguïsation des toponymes"
+    "  - comparer les résultats de `Stanza`, `spaCy` et `Perdido` ;\n",
+    "  - discuter les limites des 3 outils pour la tâche de NER.\n",
+    "- Utiliser la librarie `Perdido` pour le geoparsing :\n",
+    "  - cartographier les lieux geocodés ;\n",
+    "  - illustrer la problématique de désambiguïsation des toponymes."
    ]
   },
   {
@@ -40,19 +40,6 @@
     "## 2. Introduction"
    ]
   },
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "### 2.1 spaCy\n",
-    "\n",
-    "\n",
-    "### 2.2 Stanza NER\n",
-    "\n",
-    "\n",
-    "### 2.3 Perdido Geoparser"
-   ]
-  },
   {
    "cell_type": "markdown",
    "metadata": {},
@@ -107,13 +94,253 @@
    "metadata": {},
    "outputs": [],
    "source": [
+    "import warnings\n",
+    "warnings.filterwarnings('ignore')\n",
+    "\n",
     "from perdido.geoparser import Geoparser\n",
     "from perdido.geocoder import Geocoder\n",
-    "from perdido.datasets import load_edda_artfl, load_edda_perdido\n",
+    "\n",
+    "from perdido.datasets import load_edda_artfl, load_edda_perdido, load_choucas_perdido\n",
     "\n",
     "from spacy import displacy"
    ]
   },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 4. Chargement et exploration des données\n",
+    "\n",
+    "### 4.1 Chargement d'un document texte à partir d'un fichier\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### 4.2 Chargement d'un jeu de données à partir de la librairie Perdido\n",
+    "\n",
+    "Perdido embarque 2 jeux de données : \n",
+    " 1. articles encyclopédiques (volume 7 de l'Encyclopédie de Diderot et d'Alembert), fournit par l'ARTFL dans le cadre du projet GEODE.\n",
+    " 2. descriptions de randonnées (chaque description est associée à sa trace GPS. Elles proviennent du site visorando.fr et ont été collectées dans le cadre du projet ANR CHOUCAS."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "d = load_choucas_perdido()\n",
+    "df = d['data'].to_dataframe()\n",
+    "df.head()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### 4.3 Manipulation d'un dataframe"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 5. Reconnaissance d'Entités Nommées (NER)\n",
+    "\n",
+    "\n",
+    "### 5.1 Stanza NER\n",
+    "\n",
+    "\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### 5.2 SpaCy NER"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### 5.3 Perdido Geoparser"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "displacy.render(d['data'][1].to_spacy_doc(), style=\"ent\", jupyter=True) "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": []
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## 6. Geoparsing / Geocoding"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# geocoding avec perdido"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# afficher une carte\n",
+    "d['data'][1].get_folium_map()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### 6.2 Résolution de toponymes / désambiguïsation\n",
+    "\n",
+    "\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Exemple de requetes sans stratégies de désambiguisation"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Délimiter un zone restreinte lors de la requête\n",
+    "\n",
+    "Premier niveau : utilisation d'un code pays."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Deuxième niveau : utilisation d'une bounding box délimitant la zone de recherche"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
   {
    "cell_type": "code",
    "execution_count": null,
@@ -121,6 +348,49 @@
    "outputs": [],
    "source": []
   },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Désambiguisation basé sur la proximité géographique\n",
+    "\n",
+    "Clustering avec la méthode DBSCAN. Cette stratégie est adaptée pour une description d'itinéraire où les différents lieux cités doivent être localisés à proximité les uns des autres."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Résultats avant désambiguisation"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "d['data'][1].get_folium_map()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "d['data'][1].cluster_disambiguation()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "d['data'][1].get_folium_map()"
+   ]
+  },
   {
    "cell_type": "code",
    "execution_count": null,
@@ -128,6 +398,13 @@
    "outputs": [],
    "source": []
   },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Utilisation du contexte (autres entités nommées repérées dans le texte, relations spatiales, etc...). Développées dans le cadre du projet [Perdido]() (add ref 2014 et 2016) mais pas encore intégré à la librairie Python Perdido. Cette librairie est toujours en cours de développement et d'amélioration. Vos remarques et retours seront les bienvenues."
+   ]
+  },
   {
    "cell_type": "code",
    "execution_count": null,
@@ -135,6 +412,11 @@
    "outputs": [],
    "source": []
   },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": []
+  },
   {
    "cell_type": "code",
    "execution_count": null,