Avvio rapido: Analisi del sentiment e data mining di opinioni

Documentazione di | riferimentoEsempi aggiuntivi | Pacchetto (NuGet) | Codice sorgente della libreria

Usare questa guida introduttiva per creare un'applicazione di analisi del sentiment con la libreria client per .NET. Nell'esempio seguente si creerà un'applicazione C# che può identificare i sentimenti espressi in un esempio di testo ed eseguire un'analisi del sentiment basata su aspetti.

Prerequisiti

Configurazione

Creare una risorsa di Azure

Per usare l'esempio di codice seguente, è necessario distribuire una risorsa di Azure. Questa risorsa conterrà una chiave e un endpoint che verrà usato per autenticare le chiamate API inviate al servizio lingua.

  1. Usare il collegamento seguente per creare una risorsa della lingua usando il portale di Azure. Sarà necessario accedere usando la sottoscrizione di Azure.

  2. Nella schermata Seleziona funzionalità aggiuntive visualizzate selezionareContinua per creare la risorsa.

    Screenshot che mostra opzioni di funzionalità aggiuntive nella portale di Azure.

  3. Nella schermata Crea lingua specificare le informazioni seguenti:

    Dettaglio Descrizione
    Subscription L'account della sottoscrizione a cui verrà associata la risorsa. Selezionare la sottoscrizione di Azure dal menu a discesa.
    Resource group Un gruppo di risorse è un contenitore che archivia le risorse create. Selezionare Crea nuovo per creare un nuovo gruppo di risorse.
    Region Posizione della risorsa Lingua. Diverse aree possono introdurre latenza a seconda della posizione fisica, ma non hanno alcun impatto sulla disponibilità di runtime della risorsa. Per questa guida introduttiva, selezionare un'area disponibile vicino all'utente o scegliere Stati Uniti orientali.
    Nome Nome della risorsa lingua. Questo nome verrà usato anche per creare un URL endpoint che le applicazioni useranno per inviare richieste API.
    Piano tariffario Piano tariffario per la risorsa lingua. È possibile usare il livello F0 gratuito per provare il servizio e eseguire l'aggiornamento in un secondo momento a un livello a pagamento per la produzione.

    Screenshot che mostra i dettagli della creazione delle risorse nel portale di Azure.

  4. Verificare che la casella di controllo Avviso di intelligenza artificiale responsabile sia selezionata.

  5. Selezionare Rivedi e crea nella parte inferiore della pagina.

  6. Nella schermata visualizzata verificare che la convalida sia passata e che siano state immesse correttamente le informazioni. Quindi selezionare Crea.

Ottenere la chiave e l'endpoint

Sarà quindi necessaria la chiave e l'endpoint dalla risorsa per connettere l'applicazione all'API. Incollare la chiave e l'endpoint nel codice più avanti nell'avvio rapido.

  1. Dopo la distribuzione della risorsa lingua, fare clic sul pulsante Vai alla risorsa in Passaggi successivi.

    Screenshot che mostra i passaggi successivi dopo la distribuzione di una risorsa.

  2. Nella schermata della risorsa selezionare Chiavi ed endpoint nel menu di spostamento a sinistra. Si userà una delle chiavi e l'endpoint nei passaggi seguenti.

    Screenshot che mostra la sezione chiavi ed endpoint per una risorsa.

Creare variabili di ambiente

L'applicazione deve essere autenticata per inviare richieste API. Per la produzione, usare un modo sicuro per archiviare e accedere alle credenziali. In questo esempio verranno scritte le credenziali per le variabili di ambiente nel computer locale che esegue l'applicazione.

Suggerimento

Non includere la chiave direttamente nel codice e non pubblicarla pubblicamente. Per altre opzioni di autenticazione come Azure Key Vault, vedere l'articolo sulla sicurezza dei servizi di intelligenza artificiale di Azure.

Per impostare la variabile di ambiente per la chiave di risorsa lingua, aprire una finestra della console e seguire le istruzioni per il sistema operativo e l'ambiente di sviluppo.

  1. Per impostare la LANGUAGE_KEY variabile di ambiente, sostituire your-key con una delle chiavi per la risorsa.
  2. Per impostare la variabile di ambiente, sostituire your-endpoint con l'endpoint LANGUAGE_ENDPOINT per la risorsa.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Nota

