Dela via


Snabbstart: Attitydanalys och åsiktsutvinning

Referensdokumentation Fler exempelpaket | (NuGet) | Källkod för bibliotek |

Använd den här snabbstarten för att skapa ett sentimentanalysprogram med klientbiblioteket för .NET. I följande exempel skapar du ett C#-program som kan identifiera de sentiment som uttrycks i ett textexempel och utföra aspektbaserad attitydanalys.

Förutsättningar

Konfigurera

Skapa en Azure-resurs

Om du vill använda kodexemplet nedan måste du distribuera en Azure-resurs. Den här resursen innehåller en nyckel och slutpunkt som du använder för att autentisera DE API-anrop som du skickar till språktjänsten.

  1. Använd följande länk för att skapa en språkresurs med hjälp av Azure-portalen. Du måste logga in med din Azure-prenumeration.

  2. På skärmen Välj ytterligare funktioner som visas väljer du Fortsätt för att skapa resursen.

    En skärmbild som visar ytterligare funktionsalternativ i Azure-portalen.

  3. På skärmen Skapa språk anger du följande information:

    Information beskrivning
    Prenumeration Det prenumerationskonto som resursen ska associeras med. Välj din Azure-prenumeration på den nedrullningsbara menyn.
    Resursgrupp En resursgrupp är en container som lagrar de resurser som du skapar. Välj Skapa ny för att skapa en ny resursgrupp.
    Region Platsen för språkresursen. Olika regioner kan ge svarstider beroende på din fysiska plats, men påverkar inte resursens körningstillgänglighet. För den här snabbstarten väljer du antingen en tillgänglig region nära dig eller usa , östra.
    Name Namnet på språkresursen. Det här namnet används också för att skapa en slutpunkts-URL som dina program använder för att skicka API-begäranden.
    Prisnivå Prisnivån för din språkresurs. Du kan använda den kostnadsfria F0-nivån för att prova tjänsten och uppgradera senare till en betald nivå för produktion.

    En skärmbild som visar information om hur du skapar resurser i Azure-portalen.

  4. Kontrollera att kryssrutan Ansvarig AI-meddelande är markerad.

  5. Välj Granska + Skapa längst ned på sidan.

  6. På skärmen som visas kontrollerar du att valideringen har passerat och att du har angett informationen korrekt. Välj sedan Skapa.

Hämta din nyckel och slutpunkt

Därefter behöver du nyckeln och slutpunkten från resursen för att ansluta ditt program till API:et. Du klistrar in nyckeln och slutpunkten i koden senare i snabbstarten.

  1. När språkresursen har distribuerats klickar du på knappen Gå till resurs under Nästa steg.

    En skärmbild som visar nästa steg när en resurs har distribuerats.

  2. På skärmen för resursen väljer du Nycklar och slutpunkt på den vänstra navigeringsmenyn. Du använder en av dina nycklar och slutpunkten i stegen nedan.

    En skärmbild som visar avsnittet nycklar och slutpunkter för en resurs.

Skapa miljövariabler

Ditt program måste autentiseras för att skicka API-begäranden. För produktion använder du ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter. I det här exemplet skriver du dina autentiseringsuppgifter till miljövariabler på den lokala dator som kör programmet.

Dricks

Inkludera inte nyckeln direkt i koden och publicera den aldrig offentligt. Mer autentiseringsalternativ som Azure Key Vault finns i säkerhetsartikeln för Azure AI-tjänster.

Om du vill ange miljövariabeln för din språkresursnyckel öppnar du ett konsolfönster och följer anvisningarna för operativsystemet och utvecklingsmiljön.

  1. Om du vill ange LANGUAGE_KEY miljövariabeln ersätter du your-key med en av nycklarna för resursen.
  2. Om du vill ange LANGUAGE_ENDPOINT miljövariabeln ersätter du your-endpoint med slutpunkten för resursen.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Kommentar

Om du bara behöver komma åt miljövariablerna i den aktuella konsolen som körs kan du ange miljövariabeln med set i stället för setx.

När du har lagt till miljövariablerna kan du behöva starta om alla program som körs och som behöver läsa miljövariablerna, inklusive konsolfönstret. Om du till exempel använder Visual Studio som redigerare startar du om Visual Studio innan du kör exemplet.

Skapa en ny .NET Core-app

