Exemple : Comment détecter les sentiments dans l’Analyse de texteExample: How to detect sentiment with Text Analytics

L’API Analyse des sentiments évalue le texte en entrée et retourne un score de sentiment pour chaque document, entre 0 (négatif) et 1 (positif).The Sentiment Analysis API evaluates text input and returns a sentiment score for each document, ranging from 0 (negative) to 1 (positive).

Cette fonctionnalité est utile pour détecter des sentiments positifs ou négatifs dans les réseaux sociaux, les avis client et les forums de discussion.This capability is useful for detecting positive and negative sentiment in social media, customer reviews, and discussion forums. Le contenu est fourni par vous. Les modèles et les données d’entraînement sont fournis par le service.Content is provided by you; models and training data are provided by the service.

Actuellement, l’API Analyse des sentiments prend en charge l’anglais, l’allemand, l’espagnol et le français.Currently, Sentiment Analysis supports English, German, Spanish, and French. D’autres langues sont en préversion.Other languages are in preview. Pour en savoir plus, consultez Langages pris en charge.For more information, see Supported languages.

Conseil

Analyse de texte fournit également une image conteneur Docker basée sur Linux pour l’analyse des sentiments. Vous pouvez ainsi installer et exécuter le conteneur Analyse de texte à proximité de vos données.Text Analytics also provides a Linux-based Docker container image for sentiment analysis, so you can install and run the Text Analytics container close to your data.

ConceptsConcepts

L’API Analyse de texte utilise un algorithme de classification d’apprentissage automatique pour générer un score de sentiment compris entre 0 et 1.Text Analytics uses a machine learning classification algorithm to generate a sentiment score between 0 and 1. Les scores proches de 1 indiquent un sentiment positif, tandis que les scores proches de 0 dénotent un sentiment négatif.Scores closer to 1 indicate positive sentiment, while scores closer to 0 indicate negative sentiment. Le modèle est pré-entraîné avec un corps de texte complet contenant des associations de sentiments.The model is pretrained with an extensive body of text with sentiment associations. Actuellement, vous ne pouvez pas fournir vos propres données d’entraînement.Currently, it is not possible to provide your own training data. Le modèle utilise une combinaison de techniques lors de l’analyse de texte, y compris le traitement de texte, l’analyse morphosyntaxique, le positionnement des mots et les associations de mots.The model uses a combination of techniques during text analysis, including text processing, part-of-speech analysis, word placement, and word associations. Pour plus d’informations sur l’algorithme, consultez Présentation d’Analyse de texte.For more information about the algorithm, see Introducing Text Analytics.

L’analyse des sentiments est effectuée sur l’ensemble du document, par opposition à l’extraction de sentiments pour une entité particulière dans le texte.Sentiment analysis is performed on the entire document, as opposed to extracting sentiment for a particular entity in the text. Dans la pratique, la précision des scores a tendance à augmenter lorsque les documents contiennent une ou deux phrases au lieu d’un grand bloc de texte.In practice, there is a tendency for scoring accuracy to improve when documents contain one or two sentences rather than a large block of text. Lors d’une phase d’évaluation d’objectivité, le modèle détermine si un document dans son ensemble est objectif ou s’il contient des sentiments.During an objectivity assessment phase, the model determines whether a document as a whole is objective or contains sentiment. Un document principalement objectif n’évolue pas vers une phase de détection de sentiments et obtient au final un score de 0,50, sans traitement supplémentaire.A document that is mostly objective does not progress to the sentiment detection phrase, resulting in a .50 score, with no further processing. Pour les documents qui continuent dans le pipeline, la phase suivante génère un score supérieur ou inférieur à 0,50, selon le degré de sentiments détecté dans le document.For documents continuing in the pipeline, the next phase generates a score above or below .50, depending on the degree of sentiment detected in the document.

PréparationPreparation

L’analyse des sentiments produit un résultat de meilleure qualité lorsque vous lui donnez de petits segments de texte à analyser.Sentiment analysis produces a higher quality result when you give it smaller chunks of text to work on. Au contraire, l’extraction d’expressions clés fonctionne mieux sur de plus grands blocs de texte.This is opposite from key phrase extraction, which performs better on larger blocks of text. Pour obtenir des résultats optimaux pour ces deux opérations, envisagez de restructurer les entrées en conséquence.To get the best results from both operations, consider restructuring the inputs accordingly.