Se è necessario accedere solo alle variabili di ambiente nella console in esecuzione corrente, è possibile impostare la variabile di setxambiente con set anziché .

Dopo aver aggiunto le variabili di ambiente, potrebbe essere necessario riavviare tutti i programmi in esecuzione che dovranno leggere le variabili di ambiente, inclusa la finestra della console. Se ad esempio si usa Visual Studio come editor, riavviare Visual Studio prima di eseguire l'esempio.

Creare una nuova applicazione .NET Core

Usando l'IDE di Visual Studio, creare una nuova app console .NET Core. Verrà creato un progetto "Hello World" con un singolo file di origine C#, program.cs.

Installare la libreria client facendo clic con il pulsante destro del mouse sulla soluzione in Esplora soluzioni e scegliendo Gestisci pacchetti NuGet. Nella finestra di dialogo Gestione pacchetti visualizzata selezionare Sfoglia e cercare Azure.AI.TextAnalytics. Selezionare la versione 5.2.0, quindi Installa. È anche possibile usare la console di gestione pacchetti.

Esempio di codice

Copiare il codice seguente nel file program.cs ed eseguire il codice.

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

Pulire le risorse

Se si vuole pulire e rimuovere una sottoscrizione dei servizi di intelligenza artificiale di Azure, è possibile eliminare la risorsa o il gruppo di risorse. Eliminando il gruppo di risorse vengono eliminate anche tutte le altre risorse associate.

Usare i comandi seguenti per eliminare le variabili di ambiente create per questa guida introduttiva.

reg delete "HKCU\Environment" /v LANGUAGE_KEY /f
reg delete "HKCU\Environment" /v LANGUAGE_ENDPOINT /f

Passaggi successivi

Documentazione di | riferimentoEsempi aggiuntivi | Pacchetto (Maven) | Codice sorgente della libreria

Usare questa guida introduttiva per creare un'applicazione di analisi del sentiment con la libreria client per Java. Nell'esempio seguente si creerà un'applicazione Java che può identificare i sentimenti espressi in un esempio di testo ed eseguire un'analisi del sentiment basata su aspetti.

Prerequisiti

Configurazione

Creare una risorsa di Azure

Per usare l'esempio di codice seguente, è necessario distribuire una risorsa di Azure. Questa risorsa conterrà una chiave e un endpoint che verrà usato per autenticare le chiamate API inviate al servizio lingua.

  1. Usare il collegamento seguente per creare una risorsa della lingua usando il portale di Azure. Sarà necessario accedere usando la sottoscrizione di Azure.

  2. Nella schermata Seleziona funzionalità aggiuntive visualizzate selezionareContinua per creare la risorsa.

    Screenshot che mostra opzioni di funzionalità aggiuntive nella portale di Azure.

  3. Nella schermata Crea lingua specificare le informazioni seguenti:

    Dettaglio Descrizione
    Subscription L'account della sottoscrizione a cui verrà associata la risorsa. Selezionare la sottoscrizione di Azure dal menu a discesa.
    Resource group Un gruppo di risorse è un contenitore che archivia le risorse create. Selezionare Crea nuovo per creare un nuovo gruppo di risorse.
    Region Posizione della risorsa Lingua. Diverse aree possono introdurre latenza a seconda della posizione fisica, ma non hanno alcun impatto sulla disponibilità di runtime della risorsa. Per questa guida introduttiva, selezionare un'area disponibile vicino all'utente o scegliere Stati Uniti orientali.
    Nome Nome della risorsa lingua. Questo nome verrà usato anche per creare un URL endpoint che le applicazioni useranno per inviare richieste API.
    Piano tariffario Piano tariffario per la risorsa lingua. È possibile usare il livello F0 gratuito per provare il servizio e eseguire l'aggiornamento in un secondo momento a un livello a pagamento per la produzione.

    Screenshot che mostra i dettagli della creazione delle risorse nel portale di Azure.

  4. Verificare che la casella di controllo Avviso di intelligenza artificiale responsabile sia selezionata.

  5. Selezionare Rivedi e crea nella parte inferiore della pagina.

  6. Nella schermata visualizzata verificare che la convalida sia passata e che siano state immesse correttamente le informazioni. Quindi selezionare Crea.

