Sentiment ciblé - Amazon Comprehend

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Sentiment ciblé

Le sentiment ciblé fournit une compréhension précise des sentiments associés à des entités spécifiques (telles que des marques ou des produits) dans vos documents d'entrée.

La différence entre le sentiment ciblé et le sentiment réside dans le niveau de granularité des données de sortie. L'analyse des sentiments détermine le sentiment dominant pour chaque document d'entrée, mais ne fournit pas de données pour une analyse plus approfondie. L'analyse ciblée des sentiments détermine le sentiment au niveau de l'entité pour des entités spécifiques dans chaque document d'entrée. Vous pouvez analyser les données de sortie pour déterminer les produits et services spécifiques qui reçoivent des commentaires positifs ou négatifs.

Par exemple, dans une série de critiques de restaurants, un client fournit le commentaire suivant : « Les tacos étaient délicieux et le personnel était sympathique. » L'analyse de cette revue produit les résultats suivants :

  • L'analyse des sentiments détermine si le sentiment général de chaque critique de restaurant est positif, négatif, neutre ou mitigé. Dans cet exemple, le sentiment général est positif.

  • L'analyse ciblée des sentiments détermine le sentiment à l'égard des entités et des attributs du restaurant mentionnés par les clients dans les avis. Dans cet exemple, le client a fait des commentaires positifs à propos des « tacos » et du « personnel ».

Le sentiment ciblé fournit les résultats suivants pour chaque tâche d'analyse :

  • Identité des entités mentionnées dans les documents.

  • Classification du type d'entité pour chaque mention d'entité.

  • Le sentiment et un score de sentiment pour chaque entité mentionnée.

  • Groupes de mentions (groupes de coréférence) correspondant à une seule entité.

Vous pouvez utiliser la console ou l'API pour effectuer une analyse des sentiments ciblée. La console et l'API prennent en charge l'analyse en temps réel et l'analyse asynchrone pour un sentiment ciblé.

Amazon Comprehend prend en charge le sentiment ciblé pour les documents rédigés en anglais.

Pour plus d'informations sur le sentiment ciblé, y compris un didacticiel, voir Extraire un sentiment granulaire dans un texte avec Amazon Comprehend Targeted Sentiment sur AWS le blog de machine learning.

Types d'entités

Le sentiment ciblé identifie les types d'entités suivants. Il attribue le type d'entité OTHER si l'entité n'appartient à aucune autre catégorie. Chaque entité mentionnée dans le fichier de sortie inclut le type d'entité, tel que"Type": "PERSON".

Définitions des types d'entités
Type d'entité Définition
LA PERSONNE Les exemples incluent des individus, des groupes de personnes, des surnoms, des personnages fictifs et des noms d'animaux.
LOCATION Emplacements géographiques tels que les pays, les villes, les états, les adresses, les formations géologiques, les plans d'eau, les sites naturels et les sites astronomiques.
ORGANISATION Les exemples incluent les gouvernements, les entreprises, les équipes sportives et les religions.
INSTALLATION Bâtiments, aéroports, autoroutes, ponts et autres structures humaines permanentes et améliorations immobilières.
MARQUE Organisation, groupe ou producteur d'un article commercial ou d'une gamme de produits spécifique.
ARTICLE_COMMERCIAL Tout article non générique achetable ou acquérable, y compris les véhicules, et les gros produits fabriqués par un seul article.
FILM Un film ou une émission de télévision. L'entité peut être le nom complet, un surnom ou un sous-titre.
MUSIQUE Une chanson, complète ou partielle. Également, des collections de créations musicales individuelles, telles qu'un album ou une anthologie.
RÉSERVER Un livre, publié par un professionnel ou publié à compte d'auteur.
LOGICIEL Un produit logiciel officiellement publié.
JEU Un jeu, tel que des jeux vidéo, des jeux de société, des jeux courants ou des sports.
TITRE_PERSONNEL Titres officiels et distinctions honorifiques tels que président, doctorat ou Dr.
ÉVÉNEMENT Les exemples incluent un festival, un concert, une élection, une guerre, une conférence et un événement promotionnel.
DATE Toute référence à une date ou à une heure, qu'elle soit spécifique ou générale, absolue ou relative.
QUANTITÉ Toutes les mesures ainsi que leurs unités (devise, pourcentage, nombre, octets, etc.).
ATTRIBUTE Attribut, caractéristique ou trait d'une entité, tel que la « qualité » d'un produit, le « prix » d'un téléphone ou la « vitesse » d'un processeur.
OTHER Entités qui n'appartiennent à aucune des autres catégories.

Groupe de coréférence

Le sentiment ciblé identifie les groupes de coréférence dans chaque document d'entrée. Un groupe de coréférence est un groupe de mentions dans un document qui correspondent à une entité du monde réel.

