Accueil > Démasquer les faux avis avec Azure Cognitive Services et Azure OpenAI : étude de cas
Alibek Jakupov
2 novembre 2023
Read this post in English

Démasquer les faux avis avec Azure Cognitive Services et Azure OpenAI : étude de cas

Démasquer les faux avis avec Azure Cognitive Services et Azure OpenAI : étude de cas

L’essor des avis en ligne a entraîné une augmentation des contenus créés par des particuliers. Cependant, certains de ces avis peuvent être considérés comme faux ou frauduleux : ce sont les spams d’opinion. Cela peut aller de la promotion d’un site web ou d’un blog sans rapport avec le sujet jusqu’à la rédaction intentionnelle de faux avis à des fins de gain financier.

La détection des spams d’opinion est essentielle car ces derniers peuvent induire les potentiels consommateurs en erreur, et les inciter à acheter des produits de qualité inférieure ou à éviter des produits de qualité supérieure. Par conséquent, il est fortement conseillé aux entreprises d’identifier et de supprimer automatiquement ce type d’avis. Alors que l’analyse des sentiments et la reconnaissance des intentions ont fait l’objet d’une attention particulière dans le domaine du traitement du langage naturel (ou NLP pour Natural Language Processing), la détection des spams d’opinion à l’aide des techniques de classification de textes a été relativement peu étudiée.

Certaines formes de spams d’opinion sont facilement reconnaissables pour un lecteur humain, comme les publicités, les questions et d’autres textes sans opinion. Ces formes relèvent de la catégorie des spams d’opinion perturbateurs, c’est-à-dire des déclarations non pertinentes qui sont évidentes pour les lecteurs et présentent un risque minimal puisque les utilisateurs peuvent choisir de les ignorer. Toutefois, l’identification de formes plus trompeuses de spams d’opinion, telles que les spams d’opinion trompeurs, est une tâche difficile. Ces types de spams sont délibérément conçus pour paraître authentiques et induire en erreur le vérificateur, généralement sous la forme de faux avis, négatifs ou positifs, qui visent à nuire à l’image d’une entreprise ou à la rehausser. Ces avis étant délibérément créés pour tromper le lecteur, les vérificateurs humains ont du mal à détecter ces déclarations frauduleuses. Il est donc urgent de s’attaquer à ce problème en extrayant de ces textes trompeurs des motifs textuels avec des sous-structures significatives.

L’approche du problème passe par la classification des textes, qui se compose généralement de deux éléments : un module d’extraction des caractéristiques et un classificateur. Le module d’extraction des caractéristiques génère des caractéristiques à partir d’une séquence de texte donnée, tandis que le classificateur attribue des étiquettes de classe en fonction des caractéristiques correspondantes. Les éléments lexicaux et syntaxiques sont couramment utilisés comme caractéristiques, notamment le nombre total de mots, le nombre de caractères par mot, la fréquence de mots longs et uniques, les mots ou phrases de fonction, les n-grammes, les sacs de mots (ou BOW pour Bags of Words) et l’Étiquetage morpho-syntaxique (ou POS tagging pour Parts-Of-Speech). En outre, des caractéristiques relatives à un lexique peuvent être utilisées pour indiquer la présence ou l’absence d’un terme d’un lexique dans le texte, exprimée sous la forme d’une valeur binaire où le positif équivaut à « apparaît » et le négatif à « n’apparaît pas ».

Si cette méthodologie présente des avantages, elle a aussi des limites notables. La gestion de la qualité de l’ensemble d’apprentissage peut s’avérer difficile, et la création d’un classificateur fiable nécessite une quantité substantielle de textes étiquetés avec précision. En outre, les classificateurs qui s’appuient sur des emboîtements peuvent être influencés par des points de vue sociaux ou individuels dans les données d’apprentissage, ce qui conduit à des conclusions erronées. En outre, il peut arriver que les conclusions de l’algorithme soient exactes au niveau de l’ensemble d’apprentissage, mais non applicables dans de nouvelles situations, ce qui pose d’importantes difficultés pour la détection des spams d’opinion trompeurs.

Pour comprendre comment les mensonges sont véhiculés dans les documents écrits, nous allons explorer d’autres méthodes. Pour commencer cette étude, nous allons d’abord utiliser la bibliothèque de client Azure Analyse de texte pour Python, qui offre les possibilités suivantes :

  • Obtenir différentes facettes du sentiment, telles que la neutralité ou la négativité.
  • Évaluer le sentiment général, qui n’est pas toujours cohérent. Certains avis ou analyses peuvent contenir à la fois des éléments positifs et négatifs.

 