Skapa en ny .NET Core-konsolapp med Visual Studio IDE. Detta skapar ett "Hello World"-projekt med en enda C#-källfil: program.cs.

Installera klientbiblioteket genom att högerklicka på lösningen i Solution Explorer och välja Hantera NuGet-paket. I pakethanteraren som öppnas väljer du Bläddra och söker efter Azure.AI.TextAnalytics. Välj version 5.2.0 och sedan Installera. Du kan också använda Package Manager-konsolen.

Kodexempel

Kopiera följande kod till din program.cs-fil och kör koden.

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

Rensa resurser

Om du vill rensa och ta bort en Azure AI-tjänstprenumeration kan du ta bort resursen eller resursgruppen. Om du tar bort resursgruppen tas även alla andra resurser som är associerade med den bort.

Använd följande kommandon för att ta bort miljövariablerna som du skapade för den här snabbstarten.

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

Nästa steg

Referensdokumentation Ytterligare exempelpaket | (Maven) | Källkod för bibliotek |

Använd den här snabbstarten för att skapa ett sentimentanalysprogram med klientbiblioteket för Java. I följande exempel skapar du ett Java-program som kan identifiera de sentiment som uttrycks i ett textexempel och utföra aspektbaserad attitydanalys.

Förutsättningar

Konfigurera

Skapa en Azure-resurs

Om du vill använda kodexemplet nedan måste du distribuera en Azure-resurs. Den här resursen innehåller en nyckel och slutpunkt som du använder för att autentisera DE API-anrop som du skickar till språktjänsten.

  1. Använd följande länk för att skapa en språkresurs med hjälp av Azure-portalen. Du måste logga in med din Azure-prenumeration.

  2. På skärmen Välj ytterligare funktioner som visas väljer du Fortsätt för att skapa resursen.

    En skärmbild som visar ytterligare funktionsalternativ i Azure-portalen.

  3. På skärmen Skapa språk anger du följande information:

    Information beskrivning
    Prenumeration Det prenumerationskonto som resursen ska associeras med. Välj din Azure-prenumeration på den nedrullningsbara menyn.
    Resursgrupp En resursgrupp är en container som lagrar de resurser som du skapar. Välj Skapa ny för att skapa en ny resursgrupp.
    Region Platsen för språkresursen. Olika regioner kan ge svarstider beroende på din fysiska plats, men påverkar inte resursens körningstillgänglighet. För den här snabbstarten väljer du antingen en tillgänglig region nära dig eller usa , östra.
    Name Namnet på språkresursen. Det här namnet används också för att skapa en slutpunkts-URL som dina program använder för att skicka API-begäranden.
    Prisnivå Prisnivån för din språkresurs. Du kan använda den kostnadsfria F0-nivån för att prova tjänsten och uppgradera senare till en betald nivå för produktion.

    En skärmbild som visar information om hur du skapar resurser i Azure-portalen.

  4. Kontrollera att kryssrutan Ansvarig AI-meddelande är markerad.

  5. Välj Granska + Skapa längst ned på sidan.

  6. På skärmen som visas kontrollerar du att valideringen har passerat och att du har angett informationen korrekt. Välj sedan Skapa.

Hämta din nyckel och slutpunkt

Därefter behöver du nyckeln och slutpunkten från resursen för att ansluta ditt program till API:et. Du klistrar in nyckeln och slutpunkten i koden senare i snabbstarten.

  1. När språkresursen har distribuerats klickar du på knappen Gå till resurs under Nästa steg.

    En skärmbild som visar nästa steg när en resurs har distribuerats.

  2. På skärmen för resursen väljer du Nycklar och slutpunkt på den vänstra navigeringsmenyn. Du använder en av dina nycklar och slutpunkten i stegen nedan.

    En skärmbild som visar avsnittet nycklar och slutpunkter för en resurs.

Skapa miljövariabler

Ditt program måste autentiseras för att skicka API-begäranden. För produktion använder du ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter. I det här exemplet skriver du dina autentiseringsuppgifter till miljövariabler på den lokala dator som kör programmet.

Dricks

Inkludera inte nyckeln direkt i koden och publicera den aldrig offentligt. Mer autentiseringsalternativ som Azure Key Vault finns i säkerhetsartikeln för Azure AI-tjänster.