Vous devez disposer des documents JSON dans ce format : ID, texte, langueYou must have JSON documents in this format: ID, text, language

La taille des documents doit être inférieure à 5 120 caractères par document et vous pouvez avoir jusqu’à 1 000 éléments (ID) par collection.Document size must be under 5,120 characters per document, and you can have up to 1,000 items (IDs) per collection. La collection est soumise dans le corps de la demande.The collection is submitted in the body of the request. Voici un exemple de contenu que vous pouvez soumettre pour analyse des sentiments.The following is an example of content you might submit for sentiment analysis.

    {
        "documents": [
            {
                "language": "en",
                "id": "1",
                "text": "We love this trail and make the trip every year. The views are breathtaking and well worth the hike!"
            },
            {
                "language": "en",
                "id": "2",
                "text": "Poorly marked trails! I thought we were goners. Worst hike ever."
            },
            {
                "language": "en",
                "id": "3",
                "text": "Everyone in my family liked the trail but thought it was too challenging for the less athletic among us. Not necessarily recommended for small children."
            },
            {
                "language": "en",
                "id": "4",
                "text": "It was foggy so we missed the spectacular views, but the trail was ok. Worth checking out if you are in the area."
            },                
            {
                "language": "en",
                "id": "5",
                "text": "This is my favorite trail. It has beautiful views and many places to stop and rest"
            }
        ]
    }

Étape 1 : Structurer la requêteStep 1: Structure the request

Vous trouverez plus d’informations sur la définition d’une demande dans Guide pratique pour appeler l’API Analyse de texte.Details on request definition can be found in How to call the Text Analytics API. Les points suivants sont réaffirmés pour des raisons pratiques :The following points are restated for convenience:

  • Créez une demande POST.Create a POST request. Passez en revue la documentation de l’API pour cette requête : API Analyse des sentimentsReview the API documentation for this request: Sentiment Analysis API

  • Définissez le point de terminaison HTTP pour l’analyse des sentiments à l’aide d’une ressource Analyse de texte sur Azure ou d’un conteneur Analyse de texte instancié.Set the HTTP endpoint for sentiment analysis, using either a Text Analytics resource on Azure or an instantiated Text Analytics container. Il doit inclure la ressource /sentiment : https://westus.api.cognitive.microsoft.com/text/analytics/v2.1/sentimentIt must include the /sentiment resource: https://westus.api.cognitive.microsoft.com/text/analytics/v2.1/sentiment

  • Définissez un en-tête de demande pour inclure la clé d’accès pour les opérations d’Analyse de texte.Set a request header to include the access key for Text Analytics operations. Pour plus d’informations, consultez Guide pratique pour rechercher des points de terminaison et des clés d’accès.For more information, see How to find endpoints and access keys.

  • Dans le corps de la demande, fournissez la collection de documents JSON que vous avez préparée pour cette analyse.In the request body, provide the JSON documents collection you prepared for this analysis.

Conseil

Utilisez Postman ou ouvrez la console de test d’API dans la documentation pour structurer la demande et la publier (POST) dans le service.Use Postman or open the API testing console in the documentation to structure the request and POST it to the service.

Étape 2 : Publier la requêteStep 2: Post the request

L’analyse est effectuée à la réception de la demande.Analysis is performed upon receipt of the request. Consultez la section Limites de données dans la vue d’ensemble pour plus d’informations sur la taille et le nombre de demandes que vous pouvez envoyer par minute et seconde.See the data limits section in the overview for information on the size and number of requests you can send per minute and second.

Rappelez-vous que le service est sans état.Recall that the service is stateless. Aucune donnée n’est stockée dans votre compte.No data is stored in your account. Les résultats sont retournés immédiatement dans la réponse.Results are returned immediately in the response.

Étape 3 : Afficher les résultatsStep 3: View results

L’analyseur de sentiments classifie le texte comme principalement positif ou négatif, en affectant un score compris entre 0 et 1.The sentiment analyzer classifies text as predominantly positive or negative, assigning a score in the range of 0 to 1. Les valeurs proches de 0,5 sont neutres ou indéterminées.Values close to 0.5 are neutral or indeterminate. Un score de 0,5 indique la neutralité.A score of 0.5 indicates neutrality. Quand une chaîne ne peut pas être analysée en ce qui concerne les sentiments ou ne présente pas de sentiments, le score est toujours exactement 0,5.When a string cannot be analyzed for sentiment or has no sentiment, the score is always 0.5 exactly. Par exemple, si vous traitez une chaîne espagnole avec un code de langue anglaise, le score obtenu est 0,5.For example, if you pass in a Spanish string with an English language code, the score is 0.5.

