Avvio rapido: Analisi della valutazione e opinion mining

Documentazione di riferimento | Altri esempi | Pacchetto (NuGet) | Codice sorgente della libreria

Usare questo avvio rapido per creare un'applicazione di analisi della valutazione con la libreria client per .NET. Nell'esempio seguente viene creata un'applicazione C# 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 Lingua tramite il portale di Azure. Sarà necessario accedere usando la propria sottoscrizione di Azure.

  2. Nella schermata Selezionare Funzionalità aggiuntive visualizzata selezionare Continua per creare la risorsa.

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

  3. Nella schermata Crea lingua specificare le informazioni seguenti:

    Dettagli Descrizione
    Abbonamento Account di sottoscrizione a cui verrà associata la risorsa. Selezionare la sottoscrizione di Azure nell'elenco a discesa.
    Gruppo di risorse Un gruppo di risorse è un contenitore in cui vengono archiviate le risorse create. Selezionare Crea nuovo per creare un nuovo gruppo di risorse.
    Area La posizione della risorsa Lingua. Aree diverse possono introdurre latenza, in base alla posizione fisica, ma non hanno alcun impatto sulla disponibilità di runtime della risorsa. Per questo avvio rapido, selezionare un'area vicina disponibile oppure scegliere Stati Uniti orientali.
    Nome Il nome della risorsa Lingua. Questo nome verrà usato anche per creare un URL dell'endpoint di cui le applicazioni usufruiranno per inviare richieste API.
    Piano tariffario Il piano tariffario per la risorsa Lingua. È possibile usare il piano F0 Gratuito per provare il servizio ed eseguire in un secondo momento l'aggiornamento a un livello a pagamento per la produzione.

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

  4. Assicurarsi che sia selezionata la casella di controllo Informativa Intelligenza artificiale responsabile.

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

  6. Nella schermata visualizzata verificare che la convalida abbia avuto esito positivo e che le informazioni immesse siano corrette. Selezionare Crea.

Ottenere la chiave e l'endpoint

La chiave e l'endpoint ottenuti dalla risorsa saranno necessari per connettere l'applicazione all'API. La chiave e l'endpoint verranno incollati nel codice più avanti nell'avvio rapido.

  1. Dopo aver distribuito correttamente la risorsa linguistica, fare clic sul pulsante Vai alla risorsa sotto a 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. Nei passaggi seguenti si useranno una delle chiavi e l'endpoint.

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

Creare variabili di ambiente

L'applicazione deve essere autenticata per poter inviare richieste API. Per la produzione, è consigliabile usare un modo sicuro per archiviare e accedere alle credenziali. In questo esempio, sarà possibile scrivere le credenziali nelle variabili di ambiente nel computer locale che esegue l'applicazione.

Suggerimento

Non includere la chiave direttamente nel codice e non inserirla mai in post pubblici. Per altre opzioni di autenticazione come Azure Key Vault, vedere l'articolo 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 variabile di ambiente LANGUAGE_KEY, sostituire your-key con una delle chiavi per la risorsa.
  2. Per impostare la LANGUAGE_ENDPOINTvariabile di ambiente, sostituire your-endpoint con l'endpoint della risorsa.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Nota

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

Dopo aver aggiunto le variabili di ambiente, potrebbe essere necessario riavviare tutti i programmi in esecuzione che dovranno leggerle, 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. Con questa operazione viene 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 a Servizi di Azure AI, è possibile eliminare la risorsa o il gruppo di risorse. L'eliminazione del gruppo di risorse comporta anche l'eliminazione di tutte le altre risorse associate.

Usare i comandi seguenti per eliminare le variabili di ambiente create per questo argomento di avvio rapido.

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

Passaggi successivi

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

Usare questo avvio rapido per creare un'applicazione di analisi della valutazione con la libreria client per Java. Nell'esempio seguente si creerà un'applicazione Java in grado di identificare le valutazioni espresse in un testo di esempio ed eseguire un'analisi della valutazione basata sull'aspetto.

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 Lingua tramite il portale di Azure. Sarà necessario accedere usando la propria sottoscrizione di Azure.

  2. Nella schermata Selezionare Funzionalità aggiuntive visualizzata selezionare Continua per creare la risorsa.

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

  3. Nella schermata Crea lingua specificare le informazioni seguenti:

    Dettagli Descrizione
    Abbonamento Account di sottoscrizione a cui verrà associata la risorsa. Selezionare la sottoscrizione di Azure nell'elenco a discesa.
    Gruppo di risorse Un gruppo di risorse è un contenitore in cui vengono archiviate le risorse create. Selezionare Crea nuovo per creare un nuovo gruppo di risorse.
    Area La posizione della risorsa Lingua. Aree diverse possono introdurre latenza, in base alla posizione fisica, ma non hanno alcun impatto sulla disponibilità di runtime della risorsa. Per questo avvio rapido, selezionare un'area vicina disponibile oppure scegliere Stati Uniti orientali.
    Nome Il nome della risorsa Lingua. Questo nome verrà usato anche per creare un URL dell'endpoint di cui le applicazioni usufruiranno per inviare richieste API.
    Piano tariffario Il piano tariffario per la risorsa Lingua. È possibile usare il piano F0 Gratuito per provare il servizio ed eseguire in un secondo momento l'aggiornamento a un livello a pagamento per la produzione.

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

  4. Assicurarsi che sia selezionata la casella di controllo Informativa Intelligenza artificiale responsabile.

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

  6. Nella schermata visualizzata verificare che la convalida abbia avuto esito positivo e che le informazioni immesse siano corrette. Selezionare Crea.

