Opiniones específicas - Amazon Comprehend

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Opiniones específicas

La opinión específica ofrece una comprensión detallada de las opiniones asociadas a entidades específicas (como marcas o productos) en los documentos de entrada.

La diferencia entre las opiniones específicas y las opiniones es el nivel de detalle de los datos de salida. El análisis de las opiniones determina la opinión predominante para cada documento de entrada, pero no proporciona datos para un análisis posterior. El análisis de las opiniones específicas determina la opinión a nivel de entidad para entidades concretas de cada documento de entrada. Puede analizar los datos de salida para determinar los productos y servicios específicos que reciben reseñas positivas o negativas.

Por ejemplo, en una serie de reseñas de restaurantes, un cliente comparte la siguiente valoración: “Los tacos estaban deliciosos y el personal fue amable”. El análisis de esta reseña arroja los siguientes resultados:

  • El análisis de opiniones determina si las opiniones generales de cada reseña del restaurante son positivas, negativas, neutras o mixtas. En este ejemplo, la opinión general es positiva.

  • El análisis de opiniones específicas determina la opinión sobre las entidades y los atributos del restaurante que los clientes mencionan en las reseñas. En este ejemplo, el cliente ha hecho comentarios positivos sobre los “tacos” y el “personal”.

La opinión específica ofrece los siguientes resultados para cada tarea de análisis:

  • Identidad de las entidades que se mencionan en los documentos.

  • Clasificación del tipo de entidad para cada entidad mencionada.

  • La opinión y una puntuación para la opinión por cada entidad mencionada.

  • Grupos de menciones (grupos de correferencia) que corresponden a una sola entidad.

Puede usar la consola o la API para ejecutar un análisis de opinión específica. La consola y la API son compatibles con el análisis en tiempo real y con el análisis asíncrono de opiniones específicas.

Amazon Comprehend es compatible con la opinión específica de los documentos en inglés.

Para obtener información adicional sobre la opinión específica, incluido un tutorial, consulte Extraer una opinión específica en texto con Opiniones específicas de Amazon Comprehend en el AWSblog de machine learning.

Tipos de entidad

La opinión específica identifica los siguientes tipos de entidades. Asigna el tipo de entidad OTHER si la entidad no pertenece a ninguna otra categoría. Cada entidad mencionada en el archivo de salida incluye el tipo de entidad, por ejemplo "Type": "PERSON".

Definiciones de los tipos de entidad
Tipo de identidad Definición
INDIVIDUO Los ejemplos incluyen personas, grupos de personas, apodos, personajes ficticios y nombres de animales.
UBICACIÓN Ubicaciones geográficas como países, ciudades, estados, direcciones, formaciones geológicas, masas de agua, puntos de referencia naturales y ubicaciones astronómicas.
ORGANIZACIÓN Algunos ejemplos son los gobiernos, las empresas, los equipos deportivos y las religiones.
INSTALACIONES Edificios, aeropuertos, autopistas, puentes y otras estructuras permanentes hechas por el hombre, así como mejoras inmobiliarias.
BRAND Organización, grupo o fabricante de un artículo comercial específico o de una línea de productos.
COMMERCIAL_ITEM Cualquier artículo no genérico que pueda comprarse o adquirirse, incluidos los vehículos y los productos de gran tamaño para los que solo se haya fabricado un artículo.
MOVIE Una película o un programa de televisión. La entidad puede ser el nombre completo, un apodo o un subtítulo.
MUSIC Una canción, entera o una parte. También recopilaciones de creaciones musicales individuales, por ejemplo un álbum o una antología.
BOOK Un libro, independientemente de si se ha autopublicado o la publicación es profesional.
SOFTWARE Un producto de software oficialmente lanzado al mercado.
GAME Un juego, por ejemplo: videojuegos, juegos de mesa, juegos comunes o deportes.
PERSONAL_TITLE Títulos oficiales y honoríficos, como presidente, PhD o Dr.
EVENT Los ejemplos incluyen festivales, conciertos, elecciones, guerras, conferencias y eventos promocionales.
FECHA Cualquier referencia a una fecha u hora, ya sea específica o general, absoluta o relativa.
CANTIDAD Todas las medidas junto con sus unidades (moneda, porcentaje, número, bytes, etc.).
ATTRIBUTE Un atributo, característica o rasgo de una entidad; por ejemplo, la “calidad” de un producto, el “precio” de un teléfono o la “velocidad” de una CPU.
OTHER Entidades que no pertenecen a ninguna de las otras categorías.

Grupo de correferencia

La opinión específica identifica a los grupos de correferencia de cada documento de entrada. Un grupo de correferencia es un grupo de menciones de un documento que corresponden a una entidad del mundo real.

En el siguiente ejemplo de opinión de un cliente, “balneario” es la entidad que tiene el tipo de entidad FACILITY. La entidad tiene dos menciones adicionales como pronombre (“eso”).

Grupo de correferencia de opiniones específicas.

Organización de archivos de salida

La tarea de análisis de opiniones específicas crea un archivo de salida de texto en formato JSON. El archivo contiene un objeto JSON para cada uno de los documentos de entrada. Todos los objetos JSON contienen los siguientes campos:

  • Entidades: una matriz de entidades identificadas en el documento.

  • Archivo: el nombre de archivo del documento de entrada.

  • Línea: si el archivo de entrada es un documento por línea, Entidades contiene el número de línea del documento del archivo.

nota

Si la opinión específica no identifica ninguna entidad en el texto de entrada, retornará una matriz vacía como el resultado de Entidades.

El siguiente ejemplo muestra las entidades de un archivo de entrada con tres líneas de entrada. El formato de entrada es ONE_DOC_PER_LINE, por lo que cada línea de entrada es un documento.