Om du vill ange miljövariabeln för din språkresursnyckel öppnar du ett konsolfönster och följer anvisningarna för operativsystemet och utvecklingsmiljön.

  1. Om du vill ange LANGUAGE_KEY miljövariabeln ersätter du your-key med en av nycklarna för resursen.
  2. Om du vill ange LANGUAGE_ENDPOINT miljövariabeln ersätter du your-endpoint med slutpunkten för resursen.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Kommentar

Om du bara behöver komma åt miljövariablerna i den aktuella konsolen som körs kan du ange miljövariabeln med set i stället för setx.

När du har lagt till miljövariablerna kan du behöva starta om alla program som körs och som behöver läsa miljövariablerna, inklusive konsolfönstret. Om du till exempel använder Visual Studio som redigerare startar du om Visual Studio innan du kör exemplet.

Lägga till klientbiblioteket

Skapa ett Maven-projekt i önskad IDE eller utvecklingsmiljö. Lägg sedan till följande beroende i projektets pom.xml-fil. Implementeringssyntaxen för andra byggverktyg finns online.

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

Kodexempel

Skapa en Java-fil som heter Example.java. Öppna filen och kopiera koden nedan. Kör sedan koden.

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.

Rensa resurser

Om du vill rensa och ta bort en Azure AI-tjänstprenumeration kan du ta bort resursen eller resursgruppen. Om du tar bort resursgruppen tas även alla andra resurser som är associerade med den bort.

Använd följande kommandon för att ta bort miljövariablerna som du skapade för den här snabbstarten.

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

Nästa steg

Referensdokumentation Ytterligare exempelpaket | (npm) | Källkod för bibliotek |

Använd den här snabbstarten för att skapa ett sentimentanalysprogram med klientbiblioteket för Node.js. I följande exempel skapar du ett JavaScript-program som kan identifiera de sentiment som uttrycks i ett textexempel och utföra aspektbaserad attitydanalys.

Förutsättningar

Konfigurera

Skapa en Azure-resurs

Om du vill använda kodexemplet nedan måste du distribuera en Azure-resurs. Den här resursen innehåller en nyckel och slutpunkt som du använder för att autentisera DE API-anrop som du skickar till språktjänsten.

  1. Använd följande länk för att skapa en språkresurs med hjälp av Azure-portalen. Du måste logga in med din Azure-prenumeration.

  2. På skärmen Välj ytterligare funktioner som visas väljer du Fortsätt för att skapa resursen.

    En skärmbild som visar ytterligare funktionsalternativ i Azure-portalen.

  3. På skärmen Skapa språk anger du följande information:

    Information beskrivning
    Prenumeration Det prenumerationskonto som resursen ska associeras med. Välj din Azure-prenumeration på den nedrullningsbara menyn.
    Resursgrupp En resursgrupp är en container som lagrar de resurser som du skapar. Välj Skapa ny för att skapa en ny resursgrupp.
    Region Platsen för språkresursen. Olika regioner kan ge svarstider beroende på din fysiska plats, men påverkar inte resursens körningstillgänglighet. För den här snabbstarten väljer du antingen en tillgänglig region nära dig eller usa , östra.
    Name Namnet på språkresursen. Det här namnet används också för att skapa en slutpunkts-URL som dina program använder för att skicka API-begäranden.
    Prisnivå Prisnivån för din språkresurs. Du kan använda den kostnadsfria F0-nivån för att prova tjänsten och uppgradera senare till en betald nivå för produktion.

    En skärmbild som visar information om hur du skapar resurser i Azure-portalen.

  4. Kontrollera att kryssrutan Ansvarig AI-meddelande är markerad.

  5. Välj Granska + Skapa längst ned på sidan.

  6. På skärmen som visas kontrollerar du att valideringen har passerat och att du har angett informationen korrekt. Välj sedan Skapa.

Hämta din nyckel och slutpunkt

Därefter behöver du nyckeln och slutpunkten från resursen för att ansluta ditt program till API:et. Du klistrar in nyckeln och slutpunkten i koden senare i snabbstarten.

  1. När språkresursen har distribuerats klickar du på knappen Gå till resurs under Nästa steg.

    En skärmbild som visar nästa steg när en resurs har distribuerats.

  2. På skärmen för resursen väljer du Nycklar och slutpunkt på den vänstra navigeringsmenyn. Du använder en av dina nycklar och slutpunkten i stegen nedan.

    En skärmbild som visar avsnittet nycklar och slutpunkter för en resurs.