Ottenere la chiave e l'endpoint

La chiave e l'endpoint ottenuti dalla risorsa saranno necessari per connettere l'applicazione all'API. La chiave e l'endpoint verranno incollati nel codice più avanti nell'avvio rapido.

  1. Dopo aver distribuito correttamente la risorsa linguistica, fare clic sul pulsante Vai alla risorsa sotto a 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. Nei passaggi seguenti si useranno una delle chiavi e l'endpoint.

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

Creare variabili di ambiente

L'applicazione deve essere autenticata per poter inviare richieste API. Per la produzione, è consigliabile usare un modo sicuro per archiviare e accedere alle credenziali. In questo esempio, sarà possibile scrivere le credenziali nelle variabili di ambiente nel computer locale che esegue l'applicazione.

Suggerimento

Non includere la chiave direttamente nel codice e non inserirla mai in post pubblici. Per altre opzioni di autenticazione come Azure Key Vault, vedere l'articolo 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 variabile di ambiente LANGUAGE_KEY, sostituire your-key con una delle chiavi per la risorsa.
  2. Per impostare la LANGUAGE_ENDPOINTvariabile di ambiente, sostituire your-endpoint con l'endpoint della risorsa.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Nota

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

Dopo aver aggiunto le variabili di ambiente, potrebbe essere necessario riavviare tutti i programmi in esecuzione che dovranno leggerle, 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 a Servizi di Azure AI, è possibile eliminare la risorsa o il gruppo di risorse. L'eliminazione del gruppo di risorse comporta anche l'eliminazione di tutte le altre risorse associate.

Usare i comandi seguenti per eliminare le variabili di ambiente create per questo argomento di avvio rapido.

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

Passaggi successivi

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

Usare questo avvio rapido per creare un'applicazione di analisi della valutazione con la libreria client per Node.js. Nell'esempio seguente si creerà un'applicazione JavaScript in grado di identificare le valutazioni espresse in un testo di esempio ed eseguire un'analisi della valutazione basata sull'aspetto.

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 Lingua tramite il portale di Azure. Sarà necessario accedere usando la propria sottoscrizione di Azure.

  2. Nella schermata Selezionare Funzionalità aggiuntive visualizzata selezionare Continua per creare la risorsa.

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

  3. Nella schermata Crea lingua specificare le informazioni seguenti:

    Dettagli Descrizione
    Abbonamento Account di sottoscrizione a cui verrà associata la risorsa. Selezionare la sottoscrizione di Azure nell'elenco a discesa.
    Gruppo di risorse Un gruppo di risorse è un contenitore in cui vengono archiviate le risorse create. Selezionare Crea nuovo per creare un nuovo gruppo di risorse.
    Area La posizione della risorsa Lingua. Aree diverse possono introdurre latenza, in base alla posizione fisica, ma non hanno alcun impatto sulla disponibilità di runtime della risorsa. Per questo avvio rapido, selezionare un'area vicina disponibile oppure scegliere Stati Uniti orientali.
    Nome Il nome della risorsa Lingua. Questo nome verrà usato anche per creare un URL dell'endpoint di cui le applicazioni usufruiranno per inviare richieste API.
    Piano tariffario Il piano tariffario per la risorsa Lingua. È possibile usare il piano F0 Gratuito per provare il servizio ed eseguire in un secondo momento l'aggiornamento a un livello a pagamento per la produzione.

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

  4. Assicurarsi che sia selezionata la casella di controllo Informativa Intelligenza artificiale responsabile.

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

  6. Nella schermata visualizzata verificare che la convalida abbia avuto esito positivo e che le informazioni immesse siano corrette. Selezionare Crea.

Ottenere la chiave e l'endpoint

