qualifier = $qualifier; } /** * Entraîne le modèle à partir d'un tableau associatif [Label => [Messages]] * * @param array $data * @throws \Exception */ public function trainFromData(array $data): void { $samples = []; $labels = []; foreach ($data as $category => $messages) { foreach ($messages as $msg) { $cleanedMsg = trim($msg); if (!empty($cleanedMsg)) { // NOTE: Rubix attend un tableau de caractéristiques (une seule colonne pour le texte) $samples[] = [$cleanedMsg]; $labels[] = $category; } } } if (empty($samples)) { throw new \Exception("Erreur : Aucun échantillon valide trouvé pour l'entraînement."); } $this->qualifier->train($samples, $labels); } }