Ottenere la chiave e l'endpoint

Sarà quindi necessaria la chiave e l'endpoint dalla risorsa per connettere l'applicazione all'API. Incollare la chiave e l'endpoint nel codice più avanti nell'avvio rapido.

  1. Dopo la distribuzione della risorsa lingua, fare clic sul pulsante Vai alla risorsa in Passaggi successivi.

    Screenshot che mostra i passaggi successivi dopo la distribuzione di una risorsa.

  2. Nella schermata della risorsa selezionare Chiavi ed endpoint nel menu di spostamento a sinistra. Si userà una delle chiavi e l'endpoint nei passaggi seguenti.

    Screenshot che mostra la sezione chiavi ed endpoint per una risorsa.

Creare variabili di ambiente

L'applicazione deve essere autenticata per inviare richieste API. Per la produzione, usare un modo sicuro per archiviare e accedere alle credenziali. In questo esempio verranno scritte le credenziali per le variabili di ambiente nel computer locale che esegue l'applicazione.

Suggerimento

Non includere la chiave direttamente nel codice e non pubblicarla pubblicamente. Per altre opzioni di autenticazione come Azure Key Vault, vedere l'articolo sulla sicurezza dei servizi di intelligenza artificiale di Azure.

Per impostare la variabile di ambiente per la chiave di risorsa lingua, aprire una finestra della console e seguire le istruzioni per il sistema operativo e l'ambiente di sviluppo.

  1. Per impostare la LANGUAGE_KEY variabile di ambiente, sostituire your-key con una delle chiavi per la risorsa.
  2. Per impostare la variabile di ambiente, sostituire your-endpoint con l'endpoint LANGUAGE_ENDPOINT per la risorsa.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Nota

Se è necessario accedere solo alle variabili di ambiente nella console in esecuzione corrente, è possibile impostare la variabile di setxambiente con set anziché .

Dopo aver aggiunto le variabili di ambiente, potrebbe essere necessario riavviare tutti i programmi in esecuzione che dovranno leggere le variabili di ambiente, inclusa la finestra della console. Se ad esempio si usa Visual Studio come editor, riavviare Visual Studio prima di eseguire l'esempio.

Aggiungere la libreria client

Creare un progetto Maven nell'ambiente IDE o di sviluppo preferito. Aggiungere quindi la dipendenza seguente al file pom.xml del progetto. È possibile trovare la sintassi di implementazione per altri strumenti di compilazione online.

<dependencies>
     <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-ai-textanalytics</artifactId>
        <version>5.2.0</version>
    </dependency>
</dependencies>

Esempio di codice

Creare un file Java denominato Example.java. Aprire il file e copiare il codice seguente. A questo punto, eseguire il codice.

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());
                }
            });
        });
    }
}

Output

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.

Pulire le risorse

Se si vuole pulire e rimuovere una sottoscrizione dei servizi di intelligenza artificiale di Azure, è possibile eliminare la risorsa o il gruppo di risorse. Eliminando il gruppo di risorse vengono eliminate anche tutte le altre risorse associate.

Usare i comandi seguenti per eliminare le variabili di ambiente create per questa guida introduttiva.

reg delete "HKCU\Environment" /v LANGUAGE_KEY /f
reg delete "HKCU\Environment" /v LANGUAGE_ENDPOINT /f

Passaggi successivi

Documentazione | di riferimentoEsempi aggiuntivi | Pacchetto (npm) | Codice sorgente della libreria

Usare questa guida introduttiva per creare un'applicazione di analisi del sentiment con la libreria client per Node.js. Nell'esempio seguente si creerà un'applicazione JavaScript in grado di identificare i sentimenti espressi in un esempio di testo ed eseguire l'analisi del sentiment basata su aspetti.

Prerequisiti

Configurazione

Creare una risorsa di Azure