La chiave e l'endpoint ottenuti dalla risorsa saranno necessari per connettere l'applicazione all'API. La chiave e l'endpoint verranno incollati nel codice più avanti nell'avvio rapido.

  1. Dopo aver distribuito correttamente la risorsa linguistica, fare clic sul pulsante Vai alla risorsa sotto a 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. Nei passaggi seguenti si useranno una delle chiavi e l'endpoint.

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

Creare variabili di ambiente

L'applicazione deve essere autenticata per poter inviare richieste API. Per la produzione, è consigliabile usare un modo sicuro per archiviare e accedere alle credenziali. In questo esempio, sarà possibile scrivere le credenziali nelle variabili di ambiente nel computer locale che esegue l'applicazione.

Suggerimento

Non includere la chiave direttamente nel codice e non inserirla mai in post pubblici. Per altre opzioni di autenticazione come Azure Key Vault, vedere l'articolo 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 variabile di ambiente LANGUAGE_KEY, sostituire your-key con una delle chiavi per la risorsa.
  2. Per impostare la LANGUAGE_ENDPOINTvariabile di ambiente, sostituire your-endpoint con l'endpoint della risorsa.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Nota

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

Dopo aver aggiunto le variabili di ambiente, potrebbe essere necessario riavviare tutti i programmi in esecuzione che dovranno leggerle, 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 a Servizi di Azure AI, è possibile eliminare la risorsa o il gruppo di risorse. L'eliminazione del gruppo di risorse comporta anche l'eliminazione di tutte le altre risorse associate.

Usare i comandi seguenti per eliminare le variabili di ambiente create per questo argomento di avvio rapido.

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

Passaggi successivi

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

Usare questo avvio rapido per creare un'applicazione di analisi della valutazione con la libreria client per Python. Nell'esempio seguente si creerà un'applicazione Python in grado di identificare le valutazioni espresse in un testo di esempio ed eseguire un'analisi della valutazione basata sull'aspetto.

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 Lingua tramite il portale di Azure. Sarà necessario accedere usando la propria sottoscrizione di Azure.

  2. Nella schermata Selezionare Funzionalità aggiuntive visualizzata selezionare Continua per creare la risorsa.

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

  3. Nella schermata Crea lingua specificare le informazioni seguenti:

    Dettagli Descrizione
    Abbonamento Account di sottoscrizione a cui verrà associata la risorsa. Selezionare la sottoscrizione di Azure nell'elenco a discesa.
    Gruppo di risorse Un gruppo di risorse è un contenitore in cui vengono archiviate le risorse create. Selezionare Crea nuovo per creare un nuovo gruppo di risorse.
    Area La posizione della risorsa Lingua. Aree diverse possono introdurre latenza, in base alla posizione fisica, ma non hanno alcun impatto sulla disponibilità di runtime della risorsa. Per questo avvio rapido, selezionare un'area vicina disponibile oppure scegliere Stati Uniti orientali.
    Nome Il nome della risorsa Lingua. Questo nome verrà usato anche per creare un URL dell'endpoint di cui le applicazioni usufruiranno per inviare richieste API.
    Piano tariffario Il piano tariffario per la risorsa Lingua. È possibile usare il piano F0 Gratuito per provare il servizio ed eseguire in un secondo momento l'aggiornamento a un livello a pagamento per la produzione.

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

  4. Assicurarsi che sia selezionata la casella di controllo Informativa Intelligenza artificiale responsabile.

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

  6. Nella schermata visualizzata verificare che la convalida abbia avuto esito positivo e che le informazioni immesse siano corrette. Selezionare Crea.

Ottenere la chiave e l'endpoint

La chiave e l'endpoint ottenuti dalla risorsa saranno necessari per connettere l'applicazione all'API. La chiave e l'endpoint verranno incollati nel codice più avanti nell'avvio rapido.

  1. Dopo aver distribuito correttamente la risorsa linguistica, fare clic sul pulsante Vai alla risorsa sotto a 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. Nei passaggi seguenti si useranno una delle chiavi e l'endpoint.

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

Creare variabili di ambiente

L'applicazione deve essere autenticata per poter inviare richieste API. Per la produzione, è consigliabile usare un modo sicuro per archiviare e accedere alle credenziali. In questo esempio, sarà possibile scrivere le credenziali nelle variabili di ambiente nel computer locale che esegue l'applicazione.

Suggerimento

Non includere la chiave direttamente nel codice e non inserirla mai in post pubblici. Per altre opzioni di autenticazione come Azure Key Vault, vedere l'articolo 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 variabile di ambiente LANGUAGE_KEY, sostituire your-key con una delle chiavi per la risorsa.
  2. Per impostare la LANGUAGE_ENDPOINTvariabile di ambiente, sostituire your-endpoint con l'endpoint della risorsa.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Nota

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

