Scorer

Le module scorer est responsable de la comparaison entre une prédiction et une vérité terrain.

Rôle

La classe Scorer prend en entrée deux chaînes d’horaires au format OSM (une prédite par le pipeline, une autre issue de la vérité terrain), les compare en utilisant le ComparateurHoraires du module Core, et retourne un objet ScoreResult structuré.

Fonctionnalités

  • Utilise les composants Core du projet (OsmToJsonConverter, HorairesComparator) pour assurer une comparaison cohérente avec le pipeline principal.

  • Gère la conversion des chaînes OSM en JSON.

  • Analyse la chaîne de différences textuelle pour produire un décompte d’erreurs atomiques, permettant une analyse fine.

  • Retourne un objet ScoreResult contenant le statut (Identique, Différent, Erreur), le décompte des différences, et le détail textuel.

Module

class src.smart_watch.evaluate.scorer.ComparisonStatus(*values)[source]

Bases : Enum

Définit le statut d’une comparaison.

IDENTICAL = 'Identique'
DIFFERENT = 'Différent'
ERROR = 'Erreur de comparaison'
class src.smart_watch.evaluate.scorer.ScoreResult(status: ComparisonStatus, predicted_osm: str, ground_truth_osm: str, url: str = '', diff_count: int = 0, differences: str | None = None)[source]

Bases : object

Structure pour stocker les résultats du scoring pour un item.

status: ComparisonStatus
predicted_osm: str
ground_truth_osm: str
url: str = ''
diff_count: int = 0
differences: str | None = None
__init__(status: ComparisonStatus, predicted_osm: str, ground_truth_osm: str, url: str = '', diff_count: int = 0, differences: str | None = None) None
class src.smart_watch.evaluate.scorer.Scorer[source]

Bases : object

Compare une chaîne d’horaires prédite avec une vérité terrain en utilisant le ComparateurHoraires du projet.

__init__() None[source]

Initialise le Scorer avec les outils de conversion et de comparaison.

Cette méthode configure les instances nécessaires pour effectuer les comparaisons d’horaires : un convertisseur OSM vers JSON et un comparateur d’horaires.

converter

instance pour convertir les chaînes OSM en JSON.

Type:

OsmToJsonConverter

comparator

instance pour comparer les horaires.

Type:

HorairesComparator

_count_atomic_differences(differences_str: str | None) int[source]

Analyse une chaîne de différences pour compter les erreurs atomiques.

Paramètres:

differences_str (Optional[str]) – La chaîne de texte des différences.

Renvoie:

Le nombre de différences atomiques.

Type renvoyé:

int

_to_json(osm_string: str) Dict | None[source]

Convertit une chaîne OSM en JSON, gère les erreurs.

score(predicted_osm: str, ground_truth_osm: str, url: str = '') ScoreResult[source]

Compare la chaîne prédite à la vérité terrain et retourne le score.

Paramètres:
  • predicted_osm (str) – La chaîne d’horaires au format OSM générée.

  • ground_truth_osm (str) – La chaîne d’horaires de référence (vérité terrain).

  • url (str) – L’URL du lieu évalué.

Renvoie:

Un objet contenant le statut de la comparaison.

Type renvoyé:

ScoreResult