Exctraction de données depuis des rapports PDF
SISPEA (Systèmes d’Informations des Services Publics d’Eau et d’Assainissement) bancarise des données sur la tarification et la performance des services publics d’eau et d’assainissement. Les données concernent 39 indicateurs codifiés (https://www.services.eaufrance.fr/indicateurs/mise-a-jour).
Théoriquement, les collectivités ont pour obligation de saisir les valeurs de ces indicateurs dans SISPEA (saisie manuelle via formulaire en ligne). Dans les faits, certaines collectivités omettent cette étape. Ainsi, la représentativité des jeux de données publiés est de 50% en termes de services couverts et de 80% en termes de population française couverte.
Les indicateurs et valeurs associées sont également décrits dans des RPQS (rapports sur les prix et la qualité des services), produits annuellement par chaque collectivité. Les RPQS sont mis en ligne soit sur l’application de SISPEA, soit sur le site des collectivités. Ainsi, les RPQS contiennent l'ensemble des valeurs des 39 indicateurs pour toutes les collectivités. Nous allons donc pouvoir y chercher les données manquantes en base de données.
L’objectif de ce projet est de mettre en place un outil d’extraction de texte et de reconnaissane textuelle automatisée afin d’alimenter les données de SISPEA à partir des RPQS.
Le projet a été réalisé dans un environnement Python 3.10.
Téléchargement des librairies requises
pip install requirements.txt
requirements.txt: Fichier contenant les libairies nécéssaires à l'exécution du projet- src:
answers(2).json: Fichier source contenant des textes annotés au format Squad ( Contexte, Question, Réponse), nécéssaire pour l'évaluation des modèlesquestion.csv: Fichier source contenant les questions à poser, le mot clé à rechercher, ainsi que l'indicateur associés.bornes.csv: Fichier csv contenant les bornes spécifiques aux indicateurs de SISPEA.results.csv: Fichier csv contenant les résultats des rapports testés.indic_metric.csv: Fichier csv contenant les résultats des rapports testés mais triés par indicateurs.collect_2023.csv: Ficier csv contenant les liens vers les RPQS récupérés en ligne, ainsi que la ville, l'année et la compétence associée.ville_df.csv: Ficier csv contenant les noms et codes INSEE des communes de France. On l'utilise pour la collecte de RPQS.data_sispea.7z: Zip contenant toutes les extraction depus sispea sur les données entre 2016 et 2021, sur l'ensemble du territoire. Nécessaires pour l'exécution des codes "data_sispea" et "scrap_test".
- evaluations_modeles:
eval_etalab_rpqs.ipynb: Jupyter Notebook permettant d'évaluer le modèle d'etalab, à partir d'un fichier de données étiquetéesflan-t5-base.ipynb: Jupyter Notebook permettant d'évaluer le modèle flan-t5-base, à partir d'un fichier de données étiquetéesflan-t5-large.ipynb: Jupyter Notebook permettant d'évaluer le modèle flan-t5-large, à partir d'un fichier de données étiquetéesflan-t5-xl.ipynb: Jupyter Notebook permettant d'évaluer le modèle flan-t5-xl, à partir d'un fichier de données étiquetéesflan-t5-xxl.ipynb: Jupyter Notebook permettant d'évaluer le modèle flan-t5-xxl, à partir d'un fichier de données étiquetées
- fonctions_generales:
Fonction_finale.ipynb: Jupyter Notebook permettant l'éxécution du code (usage, test du programme) (point de vue: utilisateur du programme)Fonction_finale_génerique.ipynb: Code identique à celui ci-dessus, mais des indications en plus pour généraliser à d'autres cas d'usages (point de vue: développeur pour un autre cas d'usage)data_sispea.ipynb: Jupyter Notebook permettant d'éxecuter le code, puis de comparer les réponses prédites avec les valeurs présentes dans sispea, pour obtenir des métriques de performance (point de vue: développeur sur ce cas d'usage)data_indic.ipynb: Idem que le fichier précedent, mais calcule des métriques par indicateur et non par PDF.scrap_test.ipynb: Fonction_finale, mais qui va collecter les RPQS en ligne automatiquement.collect_RPQS.ipynb: Méthode de web scraping et crawling permet de collecter en masse les RPQS en logne et renvoie un fichier excel avec le nom de la collectivité, l'année et la compétence(AC ou EP)
- rf :
rf.7z: fichier zip contenant otu les csv des résultats finaux des 50 pdf testés
- scrib :
collect_scrib.pdf: Tuto pour l'éxecution du notebook collect_RPQS.ipynbsspgit.pdf: Tuto pour créer un service de jupyter sur le sspcloud lié à un dépôt git