Per usare l'esempio di codice seguente, è necessario distribuire una risorsa di Azure. Questa risorsa conterrà una chiave e un endpoint che verranno usati per autenticare le chiamate API inviate al servizio lingua.

  1. Usare il collegamento seguente per creare una risorsa di lingua usando il portale di Azure. Sarà necessario accedere usando la sottoscrizione di Azure.

  2. Nella schermata Seleziona funzionalità aggiuntive visualizzata selezionare Continua per creare la risorsa.

    Screenshot che mostra opzioni di funzionalità aggiuntive nel portale di Azure.

  3. Nella schermata Crea lingua specificare le informazioni seguenti:

    Dettaglio Descrizione
    Subscription L'account di sottoscrizione a cui verrà associata la risorsa. Selezionare la sottoscrizione di Azure dal menu a discesa.
    Resource group Un gruppo di risorse è un contenitore che archivia le risorse create. Selezionare Crea nuovo per creare un nuovo gruppo di risorse.
    Region Posizione della risorsa Lingua. Diverse aree possono introdurre latenza a seconda della posizione fisica, ma non hanno alcun impatto sulla disponibilità di runtime della risorsa. Per questa guida introduttiva, selezionare un'area disponibile in prossimità o scegliere Stati Uniti orientali.
    Nome Nome della risorsa Lingua. Questo nome verrà usato anche per creare un URL dell'endpoint che le applicazioni useranno per inviare richieste API.
    Piano tariffario Piano tariffario per la risorsa Lingua. È possibile usare il livello F0 gratuito per provare il servizio ed eseguire l'aggiornamento in un secondo momento a un livello a pagamento per la produzione.

    Screenshot che mostra i dettagli della creazione delle risorse nel portale di Azure.

  4. Assicurarsi che la casella di controllo Avviso di intelligenza artificiale responsabile sia selezionata.

  5. Selezionare Rivedi e crea nella parte inferiore della pagina.

  6. Nella schermata visualizzata verificare che la convalida sia stata superata e che siano state immesse correttamente le informazioni. Quindi selezionare Crea.

Ottenere la chiave e l'endpoint

Sarà quindi necessaria la chiave e l'endpoint dalla risorsa per connettere l'applicazione all'API. La chiave e l'endpoint verranno incollati nel codice più avanti nella guida introduttiva.

  1. Dopo la distribuzione della risorsa Lingua, fare clic sul pulsante Vai alla risorsa in Passaggi successivi.

    Screenshot che mostra i passaggi successivi dopo la distribuzione di una risorsa.

  2. Nella schermata della risorsa selezionare Chiavi ed endpoint nel menu di spostamento a sinistra. Si userà una delle chiavi e l'endpoint nei passaggi seguenti.

    Screenshot che mostra le chiavi e la sezione endpoint per una risorsa.

Creare variabili di ambiente

L'applicazione deve essere autenticata per inviare richieste API. Per l'ambiente di produzione, usare un modo sicuro per archiviare e accedere alle credenziali. In questo esempio le credenziali verranno scritte nelle variabili di ambiente nel computer locale che esegue l'applicazione.

Suggerimento

Non includere la chiave direttamente nel codice e non pubblicarla mai pubblicamente. Vedere l'articolo sulla sicurezza dei servizi di intelligenza artificiale di Azure per altre opzioni di autenticazione, ad esempio Azure Key Vault.

Per impostare la variabile di ambiente per la chiave di risorsa Language, aprire una finestra della console e seguire le istruzioni per il sistema operativo e l'ambiente di sviluppo.

  1. Per impostare la LANGUAGE_KEY variabile di ambiente, sostituire your-key con una delle chiavi per la risorsa.
  2. Per impostare la LANGUAGE_ENDPOINT variabile di ambiente, sostituire your-endpoint con l'endpoint per la risorsa.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Nota

Se è sufficiente accedere alle variabili di ambiente nella console in esecuzione corrente, è possibile impostare la variabile di setxambiente con set anziché .

Dopo aver aggiunto le variabili di ambiente, potrebbe essere necessario riavviare tutti i programmi in esecuzione che dovranno leggere le variabili di ambiente, inclusa la finestra della console. Se ad esempio si usa Visual Studio come editor, riavviare Visual Studio prima di eseguire l'esempio.

Creare una nuova applicazione Node.js

In una finestra della console, ad esempio cmd, PowerShell o Bash, creare e passare a una nuova directory per l'app.

mkdir myapp 

cd myapp

Eseguire il comando npm init per creare un'applicazione Node con un file package.json.

npm init

Installare la libreria client

Installare i pacchetti npm:

npm install @azure/ai-language-text

