Le Machine Learning en PHP permet de réaliser des analyses automatiques sur des textes, comme déterminer si un avis est positif, négatif ou neutre. Dans ce chapitre, nous allons vous montrer comment créer un outil simple d’analyse de sentiments qui compte les mots positifs et négatifs dans un avis produit et lui attribue une note globale.
Ce tutoriel est conçu pour les débutants en PHP et Machine Learning. Nous allons expliquer chaque étape avec des mots simples, fournir un code fonctionnel et détailler comment enrichir votre analyse pour la rendre plus performante.
- Pourquoi analyser un texte ?
- Avantages et limites de l’analyse de sentiments
- Quand utiliser l'analyse de sentiment d'un texte ?
- Exemple concret : Coder une analyse de sentiments simple en PHP
- Optimiser et enrichir notre analyse de sentiments en PHP
- Gérer les phrases négatives et les doubles négations
- Analyser plusieurs avis et générer des statistiques
- Passer à un vrai modèle Machine Learning en PHP
- Analyse de sentiments avancée en PHP avec SVM
- Enrichir vos données et améliorer la précision SVM
Pourquoi analyser un texte ?
Analyser un texte permet de transformer des données non structurées, comme des avis clients, en informations exploitables. Les avantages principaux sont :
- Mesurer la satisfaction des clients : Vous pouvez connaître la proportion d’avis positifs et négatifs sur vos produits.
- Détecter les problèmes récurrents : Si un mot ou une expression négative revient souvent, vous pouvez intervenir rapidement.
- Améliorer la communication et le marketing : Comprendre le ressenti des clients permet de mieux cibler vos messages et promotions.
- Automatiser le traitement de gros volumes : Plutôt que de lire manuellement des centaines d’avis, un algorithme peut le faire en quelques secondes.
Analyser un texte aide à prendre des décisions basées sur des données concrètes, et non sur l’intuition.
Avantages et limites de l’analyse de sentiments
Comme toute technologie, l’analyse de sentiments présente des avantages mais aussi des limites.
Avantages
L’analyse de sentiments permet d’obtenir rapidement un aperçu global des opinions des utilisateurs. Elle est rapide, économique et peut traiter d’énormes volumes de texte. Elle offre également une vision quantitative des ressentis, ce qui est précieux pour le marketing et la gestion de produits.
Limites
Cependant, elle n’est pas infaillible. Le langage humain est complexe, et les nuances comme le sarcasme ou les doubles négations peuvent induire l’algorithme en erreur.
Par exemple, la phrase « ce produit n’est pas mauvais » pourrait être interprétée comme négative si l’algorithme ne gère pas correctement les négations. De plus, les mots ambigus ou contextuels peuvent créer des erreurs de classification. Il est donc important de ne pas considérer l’analyse comme une vérité absolue, mais comme un outil d’aide à la décision.
Quand utiliser l’analyse de sentiment d’un texte ?
L’analyse de sentiments est utile dans plusieurs contextes. Vous pouvez l’utiliser pour évaluer les avis clients, les commentaires sur les réseaux sociaux, les forums, ou même les emails de support. Elle permet de détecter rapidement des tendances positives ou négatives et d’anticiper des problèmes avant qu’ils ne deviennent majeurs.
Cette analyse est particulièrement intéressante lorsque vous avez un grand volume de données textuelles, car il devient difficile de traiter tout manuellement. Elle permet également de réagir en temps réel si elle est intégrée à un système automatisé de veille ou d’alerte.
Exemple concret : Coder une analyse de sentiments simple en PHP
Pour rendre cet apprentissage concret, nous allons créer un exemple d’analyse de sentiments basique en PHP. L’idée sera simple : compter les mots positifs et négatifs dans un avis, puis attribuer une note globale. Nous utiliserons la bibliothèque PHP php-ai/php-ml
, qui fournit des outils de Machine Learning prêts à l’emploi.
Avant de passer au code, voici ce que nous allons réaliser étape par étape :
- Installer la bibliothèque PHP pour le Machine Learning.
- Créer un lexique de mots positifs et négatifs.
- Écrire une fonction qui analyse un texte et compte les occurrences de chaque type de mot.
- Calculer une note globale pour l’avis.
- Afficher le résultat de manière lisible pour l’utilisateur.
- Enrichir le lexique pour améliorer la précision de l’analyse.
Installer la bibliothèque php-ai/php-ml
Pour réaliser notre Machine Learning en PHP, nous allons utiliser la bibliothèque PHP-ML, qui fournit des outils prêts à l’emploi pour le traitement de données et le Machine Learning.
Si vous n’avez pas encore Composer installé, commencez par l’installer sur votre machine. Composer est l’outil officiel pour gérer les dépendances en PHP.
Ensuite, dans votre projet, exécutez la commande suivante :
composer require php-ai/php-ml
Cette commande va télécharger et installer la bibliothèque PHP-ML ainsi que toutes ses dépendances. Une fois terminée, vous pourrez utiliser les classes et fonctions pour analyser vos textes.
Préparer un lexique de mots positifs et négatifs
Avant de traiter le texte, il faut définir un lexique de mots positifs et négatifs. Un lexique est simplement une liste de mots que l’algorithme va reconnaître pour déterminer le sentiment d’un avis.
Voici un exemple simple :
$positiveWords = [
"excellent", "parfait", "super", "fantastique", "agréable", "rapide", "efficace", "qualité", "propre", "recommande"
];
$negativeWords = [
"mauvais", "lent", "décevant", "horrible", "médiocre", "problème", "panne", "sale", "inutile", "risque"
];
Chaque mot positif augmente la note de l’avis, tandis que chaque mot négatif la diminue.
Vous pouvez enrichir ce lexique progressivement en analysant vos avis réels et en ajoutant les mots qui reviennent fréquemment. Cela rendra votre analyse beaucoup plus précise.
Écrire une fonction pour analyser un texte
Maintenant, nous allons créer une fonction PHP qui va :
- Nettoyer le texte (mettre en minuscules, enlever la ponctuation).
- Séparer le texte en mots.
- Compter combien de mots positifs et négatifs apparaissent.
- Calculer une note globale.
Voici un exemple de code commenté :
function analyzeSentiment($text, $positiveWords, $negativeWords) {
// On met le texte en minuscules pour éviter les problèmes de casse
$text = strtolower($text);
// On enlève la ponctuation
$text = preg_replace('/[^\w\s]/u', '', $text);
// On sépare le texte en mots
$words = explode(' ', $text);
// On initialise les compteurs
$positiveCount = 0;
$negativeCount = 0;
// On parcourt chaque mot pour vérifier s'il est positif ou négatif
foreach ($words as $word) {
if (in_array($word, $positiveWords)) {
$positiveCount++;
}
if (in_array($word, $negativeWords)) {
$negativeCount++;
}
}
// Calcul de la note : nombre de mots positifs - nombre de mots négatifs
$score = $positiveCount - $negativeCount;
// Détermination du sentiment global
if ($score > 0) {
$sentiment = "Positif";
} elseif ($score < 0) {
$sentiment = "Négatif";
} else {
$sentiment = "Neutre";
}
// On retourne le résultat sous forme de tableau
return [
'score' => $score,
'sentiment' => $sentiment,
'positif' => $positiveCount,
'negatif' => $negativeCount
];
}
Tester notre analyseur
Maintenant que la fonction est prête, nous pouvons tester un avis produit. Par exemple :
$avis = "Le produit est excellent et la livraison a été rapide. Je recommande vivement !";
$result = analyzeSentiment($avis, $positiveWords, $negativeWords);
echo "Score : " . $result['score'] . "<br>";
echo "Sentiment : " . $result['sentiment'] . "<br>";
echo "Mots positifs : " . $result['positif'] . "<br>";
echo "Mots négatifs : " . $result['negatif'] . "<br>";
Explication :
- Le texte est analysé mot par mot.
- Chaque mot positif augmente le score, chaque mot négatif le diminue.
- La fonction retourne un score numérique, un sentiment global et le compte exact des mots positifs et négatifs.
Avec notre exemple, vous devriez obtenir un sentiment Positif puisque le texte contient des mots comme excellent et rapide.
Comment enrichir notre analyse
Pour rendre votre analyse plus précise, vous pouvez :
- Ajouter davantage de mots positifs et négatifs à votre lexique.
- Gérer les négations (ex. « pas mauvais » devrait être positif).
- Tenir compte de l’intensité des mots (ex. « excellent » vaut +2, « bien » vaut +1).
- Utiliser des bibliothèques plus avancées pour le traitement du langage naturel, comme le tokenization, le stemming et la lemmatisation.
L’idée est de nourrir votre algorithme avec des données réelles et de tester régulièrement pour améliorer la précision. Même un lexique simple comme celui que nous avons utilisé peut donner des résultats très satisfaisants pour des applications basiques.
Optimiser et enrichir notre analyse de sentiments en PHP
Dans la version précédente, chaque mot positif ou négatif comptait pour +1 ou -1. Pour améliorer l’analyse, vous pouvez attribuer un poids différent selon la force du mot. Par exemple :
$positiveWords = [
"excellent" => 3,
"parfait" => 3,
"super" => 2,
"fantastique" => 3,
"agréable" => 1,
"rapide" => 1,
"efficace" => 2,
"qualité" => 2,
"propre" => 1,
"recommande" => 2
];
$negativeWords = [
"mauvais" => 3,
"lent" => 2,
"décevant" => 3,
"horrible" => 3,
"médiocre" => 2,
"problème" => 2,
"panne" => 2,
"sale" => 2,
"inutile" => 3,
"risque" => 1
];
Ensuite, dans la fonction analyzeSentiment
, vous remplacez le simple +1
ou -1
par la valeur du mot :
if (isset($positiveWords[$word])) {
$positiveCount += $positiveWords[$word];
}
if (isset($negativeWords[$word])) {
$negativeCount += $negativeWords[$word];
}
Avec cette méthode, un mot très positif ou très négatif a un impact plus fort sur le score global, ce qui rend votre analyse plus réaliste.
Gérer les phrases négatives et les doubles négations
Le langage humain est complexe. Des phrases comme « pas mauvais » ou « ce n’est pas terrible » peuvent inverser le sentiment. Pour gérer cela, on peut détecter les mots de négation (pas
, ne
, jamais
) et inverser le score du mot qui suit.
Exemple simplifié :
$negations = ["pas", "ne", "jamais", "aucun"];
$invertNext = false;
foreach ($words as $word) {
if (in_array($word, $negations)) {
$invertNext = true;
continue;
}
if (isset($positiveWords[$word])) {
$positiveCount += $invertNext ? -$positiveWords[$word] : $positiveWords[$word];
}
if (isset($negativeWords[$word])) {
$negativeCount += $invertNext ? -$negativeWords[$word] : $negativeWords[$word];
}
$invertNext = false; // réinitialiser après le mot suivant
}
Ainsi, si un mot positif suit une négation, il devient négatif, et inversement. Cela améliore considérablement la précision pour des phrases plus naturelles.
Analyser plusieurs avis et générer des statistiques
Dans une application réelle, vous aurez souvent plusieurs avis à analyser. Vous pouvez créer une fonction qui parcourt un tableau d’avis et calcule : le score moyen, le pourcentage d’avis positifs, négatifs et neutres.
Exemple :
$avisList = [
"Le produit est excellent et la livraison rapide.",
"Très décevant, il est inutilisable.",
"Service correct mais pas parfait.",
"Super qualité, je recommande !",
"Horrible, ne fonctionne pas."
];
$totalScore = 0;
$positiveCount = 0;
$negativeCount = 0;
$neutralCount = 0;
foreach ($avisList as $avis) {
$result = analyzeSentiment($avis, $positiveWords, $negativeWords);
$totalScore += $result['score'];
if ($result['sentiment'] === "Positif") $positiveCount++;
elseif ($result['sentiment'] === "Négatif") $negativeCount++;
else $neutralCount++;
}
echo "Score moyen : " . ($totalScore / count($avisList)) . "<br>";
echo "Avis positifs : $positiveCount<br>";
echo "Avis négatifs : $negativeCount<br>";
echo "Avis neutres : $neutralCount<br>";
Ce code vous donne un aperçu global des sentiments pour plusieurs avis, ce qui est très utile pour le suivi de la satisfaction client.
<?php
$positiveWords = [
"excellent" => 3,
"parfait" => 3,
"super" => 2,
"fantastique" => 3,
"agréable" => 1,
"rapide" => 1,
"efficace" => 2,
"qualité" => 2,
"propre" => 1,
"recommande" => 2
];
$negativeWords = [
"mauvais" => 3,
"lent" => 2,
"décevant" => 3,
"horrible" => 3,
"médiocre" => 2,
"problème" => 2,
"panne" => 2,
"sale" => 2,
"inutile" => 3,
"risque" => 1
];
function analyzeSentiment($text, $positiveWords, $negativeWords) {
// On met le texte en minuscules pour éviter les problèmes de casse
$text = strtolower($text);
// On enlève la ponctuation
$text = preg_replace('/[^\w\s]/u', '', $text);
// On sépare le texte en mots
$words = explode(' ', $text);
// On initialise les compteurs
$positiveCount = 0;
$negativeCount = 0;
$negations = ["pas", "ne", "jamais", "aucun"];
$invertNext = false;
// On parcourt chaque mot pour vérifier s'il est positif ou négatif
foreach ($words as $word) {
if (in_array($word, $negations)) {
$invertNext = true;
continue;
}
if (isset($positiveWords[$word])) {
$positiveCount += $invertNext ? -$positiveWords[$word] : $positiveWords[$word];
}
if (isset($negativeWords[$word])) {
$negativeCount += $invertNext ? -$negativeWords[$word] : $negativeWords[$word];
}
$invertNext = false; // réinitialiser après le mot suivant
}
// Calcul de la note : nombre de mots positifs - nombre de mots négatifs
$score = $positiveCount - $negativeCount;
// Détermination du sentiment global
if ($score > 0) {
$sentiment = "Positif";
} elseif ($score < 0) {
$sentiment = "Négatif";
} else {
$sentiment = "Neutre";
}
// On retourne le résultat sous forme de tableau
return [
'score' => $score,
'sentiment' => $sentiment,
'positif' => $positiveCount,
'negatif' => $negativeCount
];
}
$avisList = [
"Le produit est excellent et la livraison rapide.",
"Très décevant, il est inutilisable.",
"Service correct mais pas parfait.",
"Super qualité, je recommande !",
"Horrible, ne fonctionne pas."
];
$totalScore = 0;
$positiveCount = 0;
$negativeCount = 0;
$neutralCount = 0;
foreach ($avisList as $avis) {
$result = analyzeSentiment($avis, $positiveWords, $negativeWords);
$totalScore += $result['score'];
if ($result['sentiment'] === "Positif") $positiveCount++;
elseif ($result['sentiment'] === "Négatif") $negativeCount++;
else $neutralCount++;
}
echo "Score moyen : " . ($totalScore / count($avisList)) . "<br>";
echo "Avis positifs : $positiveCount<br>";
echo "Avis négatifs : $negativeCount<br>";
echo "Avis neutres : $neutralCount<br>";
Passer à un vrai modèle Machine Learning en PHP
Le système que nous avons créé est un lexique simple, mais PHP-ML permet d’aller plus loin. Vous pouvez utiliser :
- Naive Bayes pour classifier les avis automatiquement.
- SVM (Support Vector Machine) pour gérer des textes plus complexes.
- KNN (K-Nearest Neighbors) pour des classifications basées sur des exemples proches.
Pour allez plus loin, consulter le chapitre sur Le native Bayes en Machine Learning.
L’avantage est que ces modèles peuvent apprendre à partir de vos données réelles et détecter des subtilités que le lexique simple ne gère pas, comme les phrases complexes ou les combinaisons de mots.