Dans l'exemple suivant d'avis client, « spa » est l'entité qui possède un type d'entitéFACILITY. L'entité possède deux mentions supplémentaires sous forme de pronom (« it »).

Groupe de coréférence ciblé sur les sentiments.

Organisation des fichiers de sortie

La tâche d'analyse des sentiments ciblée crée un fichier de sortie texte JSON. Le fichier contient un objet JSON pour chacun des documents d'entrée. Chaque objet JSON contient les champs suivants :

  • Entités : tableau d'entités présentes dans le document.

  • Fichier : nom de fichier du document d'entrée.

  • Ligne — Si le fichier d'entrée contient un document par ligne, Entités contient le numéro de ligne du document dans le fichier.

Note

Si le sentiment ciblé n'identifie aucune entité dans le texte saisi, il renvoie un tableau vide comme résultat Entities.

L'exemple suivant montre les entités d'un fichier d'entrée comportant trois lignes de saisie. Le format d'entrée est ONE_DOC_PER_LINE, de sorte que chaque ligne d'entrée est un document.

{ "Entities":[ {entityA}, {entityB}, {entityC} ], "File": "TargetSentimentInputDocs.txt", "Line": 0 } { "Entities": [ {entityD}, {entityE} ], "File": "TargetSentimentInputDocs.txt", "Line": 1 } { "Entities": [ {entityF}, {entityG} ], "File": "TargetSentimentInputDocs.txt", "Line": 2 }

Une entité du tableau Entities inclut un regroupement logique (appelé groupe de coréférence) des mentions d'entités détectées dans le document. La structure globale de chaque entité est la suivante :

{"DescriptiveMentionIndex": [0], "Mentions": [ {mentionD}, {mentionE} ] }

Une entité contient les champs suivants :

  • Mentions : tableau de mentions de l'entité dans le document. Le tableau représente un groupe de coréférence. Veuillez consulter Groupe de coréférence pour obtenir un exemple. L'ordre des mentions dans le tableau Mentions est l'ordre de leur emplacement (décalage) dans le document. Chaque mention inclut le score de sentiment et le score de groupe pour cette mention. Le score du groupe indique le niveau de confiance selon lequel ces mentions appartiennent à la même entité.

  • DescriptiveMentionIndex— Un ou plusieurs index du tableau Mentions fournissant le meilleur nom pour le groupe d'entités. Par exemple, une entité peut avoir trois mentions avec les valeurs de texte « ABC Hotel », « ABC Hotel » et « it ». Le meilleur nom est « ABC Hotel », qui a une DescriptiveMentionIndex valeur de [0,1].

Chaque mention inclut les champs suivants

  • BeginOffset— Le décalage dans le texte du document à l'endroit où la mention commence.

  • EndOffset— Le décalage dans le texte du document à la fin de la mention.

  • GroupScore— La certitude que toutes les entités mentionnées dans le groupe sont liées à la même entité.

  • Texte : texte du document qui identifie l'entité.

  • Type : type de l'entité. Amazon Comprehend prend en charge différents types d'entités.

  • Score : modèle de confiance quant à la pertinence de l'entité. La plage de valeurs est comprise entre zéro et un, 1 correspondant au niveau de confiance le plus élevé.

  • MentionSentiment— Contient le sentiment et le score de sentiment associés à la mention.

  • Sentiment — Le sentiment qui sous-tend la mention. Les valeurs incluent : POSITIF, NEUTRE, NÉGATIF et MIXTE.

  • SentimentScore— Fournit un modèle de confiance pour chacun des sentiments possibles. La plage de valeurs est comprise entre zéro et un, 1 correspondant au niveau de confiance le plus élevé.

Les valeurs Sentiment ont la signification suivante :

  • Positif — La mention de l'entité exprime un sentiment positif.

  • Négatif — La mention de l'entité exprime un sentiment négatif.

  • Mixte — La mention de l'entité exprime à la fois des sentiments positifs et négatifs.

  • Neutre — L'entité mentionnée n'exprime aucun sentiment positif ou négatif.

Dans l'exemple suivant, une entité n'a qu'une seule mention dans le document d'entrée, DescriptiveMentionIndex donc zéro (la première mention dans le tableau Mentions). L'entité identifiée est une PERSONNE portant le nom « I ». Le score de sentiment est neutre.

{"Entities":[ { "DescriptiveMentionIndex": [0], "Mentions": [ { "BeginOffset": 0, "EndOffset": 1, "Score": 0.999997, "GroupScore": 1, "Text": "I", "Type": "PERSON", "MentionSentiment": { "Sentiment": "NEUTRAL", "SentimentScore": { "Mixed": 0, "Negative": 0, "Neutral": 1, "Positive": 0 } } } ] } ], "File": "Input.txt", "Line": 0 }