Esempio di codice

Aprire il file e copiare il codice seguente. A questo punto, eseguire il codice.

"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);
});

Output

=== 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

Pulire le risorse

Se si vuole pulire e rimuovere una sottoscrizione dei servizi di intelligenza artificiale di Azure, è possibile eliminare la risorsa o il gruppo di risorse. Eliminando il gruppo di risorse vengono eliminate anche tutte le altre risorse associate.

Usare i comandi seguenti per eliminare le variabili di ambiente create per questa guida introduttiva.

reg delete "HKCU\Environment" /v LANGUAGE_KEY /f
reg delete "HKCU\Environment" /v LANGUAGE_ENDPOINT /f

Passaggi successivi

Documentazione di | riferimentoEsempi aggiuntivi | Pacchetto (PyPi) | Codice sorgente della libreria

Usare questa guida introduttiva per creare un'applicazione di analisi del sentiment con la libreria client per Python. Nell'esempio seguente si creerà un'applicazione Python che consente di identificare i sentimenti espressi in un esempio di testo ed eseguire un'analisi del sentiment basata su aspetti.

Prerequisiti

Configurazione

Creare una risorsa di Azure

Per usare l'esempio di codice seguente, è necessario distribuire una risorsa di Azure. Questa risorsa conterrà una chiave e un endpoint che verrà usato per autenticare le chiamate API inviate al servizio lingua.

  1. Usare il collegamento seguente per creare una risorsa della lingua usando il portale di Azure. Sarà necessario accedere usando la sottoscrizione di Azure.

  2. Nella schermata Seleziona funzionalità aggiuntive visualizzate selezionareContinua per creare la risorsa.

    Screenshot che mostra opzioni di funzionalità aggiuntive nella portale di Azure.

  3. Nella schermata Crea lingua specificare le informazioni seguenti:

    Dettaglio Descrizione
    Subscription L'account della sottoscrizione a cui verrà associata la risorsa. Selezionare la sottoscrizione di Azure dal menu a discesa.
    Resource group Un gruppo di risorse è un contenitore che archivia le risorse create. Selezionare Crea nuovo per creare un nuovo gruppo di risorse.
    Region Posizione della risorsa Lingua. Diverse aree possono introdurre latenza a seconda della posizione fisica, ma non hanno alcun impatto sulla disponibilità di runtime della risorsa. Per questa guida introduttiva, selezionare un'area disponibile vicino all'utente o scegliere Stati Uniti orientali.
    Nome Nome della risorsa lingua. Questo nome verrà usato anche per creare un URL endpoint che le applicazioni useranno per inviare richieste API.
    Piano tariffario Piano tariffario per la risorsa lingua. È possibile usare il livello F0 gratuito per provare il servizio e eseguire l'aggiornamento in un secondo momento a un livello a pagamento per la produzione.

    Screenshot che mostra i dettagli della creazione delle risorse nel portale di Azure.

  4. Verificare che la casella di controllo Avviso di intelligenza artificiale responsabile sia selezionata.

  5. Selezionare Rivedi e crea nella parte inferiore della pagina.

  6. Nella schermata visualizzata verificare che la convalida sia passata e che siano state immesse correttamente le informazioni. Quindi selezionare Crea.

Ottenere la chiave e l'endpoint

Sarà quindi necessaria la chiave e l'endpoint dalla risorsa per connettere l'applicazione all'API. Incollare la chiave e l'endpoint nel codice più avanti nell'avvio rapido.

  1. Dopo la distribuzione della risorsa lingua, fare clic sul pulsante Vai alla risorsa in Passaggi successivi.

    Screenshot che mostra i passaggi successivi dopo la distribuzione di una risorsa.

  2. Nella schermata della risorsa selezionare Chiavi ed endpoint nel menu di spostamento a sinistra. Si userà una delle chiavi e l'endpoint nei passaggi seguenti.

    Screenshot che mostra la sezione chiavi ed endpoint per una risorsa.

Creare variabili di ambiente

L'applicazione deve essere autenticata per inviare richieste API. Per la produzione, usare un modo sicuro per archiviare e accedere alle credenziali. In questo esempio verranno scritte le credenziali per le variabili di ambiente nel computer locale che esegue l'applicazione.

Suggerimento