La sortie est retournée immédiatement.Output is returned immediately. Vous pouvez diffuser en continu les résultats dans une application qui accepte le code JSON ou enregistrer la sortie dans un fichier sur le système local, puis l’importer dans une application qui vous permet de trier, rechercher et manipuler les données.You can stream the results to an application that accepts JSON or save the output to a file on the local system, and then import it into an application that allows you to sort, search, and manipulate the data.

L’exemple suivant montre la réponse pour la collection de documents dans cet article.The following example shows the response for the document collection in this article.

{
    "documents": [
        {
            "score": 0.9999237060546875,
            "id": "1"
        },
        {
            "score": 0.0000540316104888916,
            "id": "2"
        },
        {
            "score": 0.99990355968475342,
            "id": "3"
        },
        {
            "score": 0.980544924736023,
            "id": "4"
        },
        {
            "score": 0.99996328353881836,
            "id": "5"
        }
    ],
    "errors": []
}

Analyse des sentiments V3 - Préversion publiqueSentiment analysis V3 public preview

La version suivante d’Analyse des sentiments est maintenant disponible en préversion publique, et fournit des améliorations significatives dans la précision et les détails de catégorisation et de scoring de texte de l’API.The next version of Sentiment Analysis is now available for Public Preview, providing significant improvements in the accuracy and detail of the API's text categorization and scoring.

Notes

  • Analyse des sentiments v3 nécessite le même format et les mêmes limites de données que la version précédente.The sentiment analysis v3 request format and data limits are the same as the previous version.
  • Pour l’instant, Analyse des sentiments V3 :At this time, Sentiment analysis V3:
    • Prend en charge seulement la langue anglaise.Currently only supports the English language.
    • Est disponible dans les régions suivantes : Central US, Central Canada et East AsiaIs available in the following regions: Central US, Central Canada, East Asia
FonctionnalitéFeature DescriptionDescription
Précision accrueImproved accuracy Amélioration significative de la détection des sentiments positifs, neutres, négatifs et mixtes dans des documents texte par rapport aux versions précédentes.Significant improvement in detecting positive, neutral, negative, and mixed sentiment in text documents over previous versions.
Score de sentiment au niveau du document et des phrasesDocument and Sentence-level Sentiment Score Détection du sentiment exprimé dans un document et dans ses différentes phrases.Detect the sentiment of both a document and its individual sentences. Si le document comprend plusieurs phrases, un score de sentiment est également attribué à chacune d’elles.If the document includes multiple sentences, each sentence is also assigned a sentiment score.
Catégorie et score de sentimentSentiment category and score En plus d’un score de sentiment, l’API retourne désormais des catégories de sentiments (positive, negative, neutral et mixed) pour le texte.The API now returns sentiment categories (positive, negative, neutral and mixed) for text, in addition to a sentiment score.
Sortie amélioréeImproved output Analyse des sentiments retourne désormais des informations à la fois pour un document texte entier et pour ses phrases individuelles.Sentiment analysis now returns information for both an entire text document, and its individual sentences.

Étiquetage des sentimentsSentiment labeling

Analyse des sentiments V3 peut retourner des scores et des étiquettes (positive, negative et neutral) au niveau du document et des phrases.Sentiment analysis V3 can return scores and labels (positive, negative, and neutral) at a sentence and document level. Au niveau du document, l’étiquette (pas le score) de sentiment mixed peut également être retournée.At the document level the mixed sentiment label (not score) can also be returned. Le sentiment du document est déterminé en agrégeant les scores de ses phrases.The sentiment of the document is determined by aggregating its sentences' scores.

Sentiment des phrasesSentence sentiment Étiquette de document retournéeReturned document label
Au moins une phrase positive et le reste des phrases sont neutres.At least one positive sentence and the rest of the sentences are neutral. positive
Au moins une phrase négative et le reste des phrases sont neutres.At least one negative sentence and the rest of the sentences are neutral. negative
Au moins une phrase négative et au moins une phrase positive.At least one negative sentence and at least one positive sentence. mixed
Toutes les phrases sont neutres.All sentences are neutral. neutral

