Skip to main content

Algorithme NLP de découpage d'un nom de voie en type de voie + nom de voie + complément adresse

Project description

Algorithme pour découper type de voie, nom de voie et complément d'adresse à partir d'un libellé de nom de voie brut.

Getting started

Installer le package :

pip install decoupage_libelles

Récupération du modèle NLP si utilisation hors intra Insee :

wget -P . https://minio.lab.sspcloud.fr/projet-gaia/fr_dep_news_trf-3.8.0-py3-none-any.zip
unzip fr_dep_news_trf-3.8.0-py3-none-any.zip -d fr_dep_news_trf-3.8.0/
rm fr_dep_news_trf-3.8.0-py3-none-any.zip

Récupération du modèle NLP si utilisation dans intra Insee :

curl "https://nexus.insee.fr/repository/huggingface-hosted/spacy/fr_dep_news_trf/model.tar.gz" --output "model.tar.gz"
mkdir -p fr_dep_news_trf-3.8.0/fr_dep_news_trf/fr_dep_news_trf-3.8.0/
tar -xzf model.tar.gz -C fr_dep_news_trf-3.8.0/fr_dep_news_trf/fr_dep_news_trf-3.8.0/
rm model.tar.gz

Exemple d'utilisation du package

from decoupage_libelles import decoupe_voies

# Une liste de voies
decoupe_voies(["avenue verdier du bas de la rue", "avenue verdier"])

📬 Contact

Développé dans le cadre du projet GAIA — Insee. Auteur : Raya Berova (raya.berova@insee.fr)

Avec le dépot git

Dans son namespace sur Datalab ou LS3, ouvrir un service vs-python en paramétrant les ressources de cette façon :

Il faudra se munir de son identifiant GitLab et de son token (associé au projet en question) pour pouvoir cloner le projet.

Dans un terminal bash :

Sur LS3

git clone https://gitlab.insee.fr/geographie/gaia/gaia-decoupage-libelles-voies.git
cd gaia-decoupage-libelles-voies/
source ./setup.sh

Sur Datalab

git clone https://git.lab.sspcloud.fr/scrum-team-gaia/gaia-decoupage.git
cd gaia-decoupage/
wget -P . https://minio.lab.sspcloud.fr/projet-gaia/fr_dep_news_trf-3.8.0-py3-none-any.zip
pip install -r requirements.txt
unzip fr_dep_news_trf-3.8.0-py3-none-any.zip -d fr_dep_news_trf-3.8.0/
rm fr_dep_news_trf-3.8.0-py3-none-any.zip
cd src/

En local

Attention : ce n'est pas recommandé de lancer ce traitement sur de gros fichiers sur votre ordinateur en local.

git clone https://git.lab.sspcloud.fr/scrum-team-gaia/gaia-decoupage.git
cd gaia-decoupage/
curl -o fr_dep_news_trf-3.8.0-py3-none-any.zip https://minio.lab.sspcloud.fr/projet-gaia/fr_dep_news_trf-3.8.0-py3-none-any.zip
pip install -r requirements.txt
unzip fr_dep_news_trf-3.8.0-py3-none-any.zip -d fr_dep_news_trf-3.8.0/
rm fr_dep_news_trf-3.8.0-py3-none-any.zip
cd src/

Lancer le traitement d'un fichier

Placer le fichier dans l'espace de stockage S3, et configurer le fichier src/decoupage_libelles/scripts_parallelises/config.yml :

  • directory_path: Dossier où le fichier à traiter se trouve (Attention, ne pas mettre de "/" à la fin). Ex : "travail/projet-ml-moteur-identification-gaia/confidentiel/personnel_non_sensible".
  • input_path: Nom du fichier. Ex : "voies_01.csv".
  • output_formt: Le format du fichier de sortie. "csv" ou "parquet"
  • sep: Si c'est un fichier csv, préciser le séparateur. Ex : ",". Si c'est un parquet, mettre "".
  • encodeur: Si c'est un fichier csv, préciser l'encodeur. Ex : "utf-8". Si c'est un parquet, mettre "".
  • vars_names_nom_voie: Liste de(s) nom(s) de(s) la variable(s) dans laquelle on va extraire le type de voie. Ex : ["nom_voie_complet"] . S'il y a plusieurs à concaténer avec un espace entre chaque, les spécifier dans l'ordre. Ex : ["id_type_voie", "nom_voie_norm"]
  • plateform: "ls3", "datalab" ou "local" en fonction de si vous êtes sur LS3, Datalab ou en local.

Sur LS3

Dans le terminal bash, lancer :

python decoupage_libelles/scripts_parallelises/main.py

Sur le Datalab

Dans le terminal bash, lancer :