Non includere la chiave direttamente nel codice e non pubblicarla pubblicamente. Per altre opzioni di autenticazione come Azure Key Vault, vedere l'articolo sulla sicurezza dei servizi di intelligenza artificiale di Azure.

Per impostare la variabile di ambiente per la chiave di risorsa lingua, aprire una finestra della console e seguire le istruzioni per il sistema operativo e l'ambiente di sviluppo.

  1. Per impostare la LANGUAGE_KEY variabile di ambiente, sostituire your-key con una delle chiavi per la risorsa.
  2. Per impostare la variabile di ambiente, sostituire your-endpoint con l'endpoint LANGUAGE_ENDPOINT per la risorsa.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Nota

Se è necessario accedere solo alle variabili di ambiente nella console in esecuzione corrente, è possibile impostare la variabile di setxambiente con set anziché .

Dopo aver aggiunto le variabili di ambiente, potrebbe essere necessario riavviare tutti i programmi in esecuzione che dovranno leggere le variabili di ambiente, inclusa la finestra della console. Se ad esempio si usa Visual Studio come editor, riavviare Visual Studio prima di eseguire l'esempio.

Installare la libreria client

Dopo l'installazione di Python, è possibile installare la libreria client con:

pip install azure-ai-textanalytics==5.2.0

Esempio di codice

Creare un nuovo file Python e copiare il codice seguente. Eseguire quindi il codice

# 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)

Output

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

Pulire le risorse

Se si vuole pulire e rimuovere una sottoscrizione dei servizi di intelligenza artificiale di Azure, è possibile eliminare la risorsa o il gruppo di risorse. Eliminando il gruppo di risorse vengono eliminate anche tutte le altre risorse associate.

Usare i comandi seguenti per eliminare le variabili di ambiente create per questa guida introduttiva.

reg delete "HKCU\Environment" /v LANGUAGE_KEY /f
reg delete "HKCU\Environment" /v LANGUAGE_ENDPOINT /f

Passaggi successivi

Documentazione di riferimento

Usare questa guida introduttiva per inviare richieste di analisi del sentiment usando l'API REST. Nell'esempio seguente si userà cURL per identificare i sentimenti espressi in un esempio di testo ed eseguire l'analisi del sentiment basata su aspetti.

Prerequisiti

Configurazione

Creare una risorsa di Azure

Per usare l'esempio di codice seguente, è necessario distribuire una risorsa di Azure. Questa risorsa conterrà una chiave e un endpoint che verranno usati per autenticare le chiamate API inviate al servizio lingua.

  1. Usare il collegamento seguente per creare una risorsa di lingua usando il portale di Azure. Sarà necessario accedere usando la sottoscrizione di Azure.

  2. Nella schermata Seleziona funzionalità aggiuntive visualizzata selezionare Continua per creare la risorsa.

    Screenshot che mostra opzioni di funzionalità aggiuntive nel portale di Azure.

  3. Nella schermata Crea lingua specificare le informazioni seguenti:

    Dettaglio Descrizione
    Subscription L'account di sottoscrizione a cui verrà associata la risorsa. Selezionare la sottoscrizione di Azure dal menu a discesa.
    Resource group Un gruppo di risorse è un contenitore che archivia le risorse create. Selezionare Crea nuovo per creare un nuovo gruppo di risorse.
    Region Posizione della risorsa Lingua. Diverse aree possono introdurre latenza a seconda della posizione fisica, ma non hanno alcun impatto sulla disponibilità di runtime della risorsa. Per questa guida introduttiva, selezionare un'area disponibile in prossimità o scegliere Stati Uniti orientali.
    Nome Nome della risorsa Lingua. Questo nome verrà usato anche per creare un URL dell'endpoint che le applicazioni useranno per inviare richieste API.
    Piano tariffario Piano tariffario per la risorsa Lingua. È possibile usare il livello F0 gratuito per provare il servizio ed eseguire l'aggiornamento in un secondo momento a un livello a pagamento per la produzione.

    Screenshot che mostra i dettagli della creazione delle risorse nel portale di Azure.

  4. Assicurarsi che la casella di controllo Avviso di intelligenza artificiale responsabile sia selezionata.

  5. Selezionare Rivedi e crea nella parte inferiore della pagina.

  6. Nella schermata visualizzata verificare che la convalida sia stata superata e che siano state immesse correttamente le informazioni. Quindi selezionare Crea.