Prérequis

 

  • Python 3.5 ou une version ultérieure
  • Abonnement Azure et une ressource Cognitive Services ou Analyse de texte. Pour plus d’informations, consultez la documentation officielle de Microsoft.
  • Bibliothèque Azure Analyse de texte pour Python. Installez la bibliothèque à l’aide de pip :
    • pip install azure-ai-textanalytics
  • OpenCV pour la visualisation des données. De même, installez le package avec pip :
    • pip install opencv-python
  • Dans cette étude, le corpus Ott Deceptive Opinion spam est utilisé comme Dataset. Ce corpus est un recueil d’avis accessible au public, qui comprend 400 avis véridiques et 400 avis trompeurs de référence. Les avis ont été recueillis à l’aide d’Amazon Mechanical Turk. Téléchargez le fichier CSV du concours Kaggle.

 

Expérimentation

 

Supposons que nous disposions de deux avis, l’un véridique et l’autre trompeur, exprimant tous deux le même sentiment (positif ou négatif). L’avis trompeur peut toutefois contenir certains motifs qui ne sont pas facilement détectables par l’homme, mais peuvent être reconnus par une machine. Ces avis peuvent contenir des expressions exagérées d’émotions, comme « J’ai absolument adoré le service, c’était tout simplement exceptionnel ». Ne serait-il pas utile d’analyser visuellement ces commentaires et de déterminer le degré d’exagération ? Pour ce faire, il suffit de suivre les étapes décrites ci-dessous.

 

Préparation et configuration

 

Tout d’abord, importez tous les packages nécessaires :

 

Ensuite, créez quelques fonctions utiles qui vous permettent d’obtenir rapidement un sous-ensemble d’Ott Corpus dont vous avez besoin :

 

Comment le trouvez-vous ? : créer un analyseur de sentiment

 

Analyse de texte est un service qui fonctionne dans le Cloud et qui offre des capacités de NLP avancées sur du texte non traité. Ses principales caractéristiques englobent les fonctions suivantes :

  • Analyse des sentiments
  • Reconnaissance d’entités nommées
  • Reconnaissance d’entités liées
  • Reconnaissance d’entités d’informations personnelles identifiables (IPI)
  • Détection des langues
  • Extraction de phrases clés
  • Analyse multiple
  • Analyse des entités du secteur de la santé

 

Le service Analyse de texte utilise des modèles prédictifs pour analyser les documents, qui sont traités comme une seule unité. Pour effectuer une opération, une liste de documents est nécessaire, chaque document étant représenté par une chaîne dans la liste.

Le sous-service Analyse des sentiments est le seul élément exigé pour cette expérience. Ce sous-service examine le texte entré et détermine si le sentiment est positif, négatif, neutre ou un mélange des deux. Il fournit une note de confiance et une analyse des sentiments par phrase dans sa réponse.

Créons une fonction d’aide qui renvoie trois aspects sentimentaux d’une chaîne entrée :

 

Pour représenter chaque avis par un pixel, nous avons besoin de valeurs spécifiques. Par exemple, le bleu représente la neutralité, le rouge la négativité et le vert la positivité. Les pixels doivent être fusionnés pour former une seule image. Ainsi, en fonction du sentiment, le corpus peut être colorisé dans un format BVR (bleu, vert, rouge). Il est important de noter que l’acronyme utilisé n’est pas RVB mais plutôt BVR puisque OpenCV est utilisé.

 

Apporter de la couleur : mettre en évidence les commentaires

 

Dans cette étape, nous allons créer quelques fonctions d’aide pour convertir nos sentiments au format pixel :

 

Nous commençons par convertir le sentiment en format BVR. Nous générons ensuite une image à partir de ces valeurs.

 

Repérer la différence : comparaison des motifs visuels

 

Nous sommes maintenant prêts à réaliser notre première expérience.

 

Pour commencer, nous allons utiliser l’analyseur de sentiments sur les avis qui ont été filtrés. Nous allons nous concentrer plus particulièrement sur les avis qui sont à la fois trompeurs et positifs :

 

Pour éviter d’avoir à réexécuter l’analyse des sentiments, qui prend beaucoup de temps, nous stockons le Dataset sur un appareil local afin de pouvoir le manipuler. Cela nous permet de consulter facilement les commentaires :

 