{ "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 }

Una entidad de la matriz Entidades incluye una agrupación lógica (denominada grupo de correferencia) de las menciones de aquellas entidades que se han detectado en el documento. Cada entidad tiene la siguiente estructura general:

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

Una entidad contiene los siguientes campos:

  • Menciones: una matriz de menciones de la entidad del documento. La matriz representa a un grupo de correferencia. Consulte Grupo de correferencia para ver un ejemplo. El orden en que aparecen las menciones en la matriz Menciones coincide con el orden de su ubicación (desplazamiento) en el documento. Cada mención incluye la puntuación de opinión y la puntuación de grupo para esa mención. La puntuación grupal indica el nivel de confianza que existe en que dichas menciones pertenezcan a la misma entidad.

  • DescriptiveMentionIndex— Uno o más índices en la matriz de menciones que proporcionan el mejor nombre para el grupo de entidades. Por ejemplo, una entidad podría tener tres menciones con valores de texto: “ABC Hotel”, “ABC Hotel” y “este”. El mejor nombre es «ABC Hotel», que tiene un DescriptiveMentionIndex valor de [0,1].

Cada mención incluye los siguientes campos

  • BeginOffset— El desfase en el texto del documento donde comienza la mención.

  • EndOffset— El desfase en el texto del documento donde termina la mención.

  • GroupScore— La confianza de que todas las entidades mencionadas en el grupo se relacionan con la misma entidad.

  • Text: el texto del documento que identifica a la entidad.

  • Type: el tipo de entidad. Amazon Comprehend admite diversos tipos de entidades.

  • Score: confianza del modelo en que la entidad sea relevante. El rango de valores va de cero a uno, siendo uno la máxima confianza.

  • MentionSentiment— Contiene el sentimiento y la puntuación de sentimiento de la mención.

  • Sentiment: la opinión de la mención. Los valores incluyen: POSITIVO, NEUTRO, NEGATIVO y MIXTO.

  • SentimentScore— Proporciona confianza al modelo para cada uno de los posibles sentimientos. El rango de valores va de cero a uno, siendo uno la máxima confianza.

Los valores de Sentiment tienen el siguiente significado:

  • Positivo: la entidad mencionada incita una opinión positiva.

  • Negativo: la entidad mencionada incita una opinión negativa.

  • Mixto: la entidad mencionada incita opiniones tanto positivas como negativas.

  • Neutro: la entidad mencionada no incita opiniones positivas ni negativas.

En el siguiente ejemplo, una entidad solo tiene una mención en el documento de entrada, por lo que DescriptiveMentionIndex es cero (la primera mención de la matriz de menciones). La entidad identificada es una PERSONA con el nombre “Yo”. La puntuación de la opinión es neutra.

{"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 }

Análisis en tiempo real a través de la consola

Puede utilizar la consola de Amazon Comprehend para ejecutar Opiniones específicas en tiempo real. Utilice el texto de muestra o pegue su propio texto en el cuadro de texto de entrada y, a continuación, seleccione Analizar.

En el panel Insights, la consola muestra tres vistas del análisis de opinión específica:

  • Texto analizado: muestra el texto analizado y subraya cada entidad. El color del subrayado indica el valor de la opinión (positivo, neutro, negativo o mixto) que el análisis ha asignado a esa entidad. La consola muestra las asignaciones de colores en la esquina superior derecha de la caja de texto analizada. Si coloca el cursor sobre una entidad, la consola mostrará un panel emergente que contiene los valores del análisis (tipo de entidad, puntuación de la opinión) para esa entidad.

  • Resultados: muestra una tabla que contiene una fila para cada entidad que se menciona en el texto. La tabla muestra la entidad y la puntuación de la entidad para cada una de ellas. La fila también incluye la opinión principal y la puntuación para cada valor de opinión. Si aparecen varias menciones a la misma entidad, lo que se conoce como Grupo de correferencia, la tabla mostrará esas menciones como un conjunto desplegable de filas asociadas a la entidad principal.

    Si pasa el ratón sobre una fila de la entidad de la tabla de resultados, la consola resaltará la mención a la entidad en el panel de texto analizado.

  • Integración de aplicaciones: muestra los valores de los parámetros de la solicitud de la API, así como la estructura del objeto JSON reportado en la respuesta de esta última. Para obtener una descripción de los campos del objeto JSON, consulte Organización de archivos de salida.

Ejemplo de análisis de consola en tiempo real

En este ejemplo se utiliza el siguiente texto como entrada, que es el texto de entrada predeterminado que proporciona la consola.

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.

En el panel Texto analizado se muestra el siguiente resultado para este ejemplo. Pase el ratón sobre el texto Zhang Wei para ver el panel emergente de esta entidad.

Texto analizado de la opinión específica.

La tabla de resultados proporciona información adicional sobre cada entidad, incluida la puntuación de entidad, la opinión principal y la puntuación de cada opinión.

Tabla de resultados de opiniones específicas.

En nuestro ejemplo, el análisis de opiniones específicas reconoce que cada mención a tu en el texto de entrada es una referencia a la persona o entidad llamada Zhang Wei. La consola muestra estas menciones como un conjunto de filas desplegables asociadas a la entidad principal.

Tabla de resultados de opiniones específicas.

El panel de integración de aplicaciones muestra el objeto JSON que genera la DetectTargetedSentiment API. Para obtener un ejemplo detallado, consulte la siguiente sección.

Ejemplo de salida de opiniones específicas

El siguiente ejemplo muestra el archivo de salida de una tarea de análisis de opiniones específicas. El archivo de entrada consiste en tres documentos sencillos:

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.

El análisis de opiniones específicas de este archivo de entrada produce el siguiente resultado.

{"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 } }