Analyse en temps réel à l'aide de la console

Vous pouvez utiliser la console Amazon Comprehend pour l'exécuter Sentiment ciblé en temps réel. Utilisez le texte d'exemple ou collez votre propre texte dans la zone de saisie, puis choisissez Analyser.

Dans le panneau Insights, la console affiche trois vues de l'analyse des sentiments ciblée :

  • Texte analysé : affiche le texte analysé et souligne chaque entité. La couleur du soulignement indique la valeur de sentiment (positive, neutre, négative ou mixte) attribuée par l'analyse à l'entité. La console affiche les mappages de couleurs dans le coin supérieur droit de la zone de texte analysée. Si vous passez le curseur sur une entité, la console affiche un panneau contextuel contenant les valeurs d'analyse (type d'entité, score de sentiment) pour l'entité.

  • Résultats — Affiche un tableau contenant une ligne pour chaque mention d'entité identifiée dans le texte. Pour chaque entité, le tableau indique l'entité et le score de l'entité. La ligne inclut également le sentiment principal et le score pour chaque valeur de sentiment. S'il existe plusieurs mentions de la même entité, connue sous le nom de aGroupe de coréférence, le tableau affiche ces mentions sous la forme d'un ensemble démontable de lignes associées à l'entité principale.

    Si vous survolez une ligne d'entité dans le tableau des résultats, la console met en évidence la mention de l'entité dans le panneau de texte analysé.

  • Intégration des applications : affiche les valeurs des paramètres de la demande d'API et la structure de l'objet JSON renvoyé dans la réponse de l'API. Pour une description des champs de l'objet JSON, consultezOrganisation des fichiers de sortie.

Exemple d'analyse en temps réel sur console

Cet exemple utilise le texte suivant comme entrée, qui est le texte d'entrée par défaut fourni par la console.

Hello Zhang Wei, I am John. Your AnyCompany Financial Services, LLC credit card account 1111-0000-1111-0008 has a minimum payment of $24.53 that is due by July 31st. Based on your autopay settings, we will withdraw your payment on the due date from your bank account number XXXXXX1111 with the routing number XXXXX0000. Customer feedback for Sunshine Spa, 123 Main St, Anywhere. Send comments to Alice at sunspa@mail.com. I enjoyed visiting the spa. It was very comfortable but it was also very expensive. The amenities were ok but the service made the spa a great experience.

Le panneau de texte analysé affiche le résultat suivant pour cet exemple. Passez votre souris sur le texte Zhang Wei pour afficher le panneau contextuel de cette entité.

Texte analysé par sentiment ciblé.

Le tableau des résultats fournit des détails supplémentaires sur chaque entité, notamment le score de l'entité, le sentiment principal et le score de chaque sentiment.

Tableau des résultats des sentiments ciblés.

Dans notre exemple, l'analyse ciblée des sentiments reconnaît que chaque mention de vous dans le texte saisi est une référence à l'entité personnelle Zhang Wei. La console affiche ces mentions sous la forme d'un ensemble de lignes démontables associées à l'entité principale.

Tableau des résultats des sentiments ciblés.

Le panneau d'intégration des applications affiche l'objet JSON généré par l' DetectTargetedSentiment API. Consultez la section suivante pour un exemple complet.

Exemple de production de sentiments ciblés

L'exemple suivant montre le fichier de sortie d'une tâche d'analyse des sentiments ciblée. Le fichier d'entrée se compose de trois documents simples :

The burger was very flavorful and the burger bun was excellent. However, customer service was slow. My burger was good, and it was warm. The burger had plenty of toppings. The burger was cooked perfectly but it was cold. The service was OK.

L'analyse ciblée des sentiments de ce fichier d'entrée produit le résultat suivant.

