48 lines
1.6 KiB
PHP
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();
|