Skapa miljövariabler

Ditt program måste autentiseras för att skicka API-begäranden. För produktion använder du ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter. I det här exemplet skriver du dina autentiseringsuppgifter till miljövariabler på den lokala dator som kör programmet.

Dricks

Inkludera inte nyckeln direkt i koden och publicera den aldrig offentligt. Mer autentiseringsalternativ som Azure Key Vault finns i säkerhetsartikeln för Azure AI-tjänster.

Om du vill ange miljövariabeln för din språkresursnyckel öppnar du ett konsolfönster och följer anvisningarna för operativsystemet och utvecklingsmiljön.

  1. Om du vill ange LANGUAGE_KEY miljövariabeln ersätter du your-key med en av nycklarna för resursen.
  2. Om du vill ange LANGUAGE_ENDPOINT miljövariabeln ersätter du your-endpoint med slutpunkten för resursen.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Kommentar

Om du bara behöver komma åt miljövariablerna i den aktuella konsolen som körs kan du ange miljövariabeln med set i stället för setx.

När du har lagt till miljövariablerna kan du behöva starta om alla program som körs och som behöver läsa miljövariablerna, inklusive konsolfönstret. Om du till exempel använder Visual Studio som redigerare startar du om Visual Studio innan du kör exemplet.

Skapa ett nytt Node.js-program

Skapa en ny katalog för din app i ett konsolfönster (till exempel cmd, PowerShell eller bash) och navigera till den.

mkdir myapp 

cd myapp

Kör kommandot npm init för att skapa ett nodprogram med en package.json-fil.

npm init

Installera klientbiblioteket

Installera npm-paketen:

npm install @azure/ai-language-text

Kodexempel

Öppna filen och kopiera koden nedan. Kör sedan koden.

"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

Rensa resurser

Om du vill rensa och ta bort en Azure AI-tjänstprenumeration kan du ta bort resursen eller resursgruppen. Om du tar bort resursgruppen tas även alla andra resurser som är associerade med den bort.

Använd följande kommandon för att ta bort miljövariablerna som du skapade för den här snabbstarten.

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

Nästa steg

Referensdokumentation Ytterligare exempelpaket | (PyPi) | Källkod för bibliotek |

Använd den här snabbstarten för att skapa ett sentimentanalysprogram med klientbiblioteket för Python. I följande exempel skapar du ett Python-program som kan identifiera de sentiment som uttrycks i ett textexempel och utföra aspektbaserad attitydanalys.

Förutsättningar

Konfigurera

Skapa en Azure-resurs

Om du vill använda kodexemplet nedan måste du distribuera en Azure-resurs. Den här resursen innehåller en nyckel och slutpunkt som du använder för att autentisera DE API-anrop som du skickar till språktjänsten.

  1. Använd följande länk för att skapa en språkresurs med hjälp av Azure-portalen. Du måste logga in med din Azure-prenumeration.

  2. På skärmen Välj ytterligare funktioner som visas väljer du Fortsätt för att skapa resursen.

    En skärmbild som visar ytterligare funktionsalternativ i Azure-portalen.

  3. På skärmen Skapa språk anger du följande information:

    Information beskrivning
    Prenumeration Det prenumerationskonto som resursen ska associeras med. Välj din Azure-prenumeration på den nedrullningsbara menyn.
    Resursgrupp En resursgrupp är en container som lagrar de resurser som du skapar. Välj Skapa ny för att skapa en ny resursgrupp.
    Region Platsen för språkresursen. Olika regioner kan ge svarstider beroende på din fysiska plats, men påverkar inte resursens körningstillgänglighet. För den här snabbstarten väljer du antingen en tillgänglig region nära dig eller usa , östra.
    Name Namnet på språkresursen. Det här namnet används också för att skapa en slutpunkts-URL som dina program använder för att skicka API-begäranden.
    Prisnivå Prisnivån för din språkresurs. Du kan använda den kostnadsfria F0-nivån för att prova tjänsten och uppgradera senare till en betald nivå för produktion.

    En skärmbild som visar information om hur du skapar resurser i Azure-portalen.

  4. Kontrollera att kryssrutan Ansvarig AI-meddelande är markerad.

  5. Välj Granska + Skapa längst ned på sidan.

  6. På skärmen som visas kontrollerar du att valideringen har passerat och att du har angett informationen korrekt. Välj sedan Skapa.