Des formations informatique pour tous !
Débutant ou curieux ? Apprenez le développement web, le référencement, le webmarketing, la bureautique, à maîtriser vos appareils Apple et bien plus encore…
Formateur indépendant, professionnel du web depuis 2006, je vous accompagne pas à pas et en cours particulier, que vous soyez débutant ou que vous souhaitiez progresser. En visio, à votre rythme, et toujours avec pédagogie.
Découvrez mes formations Qui suis-je ?Exemple simple avec Naive Bayes :
require 'vendor/autoload.php';
use Phpml\Classification\NaiveBayes;
$samples = [
["excellent", "rapide", "qualité"],
["mauvais", "inutile", "lent"],
["super", "agréable", "recommande"],
["horrible", "décevant", "panne"]
];
$labels = ["Positif", "Négatif", "Positif", "Négatif"];
$classifier = new NaiveBayes();
$classifier->train($samples, $labels);
$test = ["qualité", "super", "rapide"];
echo "Sentiment prédit : " . $classifier->predict($test);
Ici, chaque avis est transformé en tableau de mots et le modèle prédit automatiquement le sentiment. Vous pouvez entraîner le modèle avec des centaines ou milliers d’avis pour améliorer la précision.
Nous avons donc vu comment créer une analyse de sentiments basique en PHP en partant d’un lexique simple. Vous avez appris à :
- Nettoyer et analyser un texte pour identifier les mots positifs et négatifs.
- Ajouter des pondérations pour rendre les scores plus réalistes.
- Gérer les négations pour améliorer l’interprétation des phrases.
- Analyser plusieurs avis et générer des statistiques globales.
- Comprendre comment passer à un vrai modèle Machine Learning avec PHP-ML pour traiter de grandes quantités de données.
Cette approche est idéale pour débuter en Machine Learning avec PHP. Même un lexique simple permet déjà de détecter des tendances et de mesurer la satisfaction client. Avec du temps et des données réelles, vous pouvez progressivement enrichir le lexique, utiliser des modèles plus avancés et créer un outil puissant d’analyse de texte.
L’analyse de sentiments en PHP n’est pas seulement un exercice technique : c’est un outil stratégique pour comprendre vos utilisateurs, anticiper leurs besoins et améliorer vos produits ou services.
En automatisant ce processus, vous gagnez du temps et obtenez des décisions basées sur des données concrètes, ce qui est indispensable dans un environnement numérique compétitif.
Analyse de sentiments avancée en PHP avec SVM
Le Support Vector Machine (SVM) est un algorithme de Machine Learning puissant utilisé pour la classification. Contrairement à notre méthode lexique simple, SVM va apprendre à distinguer les avis positifs et négatifs à partir d’exemples, même si le texte contient des combinaisons de mots complexes ou des phrases nuancées.
En pratique, SVM crée un hyperplan dans un espace multidimensionnel qui sépare les données de manière optimale. Pour l’analyse de sentiments, chaque avis est transformé en vecteur de caractéristiques (par exemple, présence ou absence de certains mots), et le SVM apprend à prédire la classe (Positif, Négatif ou Neutre).
Préparer les données pour le SVM
Pour utiliser SVM avec PHP-ML, il faut convertir les textes en vecteurs. Cela signifie transformer chaque avis en une liste de caractéristiques numériques. Une approche simple consiste à utiliser Bag of Words (sac de mots), où chaque mot du lexique devient une dimension.
Exemple de lexique et d’échantillons
require 'vendor/autoload.php';
use Phpml\Classification\SVC;
use Phpml\SupportVectorMachine\Kernel;
$lexique = ["excellent", "parfait", "super", "fantastique", "agréable", "rapide", "efficace", "qualité", "propre", "recommande",
"mauvais", "lent", "décevant", "horrible", "médiocre", "problème", "panne", "sale", "inutile", "risque"];
$samples = [
"Le produit est excellent et la livraison rapide",
"Très décevant, il est inutilisable",
"Super qualité, je recommande !",
"Horrible, ne fonctionne pas",
"Service correct mais pas parfait"
];
$labels = ["Positif", "Negatif", "Positif", "Negatif", "Neutre"];
Convertir les avis en vecteurs numériques
Nous devons maintenant créer une fonction qui transforme un avis en vecteur binaire indiquant la présence ou non de chaque mot du lexique :
function textToVector($text, $lexique) {
$text = strtolower($text);
$text = preg_replace('/[^\w\s]/u', '', $text);
$words = explode(' ', $text);
$vector = [];
foreach ($lexique as $word) {
$vector[] = in_array($word, $words) ? 1 : 0;
}
return $vector;
}
// Conversion des échantillons
$vectorSamples = [];
foreach ($samples as $sample) {
$vectorSamples[] = textToVector($sample, $lexique);
}
Chaque avis est maintenant représenté par un tableau de 0 et 1, prêt à être utilisé par le SVM.
Entraîner le modèle SVM
Avec PHP-ML, il suffit de créer un objet SVC
et de l’entraîner sur nos vecteurs :
$classifier = new SVC(Kernel::LINEAR, $cost = 1000);
$classifier->train($vectorSamples, $labels);
Explications :
Kernel::LINEAR
: SVM linéaire, adapté à des données simples comme notre exemple.$cost = 1000
: Paramètre de régularisation, qui influence la tolérance aux erreurs.
Après l’entraînement, le modèle est capable de prédire le sentiment de nouveaux avis.
Tester le modèle SVM
Testons maintenant le modèle sur un nouvel avis :
$newAvis = "Le produit est rapide et de très bonne qualité";
$vectorTest = textToVector($newAvis, $lexique);
$sentiment = $classifier->predict($vectorTest);
echo "Sentiment prédit : " . $sentiment;
Le SVM va analyser la combinaison de mots et prédire le sentiment global. Avec notre exemple, il devrait renvoyer Positif.
Avantages de l’approche SVM
Utiliser SVM présente plusieurs avantages par rapport au lexique simple :
- L’algorithme apprend à partir de vos données, donc il s’adapte aux nuances et aux combinaisons de mots.
- Il gère mieux les phrases complexes et les avis longs.
- Il peut être étendu facilement pour gérer plus de classes (ex. Neutre, Très positif, Très négatif).
- L’ajout de nouvelles données d’entraînement améliore progressivement la précision.
Cette approche nécessite plus de données pour être efficace et peut être plus complexe à déboguer pour un débutant.
Grâce au SVM, vous passez d’une simple analyse basée sur un lexique à un véritable modèle d’apprentissage automatique capable de classifier automatiquement des avis en Positif, Négatif ou Neutre. Cette méthode est plus robuste, plus flexible et mieux adaptée à de vrais volumes de données textuelles.
En combinant le lexique initial pour les tests rapides et SVM pour des analyses avancées, vous disposez d’un outil complet d’analyse de sentiments en PHP, allant du simple comptage de mots à un modèle Machine Learning performant.
Cette approche montre que PHP peut être utilisé pour des tâches de Machine Learning, même sur des textes, et qu’il est possible de créer un système d’analyse de sentiments évolutif capable de s’améliorer avec l’expérience et les données réelles.
Enrichir vos données et améliorer la précision SVM
L’efficacité d’un modèle SVM dépend directement de la qualité et de la quantité de données d’entraînement. Plus vous fournissez d’exemples variés d’avis positifs, négatifs et neutres, plus votre modèle sera capable de reconnaître les nuances dans de nouveaux avis.
Enrichir vos données permet de :
- Gérer les expressions ou mots spécifiques à vos produits.
- Détecter des combinaisons de mots complexes.
- Réduire les erreurs dues aux ambiguïtés du langage naturel.
Collecter vos avis clients réels
Pour enrichir votre dataset, commencez par récupérer les avis existants. Vous pouvez les extraire :
- Depuis votre site e-commerce ou votre base de données.
- Depuis les réseaux sociaux ou plateformes d’avis (Trustpilot, Google Reviews).
- Depuis vos emails de feedback ou enquêtes clients.
Chaque avis doit être classé manuellement au moins une fois, en Positif, Négatif ou Neutre. Ce sera la base fiable pour entraîner votre SVM.
Préparer le dataset
Une fois les avis collectés, vous pouvez créer un fichier CSV ou JSON contenant :
- Le texte de l’avis
- Le label correspondant (Positif, Négatif, Neutre)
Exemple en CSV :
avis,label
"Produit excellent et livraison rapide",Positif
"Service médiocre, très décevant",Negatif
"Correct mais pas parfait",Neutre
En PHP, vous pouvez lire ce fichier pour alimenter vos tableaux d’échantillons et labels :
$samples = [];
$labels = [];
if (($handle = fopen('avis.csv', 'r')) !== false) {
fgetcsv($handle); // Ignore l'entête
while (($data = fgetcsv($handle, 1000, ',')) !== false) {
$samples[] = textToVector($data[0], $lexique);
$labels[] = $data[1];
}
fclose($handle);
}
Réentraîner régulièrement votre modèle
Chaque fois que vous collectez de nouveaux avis, vous pouvez :
- Ajouter ces avis au dataset existant.
- Mettre à jour vos vecteurs avec la fonction
textToVector
. - Réentraîner le SVM pour améliorer la précision.
Exemple :
$classifier = new SVC(Kernel::LINEAR, $cost = 1000);
$classifier->train($samples, $labels);
Avec un dataset plus large, votre modèle deviendra capable de prédire correctement même des avis complexes ou inhabituels.
Créer un tableau de bord de suivi
Pour exploiter pleinement votre analyse, vous pouvez créer un tableau de bord simple en PHP :
- Afficher le nombre total d’avis analysés.
- Montrer le pourcentage d’avis positifs, négatifs et neutres.
- Calculer la note moyenne ou la tendance sur une période donnée.
- Mettre en évidence les mots les plus fréquents associés aux sentiments.
Exemple de statistiques simples :
$totalAvis = count($samples);
$positif = count(array_filter($labels, fn($l) => $l == "Positif"));
$negatif = count(array_filter($labels, fn($l) => $l == "Negatif"));
$neutre = count(array_filter($labels, fn($l) => $l == "Neutre"));
echo "Total avis : $totalAvis<br>";
echo "Positifs : $positif<br>";
echo "Négatifs : $negatif<br>";
echo "Neutres : $neutre<br>";
Vous pouvez aller plus loin en utilisant charts JavaScript (Chart.js ou Highcharts) pour visualiser l’évolution des sentiments.
Conseils pour améliorer la précision
- Enrichir le lexique : Ajoutez des synonymes, des mots fréquents propres à votre domaine.
- Augmenter le dataset : Plus de textes réels = meilleure prédiction.
- Gérer les variations : Les abréviations, fautes d’orthographe et formes conjuguées doivent être prises en compte.
- Utiliser le stemming ou la lemmatisation : Réduire les mots à leur racine pour mieux reconnaître les variations (excellent / excellente).
- Testez régulièrement : Comparez les prédictions du modèle à la classification manuelle pour vérifier la précision.
En combinant lexique simple, SVM et données réelles, vous pouvez construire un outil d’analyse de sentiments en PHP à la fois robuste et évolutif. Le processus va de l’analyse rapide de quelques avis au traitement automatisé de centaines ou milliers de commentaires, avec un suivi précis de la satisfaction client.
L’enrichissement continu de vos données et la réentraînement régulier du modèle permettent de tenir compte des changements dans le langage ou dans les préférences des clients, rendant votre analyse dynamique et réellement utile pour la prise de décision.
Cette approche vous offre un outil stratégique pour comprendre vos utilisateurs, détecter les tendances positives ou négatives et améliorer vos produits ou services en continu, le tout directement depuis PHP et vos propres données.
Chapitre 8 : K-Nearest Neighbors →