{"Entities":[ { "DescriptiveMentionIndex": [ 0 ], "Mentions": [ { "BeginOffset": 4, "EndOffset": 10, "Score": 0.999991, "GroupScore": 1, "Text": "burger", "Type": "OTHER", "MentionSentiment": { "Sentiment": "POSITIVE", "SentimentScore": { "Mixed": 0, "Negative": 0, "Neutral": 0, "Positive": 1 } } } ] }, { "DescriptiveMentionIndex": [ 0 ], "Mentions": [ { "BeginOffset": 38, "EndOffset": 44, "Score": 1, "GroupScore": 1, "Text": "burger", "Type": "OTHER", "MentionSentiment": { "Sentiment": "NEUTRAL", "SentimentScore": { "Mixed": 0.000005, "Negative": 0.000005, "Neutral": 0.999591, "Positive": 0.000398 } } } ] }, { "DescriptiveMentionIndex": [ 0 ], "Mentions": [ { "BeginOffset": 45, "EndOffset": 48, "Score": 0.961575, "GroupScore": 1, "Text": "bun", "Type": "OTHER", "MentionSentiment": { "Sentiment": "POSITIVE", "SentimentScore": { "Mixed": 0.000327, "Negative": 0.000286, "Neutral": 0.050269, "Positive": 0.949118 } } } ] }, { "DescriptiveMentionIndex": [ 0 ], "Mentions": [ { "BeginOffset": 73, "EndOffset": 89, "Score": 0.999988, "GroupScore": 1, "Text": "customer service", "Type": "ATTRIBUTE", "MentionSentiment": { "Sentiment": "NEGATIVE", "SentimentScore": { "Mixed": 0.000001, "Negative": 0.999976, "Neutral": 0.000017, "Positive": 0.000006 } } } ] } ], "File": "TargetSentimentInputDocs.txt", "Line": 0 } { "Entities": [ { "DescriptiveMentionIndex": [ 0 ], "Mentions": [ { "BeginOffset": 0, "EndOffset": 2, "Score": 0.99995, "GroupScore": 1, "Text": "My", "Type": "PERSON", "MentionSentiment": { "Sentiment": "NEUTRAL", "SentimentScore": { "Mixed": 0, "Negative": 0, "Neutral": 1, "Positive": 0 } } } ] }, { "DescriptiveMentionIndex": [ 0, 2 ], "Mentions": [ { "BeginOffset": 3, "EndOffset": 9, "Score": 0.999999, "GroupScore": 1, "Text": "burger", "Type": "OTHER", "MentionSentiment": { "Sentiment": "POSITIVE", "SentimentScore": { "Mixed": 0.000002, "Negative": 0.000001, "Neutral": 0.000003, "Positive": 0.999994 } } }, { "BeginOffset": 24, "EndOffset": 26, "Score": 0.999756, "GroupScore": 0.999314, "Text": "it", "Type": "OTHER", "MentionSentiment": { "Sentiment": "POSITIVE", "SentimentScore": { "Mixed": 0, "Negative": 0.000003, "Neutral": 0.000006, "Positive": 0.999991 } } }, { "BeginOffset": 41, "EndOffset": 47, "Score": 1, "GroupScore": 0.531342, "Text": "burger", "Type": "OTHER", "MentionSentiment": { "Sentiment": "POSITIVE", "SentimentScore": { "Mixed": 0.000215, "Negative": 0.000094, "Neutral": 0.00008, "Positive": 0.999611 } } } ] }, { "DescriptiveMentionIndex": [ 0 ], "Mentions": [ { "BeginOffset": 52, "EndOffset": 58, "Score": 0.965462, "GroupScore": 1, "Text": "plenty", "Type": "QUANTITY", "MentionSentiment": { "Sentiment": "NEUTRAL", "SentimentScore": { "Mixed": 0, "Negative": 0, "Neutral": 1, "Positive": 0 } } } ] }, { "DescriptiveMentionIndex": [ 0 ], "Mentions": [ { "BeginOffset": 62, "EndOffset": 70, "Score": 0.998353, "GroupScore": 1, "Text": "toppings", "Type": "OTHER", "MentionSentiment": { "Sentiment": "NEUTRAL", "SentimentScore": { "Mixed": 0, "Negative": 0, "Neutral": 0.999964, "Positive": 0.000036 } } } ] } ], "File": "TargetSentimentInputDocs.txt", "Line": 1 } { "Entities": [ { "DescriptiveMentionIndex": [ 0 ], "Mentions": [ { "BeginOffset": 4, "EndOffset": 10, "Score": 1, "GroupScore": 1, "Text": "burger", "Type": "OTHER", "MentionSentiment": { "Sentiment": "POSITIVE", "SentimentScore": { "Mixed": 0.001515, "Negative": 0.000822, "Neutral": 0.000243, "Positive": 0.99742 } } }, { "BeginOffset": 36, "EndOffset": 38, "Score": 0.999843, "GroupScore": 0.999661, "Text": "it", "Type": "OTHER", "MentionSentiment": { "Sentiment": "NEGATIVE", "SentimentScore": { "Mixed": 0, "Negative": 0.999996, "Neutral": 0.000004, "Positive": 0 } } } ] }, { "DescriptiveMentionIndex": [ 0 ], "Mentions": [ { "BeginOffset": 53, "EndOffset": 60, "Score": 1, "GroupScore": 1, "Text": "service", "Type": "ATTRIBUTE", "MentionSentiment": { "Sentiment": "NEUTRAL", "SentimentScore": { "Mixed": 0.000033, "Negative": 0.000089, "Neutral": 0.993325, "Positive": 0.006553 } } } ] } ], "File": "TargetSentimentInputDocs.txt", "Line": 2 } }