- gitignore graphify-out/ (artefacts knowledge graph générés) - commit messages coordination 2026-06-05 (ordre de marche Dom via Codex) - commit rapport analyse campagne GUI (synthétique, sans PII) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
153 lines
4.8 KiB
Markdown
153 lines
4.8 KiB
Markdown
## Rapport d'analyse de campagne GUI
|
|
|
|
Date d'analyse : 2026-04-21
|
|
|
|
### Périmètre
|
|
|
|
Campagne lancée depuis la GUI sur le dossier :
|
|
|
|
`/home/dom/ai/anonymisation/tests/synthetic_regression/cases`
|
|
|
|
Sorties observées dans :
|
|
|
|
`/home/dom/ai/anonymisation/tests/synthetic_regression/cases/anonymise`
|
|
|
|
### Synthèse
|
|
|
|
La campagne n'est pas exploitable comme validation globale du corpus.
|
|
|
|
Le moteur n'a pas échoué sur l'anonymisation observée, mais la méthode de lancement via la GUI a mélangé les cas de test dans un dossier de sortie unique. Résultat : les fichiers de sortie se sont écrasés entre eux, et il ne reste plus que trois sorties distinctes (`input`, `expected`, `test`) alors que 30 fichiers d'entrée ont été pris dans la campagne.
|
|
|
|
En l'état, un seul cas est encore vérifiable de façon fiable : `010_spaced_establishment_header`. Ce cas est conforme.
|
|
|
|
### Constats
|
|
|
|
#### 1. La campagne a pris 30 fichiers en entrée
|
|
|
|
Le dossier `tests/synthetic_regression/cases` contient 10 cas, et chaque cas contient :
|
|
|
|
- `input.txt`
|
|
- `test.txt`
|
|
- `expected.txt`
|
|
|
|
Soit 30 fichiers texte supportés au total.
|
|
|
|
#### 2. Les sorties ont été écrasées
|
|
|
|
La GUI écrit toutes les sorties dans un seul dossier :
|
|
|
|
`folder / "anonymise"`
|
|
|
|
Puis le moteur nomme les sorties uniquement avec le `stem` du fichier source :
|
|
|
|
- `input.pseudonymise.txt`
|
|
- `test.pseudonymise.txt`
|
|
- `expected.pseudonymise.txt`
|
|
|
|
Comme les 10 cas portent tous les mêmes noms de fichiers, chaque nouveau cas remplace le précédent.
|
|
|
|
Conséquence observée :
|
|
|
|
- 30 entrées traitées
|
|
- 3 sorties texte finales restantes
|
|
|
|
#### 3. Les fichiers de référence ont aussi été anonymisés
|
|
|
|
La GUI a pris tous les fichiers supportés trouvés récursivement dans le dossier sélectionné, donc elle a traité :
|
|
|
|
- les fichiers de test à anonymiser
|
|
- les fichiers `input.txt`
|
|
- les fichiers `expected.txt`
|
|
|
|
Pour une campagne de validation, ce n'est pas le bon protocole : les fichiers `expected.txt` sont des références de comparaison, pas des entrées métier à anonymiser.
|
|
|
|
### Analyse des sorties restantes
|
|
|
|
Les trois sorties restantes sont :
|
|
|
|
- `tests/synthetic_regression/cases/anonymise/input.pseudonymise.txt`
|
|
- `tests/synthetic_regression/cases/anonymise/test.pseudonymise.txt`
|
|
- `tests/synthetic_regression/cases/anonymise/expected.pseudonymise.txt`
|
|
|
|
Leur contenu correspond au cas :
|
|
|
|
`tests/synthetic_regression/cases/010_spaced_establishment_header`
|
|
|
|
Contenu observé :
|
|
|
|
```text
|
|
[ETABLISSEMENT]
|
|
Service de cardiologie
|
|
```
|
|
|
|
Résultat :
|
|
|
|
- `test.pseudonymise.txt` correspond exactement à `010_spaced_establishment_header/expected.txt`
|
|
- `input.pseudonymise.txt` correspond aussi à `010_spaced_establishment_header/expected.txt`
|
|
- `expected.pseudonymise.txt` reste déjà anonymisé, ce qui est cohérent
|
|
|
|
Audit observé :
|
|
|
|
- `input.audit.jsonl` : 1 hit `ETAB_SPACED`
|
|
- `test.audit.jsonl` : 1 hit `ETAB_SPACED`
|
|
- `expected.audit.jsonl` : vide
|
|
|
|
Conclusion sur ce cas :
|
|
|
|
Le cas `010_spaced_establishment_header` est réussi.
|
|
|
|
### Conclusion générale
|
|
|
|
Conclusion fonctionnelle :
|
|
|
|
- aucun échec d'anonymisation n'est visible sur le cas encore vérifiable
|
|
- la campagne globale ne permet pas d'évaluer les 10 cas du corpus
|
|
|
|
Conclusion méthodologique :
|
|
|
|
- la structure actuelle des sorties GUI n'est pas compatible avec un lancement sur un dossier de corpus contenant des noms de fichiers répétés
|
|
- la campagne du 2026-04-21 doit être considérée comme non concluante pour 9 cas sur 10
|
|
|
|
### Causes racines
|
|
|
|
1. La GUI parcourt récursivement tous les fichiers supportés du dossier sélectionné.
|
|
2. La GUI écrit toutes les sorties dans un seul sous-dossier `anonymise/`.
|
|
3. Le moteur génère les noms de sortie à partir du seul nom de fichier, sans conserver le chemin relatif du cas.
|
|
|
|
### Recommandations immédiates
|
|
|
|
1. Pour tester sans modifier le code, lancer la GUI sur un seul dossier de cas à la fois.
|
|
|
|
Exemple :
|
|
|
|
`/home/dom/ai/anonymisation/tests/synthetic_regression/cases/001_patient_header_and_birth`
|
|
|
|
2. En validation humaine, ne pas lancer la GUI sur `tests/synthetic_regression/cases` directement.
|
|
|
|
3. Comparer chaque sortie produite au `expected.txt` du même dossier de cas.
|
|
|
|
### Correctifs recommandés
|
|
|
|
1. Préserver l'arborescence relative des cas dans le dossier de sortie.
|
|
|
|
Exemple attendu :
|
|
|
|
- `anonymise/001_patient_header_and_birth/test.pseudonymise.txt`
|
|
- `anonymise/002_contact_bundle/test.pseudonymise.txt`
|
|
|
|
2. Ou préfixer les sorties par le nom du dossier parent.
|
|
|
|
Exemple :
|
|
|
|
- `001_patient_header_and_birth__test.pseudonymise.txt`
|
|
|
|
3. Ajouter un mode "campagne de tests" dans la GUI qui ne traite que les fichiers `test.txt`.
|
|
|
|
4. Générer automatiquement un rapport de comparaison contre les `expected.txt`.
|
|
|
|
### Statut
|
|
|
|
- Campagne GUI du 2026-04-21 : non exploitable pour validation complète
|
|
- Cas encore vérifiable : `010_spaced_establishment_header`
|
|
- Verdict sur ce cas : conforme
|