Hämta din nyckel och slutpunkt

Därefter behöver du nyckeln och slutpunkten från resursen för att ansluta ditt program till API:et. Du klistrar in nyckeln och slutpunkten i koden senare i snabbstarten.

  1. När språkresursen har distribuerats klickar du på knappen Gå till resurs under Nästa steg.

    En skärmbild som visar nästa steg när en resurs har distribuerats.

  2. På skärmen för resursen väljer du Nycklar och slutpunkt på den vänstra navigeringsmenyn. Du använder en av dina nycklar och slutpunkten i stegen nedan.

    En skärmbild som visar avsnittet nycklar och slutpunkter för en resurs.

Skapa miljövariabler

Ditt program måste autentiseras för att skicka API-begäranden. För produktion använder du ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter. I det här exemplet skriver du dina autentiseringsuppgifter till miljövariabler på den lokala dator som kör programmet.

Dricks

Inkludera inte nyckeln direkt i koden och publicera den aldrig offentligt. Mer autentiseringsalternativ som Azure Key Vault finns i säkerhetsartikeln för Azure AI-tjänster.

Om du vill ange miljövariabeln för din språkresursnyckel öppnar du ett konsolfönster och följer anvisningarna för operativsystemet och utvecklingsmiljön.

  1. Om du vill ange LANGUAGE_KEY miljövariabeln ersätter du your-key med en av nycklarna för resursen.
  2. Om du vill ange LANGUAGE_ENDPOINT miljövariabeln ersätter du your-endpoint med slutpunkten för resursen.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Kommentar

Om du bara behöver komma åt miljövariablerna i den aktuella konsolen som körs kan du ange miljövariabeln med set i stället för setx.

När du har lagt till miljövariablerna kan du behöva starta om alla program som körs och som behöver läsa miljövariablerna, inklusive konsolfönstret. Om du till exempel använder Visual Studio som redigerare startar du om Visual Studio innan du kör exemplet.

Installera klientbiblioteket

När du har installerat Python kan du installera klientbiblioteket med:

pip install azure-ai-textanalytics==5.2.0

Kodexempel

Skapa en ny Python-fil och kopiera koden nedan. Kör sedan koden

# 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

Rensa resurser

Om du vill rensa och ta bort en Azure AI-tjänstprenumeration kan du ta bort resursen eller resursgruppen. Om du tar bort resursgruppen tas även alla andra resurser som är associerade med den bort.

Använd följande kommandon för att ta bort miljövariablerna som du skapade för den här snabbstarten.

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

Nästa steg

Referensdokumentation

Använd den här snabbstarten för att skicka begäranden om attitydanalys med hjälp av REST-API:et. I följande exempel använder du cURL för att identifiera de sentiment som uttrycks i ett textexempel och utföra aspektbaserad attitydanalys.

Förutsättningar

Konfigurera

Skapa en Azure-resurs

Om du vill använda kodexemplet nedan måste du distribuera en Azure-resurs. Den här resursen innehåller en nyckel och slutpunkt som du använder för att autentisera DE API-anrop som du skickar till språktjänsten.

  1. Använd följande länk för att skapa en språkresurs med hjälp av Azure-portalen. Du måste logga in med din Azure-prenumeration.

  2. På skärmen Välj ytterligare funktioner som visas väljer du Fortsätt för att skapa resursen.

    En skärmbild som visar ytterligare funktionsalternativ i Azure-portalen.

  3. På skärmen Skapa språk anger du följande information:

    Information beskrivning
    Prenumeration Det prenumerationskonto som resursen ska associeras med. Välj din Azure-prenumeration på den nedrullningsbara menyn.
    Resursgrupp En resursgrupp är en container som lagrar de resurser som du skapar. Välj Skapa ny för att skapa en ny resursgrupp.
    Region Platsen för språkresursen. Olika regioner kan ge svarstider beroende på din fysiska plats, men påverkar inte resursens körningstillgänglighet. För den här snabbstarten väljer du antingen en tillgänglig region nära dig eller usa , östra.
    Name Namnet på språkresursen. Det här namnet används också för att skapa en slutpunkts-URL som dina program använder för att skicka API-begäranden.
    Prisnivå Prisnivån för din språkresurs. Du kan använda den kostnadsfria F0-nivån för att prova tjänsten och uppgradera senare till en betald nivå för produktion.

    En skärmbild som visar information om hur du skapar resurser i Azure-portalen.

  4. Kontrollera att kryssrutan Ansvarig AI-meddelande är markerad.

  5. Välj Granska + Skapa längst ned på sidan.

  6. På skärmen som visas kontrollerar du att valideringen har passerat och att du har angett informationen korrekt. Välj sedan Skapa.