nohup python decoupage_libelles/scripts_parallelises/main.py &

La commande pour lancer le code sur le Datalab est un peu différente car si le service se met en veille sur le Datalab, le traitement se met en pause. Ceci n'est pas le cas sur LS3. Ici, les log ne se feront pas dans le terminal mais dans le fichier nohup.txt qui se créera dans le code lorsque le découpage sera lancé. Vous pourrez y suivre l'évolution en temps réel. Si vous voulez relancer un nouveau traitement, il faudra supprimer ce fichier nohup.txt pour ne pas réécrire dans l'ancien (en lançant dans le terminal rm nohup.txt).

Récupération du résultat

Le fichier traité sera enregistré dans le même dossier avec le format choisi et le même nom de fichier suivi de "_parsed".

Pour livrer un fichier traité en prod, le placer dans un des dossiers "Livraison" prévu à cet effet sur applishare : "\pd_as_ge_d1_50\ge_data_pd\gaia_pd".

En cas de fichier volumineux à mettre sur LS3

Sur le s3, vous pouvez stocker votre fichier zippé à l'endroit souhaité. Pour le dézipper, il suffit dans un terminal bash de lancer ces commandes :

cd ../
# Le fichier zip est stocké dans le s3 du projet-gaia sur le datalab, dans le dossier "decoupage"
# On va transférer ce fichier zip dans le dossier data du service VSCode
mc cp s3/projet-gaia/decoupage/ban_2024.zip data/
# Le fichier est dézippé dans le dossier data
unzip data/ban_2024.zip -d data/
# Le fichier zippé est supprimé du service VSCode pour ne pas surcharger le service
rm data/ban_2024.zip

Ensuite, vous pouvez aller explorer le dossier data dans le service VSCode et repérer ce qu'il vous intéresse. Par exemple, je voudrais récupérer le fichier csv dans le dossier dézippé :

# On met le fichier csv sur le s3 du projet gaia, dans le dossier "decoupage"
mc cp data/ban_2024/ban_2024.csv s3/projet-gaia/decoupage/
# On supprime le dossier dézippé du service VSCode ne pas surcharger
rm -rf data/ban_2024
cd src/

Voilà, votre fichier dézippé est bien sur le s3. Vous pouvez lancer un découpage sur ce fichier dès à présent.

En cas de fichier volumineux à télécharger depuis LS3

Dans un service VSCode :

mc cp s3/travail/projet-ml-moteur-identification-gaia/confidentiel/personnel_non_sensible/<fichier_a_zipper> .
tar -czvf <fichier_a_zipper>.tar.gz <fichier_a_zipper>
mc cp <fichier_a_zipper>.tar.gz s3/travail/projet-ml-moteur-identification-gaia/confidentiel/personnel_non_sensible/

Télécharger le fichier zippé et le dézipper deux fois d'affilé.

Arrêter un traitement en cours

Sur LS3

Dans le terminal, appuyer sur ctrl+Z. Cela peut prendre quelques minutes à s'arrêter, vous saurez que le traitement a été stoppé lorsque vous pourrez réécrire normalement dans le terminal.

Sur le Datalab

  • Copier le numéro qui s'affiche dans le terminal suite au lancement du traitement. Exemple : [1] 8371
  • Lancer dans le terminal kill 8371 pour stopper le traitement.
  • Suppimer le fichier nohup.txt : rm nohup.txt.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

decoupage_libelles-0.0.8.tar.gz (48.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

decoupage_libelles-0.0.8-py3-none-any.whl (93.6 kB view details)

Uploaded Python 3

File details

Details for the file decoupage_libelles-0.0.8.tar.gz.

File metadata

  • Download URL: decoupage_libelles-0.0.8.tar.gz
  • Upload date:
  • Size: 48.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.8

File hashes

Hashes for decoupage_libelles-0.0.8.tar.gz
Algorithm Hash digest
SHA256 eef15d63871d09c1a1ee47e23b025dc8affc6278b4e0a1bd6048b04e09124da0
MD5 e6dec6fe3852963d709d7fb724a8aa2b
BLAKE2b-256 d43a6ee65893a34963481b8f4ed4143aca233b2fc0df0e547b62eaed8c422245

See more details on using hashes here.

File details

Details for the file decoupage_libelles-0.0.8-py3-none-any.whl.

File metadata

File hashes

Hashes for decoupage_libelles-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 c6a79c26a96d747c08ae8c4882d97d6889a66e5baed6e3ddf9f7bf0e9dfcb785
MD5 23bd23e32049263ce22d387d6a62975e
BLAKE2b-256 242071f18c00723c2529e4935956a6163da70f8aa2a5e1d18cbf5cb890d44714

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page