Automatisez les processus d’exploration de texte et d’analyse des sentiments, Excel VBA

Automatisez les processus d’exploration de texte et d’analyse des sentiments, Excel VBA

L’automatisation des processus d’exploration de texte et d’analyse des sentiments dans Excel avec VBA peut être un défi intéressant, mais aussi très puissant pour les analyses de données textuelles. Pour accomplir cette tâche, nous devons diviser l’opération en plusieurs étapes : 

       1. Exploration de texte : C’est l’étape où nous préparons les données en nettoyant et en transformant le texte (par exemple, suppression des espaces, conversion en minuscules, suppression des stopwords, etc.). 

       2. Analyse des sentiments : Une fois que nous avons le texte nettoyé, nous devons analyser les sentiments, c’est-à-dire déterminer si le sentiment général est positif, négatif ou neutre. Pour cela, nous devons utiliser une bibliothèque d’analyse de sentiments. 

Cependant, dans VBA, il n’y a pas de bibliothèque native d’analyse de sentiment, mais nous pouvons utiliser une API externe comme celle de TextBlob ou Azure Cognitive Services pour effectuer l’analyse des sentiments. Voici un exemple détaillé d’un processus d’exploration de texte et d’analyse des sentiments avec VBA, en utilisant l’API de Microsoft Azure pour l’analyse des sentiments. 

Étapes à suivre : 

      1. Inscription sur Azure Cognitive Services

  • Vous devez d’abord vous inscrire pour accéder à l’API d’Azure pour l’analyse des sentiments (Cognitive Services Text Analytics). 
  • Une fois inscrit, vous obtiendrez une clé API et une URL de point de terminaison

      2. Préparation du fichier Excel

  • Créez un fichier Excel avec des données textuelles (par exemple, dans la colonne A). 
  • Dans la colonne B, nous afficherons le sentiment (positif, négatif ou neutre). 
  1. Code VBA pour nettoyer le texte et appeler l’API d’Azure

Code VBA détaillé : 

Sub AnalyserSentiment() 
    ' Variables 
    Dim http As Object 
    Dim url As String 
    Dim apiKey As String 
    Dim text As String 
    Dim jsonRequest As String 
    Dim jsonResponse As String 
    Dim sentiment As String 
    Dim i As Long 
    ' Insérer ici votre clé API et l'URL du service 
    apiKey = "VOTRE_CLÉ_API" 
    url = "https://<votre_endpoint>.cognitiveservices.azure.com/text/analytics/v3.0/sentiment"
    ' Créer l'objet HTTP pour envoyer la requête 
    Set http = CreateObject("MSXML2.XMLHTTP") 
    ' Boucle sur chaque ligne pour analyser le sentiment 
    For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row 
        text = Cells(i, 1).Value 
        ' Nettoyer le texte (retirer les espaces inutiles et mettre en minuscules) 
        text = Trim(LCase(text)) 
        ' Créer la requête JSON 
        jsonRequest = "{""documents"":[{""id"":""1"",""text"":""" & text & """}]}" 
        ' Envoyer la requête HTTP POST 
        http.Open "POST", url, False 
        http.setRequestHeader "Content-Type", "application/json" 
        http.setRequestHeader "Ocp-Apim-Subscription-Key", apiKey 
        http.Send jsonRequest 
        ' Récupérer la réponse JSON 
        jsonResponse = http.responseText
        ' Extraire le sentiment de la réponse JSON 
        sentiment = GetSentimentFromResponse(jsonResponse) 
        ' Placer le sentiment dans la colonne B 
        Cells(i, 2).Value = sentiment 
    Next i 
    ' Libérer la mémoire 
    Set http = Nothing 
End Sub 
' Fonction pour extraire le sentiment de la réponse JSON 
Function GetSentimentFromResponse(response As String) As String 
    Dim startPos As Long 
    Dim endPos As Long 
    Dim sentiment As String 
    ' Rechercher la position du sentiment dans la réponse JSON 
    startPos = InStr(response, """sentiment"":""") + Len("""sentiment"":""") 
    endPos = InStr(startPos, response, """") 
    ' Extraire le sentiment 
    sentiment = Mid(response, startPos, endPos - startPos) 
    ' Retourner le sentiment 
    GetSentimentFromResponse = sentiment 
End Function

 

Explication détaillée du code : 

      1. Déclaration des variables

  • http : Objet pour envoyer des requêtes HTTP. 
  • url : URL de l’API d’analyse des sentiments de Microsoft Azure. 
  • apiKey : Clé d’API pour authentifier les requêtes. 
  • text : Le texte à analyser. 
  • jsonRequest : Structure JSON à envoyer dans la requête. 
  • jsonResponse : Réponse renvoyée par l’API après l’analyse du texte. 
  • sentiment : Le sentiment analysé (positif, négatif, ou neutre). 

      2. Envoi de la requête à l’API Azure

  • Le texte est d’abord nettoyé (mis en minuscules et supprimé des espaces inutiles). 
  • Une requête HTTP POST est envoyée à l’API avec le texte en JSON. 
  • L’API analyse le texte et renvoie un objet JSON contenant le résultat. 

      3. Extraction du sentiment de la réponse

  • La fonction GetSentimentFromResponse récupère la valeur du sentiment (positif, négatif ou neutre) à partir de la réponse JSON. 

      4. Placement du résultat dans la feuille Excel

  • Le sentiment est affiché dans la colonne B de chaque ligne correspondante. 

Pré-requis : 

     1. Référence à la bibliothèque Microsoft XML

  • Ouvrez l’éditeur VBA (Alt + F11). 
  • Allez dans Outils > Références
  • Cochez la case Microsoft XML, v6.0 (ou une version similaire) pour pouvoir utiliser l’objet MSXML2.XMLHTTP. 

      2. Gestion des erreurs

  • Le code ne gère pas toutes les erreurs possibles. Il est conseillé de vérifier si l’API répond correctement et d’ajouter des mécanismes pour gérer les erreurs liées à l’API (par exemple, si la clé API est invalide ou si l’API est hors ligne). 

Tester le code : 

  1. Placez des données textuelles dans la colonne A (par exemple, des avis clients ou des commentaires). 
  2. Exécutez la macro AnalyserSentiment pour voir les résultats dans la colonne B. La macro analysera chaque texte, effectuera l’analyse des sentiments et affichera le sentiment global dans la colonne B. 

Limitations : 

  • Quota de l’API : Assurez-vous que vous respectez les limites de l’API de Microsoft Azure (exemple : nombre de requêtes par mois). 
  • Langue : Azure Cognitive Services prend en charge plusieurs langues. Assurez-vous que la langue du texte est compatible avec l’API. 

Ce processus vous permet d’automatiser l’analyse des sentiments dans Excel à l’aide de VBA, tout en tirant parti des services puissants d’Azure pour l’analyse des sentiments. 

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x