Spaces:
Sleeping
Sleeping
| # src/utils/evaluation_utils.py | |
| import os | |
| import pandas as pd | |
| from sklearn.metrics import classification_report | |
| def evaluate_model_predictions(y_true, y_pred, save_path = None): | |
| """ | |
| Affiche et sauvegarde un rapport de classification (précision, rappel, F1, support). | |
| """ | |
| report = classification_report(y_true, y_pred, target_names = ["Négatif", "Positif"]) | |
| print(report) | |
| if save_path: | |
| os.makedirs(os.path.dirname(save_path), exist_ok = True) | |
| with open(save_path, "w", encoding = "utf-8") as f: | |
| f.write(report) | |
| return report | |
| def load_predictions(pred_path): | |
| """ | |
| Charge un fichier CSV de prédictions avec les colonnes : [text, label, prediction]. | |
| """ | |
| if not os.path.exists(pred_path): | |
| raise FileNotFoundError(f"❌ Fichier non trouvé : {pred_path}") | |
| df = pd.read_csv(pred_path) | |
| if not {"label", "prediction"}.issubset(df.columns): | |
| raise ValueError("❌ Le fichier doit contenir les colonnes 'label' et 'prediction'.") | |
| return df["label"].tolist(), df["prediction"].tolist() | |
| def load_classification_report(report_path): | |
| """ | |
| Lit un rapport de classification (au format texte brut .txt). | |
| """ | |
| if not os.path.exists(report_path): | |
| raise FileNotFoundError(f"❌ Fichier non trouvé : {report_path}") | |
| with open(report_path, "r", encoding = "utf-8") as f: | |
| content = f.read() | |
| return content | |