Les données
Sources mobilisées par le pipeline de codification COICOP
Vue d’ensemble
Le pipeline mobilise plusieurs fichiers en entrée (sources externes, non produites par le pipeline lui-même). Tous résident dans le bucket S3 projet-budget-famille.
À noter que ces fichiers ne sont pas utilisés de la même manière selon qu’on utilise le pipeline en mode production (il faut coder un fichier) ou en mode évaluation (on utilise des observations déjà labellisées pour évaluer le processus) — voir Généralités.
| Fichier | Définition | Format | Path S3 | Lu par | Commentaire |
|---|---|---|---|---|---|
annotations_test_2024.csv |
Annotations manuelles BdF 2024 (vérité terrain / KB ; sources receipts_from_app, manual_from_app, manual_from_book) |
CSV ; |
s3://projet-budget-famille/data/codification-manuelle-anterieure/annotations_test_2024.csv |
preprocessing |
Base produite à partir de trois fichiers fournis par l’équipe BDF. Voir ce repo : https://git.lab.sspcloud.fr/ssplab/experimentation-bdf/construction-dataset |
annotations_BDF_2017.csv |
Annotations historiques de l’enquête BdF 2017 (source bdf_2017, KB uniquement) |
CSV ; |
s3://projet-budget-famille/data/codification-manuelle-anterieure/annotations_BDF_2017.csv |
preprocessing |
Utilise l’ancien millésime de la COICOP (difficilement exploitable). Exclu de la base vectorielle des RAG annotations (exclude_sources) |
liste_produits_fr_copain.csv |
Liste de produits codifiés issue du suggester de l’application de l’enquête — exemples additionnels de la KB des RAG | CSV | s3://projet-budget-famille/data/input-annotation/liste_produits_fr_copain.csv |
preprocessing, prune |
Codes au niveau 5, non prunés à la source : c’est prune qui les tronque et les élague |
liste_magasins.csv |
Table de correspondance enseigne → type de magasin | CSV | s3://projet-budget-famille/data/input-annotation/liste_magasins.csv |
preprocessing |
Alimente shop_type_name, signal utilisé par LCS, les RAG et le juge |
produit_non_annotable.csv |
Liste des libellés non codables (retirés en amont) | CSV | s3://projet-budget-famille/data/codification-manuelle-anterieure/produit_non_annotable.csv |
preprocessing |
|
coicop-2018_envoi_rmes_20251022.csv |
Nomenclature COICOP 2018 brute (référentiel des codes + libellés), export RMES, 949 codes sur 5 niveaux | CSV ; |
s3://projet-budget-famille/data/coicop-2018_envoi_rmes_20251022.csv |
prune |
Seule source de vérité de la nomenclature : prune en dérive la nomenclature prunée et la table de mapping que tout l’aval consomme |
| fichier d’observations | Entrée de production : libellés à coder, sans vérité terrain (paramètre Argo input_file) |
CSV / parquet | s3://projet-budget-famille/data/workflow_inputs/… (ex. BDF_data_tickets_appli_20260320_a_codif.csv) |
preprocessing (mode prod) |
Noms de colonnes libres, mappés par les paramètres text_column / shop_column / budget_column |
- Modèle TTC : le classifieur neuronal n’est pas un fichier S3 mais un artefact MLflow, référencé par le paramètre Argo
ttc-model-uri(ex.mlflow-artifacts:/10/…/artifacts/model), lu parrun-ttc. - Les données de caisse (ddc) : ce sont des données récoltées dans le cadre de la production de l’IPC. Il s’agit de dépenses issues de tickets de caisse avec le code COICOP correspondant (labellisation faite via un référentiel fourni par un prestataire). Ces données sont utilisées dans le cadre de l’entraînement du modèle TTC (en dehors de ce pipeline).
- Source
copain(s3://projet-budget-famille/data/output-annotation/) : historiquement une entrée dupreprocessing, elle est exclue du pipeline depuis juin 2026 — son chargement est désactivé (la fonctionload_copain_data()subsiste dans le code sans être appelée). - Les listes de règles pour la codification déterministe par regex sont contenues dans le code, et non dans un fichier sur S3 (
regex-codif/config/rules.yaml).
Référentiels de codes embarqués dans le dépôt
Deux fichiers de codes ne viennent pas de S3 mais sont versionnés avec le code — ce qui implique un risque de désynchronisation avec la nomenclature RMES (voir Limites et points de vigilance) :
| Fichier | Contenu | Utilisé par |
|---|---|---|
decide-coicop/data/coicop_et_codes_techniques.csv |
~700 codes (Libelle;Code) : COICOP tous niveaux, y compris 5 + codes techniques 98.x / 99.x |
liste des codes valides soumise au juge LLM (--nomenclature) |
codif-ttc/data/*.csv |
copie de la nomenclature RMES, table de passage COICOP, familles Circana, données d’entraînement | entraînement et évaluation du modèle TTC |
Artefacts produits par le pipeline
Chaque run écrit ses fichiers intermédiaires sous s3://projet-budget-famille/data/workflow_runs/{run_date}/{run_id}/<étape>/, tous en parquet (sauf le livrable final, qui reprend le format d’entrée). Les principaux :
| Étape | Fichiers clés |
|---|---|
preprocessing |
annotations_full, raw_train, raw_test, suggester, observations (prod), qa/* |
codif-regex |
REGEX_pred, raw_test_without_regex, raw_train_without_regex |
prune |
nomenclature_pruned, mapping_lvl4, annotations_train_pruned, annotations_test_pruned, suggester_pruned |
codif-lcs |
raw_test_LCS, analyse_codif_LCS (éval) |
run-rag |
predictions, retrieved_codes |
rag-annotation |
predictions |
run-ttc |
predictions |
decide-coicop |
predictions (toutes les prédictions + la décision) |
final-output |
le fichier livré, sous son nom d’origine |
report |
report.html |
Codes techniques BdF
À côté des codes COICOP « produits », le pipeline manipule des codes techniques qui n’appartiennent pas à la nomenclature officielle :
| Code | Sens |
|---|---|
98.1 |
Courses / alimentation non détaillée |
98.3 |
Carte bancaire (ligne « Ticket CB ») |
98.4 |
Prélèvement, libellé illisible ou vide |
98.5 |
Remises / réductions |
99.x |
Divers non codables |
Reprise manuelle |
littéral (pas un code) : ligne à recoder à la main |
Ces valeurs ne figurant pas dans la nomenclature RMES, elles traversent le pruning inchangées : ni troncature effective, ni élagage, ni resynchronisation de libellé.