Dopo aver aggiunto le variabili di ambiente, potrebbe essere necessario riavviare tutti i programmi in esecuzione che dovranno leggerle, 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 a Servizi di Azure AI, è possibile eliminare la risorsa o il gruppo di risorse. L'eliminazione del gruppo di risorse comporta anche l'eliminazione di tutte le altre risorse associate.

Usare i comandi seguenti per eliminare le variabili di ambiente create per questo argomento di avvio rapido.

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

Passaggi successivi

Documentazione di riferimento

Usare questo avvio rapido per inviare richieste di analisi della valutazione usando l'API REST. Nell'esempio seguente si userà un cURL in grado di identificare le valutazioni espresse in un testo di esempio ed eseguire un'analisi della valutazione basata sull'aspetto.

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 Lingua tramite il portale di Azure. Sarà necessario accedere usando la propria sottoscrizione di Azure.

  2. Nella schermata Selezionare Funzionalità aggiuntive visualizzata selezionare Continua per creare la risorsa.

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

  3. Nella schermata Crea lingua specificare le informazioni seguenti:

    Dettagli Descrizione
    Abbonamento Account di sottoscrizione a cui verrà associata la risorsa. Selezionare la sottoscrizione di Azure nell'elenco a discesa.
    Gruppo di risorse Un gruppo di risorse è un contenitore in cui vengono archiviate le risorse create. Selezionare Crea nuovo per creare un nuovo gruppo di risorse.
    Area La posizione della risorsa Lingua. Aree diverse possono introdurre latenza, in base alla posizione fisica, ma non hanno alcun impatto sulla disponibilità di runtime della risorsa. Per questo avvio rapido, selezionare un'area vicina disponibile oppure scegliere Stati Uniti orientali.
    Nome Il nome della risorsa Lingua. Questo nome verrà usato anche per creare un URL dell'endpoint di cui le applicazioni usufruiranno per inviare richieste API.
    Piano tariffario Il piano tariffario per la risorsa Lingua. È possibile usare il piano F0 Gratuito per provare il servizio ed eseguire in un secondo momento l'aggiornamento a un livello a pagamento per la produzione.

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

  4. Assicurarsi che sia selezionata la casella di controllo Informativa Intelligenza artificiale responsabile.

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

  6. Nella schermata visualizzata verificare che la convalida abbia avuto esito positivo e che le informazioni immesse siano corrette. Selezionare Crea.

Ottenere la chiave e l'endpoint

La chiave e l'endpoint ottenuti dalla risorsa saranno necessari per connettere l'applicazione all'API. La chiave e l'endpoint verranno incollati nel codice più avanti nell'avvio rapido.

  1. Dopo aver distribuito correttamente la risorsa linguistica, fare clic sul pulsante Vai alla risorsa sotto a 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. Nei passaggi seguenti si useranno una delle chiavi e l'endpoint.

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

Creare variabili di ambiente

L'applicazione deve essere autenticata per poter inviare richieste API. Per la produzione, è consigliabile usare un modo sicuro per archiviare e accedere alle credenziali. In questo esempio, sarà possibile scrivere le credenziali nelle variabili di ambiente nel computer locale che esegue l'applicazione.

Suggerimento

Non includere la chiave direttamente nel codice e non inserirla mai in post pubblici. Per altre opzioni di autenticazione come Azure Key Vault, vedere l'articolo 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 variabile di ambiente LANGUAGE_KEY, sostituire your-key con una delle chiavi per la risorsa.
  2. Per impostare la LANGUAGE_ENDPOINTvariabile di ambiente, sostituire your-endpoint con l'endpoint della risorsa.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Nota

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

Dopo aver aggiunto le variabili di ambiente, potrebbe essere necessario riavviare tutti i programmi in esecuzione che dovranno leggerle, 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."
			}
		]
	}
} 

Salvare test_sentiment_payload.json da qualche parte nel computer. Ad esempio, sul desktop.

Inviare una richiesta dell'API di analisi della valutazione e opinion mining

Nota

Gli esempi seguenti includono una richiesta per la funzionalità di opinion mining della soluzione di analisi della valutazione, che fornisce informazioni granulari sulle valutazioni (aggettivi) correlate alle destinazioni (sostantivi) nel testo.

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

parameter 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> Il 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 a Servizi di Azure AI, è possibile eliminare la risorsa o il gruppo di risorse. L'eliminazione del gruppo di risorse comporta anche l'eliminazione di tutte le altre risorse associate.

Usare i comandi seguenti per eliminare le variabili di ambiente create per questo argomento di avvio rapido.

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

Passaggi successivi