Inicio rápido: Análisis de sentimiento y minería de opiniones
Documentación de referencia | Más ejemplos | Paquete (NuGet) | Código fuente de biblioteca
Use este inicio rápido para crear una aplicación de análisis de sentimiento con la biblioteca cliente de .NET. En el ejemplo siguiente, se crea una aplicación de C# que puede identificar las opiniones expresadas en un ejemplo de texto y realizar un análisis de sentimiento basado en aspectos.
Requisitos previos
- Una suscripción a Azure: cree una cuenta gratuita
- IDE de Visual Studio
Instalación
Creación de un recurso de Azure
Para usar el siguiente código de ejemplo, tendrá que implementar un recurso de Azure. Este recurso contendrá una clave y un punto de conexión que se usarán para autenticar las llamadas API que envíe al servicio de lenguaje.
Use el vínculo siguiente para crear un recurso de lenguaje mediante Azure Portal. Tendrá que iniciar sesión con su suscripción de Azure.
En la pantalla Seleccionar características adicionales, seleccione Continuar para crear el recurso.
En la pantalla Crear lenguaje, proporcione la siguiente información:
Detalle Descripción Suscripción La cuenta de suscripción a la que se asociará el recurso. Seleccione la suscripción de Azure en el menú desplegable. Resource group Un grupo de recursos es un contenedor que almacena los recursos que crea. Seleccione Crear nuevo para crear un nuevo grupo de recursos. Region La ubicación del recurso de idioma. Las diferentes regiones pueden crear latencias, según la ubicación física en la que usted se encuentre, pero no tienen ningún impacto en la disponibilidad del tiempo de ejecución del recurso. En este inicio rápido, seleccione una región disponible cerca de usted o elija Este de EE. UU. Nombre Nombre para el recurso de lenguaje. Este nombre también se usará para crear una dirección URL de punto de conexión que las aplicaciones usarán para enviar solicitudes de API. Plan de tarifa Plan de tarifa del recurso de idioma. Puede usar el nivel Gratis F0 para probar el servicio y actualizarlo más adelante a un nivel de pago cuando pase a producción. Asegúrese de que la casilla Aviso de IA responsable esté activada.
En la parte inferior de la página, seleccione Revisar y crear.
En la pantalla que aparece, asegúrese de que se ha superado la validación y de que ha escrito la información correctamente. Seleccione Crear.
Obtención de la clave y el punto de conexión
Ahora necesitará la clave y el punto de conexión del recurso para conectar la aplicación a la API. En una sección posterior de este mismo inicio rápido, pegará la clave y el punto de conexión en el código.
Después de que el recurso de lenguaje se implemente correctamente, haga clic en el botón Ir al recurso en Pasos siguientes.
En la pantalla del recurso, seleccione Claves y punto de conexión en el menú de navegación izquierdo. Usará una de las claves y el punto de conexión en los pasos siguientes.
Creación de variables de entorno
La aplicación debe autenticarse para enviar solicitudes de API. En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas. En este ejemplo, escribirá las credenciales en variables de entorno del equipo local que ejecuta la aplicación.
Para establecer la variable de entorno para la clave del recurso de lenguaje, abra una ventana de consola y siga las instrucciones correspondientes a su sistema operativo y su entorno de desarrollo.
- Para establecer la variable de entorno
LANGUAGE_KEY
, reemplaceyour-key
por una de las claves del recurso. - Para establecer la variable de entorno
LANGUAGE_ENDPOINT
, reemplaceyour-endpoint
por el punto de conexión del recurso.
Importante
Si usa una clave de API, almacénela de forma segura en otro lugar, como en Azure Key Vault. No incluya la clave de API directamente en el código ni la exponga nunca públicamente.
Para más información acerca de la seguridad de los servicios de AI, consulte Autenticación de solicitudes a los servicios de Azure AI.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint
Nota:
Si solo necesita acceder a las variables de entorno en la consola que se está ejecutando en este momento, puede establecer la variable de entorno con set
en vez de con setx
.
Después de agregar las variables de entorno, puede que tenga que reiniciar todos los programas en ejecución que necesiten leer la variable de entorno, incluida la ventana de consola. Por ejemplo, si usa Visual Studio como editor, reinícielo antes de ejecutar el ejemplo.
Creación de una aplicación de .NET Core
Utilice el IDE de Visual Studio para crear una aplicación de consola de .NET Core. Así se crea un proyecto "Hola mundo" con un solo archivo de origen de C#: program.cs.
Instale la biblioteca cliente, para lo que debe hacer clic con el botón derecho en la solución en el Explorador de soluciones y seleccionar Administrar paquetes NuGet. En el administrador de paquetes que se abre, seleccione Examinar y busque Azure.AI.TextAnalytics
. Seleccione la versión 5.2.0
e Instalar. También puede usar la Consola del Administrador de paquetes.
Ejemplo de código
Copie el código siguiente en el archivo program.cs y ejecute el código.
using Azure;
using System;
using Azure.AI.TextAnalytics;
using System.Collections.Generic;
namespace Example
{
class Program
{
// This example requires environment variables named "LANGUAGE_KEY" and "LANGUAGE_ENDPOINT"
static string languageKey = Environment.GetEnvironmentVariable("LANGUAGE_KEY");
static string languageEndpoint = Environment.GetEnvironmentVariable("LANGUAGE_ENDPOINT");
private static readonly AzureKeyCredential credentials = new AzureKeyCredential(languageKey);
private static readonly Uri endpoint = new Uri(languageEndpoint);
// Example method for detecting opinions text.
static void SentimentAnalysisWithOpinionMiningExample(TextAnalyticsClient client)
{
var documents = new List<string>
{
"The food and service were unacceptable. The concierge was nice, however."
};
AnalyzeSentimentResultCollection reviews = client.AnalyzeSentimentBatch(documents, options: new AnalyzeSentimentOptions()
{
IncludeOpinionMining = true
});
foreach (AnalyzeSentimentResult review in reviews)
{
Console.WriteLine($"Document sentiment: {review.DocumentSentiment.Sentiment}\n");
Console.WriteLine($"\tPositive score: {review.DocumentSentiment.ConfidenceScores.Positive:0.00}");
Console.WriteLine($"\tNegative score: {review.DocumentSentiment.ConfidenceScores.Negative:0.00}");
Console.WriteLine($"\tNeutral score: {review.DocumentSentiment.ConfidenceScores.Neutral:0.00}\n");
foreach (SentenceSentiment sentence in review.DocumentSentiment.Sentences)
{
Console.WriteLine($"\tText: \"{sentence.Text}\"");
Console.WriteLine($"\tSentence sentiment: {sentence.Sentiment}");
Console.WriteLine($"\tSentence positive score: {sentence.ConfidenceScores.Positive:0.00}");
Console.WriteLine($"\tSentence negative score: {sentence.ConfidenceScores.Negative:0.00}");
Console.WriteLine($"\tSentence neutral score: {sentence.ConfidenceScores.Neutral:0.00}\n");
foreach (SentenceOpinion sentenceOpinion in sentence.Opinions)
{
Console.WriteLine($"\tTarget: {sentenceOpinion.Target.Text}, Value: {sentenceOpinion.Target.Sentiment}");
Console.WriteLine($"\tTarget positive score: {sentenceOpinion.Target.ConfidenceScores.Positive:0.00}");
Console.WriteLine($"\tTarget negative score: {sentenceOpinion.Target.ConfidenceScores.Negative:0.00}");
foreach (AssessmentSentiment assessment in sentenceOpinion.Assessments)
{
Console.WriteLine($"\t\tRelated Assessment: {assessment.Text}, Value: {assessment.Sentiment}");
Console.WriteLine($"\t\tRelated Assessment positive score: {assessment.ConfidenceScores.Positive:0.00}");
Console.WriteLine($"\t\tRelated Assessment negative score: {assessment.ConfidenceScores.Negative:0.00}");
}
}
}
Console.WriteLine($"\n");
}
}
static void Main(string[] args)
{
var client = new TextAnalyticsClient(endpoint, credentials);
SentimentAnalysisWithOpinionMiningExample(client);
Console.Write("Press any key to exit.");
Console.ReadKey();
}
}
}
Output
Document sentiment: Mixed
Positive score: 0.47
Negative score: 0.52
Neutral score: 0.00
Text: "The food and service were unacceptable. "
Sentence sentiment: Negative
Sentence positive score: 0.00
Sentence negative score: 0.99
Sentence neutral score: 0.00
Target: food, Value: Negative
Target positive score: 0.00
Target negative score: 1.00
Related Assessment: unacceptable, Value: Negative
Related Assessment positive score: 0.00
Related Assessment negative score: 1.00
Target: service, Value: Negative
Target positive score: 0.00
Target negative score: 1.00
Related Assessment: unacceptable, Value: Negative
Related Assessment positive score: 0.00
Related Assessment negative score: 1.00
Text: "The concierge was nice, however."
Sentence sentiment: Positive
Sentence positive score: 0.94
Sentence negative score: 0.05
Sentence neutral score: 0.01
Target: concierge, Value: Positive
Target positive score: 1.00
Target negative score: 0.00
Related Assessment: nice, Value: Positive
Related Assessment positive score: 1.00
Related Assessment negative score: 0.00
Limpieza de recursos
Si quiere limpiar y eliminar una suscripción de servicios de Azure AI, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos, también se elimina cualquier otro recurso que esté asociado a él.
Use los siguientes comandos para eliminar las variables de entorno que creó para este inicio rápido.
reg delete "HKCU\Environment" /v LANGUAGE_KEY /f
reg delete "HKCU\Environment" /v LANGUAGE_ENDPOINT /f
Pasos siguientes
Documentación de referencia | Ejemplos adicionales | Paquete (Maven) | Código fuente de biblioteca
Use este inicio rápido para crear una aplicación de análisis de sentimiento con la biblioteca cliente de Java. En el ejemplo siguiente, creará una aplicación de Java que puede identificar las opiniones expresadas en un ejemplo de texto y realizar análisis de sentimiento basado en aspectos.
Prerrequisitos
- Una suscripción a Azure: cree una cuenta gratuita
- Kit de desarrollo de Java (JDK), versión 8 o posterior
Instalación
Creación de un recurso de Azure
Para usar el siguiente código de ejemplo, tendrá que implementar un recurso de Azure. Este recurso contendrá una clave y un punto de conexión que se usarán para autenticar las llamadas API que envíe al servicio de lenguaje.
Use el vínculo siguiente para crear un recurso de lenguaje mediante Azure Portal. Tendrá que iniciar sesión con su suscripción de Azure.
En la pantalla Seleccionar características adicionales, seleccione Continuar para crear el recurso.
En la pantalla Crear lenguaje, proporcione la siguiente información:
Detalle Descripción Suscripción La cuenta de suscripción a la que se asociará el recurso. Seleccione la suscripción de Azure en el menú desplegable. Resource group Un grupo de recursos es un contenedor que almacena los recursos que crea. Seleccione Crear nuevo para crear un nuevo grupo de recursos. Region La ubicación del recurso de idioma. Las diferentes regiones pueden crear latencias, según la ubicación física en la que usted se encuentre, pero no tienen ningún impacto en la disponibilidad del tiempo de ejecución del recurso. En este inicio rápido, seleccione una región disponible cerca de usted o elija Este de EE. UU. Nombre Nombre para el recurso de lenguaje. Este nombre también se usará para crear una dirección URL de punto de conexión que las aplicaciones usarán para enviar solicitudes de API. Plan de tarifa Plan de tarifa del recurso de idioma. Puede usar el nivel Gratis F0 para probar el servicio y actualizarlo más adelante a un nivel de pago cuando pase a producción. Asegúrese de que la casilla Aviso de IA responsable esté activada.
En la parte inferior de la página, seleccione Revisar y crear.
En la pantalla que aparece, asegúrese de que se ha superado la validación y de que ha escrito la información correctamente. Seleccione Crear.
Obtención de la clave y el punto de conexión
Ahora necesitará la clave y el punto de conexión del recurso para conectar la aplicación a la API. En una sección posterior de este mismo inicio rápido, pegará la clave y el punto de conexión en el código.
Después de que el recurso de lenguaje se implemente correctamente, haga clic en el botón Ir al recurso en Pasos siguientes.
En la pantalla del recurso, seleccione Claves y punto de conexión en el menú de navegación izquierdo. Usará una de las claves y el punto de conexión en los pasos siguientes.
Creación de variables de entorno
La aplicación debe autenticarse para enviar solicitudes de API. En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas. En este ejemplo, escribirá las credenciales en variables de entorno del equipo local que ejecuta la aplicación.
Para establecer la variable de entorno para la clave del recurso de lenguaje, abra una ventana de consola y siga las instrucciones correspondientes a su sistema operativo y su entorno de desarrollo.
- Para establecer la variable de entorno
LANGUAGE_KEY
, reemplaceyour-key
por una de las claves del recurso. - Para establecer la variable de entorno
LANGUAGE_ENDPOINT
, reemplaceyour-endpoint
por el punto de conexión del recurso.
Importante
Si usa una clave de API, almacénela de forma segura en otro lugar, como en Azure Key Vault. No incluya la clave de API directamente en el código ni la exponga nunca públicamente.
Para más información acerca de la seguridad de los servicios de AI, consulte Autenticación de solicitudes a los servicios de Azure AI.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint
Nota:
Si solo necesita acceder a las variables de entorno en la consola que se está ejecutando en este momento, puede establecer la variable de entorno con set
en vez de con setx
.
Después de agregar las variables de entorno, puede que tenga que reiniciar todos los programas en ejecución que necesiten leer la variable de entorno, incluida la ventana de consola. Por ejemplo, si usa Visual Studio como editor, reinícielo antes de ejecutar el ejemplo.
Incorporación de la biblioteca cliente
Cree un proyecto de Maven en el entorno de desarrollo o IDE que prefiera. Luego, agregue la siguiente dependencia al archivo pom.xml del proyecto. La sintaxis de implementación de otras herramientas de compilación se puede encontrar en línea.
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-ai-textanalytics</artifactId>
<version>5.2.0</version>
</dependency>
</dependencies>
Ejemplo de código
Cree un archivo de Java llamado Example.java
. Abra el archivo y copie el código siguiente. Luego, ejecute el código.
import com.azure.core.credential.AzureKeyCredential;
import com.azure.ai.textanalytics.models.*;
import com.azure.ai.textanalytics.TextAnalyticsClientBuilder;
import com.azure.ai.textanalytics.TextAnalyticsClient;
public class Example {
// This example requires environment variables named "LANGUAGE_KEY" and "LANGUAGE_ENDPOINT"
private static String languageKey = System.getenv("LANGUAGE_KEY");
private static String languageEndpoint = System.getenv("LANGUAGE_ENDPOINT");
public static void main(String[] args) {
TextAnalyticsClient client = authenticateClient(languageKey, languageEndpoint);
sentimentAnalysisWithOpinionMiningExample(client);
}
// Method to authenticate the client object with your key and endpoint.
static TextAnalyticsClient authenticateClient(String key, String endpoint) {
return new TextAnalyticsClientBuilder()
.credential(new AzureKeyCredential(key))
.endpoint(endpoint)
.buildClient();
}
// Example method for detecting sentiment and opinions in text.
static void sentimentAnalysisWithOpinionMiningExample(TextAnalyticsClient client)
{
// The document that needs be analyzed.
String document = "The food and service were unacceptable. The concierge was nice, however.";
System.out.printf("Document = %s%n", document);
AnalyzeSentimentOptions options = new AnalyzeSentimentOptions().setIncludeOpinionMining(true);
final DocumentSentiment documentSentiment = client.analyzeSentiment(document, "en", options);
SentimentConfidenceScores scores = documentSentiment.getConfidenceScores();
System.out.printf(
"Recognized document sentiment: %s, positive score: %f, neutral score: %f, negative score: %f.%n",
documentSentiment.getSentiment(), scores.getPositive(), scores.getNeutral(), scores.getNegative());
documentSentiment.getSentences().forEach(sentenceSentiment -> {
SentimentConfidenceScores sentenceScores = sentenceSentiment.getConfidenceScores();
System.out.printf("\tSentence sentiment: %s, positive score: %f, neutral score: %f, negative score: %f.%n",
sentenceSentiment.getSentiment(), sentenceScores.getPositive(), sentenceScores.getNeutral(), sentenceScores.getNegative());
sentenceSentiment.getOpinions().forEach(opinion -> {
TargetSentiment targetSentiment = opinion.getTarget();
System.out.printf("\t\tTarget sentiment: %s, target text: %s%n", targetSentiment.getSentiment(),
targetSentiment.getText());
for (AssessmentSentiment assessmentSentiment : opinion.getAssessments()) {
System.out.printf("\t\t\t'%s' assessment sentiment because of \"%s\". Is the assessment negated: %s.%n",
assessmentSentiment.getSentiment(), assessmentSentiment.getText(), assessmentSentiment.isNegated());
}
});
});
}
}
Resultados
Document = The food and service were unacceptable. The concierge was nice, however.
Recognized document sentiment: mixed, positive score: 0.470000, neutral score: 0.000000, negative score: 0.520000.
Sentence sentiment: negative, positive score: 0.000000, neutral score: 0.000000, negative score: 0.990000.
Target sentiment: negative, target text: food
'negative' assessment sentiment because of "unacceptable". Is the assessment negated: false.
Target sentiment: negative, target text: service
'negative' assessment sentiment because of "unacceptable". Is the assessment negated: false.
Sentence sentiment: positive, positive score: 0.940000, neutral score: 0.010000, negative score: 0.050000.
Target sentiment: positive, target text: concierge
'positive' assessment sentiment because of "nice". Is the assessment negated: false.
Limpieza de recursos
Si quiere limpiar y eliminar una suscripción de servicios de Azure AI, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos, también se elimina cualquier otro recurso que esté asociado a él.
Use los siguientes comandos para eliminar las variables de entorno que creó para este inicio rápido.
reg delete "HKCU\Environment" /v LANGUAGE_KEY /f
reg delete "HKCU\Environment" /v LANGUAGE_ENDPOINT /f
Pasos siguientes
Documentación de referencia | Ejemplos adicionales | Paquete (npm) | Código fuente de biblioteca
Use este inicio rápido para crear una aplicación de análisis de sentimiento con la biblioteca cliente de Node.js. En el ejemplo siguiente, creará una aplicación JavaScript que puede identificar las opiniones expresadas en un ejemplo de texto y realizar análisis de sentimiento basado en aspectos.
Prerrequisitos
- Una suscripción a Azure: cree una cuenta gratuita
- Node.js v14 LTS o posterior
Instalación
Creación de un recurso de Azure
Para usar el siguiente código de ejemplo, tendrá que implementar un recurso de Azure. Este recurso contendrá una clave y un punto de conexión que se usarán para autenticar las llamadas API que envíe al servicio de lenguaje.
Use el vínculo siguiente para crear un recurso de lenguaje mediante Azure Portal. Tendrá que iniciar sesión con su suscripción de Azure.
En la pantalla Seleccionar características adicionales, seleccione Continuar para crear el recurso.
En la pantalla Crear lenguaje, proporcione la siguiente información:
Detalle Descripción Suscripción La cuenta de suscripción a la que se asociará el recurso. Seleccione la suscripción de Azure en el menú desplegable. Resource group Un grupo de recursos es un contenedor que almacena los recursos que crea. Seleccione Crear nuevo para crear un nuevo grupo de recursos. Region La ubicación del recurso de idioma. Las diferentes regiones pueden crear latencias, según la ubicación física en la que usted se encuentre, pero no tienen ningún impacto en la disponibilidad del tiempo de ejecución del recurso. En este inicio rápido, seleccione una región disponible cerca de usted o elija Este de EE. UU. Nombre Nombre para el recurso de lenguaje. Este nombre también se usará para crear una dirección URL de punto de conexión que las aplicaciones usarán para enviar solicitudes de API. Plan de tarifa Plan de tarifa del recurso de idioma. Puede usar el nivel Gratis F0 para probar el servicio y actualizarlo más adelante a un nivel de pago cuando pase a producción. Asegúrese de que la casilla Aviso de IA responsable esté activada.
En la parte inferior de la página, seleccione Revisar y crear.
En la pantalla que aparece, asegúrese de que se ha superado la validación y de que ha escrito la información correctamente. Seleccione Crear.
Obtención de la clave y el punto de conexión
Ahora necesitará la clave y el punto de conexión del recurso para conectar la aplicación a la API. En una sección posterior de este mismo inicio rápido, pegará la clave y el punto de conexión en el código.
Después de que el recurso de lenguaje se implemente correctamente, haga clic en el botón Ir al recurso en Pasos siguientes.
En la pantalla del recurso, seleccione Claves y punto de conexión en el menú de navegación izquierdo. Usará una de las claves y el punto de conexión en los pasos siguientes.
Creación de variables de entorno
La aplicación debe autenticarse para enviar solicitudes de API. En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas. En este ejemplo, escribirá las credenciales en variables de entorno del equipo local que ejecuta la aplicación.
Para establecer la variable de entorno para la clave del recurso de lenguaje, abra una ventana de consola y siga las instrucciones correspondientes a su sistema operativo y su entorno de desarrollo.
- Para establecer la variable de entorno
LANGUAGE_KEY
, reemplaceyour-key
por una de las claves del recurso. - Para establecer la variable de entorno
LANGUAGE_ENDPOINT
, reemplaceyour-endpoint
por el punto de conexión del recurso.
Importante
Si usa una clave de API, almacénela de forma segura en otro lugar, como en Azure Key Vault. No incluya la clave de API directamente en el código ni la exponga nunca públicamente.
Para más información acerca de la seguridad de los servicios de AI, consulte Autenticación de solicitudes a los servicios de Azure AI.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint
Nota:
Si solo necesita acceder a las variables de entorno en la consola que se está ejecutando en este momento, puede establecer la variable de entorno con set
en vez de con setx
.
Después de agregar las variables de entorno, puede que tenga que reiniciar todos los programas en ejecución que necesiten leer la variable de entorno, incluida la ventana de consola. Por ejemplo, si usa Visual Studio como editor, reinícielo antes de ejecutar el ejemplo.
Creación de una aplicación Node.js
En una ventana de la consola (como cmd, PowerShell o Bash), cree un directorio para la aplicación y vaya a él.
mkdir myapp
cd myapp
Ejecute el comando npm init
para crear una aplicación de nodo con un archivo package.json
.
npm init
Instalación de la biblioteca cliente
Instale los paquetes de npm:
npm install @azure/ai-language-text
Ejemplo de código
Abra el archivo y copie el código siguiente. Luego, ejecute el código.
"use strict";
const { TextAnalyticsClient, AzureKeyCredential } = require("@azure/ai-text-analytics");
// This example requires environment variables named "LANGUAGE_KEY" and "LANGUAGE_ENDPOINT"
const key = process.env.LANGUAGE_KEY;
const endpoint = process.env.LANGUAGE_ENDPOINT;
//an example document for sentiment analysis and opinion mining
const documents = [{
text: "The food and service were unacceptable. The concierge was nice, however.",
id: "0",
language: "en"
}];
async function main() {
console.log("=== Sentiment analysis and opinion mining sample ===");
const client = new TextAnalysisClient(endpoint, new AzureKeyCredential(key));
const results = await client.analyze("SentimentAnalysis", documents, {
includeOpinionMining: true,
});
for (let i = 0; i < results.length; i++) {
const result = results[i];
console.log(`- Document ${result.id}`);
if (!result.error) {
console.log(`\tDocument text: ${documents[i].text}`);
console.log(`\tOverall Sentiment: ${result.sentiment}`);
console.log("\tSentiment confidence scores:", result.confidenceScores);
console.log("\tSentences");
for (const { sentiment, confidenceScores, opinions } of result.sentences) {
console.log(`\t- Sentence sentiment: ${sentiment}`);
console.log("\t Confidence scores:", confidenceScores);
console.log("\t Mined opinions");
for (const { target, assessments } of opinions) {
console.log(`\t\t- Target text: ${target.text}`);
console.log(`\t\t Target sentiment: ${target.sentiment}`);
console.log("\t\t Target confidence scores:", target.confidenceScores);
console.log("\t\t Target assessments");
for (const { text, sentiment } of assessments) {
console.log(`\t\t\t- Text: ${text}`);
console.log(`\t\t\t Sentiment: ${sentiment}`);
}
}
}
} else {
console.error(`\tError: ${result.error}`);
}
}
}
main().catch((err) => {
console.error("The sample encountered an error:", err);
});
Resultados
=== Sentiment analysis and opinion mining sample ===
- Document 0
Document text: The food and service were unacceptable. The concierge was nice, however.
Overall Sentiment: mixed
Sentiment confidence scores: { positive: 0.49, neutral: 0, negative: 0.5 }
Sentences
- Sentence sentiment: negative
Confidence scores: { positive: 0, neutral: 0, negative: 1 }
Mined opinions
- Target text: food
Target sentiment: negative
Target confidence scores: { positive: 0.01, negative: 0.99 }
Target assessments
- Text: unacceptable
Sentiment: negative
- Target text: service
Target sentiment: negative
Target confidence scores: { positive: 0.01, negative: 0.99 }
Target assessments
- Text: unacceptable
Sentiment: negative
- Sentence sentiment: positive
Confidence scores: { positive: 0.98, neutral: 0.01, negative: 0.01 }
Mined opinions
- Target text: concierge
Target sentiment: positive
Target confidence scores: { positive: 1, negative: 0 }
Target assessments
- Text: nice
Sentiment: positive
Limpieza de recursos
Si quiere limpiar y eliminar una suscripción de servicios de Azure AI, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos, también se elimina cualquier otro recurso que esté asociado a él.
Use los siguientes comandos para eliminar las variables de entorno que creó para este inicio rápido.
reg delete "HKCU\Environment" /v LANGUAGE_KEY /f
reg delete "HKCU\Environment" /v LANGUAGE_ENDPOINT /f
Pasos siguientes
Documentación de referencia | Ejemplos adicionales | Paquete (PyPi) | Código fuente de biblioteca
Use este inicio rápido para crear una aplicación de análisis de sentimiento con la biblioteca cliente de Python. En el ejemplo siguiente, creará una aplicación de Python que puede identificar las opiniones expresadas en un ejemplo de texto y realizar análisis de sentimiento basado en aspectos.
Prerrequisitos
- Una suscripción a Azure: cree una cuenta gratuita
- Python 3.7 o versiones posteriores
Instalación
Creación de un recurso de Azure
Para usar el siguiente código de ejemplo, tendrá que implementar un recurso de Azure. Este recurso contendrá una clave y un punto de conexión que se usarán para autenticar las llamadas API que envíe al servicio de lenguaje.
Use el vínculo siguiente para crear un recurso de lenguaje mediante Azure Portal. Tendrá que iniciar sesión con su suscripción de Azure.
En la pantalla Seleccionar características adicionales, seleccione Continuar para crear el recurso.
En la pantalla Crear lenguaje, proporcione la siguiente información:
Detalle Descripción Suscripción La cuenta de suscripción a la que se asociará el recurso. Seleccione la suscripción de Azure en el menú desplegable. Resource group Un grupo de recursos es un contenedor que almacena los recursos que crea. Seleccione Crear nuevo para crear un nuevo grupo de recursos. Region La ubicación del recurso de idioma. Las diferentes regiones pueden crear latencias, según la ubicación física en la que usted se encuentre, pero no tienen ningún impacto en la disponibilidad del tiempo de ejecución del recurso. En este inicio rápido, seleccione una región disponible cerca de usted o elija Este de EE. UU. Nombre Nombre para el recurso de lenguaje. Este nombre también se usará para crear una dirección URL de punto de conexión que las aplicaciones usarán para enviar solicitudes de API. Plan de tarifa Plan de tarifa del recurso de idioma. Puede usar el nivel Gratis F0 para probar el servicio y actualizarlo más adelante a un nivel de pago cuando pase a producción. Asegúrese de que la casilla Aviso de IA responsable esté activada.
En la parte inferior de la página, seleccione Revisar y crear.
En la pantalla que aparece, asegúrese de que se ha superado la validación y de que ha escrito la información correctamente. Seleccione Crear.
Obtención de la clave y el punto de conexión
Ahora necesitará la clave y el punto de conexión del recurso para conectar la aplicación a la API. En una sección posterior de este mismo inicio rápido, pegará la clave y el punto de conexión en el código.
Después de que el recurso de lenguaje se implemente correctamente, haga clic en el botón Ir al recurso en Pasos siguientes.
En la pantalla del recurso, seleccione Claves y punto de conexión en el menú de navegación izquierdo. Usará una de las claves y el punto de conexión en los pasos siguientes.
Creación de variables de entorno
La aplicación debe autenticarse para enviar solicitudes de API. En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas. En este ejemplo, escribirá las credenciales en variables de entorno del equipo local que ejecuta la aplicación.
Para establecer la variable de entorno para la clave del recurso de lenguaje, abra una ventana de consola y siga las instrucciones correspondientes a su sistema operativo y su entorno de desarrollo.
- Para establecer la variable de entorno
LANGUAGE_KEY
, reemplaceyour-key
por una de las claves del recurso. - Para establecer la variable de entorno
LANGUAGE_ENDPOINT
, reemplaceyour-endpoint
por el punto de conexión del recurso.
Importante
Si usa una clave de API, almacénela de forma segura en otro lugar, como en Azure Key Vault. No incluya la clave de API directamente en el código ni la exponga nunca públicamente.
Para más información acerca de la seguridad de los servicios de AI, consulte Autenticación de solicitudes a los servicios de Azure AI.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint
Nota:
Si solo necesita acceder a las variables de entorno en la consola que se está ejecutando en este momento, puede establecer la variable de entorno con set
en vez de con setx
.
Después de agregar las variables de entorno, puede que tenga que reiniciar todos los programas en ejecución que necesiten leer la variable de entorno, incluida la ventana de consola. Por ejemplo, si usa Visual Studio como editor, reinícielo antes de ejecutar el ejemplo.
Instalación de la biblioteca cliente
Después de instalar Python, puede instalar la biblioteca cliente con:
pip install azure-ai-textanalytics==5.2.0
Ejemplo de código
Cree un nuevo archivo de Python y copie el código siguiente. Después, ejecute el código:
# This example requires environment variables named "LANGUAGE_KEY" and "LANGUAGE_ENDPOINT"
language_key = os.environ.get('LANGUAGE_KEY')
language_endpoint = os.environ.get('LANGUAGE_ENDPOINT')
from azure.ai.textanalytics import TextAnalyticsClient
from azure.core.credentials import AzureKeyCredential
# Authenticate the client using your key and endpoint
def authenticate_client():
ta_credential = AzureKeyCredential(language_key)
text_analytics_client = TextAnalyticsClient(
endpoint=language_endpoint,
credential=ta_credential)
return text_analytics_client
client = authenticate_client()
# Example method for detecting sentiment and opinions in text
def sentiment_analysis_with_opinion_mining_example(client):
documents = [
"The food and service were unacceptable. The concierge was nice, however."
]
result = client.analyze_sentiment(documents, show_opinion_mining=True)
doc_result = [doc for doc in result if not doc.is_error]
positive_reviews = [doc for doc in doc_result if doc.sentiment == "positive"]
negative_reviews = [doc for doc in doc_result if doc.sentiment == "negative"]
positive_mined_opinions = []
mixed_mined_opinions = []
negative_mined_opinions = []
for document in doc_result:
print("Document Sentiment: {}".format(document.sentiment))
print("Overall scores: positive={0:.2f}; neutral={1:.2f}; negative={2:.2f} \n".format(
document.confidence_scores.positive,
document.confidence_scores.neutral,
document.confidence_scores.negative,
))
for sentence in document.sentences:
print("Sentence: {}".format(sentence.text))
print("Sentence sentiment: {}".format(sentence.sentiment))
print("Sentence score:\nPositive={0:.2f}\nNeutral={1:.2f}\nNegative={2:.2f}\n".format(
sentence.confidence_scores.positive,
sentence.confidence_scores.neutral,
sentence.confidence_scores.negative,
))
for mined_opinion in sentence.mined_opinions:
target = mined_opinion.target
print("......'{}' target '{}'".format(target.sentiment, target.text))
print("......Target score:\n......Positive={0:.2f}\n......Negative={1:.2f}\n".format(
target.confidence_scores.positive,
target.confidence_scores.negative,
))
for assessment in mined_opinion.assessments:
print("......'{}' assessment '{}'".format(assessment.sentiment, assessment.text))
print("......Assessment score:\n......Positive={0:.2f}\n......Negative={1:.2f}\n".format(
assessment.confidence_scores.positive,
assessment.confidence_scores.negative,
))
print("\n")
print("\n")
sentiment_analysis_with_opinion_mining_example(client)
Resultados
Document Sentiment: mixed
Overall scores: positive=0.47; neutral=0.00; negative=0.52
Sentence: The food and service were unacceptable.
Sentence sentiment: negative
Sentence score:
Positive=0.00
Neutral=0.00
Negative=0.99
......'negative' target 'food'
......Target score:
......Positive=0.00
......Negative=1.00
......'negative' assessment 'unacceptable'
......Assessment score:
......Positive=0.00
......Negative=1.00
......'negative' target 'service'
......Target score:
......Positive=0.00
......Negative=1.00
......'negative' assessment 'unacceptable'
......Assessment score:
......Positive=0.00
......Negative=1.00
Sentence: The concierge was nice, however.
Sentence sentiment: positive
Sentence score:
Positive=0.94
Neutral=0.01
Negative=0.05
......'positive' target 'concierge'
......Target score:
......Positive=1.00
......Negative=0.00
......'positive' assessment 'nice'
......Assessment score:
......Positive=1.00
......Negative=0.00
Limpieza de recursos
Si quiere limpiar y eliminar una suscripción de servicios de Azure AI, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos, también se elimina cualquier otro recurso que esté asociado a él.
Use los siguientes comandos para eliminar las variables de entorno que creó para este inicio rápido.
reg delete "HKCU\Environment" /v LANGUAGE_KEY /f
reg delete "HKCU\Environment" /v LANGUAGE_ENDPOINT /f
Pasos siguientes
Use este inicio rápido para enviar solicitudes de análisis de sentimiento mediante la API REST. En el ejemplo siguiente, usará cURL para identificar las opiniones expresadas en un ejemplo de texto y realizar análisis de sentimiento basado en aspectos.
Prerrequisitos
- Una suscripción a Azure: cree una cuenta gratuita
Instalación
Creación de un recurso de Azure
Para usar el siguiente código de ejemplo, tendrá que implementar un recurso de Azure. Este recurso contendrá una clave y un punto de conexión que se usarán para autenticar las llamadas API que envíe al servicio de lenguaje.
Use el vínculo siguiente para crear un recurso de lenguaje mediante Azure Portal. Tendrá que iniciar sesión con su suscripción de Azure.
En la pantalla Seleccionar características adicionales, seleccione Continuar para crear el recurso.
En la pantalla Crear lenguaje, proporcione la siguiente información:
Detalle Descripción Suscripción La cuenta de suscripción a la que se asociará el recurso. Seleccione la suscripción de Azure en el menú desplegable. Resource group Un grupo de recursos es un contenedor que almacena los recursos que crea. Seleccione Crear nuevo para crear un nuevo grupo de recursos. Region La ubicación del recurso de idioma. Las diferentes regiones pueden crear latencias, según la ubicación física en la que usted se encuentre, pero no tienen ningún impacto en la disponibilidad del tiempo de ejecución del recurso. En este inicio rápido, seleccione una región disponible cerca de usted o elija Este de EE. UU. Nombre Nombre para el recurso de lenguaje. Este nombre también se usará para crear una dirección URL de punto de conexión que las aplicaciones usarán para enviar solicitudes de API. Plan de tarifa Plan de tarifa del recurso de idioma. Puede usar el nivel Gratis F0 para probar el servicio y actualizarlo más adelante a un nivel de pago cuando pase a producción. Asegúrese de que la casilla Aviso de IA responsable esté activada.
En la parte inferior de la página, seleccione Revisar y crear.
En la pantalla que aparece, asegúrese de que se ha superado la validación y de que ha escrito la información correctamente. Seleccione Crear.
Obtención de la clave y el punto de conexión
Ahora necesitará la clave y el punto de conexión del recurso para conectar la aplicación a la API. En una sección posterior de este mismo inicio rápido, pegará la clave y el punto de conexión en el código.
Después de que el recurso de lenguaje se implemente correctamente, haga clic en el botón Ir al recurso en Pasos siguientes.
En la pantalla del recurso, seleccione Claves y punto de conexión en el menú de navegación izquierdo. Usará una de las claves y el punto de conexión en los pasos siguientes.
Creación de variables de entorno
La aplicación debe autenticarse para enviar solicitudes de API. En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas. En este ejemplo, escribirá las credenciales en variables de entorno del equipo local que ejecuta la aplicación.
Para establecer la variable de entorno para la clave del recurso de lenguaje, abra una ventana de consola y siga las instrucciones correspondientes a su sistema operativo y su entorno de desarrollo.
- Para establecer la variable de entorno
LANGUAGE_KEY
, reemplaceyour-key
por una de las claves del recurso. - Para establecer la variable de entorno
LANGUAGE_ENDPOINT
, reemplaceyour-endpoint
por el punto de conexión del recurso.
Importante
Si usa una clave de API, almacénela de forma segura en otro lugar, como en Azure Key Vault. No incluya la clave de API directamente en el código ni la exponga nunca públicamente.
Para más información acerca de la seguridad de los servicios de AI, consulte Autenticación de solicitudes a los servicios de Azure AI.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint
Nota:
Si solo necesita acceder a las variables de entorno en la consola que se está ejecutando en este momento, puede establecer la variable de entorno con set
en vez de con setx
.
Después de agregar las variables de entorno, puede que tenga que reiniciar todos los programas en ejecución que necesiten leer la variable de entorno, incluida la ventana de consola. Por ejemplo, si usa Visual Studio como editor, reinícielo antes de ejecutar el ejemplo.
Creación de un archivo JSON con el cuerpo de la solicitud de ejemplo
En un editor de código, cree un archivo denominado test_sentiment_payload.json
y copie el JSON de ejemplo siguiente. Esta solicitud de ejemplo se enviará a la API en el paso siguiente.
{
"kind": "SentimentAnalysis",
"parameters": {
"modelVersion": "latest",
"opinionMining": "True"
},
"analysisInput":{
"documents":[
{
"id":"1",
"language":"en",
"text": "The food and service were unacceptable. The concierge was nice, however."
}
]
}
}
Guarde test_sentiment_payload.json
en algún lugar del equipo. Por ejemplo, el escritorio.
Envío de una solicitud de API de minería de opiniones y de un análisis de sentimiento
Nota
En los ejemplos siguientes se incluye una solicitud para la característica de minería de opiniones de análisis de sentimiento, que proporciona información detallada sobre las valoraciones (adjetivos) relacionadas con los destinos (nombres) del texto.
Use los comandos siguientes para enviar la solicitud de API mediante el programa que usa. Copie el comando en el terminal y ejecútelo.
parámetro | Descripción |
---|---|
-X POST <endpoint> |
Especifica el punto de conexión para acceder a la API. |
-H Content-Type: application/json |
Tipo de contenido para enviar datos JSON. |
-H "Ocp-Apim-Subscription-Key:<key> |
Especifica la clave para acceder a la API. |
-d <documents> |
El archivo JSON que contiene los documentos que quiere enviar. |
Sustituya C:\Users\<myaccount>\Desktop\test_sentiment_payload.json
por la ubicación del archivo de solicitud JSON de ejemplo que ha creado en el paso anterior.
Símbolo del sistema
curl -X POST "%LANGUAGE_ENDPOINT%/language/:analyze-text?api-version=2023-04-15-preview" ^
-H "Content-Type: application/json" ^
-H "Ocp-Apim-Subscription-Key: %LANGUAGE_KEY%" ^
-d "@C:\Users\<myaccount>\Desktop\test_sentiment_payload.json"
PowerShell
curl.exe -X POST $env:LANGUAGE_ENDPOINT/language/:analyze-text?api-version=2023-04-15-preview `
-H "Content-Type: application/json" `
-H "Ocp-Apim-Subscription-Key: $env:LANGUAGE_KEY" `
-d "@C:\Users\<myaccount>\Desktop\test_sentiment_payload.json"
Respuesta JSON
{
"kind": "SentimentAnalysisResults",
"results": {
"documents": [{
"id": "1",
"sentiment": "mixed",
"confidenceScores": {
"positive": 0.47,
"neutral": 0.0,
"negative": 0.52
},
"sentences": [{
"sentiment": "negative",
"confidenceScores": {
"positive": 0.0,
"neutral": 0.0,
"negative": 0.99
},
"offset": 0,
"length": 40,
"text": "The food and service were unacceptable. ",
"targets": [{
"sentiment": "negative",
"confidenceScores": {
"positive": 0.0,
"negative": 1.0
},
"offset": 4,
"length": 4,
"text": "food",
"relations": [{
"relationType": "assessment",
"ref": "#/documents/0/sentences/0/assessments/0"
}]
}, {
"sentiment": "negative",
"confidenceScores": {
"positive": 0.0,
"negative": 1.0
},
"offset": 13,
"length": 7,
"text": "service",
"relations": [{
"relationType": "assessment",
"ref": "#/documents/0/sentences/0/assessments/0"
}]
}],
"assessments": [{
"sentiment": "negative",
"confidenceScores": {
"positive": 0.0,
"negative": 1.0
},
"offset": 26,
"length": 12,
"text": "unacceptable",
"isNegated": false
}]
}, {
"sentiment": "positive",
"confidenceScores": {
"positive": 0.94,
"neutral": 0.01,
"negative": 0.05
},
"offset": 40,
"length": 32,
"text": "The concierge was nice, however.",
"targets": [{
"sentiment": "positive",
"confidenceScores": {
"positive": 1.0,
"negative": 0.0
},
"offset": 44,
"length": 9,
"text": "concierge",
"relations": [{
"relationType": "assessment",
"ref": "#/documents/0/sentences/1/assessments/0"
}]
}],
"assessments": [{
"sentiment": "positive",
"confidenceScores": {
"positive": 1.0,
"negative": 0.0
},
"offset": 58,
"length": 4,
"text": "nice",
"isNegated": false
}]
}],
"warnings": []
}],
"errors": [],
"modelVersion": "2022-06-01"
}
}
Limpieza de recursos
Si quiere limpiar y eliminar una suscripción de servicios de Azure AI, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos, también se elimina cualquier otro recurso que esté asociado a él.
Use los siguientes comandos para eliminar las variables de entorno que creó para este inicio rápido.
reg delete "HKCU\Environment" /v LANGUAGE_KEY /f
reg delete "HKCU\Environment" /v LANGUAGE_ENDPOINT /f