Pour comparer les résultats, vous devez répéter la même procédure avec les autres sous-ensembles – véridique et positif, trompeur et négatif, et ainsi de suite. Vous disposerez ainsi d’une analyse complète de toutes les différentes combinaisons de véracité et de sentiment.

Repérer la différence : comparaison des motifs visuels

 

Comme vous pouvez le constater dans les quatre images ci-dessus, les avis négatifs trompeurs sont plus rouges, avec moins de taches vertes. Ces caractéristiques prouvent qu’il y a une certaine exagération dans les faux commentaires. La même tendance peut être observée dans les avis positifs. Les couleurs sont beaucoup plus vertes, avec moins de taches rouges. Nous pouvons littéralement voir dans quelle mesure certains services sont faussement exaltés. Tandis que les avis véridiques ont tendance à être plus réalistes.

 

Fumée et miroirs : la couleur de la tromperie

 

L’objectif de cette étape est d’obtenir une teinte homogène qui traduise précisément la tromperie. Pour ce faire, il suffit de calculer la moyenne des trois canaux de chaque pixel et de les fusionner. Une fois la moyenne de tous les pixels déterminés, les canaux sont combinés.

 

Après avoir combiné toutes les fonctions, nous obtenons le script de démarrage suivant :

 

Pour obtenir le résultat souhaité, il est nécessaire de procéder de la même manière avec les avis véridiques et négatifs. Cela conduit au résultat suivant :

Fumée et miroirs : la couleur de la tromperie

 

 

Il apparaît que les avis négatifs honnêtes ne sont pas aussi visibles que les avis trompeurs, et que même les avis positifs falsifiés sont plus visibles que les commentaires authentiques.

 

Autre option : utiliser Azure OpenAI

 

Le service Azure OpenAI permet aux utilisateurs d’accéder aux modèles de langage d’OpenAI, tels que les séries de modèles GPT-4, GPT-3.5-Turbo et Embeddings, via l’API REST. Ces modèles sont très puissants et personnalisables pour diverses tâches, notamment la génération de contenu, le résumé, la recherche sémantique et la traduction du langage naturel en code. Les dernières séries de modèles GPT-4 et GPT-3.5-Turbo sont désormais disponibles pour un usage général. Les utilisateurs peuvent interagir avec le service via les API REST, le SDK pour Python ou l’interface web d’Azure OpenAI Studio.

Le cœur du service API est le point de terminaison de création. Il permet aux utilisateurs d’accéder à l’interface d’entrée et de sortie de texte du modèle. En fournissant une invite de saisie contenant une commande de texte en anglais, les utilisateurs peuvent facilement générer une création de texte.

Voici un exemple d’invite simple et de création :

Prompt: """ count to 5 in a for loop """
Completion: for i in range(1, 6): print(i)


Par conséquent, une autre approche pour détecter le sentiment d’un texte consiste à utiliser le service Azure OpenAI. Ce service peut analyser le texte et fournir une évaluation du sentiment général qui y est exprimé.

 

Le prompt détermine le sentiment général et utilise le service d’analyse des sentiments pour fournir des aspects spécifiques. Cependant, vous pouvez reformuler le prompt en proposant trois exemples, un pour le sentiment positif, un pour le sentiment négatif et un pour le sentiment neutre. De cette manière, le prompt peut être rendue plus efficace.

 

L’essentiel à retenir

 

Dans cet article, nous avons utilisé l’analyse des sentiments pour identifier les caractéristiques typiques des commentaires frauduleux. Pour ce faire, nous avons utilisé la fonction d’analyse des sentiments de l’API d’analyse de texte, qui nous a permis d’extraire divers aspects sentimentaux du texte entré, y compris les polarités positives, négatives et neutres. Comme le montre l’exemple ci-dessus, le contraste des couleurs entre les avis trompeurs et les avis honnêtes est perceptible. Ces différences nous permettent de conclure que nous pouvons évaluer le degré d’hyperbole en visualisant les sentiments.

 

Le code utilisé pour ce projet est disponible sur GitHub, vous pouvez le télécharger et le tester à votre convenance.

Nos autres articles
Commentaires
Laisser un commentaire

Restez au courant des dernières actualités !
Le meilleur de l’actualité sur le Cloud, le DevOps, l’IT directement dans votre boîte mail.