Hämta din nyckel och slutpunkt

Därefter behöver du nyckeln och slutpunkten från resursen för att ansluta ditt program till API:et. Du klistrar in nyckeln och slutpunkten i koden senare i snabbstarten.

  1. När språkresursen har distribuerats klickar du på knappen Gå till resurs under Nästa steg.

    En skärmbild som visar nästa steg när en resurs har distribuerats.

  2. På skärmen för resursen väljer du Nycklar och slutpunkt på den vänstra navigeringsmenyn. Du använder en av dina nycklar och slutpunkten i stegen nedan.

    En skärmbild som visar avsnittet nycklar och slutpunkter för en resurs.

Skapa miljövariabler

Ditt program måste autentiseras för att skicka API-begäranden. För produktion använder du ett säkert sätt att lagra och komma åt dina autentiseringsuppgifter. I det här exemplet skriver du dina autentiseringsuppgifter till miljövariabler på den lokala dator som kör programmet.

Dricks

Inkludera inte nyckeln direkt i koden och publicera den aldrig offentligt. Mer autentiseringsalternativ som Azure Key Vault finns i säkerhetsartikeln för Azure AI-tjänster.

Om du vill ange miljövariabeln för din språkresursnyckel öppnar du ett konsolfönster och följer anvisningarna för operativsystemet och utvecklingsmiljön.

  1. Om du vill ange LANGUAGE_KEY miljövariabeln ersätter du your-key med en av nycklarna för resursen.
  2. Om du vill ange LANGUAGE_ENDPOINT miljövariabeln ersätter du your-endpoint med slutpunkten för resursen.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Kommentar

Om du bara behöver komma åt miljövariablerna i den aktuella konsolen som körs kan du ange miljövariabeln med set i stället för setx.

När du har lagt till miljövariablerna kan du behöva starta om alla program som körs och som behöver läsa miljövariablerna, inklusive konsolfönstret. Om du till exempel använder Visual Studio som redigerare startar du om Visual Studio innan du kör exemplet.

Skapa en JSON-fil med exempelbegärandetexten

I en kodredigerare skapar du en ny fil med namnet test_sentiment_payload.json och kopierar följande JSON-exempel. Den här exempelbegäran skickas till API:et i nästa steg.

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

Spara test_sentiment_payload.json någonstans på datorn. Till exempel skrivbordet.

Skicka en api-begäran för attitydanalys och åsiktsutvinning

Kommentar

I exemplen nedan finns en begäran om yttrandeutvinningsfunktionen i attitydanalys, som innehåller detaljerad information om utvärderingar (adjektiv) relaterade till mål (substantiv) i texten.

Använd följande kommandon för att skicka API-begäran med det program du använder. Kopiera kommandot till terminalen och kör det.

parameter Description
-X POST <endpoint> Anger slutpunkten för åtkomst till API:et.
-H Content-Type: application/json Innehållstypen för att skicka JSON-data.
-H "Ocp-Apim-Subscription-Key:<key> Anger nyckeln för åtkomst till API:et.
-d <documents> JSON-filen som innehåller de dokument som du vill skicka.

Ersätt C:\Users\<myaccount>\Desktop\test_sentiment_payload.json med platsen för JSON-exempelbegärandefilen som du skapade i föregående steg.

Kommandotolk

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"

JSON-svar

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

Rensa resurser

Om du vill rensa och ta bort en Azure AI-tjänstprenumeration kan du ta bort resursen eller resursgruppen. Om du tar bort resursgruppen tas även alla andra resurser som är associerade med den bort.

Använd följande kommandon för att ta bort miljövariablerna som du skapade för den här snabbstarten.

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

Nästa steg