Picarones / picarones /evaluation /__init__.py
Claude
feat(evaluation): Sprint A14-S27 — découpage ProjectionEngine + EvaluationEngine
2e9e564 unverified
Raw
History Blame
1.67 kB
"""Cercle 2 — Evaluation.
Vues d'évaluation, projecteurs et calculs de métriques.
Le cœur de la valeur ajoutée Picarones : **comparer librement des
pipelines hétérogènes en projetant leurs sorties vers une vue
d'évaluation explicite**. L'utilisateur ne compare jamais directement
un OCR brut et une sortie ALTO reconstruite — il compare leur
projection dans une vue commune (texte, ALTO, recherchabilité, etc.)
et le rapport explicite ce que la vue ignore.
Sous-packages :
- ``views/`` — ``TextView``, ``AltoView``, ``SearchView``, ...
- ``projectors/`` — ``AltoToText``, ``PageToText``, ``CanonicalToText``,
qui transforment un type d'artefact vers un autre avec un
``ProjectionReport`` listant les pertes (lossiness explicite).
- ``metrics/`` — calculs purs : CER/WER, MUFI, philological,
statistics, NER, etc. Une métrique = ``(input_types, output_types,
callable)``.
- ``registry/`` — registre typé construit explicitement par un
service au démarrage (pas par effet de bord d'import).
Règles d'import : ce cercle dépend de ``domain/`` uniquement. Pas
de fastapi, pas de jinja, pas de moteur OCR. Il peut utiliser
``numpy`` et ``scipy`` pour les calculs statistiques.
Voir ``docs/roadmap/rewrite-2026.md`` pour le rôle des vues dans le
rewrite ciblé (Sprints S13-S18).
"""
from __future__ import annotations
from picarones.evaluation.evaluation_engine import (
EvaluationEngine,
EvaluationResult,
)
from picarones.evaluation.projection_engine import (
ProjectionEngine,
ProjectionResult,
)
__all__ = [
"EvaluationEngine",
"EvaluationResult",
"ProjectionEngine",
"ProjectionResult",
]