Exemple de demande d’Analyse des sentiments V3Sentiment analysis V3 example request

Le JSON suivant est un exemple d’une demande adressée à la nouvelle version d’Analyse des sentiments.The following JSON is an example of a request made to the new version of sentiment analysis. Notez que la mise en forme de la demande est identique à celle de la version précédente :Note that the request formatting is the same as the previous version:

{
  "documents": [
    {
      "language": "en",
      "id": "1",
      "text": "Hello world. This is some input text that I love."
    },
    {
      "language": "en",
      "id": "2",
      "text": "It's incredibly sunny outside! I'm so happy."
    }
  ]
}

Exemple de réponse d’Analyse des sentiments V3Sentiment analysis V3 example response

Alors que le format de la demande est identique à celui de la version précédente, le format de la réponse a changé.While the request format is the same as the previous version, the response format has changed. Le JSON suivant est un exemple de réponse de la nouvelle version de l’API :The following JSON is an example response from the new version of the API:

{
    "documents": [
        {
            "id": "1",
            "sentiment": "positive",
            "documentScores": {
                "positive": 0.98570585250854492,
                "neutral": 0.0001625834556762,
                "negative": 0.0141316400840878
            },
            "sentences": [
                {
                    "sentiment": "neutral",
                    "sentenceScores": {
                        "positive": 0.0785155147314072,
                        "neutral": 0.89702343940734863,
                        "negative": 0.0244610067456961
                    },
                    "offset": 0,
                    "length": 12
                },
                {
                    "sentiment": "positive",
                    "sentenceScores": {
                        "positive": 0.98570585250854492,
                        "neutral": 0.0001625834556762,
                        "negative": 0.0141316400840878
                    },
                    "offset": 13,
                    "length": 36
                }
            ]
        },
        {
            "id": "2",
            "sentiment": "positive",
            "documentScores": {
                "positive": 0.89198976755142212,
                "neutral": 0.103382371366024,
                "negative": 0.0046278294175863
            },
            "sentences": [
                {
                    "sentiment": "positive",
                    "sentenceScores": {
                        "positive": 0.78401315212249756,
                        "neutral": 0.2067587077617645,
                        "negative": 0.0092281140387058
                    },
                    "offset": 0,
                    "length": 30
                },
                {
                    "sentiment": "positive",
                    "sentenceScores": {
                        "positive": 0.99996638298034668,
                        "neutral": 0.0000060341349126,
                        "negative": 0.0000275444017461
                    },
                    "offset": 31,
                    "length": 13
                }
            ]
        }
    ],
    "errors": []
}

Exemple de code C#Example C# code

Vous trouverez un exemple d’application C# qui appelle cette version d’Analyse des sentiments sur GitHub.You can find an example C# application that calls this version of sentiment analysis on GitHub.

RésuméSummary

Dans cet article, vous avez vu les concepts et le flux de travail d’analyse des sentiments à l’aide de l’API Analyse de texte dans Cognitive Services.In this article, you learned concepts and workflow for sentiment analysis using Text Analytics in Cognitive Services. En résumé :In summary:

  • L’API Analyse des sentiments est disponible pour les langues sélectionnées.Sentiment analysis API is available for selected languages.
  • Les documents JSON figurant dans le corps de la demande incluent un ID, un texte et un code de langue.JSON documents in the request body include an ID, text, and language code.
  • La demande POST s’effectue sur un point de terminaison /sentiment, à l’aide d’une clé d’accès et d’un point de terminaison personnalisés valides pour votre abonnement.POST request is to a /sentiment endpoint, using a personalized access key and an endpoint that is valid for your subscription.
  • La sortie de réponse, qui se compose d’un score de sentiment pour chaque ID de document, peut être diffusée vers n’importe quelle application qui accepte JSON, y compris Excel et Power BI, pour n’en citer que quelques-unes.Response output, which consists of a sentiment score for each document ID, can be streamed to any app that accepts JSON, including Excel and Power BI, to name a few.

Voir aussiSee also

Vue d’ensemble d’Analyse de texteText Analytics overview
Questions fréquentes (FAQ)Frequently asked questions (FAQ)
Page produit d’Analyse de texteText Analytics product page

Étapes suivantesNext steps