Spaces:
Running
docs: corriger les docstrings mensongères sur les shims dans les __init__.py
Browse filesLes docstrings de ``picarones/measurements/__init__.py`` et
``picarones/extras/__init__.py`` mentionnaient encore une
"rétrocompatibilité absolue via fichiers-shims" qui n'existe plus
depuis la refonte 3 cercles. Un utilisateur lisant ces docs
écrivait du code (``from picarones.core.taxonomy import …``)
qui ne marche plus.
Ce commit :
- ``measurements/__init__.py`` : docstring réécrite pour refléter
la structure réelle. La liste des sous-modules est mise à jour
avec les ~8 modules philologiques promus depuis ``extras/``,
les modules ``image_predictive``, ``module_policy``, et la
famille des câblages adaptifs ``*_runner``. La fausse promesse
de rétrocompatibilité est supprimée. Référence vers le manifeste
``docs/architecture.md`` ajoutée.
- ``extras/__init__.py`` : docstring réécrite. La section "Convention
de rétrocompat" qui décrivait des shims inexistants est supprimée.
Le sous-package ``importers`` est documenté explicitement avec
son statut (``huggingface`` et ``escriptorium`` expérimentaux,
``UserWarning`` à l'import).
Aucun changement de code — uniquement de la doc qui mentait sur
l'état réel du système.
https://claude.ai/code/session_01Hsd7kL8yeCbXn1mA7GQK9L
- picarones/extras/__init__.py +14 -15
- picarones/measurements/__init__.py +74 -44
|
@@ -1,22 +1,21 @@
|
|
| 1 |
"""Plugins Picarones — Cercle 3 de l'architecture.
|
| 2 |
|
| 3 |
-
Modules optionnels
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
|
|
|
| 7 |
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
|
|
|
|
|
|
| 12 |
|
| 13 |
-
|
| 14 |
-
-
|
| 15 |
-
|
| 16 |
-
``picarones/report/`` vers ``picarones/extras/``, un fichier-shim est
|
| 17 |
-
laissé à l'ancien emplacement qui réexporte les noms publics. Les
|
| 18 |
-
imports historiques (``from picarones.measurements.taxonomy_intra_doc import
|
| 19 |
-
...``) continuent à fonctionner sans modification.
|
| 20 |
|
| 21 |
Voir :doc:`docs/architecture.md` pour la cartographie complète
|
| 22 |
et les critères d'assignation au Cercle 3.
|
|
|
|
| 1 |
"""Plugins Picarones — Cercle 3 de l'architecture.
|
| 2 |
|
| 3 |
+
Modules optionnels et **séparables** : leur absence ne casse pas
|
| 4 |
+
le bench standard. Ils étendent Picarones avec des fonctionnalités
|
| 5 |
+
qui ne servent pas directement la question centrale (« peut-on
|
| 6 |
+
déployer ce moteur en prod sur ce corpus ? ») et qui dépendent
|
| 7 |
+
typiquement de sources externes (IIIF, eScriptorium, HuggingFace…).
|
| 8 |
|
| 9 |
+
Sous-packages
|
| 10 |
+
-------------
|
| 11 |
+
- :mod:`importers` — connecteurs corpus (IIIF, Gallica, HTR-United,
|
| 12 |
+
HuggingFace, eScriptorium). Les modules ``huggingface`` et
|
| 13 |
+
``escriptorium`` émettent un ``UserWarning`` à l'import car ils
|
| 14 |
+
n'ont pas été validés sur des instances de production.
|
| 15 |
|
| 16 |
+
À terme, ces sous-packages pourront être distribués comme packages
|
| 17 |
+
PyPI séparés (``picarones-importers``…). Pour l'instant ils vivent
|
| 18 |
+
comme sous-packages internes pour limiter le churn.
|
|
|
|
|
|
|
|
|
|
|
|
|
| 19 |
|
| 20 |
Voir :doc:`docs/architecture.md` pour la cartographie complète
|
| 21 |
et les critères d'assignation au Cercle 3.
|
|
@@ -1,49 +1,74 @@
|
|
| 1 |
"""Métriques officielles Picarones — Cercle 2.
|
| 2 |
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
|
| 9 |
Sous-modules
|
| 10 |
------------
|
| 11 |
-
|
| 12 |
|
| 13 |
-
- :mod:`
|
| 14 |
-
- :mod:`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
- :mod:`taxonomy` taxonomie 9 classes d'erreurs
|
| 16 |
- :mod:`taxonomy_comparison` comparaison taxonomique miroir
|
| 17 |
-
- :mod:`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
- :mod:`line_metrics` distribution CER par ligne (Gini, percentiles)
|
| 19 |
-
- :mod:`hallucination` détection hallucinations VLM
|
| 20 |
-
- :mod:`reading_order` F1 ordre de lecture (ICDAR 2015)
|
| 21 |
-
- :mod:`layout` F1 layout par type de région
|
| 22 |
-
- :mod:`error_absorption` correction vs introduction par jonction
|
| 23 |
-
- :mod:`searchability` recherchabilité fuzzy (Levenshtein)
|
| 24 |
-
- :mod:`numerical_sequences` préservation dates/cotes/numéraux
|
| 25 |
-
- :mod:`numerical_sequences_runner`
|
| 26 |
-
- :mod:`rare_tokens` rappel sur tokens rares
|
| 27 |
-
- :mod:`readability` Δ Flesch (sur-normalisation)
|
| 28 |
-
- :mod:`readability_runner`
|
| 29 |
-
- :mod:`searchability_runner`
|
| 30 |
-
- :mod:`specialization` spécialisation inter-moteurs
|
| 31 |
- :mod:`worst_lines` lignes pires globales
|
| 32 |
-
- :mod:`inter_engine` divergence taxonomique + oracle gap
|
| 33 |
-
- :mod:`incremental_comparison` ANOVA-like par slot
|
| 34 |
-
- :mod:`baseline_comparison` comparaison à l'historique
|
| 35 |
-
- :mod:`longitudinal` régression linéaire + change-point
|
| 36 |
|
| 37 |
Fiabilité et calibration :
|
| 38 |
|
| 39 |
- :mod:`calibration` ECE, MCE, reliability bins
|
| 40 |
- :mod:`reliability` IAA Cohen κ + multirun stability
|
|
|
|
| 41 |
- :mod:`robustness` courbes CER vs dégradation
|
| 42 |
- :mod:`robustness_projection` projection sur corpus réel
|
| 43 |
|
| 44 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 45 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 46 |
- :mod:`ner`, :mod:`ner_backends`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 47 |
|
| 48 |
Économie et opération :
|
| 49 |
|
|
@@ -52,36 +77,41 @@ NER :
|
|
| 52 |
- :mod:`cost_projection` projection à volume cible
|
| 53 |
- :mod:`marginal_cost` coût par erreur évitée
|
| 54 |
|
| 55 |
-
|
| 56 |
|
| 57 |
-
- :mod:`
|
| 58 |
-
- :mod:`
|
| 59 |
-
- :mod:`
|
| 60 |
-
- :mod:`
|
|
|
|
|
|
|
|
|
|
|
|
|
| 61 |
|
| 62 |
-
|
| 63 |
|
| 64 |
-
- :mod:`
|
|
|
|
| 65 |
|
| 66 |
Aide à la décision :
|
| 67 |
|
| 68 |
- :mod:`levers` leviers d'amélioration factuels
|
| 69 |
- :mod:`equivalence_profile` curseur fin équivalences diplomatiques
|
|
|
|
| 70 |
|
| 71 |
-
|
| 72 |
|
| 73 |
-
- :mod:`
|
|
|
|
|
|
|
| 74 |
|
| 75 |
Moteur narratif :
|
| 76 |
|
| 77 |
-
- :mod:`narrative` (sous-package) :
|
| 78 |
-
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
Tous les modules historiquement dans ``picarones.core.X`` restent
|
| 82 |
-
accessibles via des fichiers-shims qui les redirigent vers le nouvel
|
| 83 |
-
emplacement. Aucun import existant ne casse.
|
| 84 |
|
| 85 |
-
Voir :doc:`docs/architecture.md`
|
| 86 |
-
|
| 87 |
"""
|
|
|
|
| 1 |
"""Métriques officielles Picarones — Cercle 2.
|
| 2 |
|
| 3 |
+
Ce package contient l'ensemble des mesures et analyses qui calculent,
|
| 4 |
+
agrègent ou interprètent des métriques sur un corpus. Il dépend du
|
| 5 |
+
cercle 1 (``picarones.core``) qui définit les abstractions, et est
|
| 6 |
+
consommé par le cercle 3 (``picarones.report``, ``picarones.cli``,
|
| 7 |
+
``picarones.web``) qui présente les résultats.
|
| 8 |
|
| 9 |
Sous-modules
|
| 10 |
------------
|
| 11 |
+
Coeur :
|
| 12 |
|
| 13 |
+
- :mod:`metrics` compute_metrics (CER/WER/MER/WIL via jiwer)
|
| 14 |
+
- :mod:`statistics` Wilcoxon, Friedman, Nemenyi, Pareto, CDD
|
| 15 |
+
- :mod:`runner` run_benchmark — orchestration parallèle
|
| 16 |
+
- :mod:`builtin_hooks` 12 hooks doc + 12 agrégateurs natifs
|
| 17 |
+
- :mod:`builtin_metrics` enregistrement métriques dans le registry
|
| 18 |
+
- :mod:`alto_metrics` métriques jonction TEXT/ALTO
|
| 19 |
+
- :mod:`normalization` profils Unicode
|
| 20 |
+
|
| 21 |
+
Erreurs et taxonomie :
|
| 22 |
+
|
| 23 |
+
- :mod:`confusion` matrice de confusion Unicode
|
| 24 |
+
- :mod:`char_scores` scores ligatures/diacritiques
|
| 25 |
- :mod:`taxonomy` taxonomie 9 classes d'erreurs
|
| 26 |
- :mod:`taxonomy_comparison` comparaison taxonomique miroir
|
| 27 |
+
- :mod:`taxonomy_cooccurrence` Jaccard inter-classes
|
| 28 |
+
- :mod:`taxonomy_intra_doc` heatmap classes × position
|
| 29 |
+
|
| 30 |
+
Structure et lignes :
|
| 31 |
+
|
| 32 |
+
- :mod:`structure` blocs/lignes/mots
|
| 33 |
- :mod:`line_metrics` distribution CER par ligne (Gini, percentiles)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 34 |
- :mod:`worst_lines` lignes pires globales
|
|
|
|
|
|
|
|
|
|
|
|
|
| 35 |
|
| 36 |
Fiabilité et calibration :
|
| 37 |
|
| 38 |
- :mod:`calibration` ECE, MCE, reliability bins
|
| 39 |
- :mod:`reliability` IAA Cohen κ + multirun stability
|
| 40 |
+
- :mod:`hallucination` détection hallucinations VLM
|
| 41 |
- :mod:`robustness` courbes CER vs dégradation
|
| 42 |
- :mod:`robustness_projection` projection sur corpus réel
|
| 43 |
|
| 44 |
+
Image et difficulté :
|
| 45 |
+
|
| 46 |
+
- :mod:`image_quality` contraste, bruit, flou…
|
| 47 |
+
- :mod:`image_predictive` complexité paléographique
|
| 48 |
+
- :mod:`difficulty` score difficulté intrinsèque
|
| 49 |
+
|
| 50 |
+
Contenu et lisibilité :
|
| 51 |
|
| 52 |
+
- :mod:`searchability` recherchabilité fuzzy (Levenshtein)
|
| 53 |
+
- :mod:`numerical_sequences` préservation dates/cotes/numéraux
|
| 54 |
+
- :mod:`rare_tokens` rappel sur tokens rares
|
| 55 |
+
- :mod:`readability` Δ Flesch (sur-normalisation)
|
| 56 |
+
|
| 57 |
+
Structure ALTO et entités :
|
| 58 |
+
|
| 59 |
+
- :mod:`layout` F1 layout par type de région
|
| 60 |
+
- :mod:`reading_order` F1 ordre de lecture (ICDAR 2015)
|
| 61 |
- :mod:`ner`, :mod:`ner_backends`
|
| 62 |
+
- :mod:`error_absorption` correction vs introduction par jonction
|
| 63 |
+
|
| 64 |
+
Inter-moteurs et historique :
|
| 65 |
+
|
| 66 |
+
- :mod:`inter_engine` divergence taxonomique + oracle gap
|
| 67 |
+
- :mod:`specialization` spécialisation inter-moteurs
|
| 68 |
+
- :mod:`baseline_comparison` comparaison à l'historique
|
| 69 |
+
- :mod:`longitudinal` régression linéaire + change-point
|
| 70 |
+
- :mod:`incremental_comparison` ANOVA-like par slot
|
| 71 |
+
- :mod:`history` historique SQLite
|
| 72 |
|
| 73 |
Économie et opération :
|
| 74 |
|
|
|
|
| 77 |
- :mod:`cost_projection` projection à volume cible
|
| 78 |
- :mod:`marginal_cost` coût par erreur évitée
|
| 79 |
|
| 80 |
+
Philologie historique :
|
| 81 |
|
| 82 |
+
- :mod:`mufi` couverture MUFI (médiéval)
|
| 83 |
+
- :mod:`abbreviations` signes d'abréviation Capelli
|
| 84 |
+
- :mod:`unicode_blocks` précision par bloc Unicode
|
| 85 |
+
- :mod:`early_modern_typography` ligatures imprimées XVIᵉ-XVIIIᵉ
|
| 86 |
+
- :mod:`modern_archives` marqueurs XIXᵉ-XXᵉ
|
| 87 |
+
- :mod:`roman_numerals` numéraux romains
|
| 88 |
+
- :mod:`lexical_modernization` sur-normalisation lexicale
|
| 89 |
+
- :mod:`philological_runner` câblage runner adaptive
|
| 90 |
|
| 91 |
+
Pipelines composées (axe B) :
|
| 92 |
|
| 93 |
+
- :mod:`pipeline_benchmark`, :mod:`pipeline_comparison`,
|
| 94 |
+
:mod:`pipeline_spec_loader`
|
| 95 |
|
| 96 |
Aide à la décision :
|
| 97 |
|
| 98 |
- :mod:`levers` leviers d'amélioration factuels
|
| 99 |
- :mod:`equivalence_profile` curseur fin équivalences diplomatiques
|
| 100 |
+
- :mod:`module_policy` manifest + audit modules contribués
|
| 101 |
|
| 102 |
+
Câblages adaptifs (suffixe ``_runner``) :
|
| 103 |
|
| 104 |
+
- :mod:`readability_runner`, :mod:`searchability_runner`,
|
| 105 |
+
:mod:`numerical_sequences_runner` — adaptive masking
|
| 106 |
+
document-par-document, consommés par :mod:`builtin_hooks`.
|
| 107 |
|
| 108 |
Moteur narratif :
|
| 109 |
|
| 110 |
+
- :mod:`narrative` (sous-package) : arbiter, registry, renderer,
|
| 111 |
+
18 détecteurs en 6 familles. Le modèle de données (``Fact``,
|
| 112 |
+
``FactType``, ``DetectorRegistry``) vit en cercle 1 dans
|
| 113 |
+
:mod:`picarones.core.facts`.
|
|
|
|
|
|
|
|
|
|
| 114 |
|
| 115 |
+
Voir :doc:`docs/architecture.md` pour la cartographie complète et
|
| 116 |
+
la règle de dépendance des 3 cercles.
|
| 117 |
"""
|