Ottenere la chiave e l'endpoint

Sarà quindi necessaria la chiave e l'endpoint dalla risorsa per connettere l'applicazione all'API. La chiave e l'endpoint verranno incollati nel codice più avanti nella guida introduttiva.

  1. Dopo la distribuzione della risorsa Lingua, fare clic sul pulsante Vai alla risorsa in Passaggi successivi.

    Screenshot che mostra i passaggi successivi dopo la distribuzione di una risorsa.

  2. Nella schermata della risorsa selezionare Chiavi ed endpoint nel menu di spostamento a sinistra. Si userà una delle chiavi e l'endpoint nei passaggi seguenti.

    Screenshot che mostra le chiavi e la sezione endpoint per una risorsa.

Creare variabili di ambiente

L'applicazione deve essere autenticata per inviare richieste API. Per l'ambiente di produzione, usare un modo sicuro per archiviare e accedere alle credenziali. In questo esempio le credenziali verranno scritte nelle variabili di ambiente nel computer locale che esegue l'applicazione.

Suggerimento

Non includere la chiave direttamente nel codice e non pubblicarla mai pubblicamente. Vedere l'articolo sulla sicurezza dei servizi di intelligenza artificiale di Azure per altre opzioni di autenticazione, ad esempio Azure Key Vault.

Per impostare la variabile di ambiente per la chiave di risorsa Language, aprire una finestra della console e seguire le istruzioni per il sistema operativo e l'ambiente di sviluppo.

  1. Per impostare la LANGUAGE_KEY variabile di ambiente, sostituire your-key con una delle chiavi per la risorsa.
  2. Per impostare la LANGUAGE_ENDPOINT variabile di ambiente, sostituire your-endpoint con l'endpoint per la risorsa.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Nota

Se è sufficiente accedere alle variabili di ambiente nella console in esecuzione corrente, è possibile impostare la variabile di setxambiente con set anziché .

Dopo aver aggiunto le variabili di ambiente, potrebbe essere necessario riavviare tutti i programmi in esecuzione che dovranno leggere le variabili di ambiente, inclusa la finestra della console. Se ad esempio si usa Visual Studio come editor, riavviare Visual Studio prima di eseguire l'esempio.

Creare un file JSON con il corpo della richiesta di esempio

In un editor di codice creare un nuovo file denominato test_sentiment_payload.json e copiare l'esempio JSON seguente. Questa richiesta di esempio verrà inviata all'API nel passaggio successivo.

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

Salva test_sentiment_payload.json da qualche parte sul tuo computer. Ad esempio, il desktop.

Inviare una richiesta api di analisi del sentiment e opinion mining

Nota

Gli esempi seguenti includono una richiesta per la funzionalità di opinion mining dell'analisi del sentiment, che fornisce informazioni granulari sulle valutazioni (aggettivi) correlate a destinazioni (sostantivi) nel testo.

Usare i comandi seguenti per inviare la richiesta API usando il programma in uso. Copiare il comando nel terminale ed eseguirlo.

parametro Descrizione
-X POST <endpoint> Specifica l'endpoint per l'accesso all'API.
-H Content-Type: application/json Il tipo di contenuto per l'invio di dati JSON.
-H "Ocp-Apim-Subscription-Key:<key> Specifica la chiave per l'accesso all'API.
-d <documents> File JSON contenente i documenti da inviare.

Sostituire C:\Users\<myaccount>\Desktop\test_sentiment_payload.json con il percorso del file di richiesta JSON di esempio creato nel passaggio precedente.

Prompt dei comandi

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"

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

Pulire le risorse

Se si vuole pulire e rimuovere una sottoscrizione dei servizi di intelligenza artificiale di Azure, è possibile eliminare la risorsa o il gruppo di risorse. Eliminando il gruppo di risorse vengono eliminate anche tutte le altre risorse associate.

Usare i comandi seguenti per eliminare le variabili di ambiente create per questa guida introduttiva.

reg delete "HKCU\Environment" /v LANGUAGE_KEY /f
reg delete "HKCU\Environment" /v LANGUAGE_ENDPOINT /f

Passaggi successivi