cii-text-analysis/autotrainer.php
Jéremy Munsch f68d2ac333
premier poc
2026-02-11 08:24:04 +01:00

48 lines
1.6 KiB
PHP

<?php
declare(strict_types=1);
use Classifier\Lib\RawDataLoader;
use Classifier\Lib\Discriminant\AlertAnalyzer;
use Classifier\Lib\Discriminant\BlackList;
use Classifier\Lib\Discriminant\WhiteList;
use Classifier\Lib\Enum\MessageType;
use Classifier\Lib\MessageClassifier;
use Classifier\Lib\Model\MessageQualifier;
use Classifier\Lib\Model\ModelTrainer;
use Classifier\Lib\RawDataClassifier;
use Classifier\Lib\Utils\StringCleaner;
require_once __DIR__ . '/vendor/autoload.php';
require_once __DIR__ . '/Lib/index.php';
$modelPath = __DIR__ . '/model.rbx';
// Stop words : Mots à ignorer pour le nettoyage des messages
$stopWords = require __DIR__ . '/data/stopwords.php';
$strCleaner = new StringCleaner($stopWords);
// Liste noire : Priorité absolue pour tuer les faux positifs
$blackList = new BlackList(require __DIR__ . '/data/blacklist.php', $strCleaner);
// Liste blanche : Mots clés avec poids pour le dictionnaire fuzzy
$whiteList = new WhiteList(require __DIR__ . '/data/whitelist.php', $strCleaner);
// * Charger messages bruts (ex: depuis une BDD ou un fichier)
$sanitizer = new RawDataLoader();
$rawMessages = $sanitizer->getSanitizedStrings();
// * Setup du moteur & Dictionnaire
$analyzer = new AlertAnalyzer($whiteList, $blackList, $strCleaner, 100);
$qualifier = new MessageQualifier($modelPath);
$trainer = new ModelTrainer($qualifier);
// * Setup du Master (Hybride)
$defaultAlertType = MessageType::ALERTE();
$master = new MessageClassifier($analyzer, $qualifier, $defaultAlertType);
// * Lancement du banc de test
$classifierTool = new RawDataClassifier($rawMessages, $master, $trainer);
$classifierTool->runQuestions();