Szybki start: analiza tonacji i wyszukiwania opinii

Dokumentacja referencyjna Więcej przykładów | Package (NuGet) | Library source code |

Użyj tego przewodnika Szybki start, aby utworzyć aplikację analizy tonacji z biblioteką klienta dla platformy .NET. W poniższym przykładzie utworzysz aplikację w języku C#, która może zidentyfikować tonacje wyrażone w przykładzie tekstowym i przeprowadzić analizę tonacji opartej na aspektach.

Wymagania wstępne

Konfigurowanie

Tworzenie zasobu platformy Azure

Aby użyć poniższego przykładu kodu, musisz wdrożyć zasób platformy Azure. Ten zasób będzie zawierać klucz i punkt końcowy używany do uwierzytelniania wywołań interfejsu API wysyłanych do usługi językowej.

  1. Użyj poniższego linku, aby utworzyć zasób językowy przy użyciu witryny Azure Portal. Musisz zalogować się przy użyciu subskrypcji platformy Azure.

  2. Na wyświetlonym ekranie Wybierz dodatkowe funkcje wybierz pozycję Kontynuuj, aby utworzyć zasób.

    Zrzut ekranu przedstawiający dodatkowe opcje funkcji w witrynie Azure Portal.

  3. Na ekranie Tworzenie języka podaj następujące informacje:

    Szczegół opis
    Subskrypcja Konto subskrypcji, z którymi zostanie skojarzony zasób. Wybierz subskrypcję platformy Azure z menu rozwijanego.
    Grupa zasobów Grupa zasobów to kontener, który przechowuje tworzone zasoby. Wybierz pozycję Utwórz nową , aby utworzyć nową grupę zasobów.
    Region (Region) Lokalizacja zasobu Language. Różne regiony mogą wprowadzać opóźnienia w zależności od lokalizacji fizycznej, ale nie mają wpływu na dostępność zasobu w czasie wykonywania. W tym przewodniku Szybki start wybierz dostępny region w pobliżu, lub wybierz pozycję Wschodnie stany USA.
    Nazwisko Nazwa zasobu Language. Ta nazwa będzie również używana do tworzenia adresu URL punktu końcowego używanego przez aplikacje do wysyłania żądań interfejsu API.
    Warstwa cenowa Warstwa cenowa zasobu Language. Możesz użyć warstwy Bezpłatna F0 , aby wypróbować usługę i uaktualnić ją później do warstwy płatnej dla środowiska produkcyjnego.

    Zrzut ekranu przedstawiający szczegóły tworzenia zasobów w witrynie Azure Portal.

  4. Upewnij się, że pole wyboru Odpowiedzialne powiadomienie o sztucznej inteligencji jest zaznaczone.

  5. Wybierz pozycję Przejrzyj i utwórz w dolnej części strony.

  6. Na wyświetlonym ekranie upewnij się, że walidacja została pomyślnie przekazana i czy informacje zostały wprowadzone poprawnie. Następnie wybierz Utwórz.

Uzyskiwanie klucza i punktu końcowego

Następnie będziesz potrzebować klucza i punktu końcowego z zasobu, aby połączyć aplikację z interfejsem API. W dalszej części przewodnika Szybki start wklejesz klucz i punkt końcowy do kodu.

  1. Po pomyślnym wdrożeniu zasobu Language kliknij przycisk Przejdź do zasobu w obszarze Następne kroki.

    Zrzut ekranu przedstawiający następne kroki po wdrożeniu zasobu.

  2. Na ekranie zasobu wybierz pozycję Klucze i punkt końcowy w menu nawigacji po lewej stronie. Użyjesz jednego z kluczy i punktu końcowego w poniższych krokach.

    Zrzut ekranu przedstawiający sekcję kluczy i punktów końcowych dla zasobu.

Tworzenie zmiennych środowiskowych

Aby wysyłać żądania interfejsu API, aplikacja musi być uwierzytelniona. W środowisku produkcyjnym należy użyć bezpiecznego sposobu przechowywania poświadczeń i uzyskiwania do nich dostępu. W tym przykładzie zostaną zapisane poświadczenia do zmiennych środowiskowych na komputerze lokalnym z uruchomioną aplikacją.

Napiwek

Nie dołączaj klucza bezpośrednio do kodu i nigdy nie publikuj go publicznie. Aby uzyskać więcej opcji uwierzytelniania, takich jak usługa Azure Key Vault, zobacz artykuł Dotyczący zabezpieczeń usług Azure AI.

Aby ustawić zmienną środowiskową dla klucza zasobu Language, otwórz okno konsoli i postępuj zgodnie z instrukcjami dotyczącymi systemu operacyjnego i środowiska programistycznego.

  1. Aby ustawić zmienną LANGUAGE_KEY środowiskową, zastąp your-key element jednym z kluczy zasobu.
  2. Aby ustawić zmienną LANGUAGE_ENDPOINT środowiskową, zastąp your-endpoint element punktem końcowym zasobu.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Uwaga

Jeśli musisz uzyskać dostęp tylko do zmiennych środowiskowych w bieżącej uruchomionej konsoli, możesz ustawić zmienną środowiskową z wartością set zamiast setx.

Po dodaniu zmiennych środowiskowych może być konieczne ponowne uruchomienie wszystkich uruchomionych programów, które będą musiały odczytać zmienne środowiskowe, w tym okno konsoli. Jeśli na przykład używasz programu Visual Studio jako edytora, uruchom ponownie program Visual Studio przed uruchomieniem przykładu.

Tworzenie nowej aplikacji .NET Core

Za pomocą środowiska IDE programu Visual Studio utwórz nową aplikację konsolową platformy .NET Core. Spowoduje to utworzenie projektu "Hello World" z pojedynczym plikiem źródłowym języka C#: program.cs.

Zainstaluj bibliotekę klienta, klikając prawym przyciskiem myszy rozwiązanie w Eksploratorze rozwiązań i wybierając polecenie Zarządzaj pakietami NuGet. W menedżerze pakietów, który zostanie otwarty, wybierz pozycję Przeglądaj i wyszukaj ciąg Azure.AI.TextAnalytics. Wybierz wersję 5.2.0, a następnie pozycję Zainstaluj. Możesz również użyć konsoli menedżera pakietów.

Przykład kodu

Skopiuj następujący kod do pliku program.cs i uruchom kod.

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

    }
}

Wyjście

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

Czyszczenie zasobów

Jeśli chcesz wyczyścić i usunąć subskrypcję usług Azure AI, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów.

Użyj następujących poleceń, aby usunąć zmienne środowiskowe utworzone na potrzeby tego przewodnika Szybki start.

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

Następne kroki

Dokumentacja referencyjna Dodatkowe przykłady | Package (Maven) | Library source code |

Użyj tego przewodnika Szybki start, aby utworzyć aplikację analizy tonacji z biblioteką klienta dla języka Java. W poniższym przykładzie utworzysz aplikację Java, która będzie mogła identyfikować tonacje wyrażone w przykładzie tekstowym i wykonywać analizę tonacji na podstawie aspektów.

Wymagania wstępne

Konfigurowanie

Tworzenie zasobu platformy Azure

Aby użyć poniższego przykładu kodu, musisz wdrożyć zasób platformy Azure. Ten zasób będzie zawierać klucz i punkt końcowy używany do uwierzytelniania wywołań interfejsu API wysyłanych do usługi językowej.

  1. Użyj poniższego linku, aby utworzyć zasób językowy przy użyciu witryny Azure Portal. Musisz zalogować się przy użyciu subskrypcji platformy Azure.

  2. Na wyświetlonym ekranie Wybierz dodatkowe funkcje wybierz pozycję Kontynuuj, aby utworzyć zasób.

    Zrzut ekranu przedstawiający dodatkowe opcje funkcji w witrynie Azure Portal.

  3. Na ekranie Tworzenie języka podaj następujące informacje:

    Szczegół opis
    Subskrypcja Konto subskrypcji, z którymi zostanie skojarzony zasób. Wybierz subskrypcję platformy Azure z menu rozwijanego.
    Grupa zasobów Grupa zasobów to kontener, który przechowuje tworzone zasoby. Wybierz pozycję Utwórz nową , aby utworzyć nową grupę zasobów.
    Region (Region) Lokalizacja zasobu Language. Różne regiony mogą wprowadzać opóźnienia w zależności od lokalizacji fizycznej, ale nie mają wpływu na dostępność zasobu w czasie wykonywania. W tym przewodniku Szybki start wybierz dostępny region w pobliżu, lub wybierz pozycję Wschodnie stany USA.
    Nazwisko Nazwa zasobu Language. Ta nazwa będzie również używana do tworzenia adresu URL punktu końcowego używanego przez aplikacje do wysyłania żądań interfejsu API.
    Warstwa cenowa Warstwa cenowa zasobu Language. Możesz użyć warstwy Bezpłatna F0 , aby wypróbować usługę i uaktualnić ją później do warstwy płatnej dla środowiska produkcyjnego.

    Zrzut ekranu przedstawiający szczegóły tworzenia zasobów w witrynie Azure Portal.

  4. Upewnij się, że pole wyboru Odpowiedzialne powiadomienie o sztucznej inteligencji jest zaznaczone.

  5. Wybierz pozycję Przejrzyj i utwórz w dolnej części strony.

  6. Na wyświetlonym ekranie upewnij się, że walidacja została pomyślnie przekazana i czy informacje zostały wprowadzone poprawnie. Następnie wybierz Utwórz.

Uzyskiwanie klucza i punktu końcowego

Następnie będziesz potrzebować klucza i punktu końcowego z zasobu, aby połączyć aplikację z interfejsem API. W dalszej części przewodnika Szybki start wklejesz klucz i punkt końcowy do kodu.

  1. Po pomyślnym wdrożeniu zasobu Language kliknij przycisk Przejdź do zasobu w obszarze Następne kroki.

    Zrzut ekranu przedstawiający następne kroki po wdrożeniu zasobu.

  2. Na ekranie zasobu wybierz pozycję Klucze i punkt końcowy w menu nawigacji po lewej stronie. Użyjesz jednego z kluczy i punktu końcowego w poniższych krokach.

    Zrzut ekranu przedstawiający sekcję kluczy i punktów końcowych dla zasobu.

Tworzenie zmiennych środowiskowych

Aby wysyłać żądania interfejsu API, aplikacja musi być uwierzytelniona. W środowisku produkcyjnym należy użyć bezpiecznego sposobu przechowywania poświadczeń i uzyskiwania do nich dostępu. W tym przykładzie zostaną zapisane poświadczenia do zmiennych środowiskowych na komputerze lokalnym z uruchomioną aplikacją.

Napiwek

Nie dołączaj klucza bezpośrednio do kodu i nigdy nie publikuj go publicznie. Aby uzyskać więcej opcji uwierzytelniania, takich jak usługa Azure Key Vault, zobacz artykuł Dotyczący zabezpieczeń usług Azure AI.

Aby ustawić zmienną środowiskową dla klucza zasobu Language, otwórz okno konsoli i postępuj zgodnie z instrukcjami dotyczącymi systemu operacyjnego i środowiska programistycznego.

  1. Aby ustawić zmienną LANGUAGE_KEY środowiskową, zastąp your-key element jednym z kluczy zasobu.
  2. Aby ustawić zmienną LANGUAGE_ENDPOINT środowiskową, zastąp your-endpoint element punktem końcowym zasobu.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Uwaga

Jeśli musisz uzyskać dostęp tylko do zmiennych środowiskowych w bieżącej uruchomionej konsoli, możesz ustawić zmienną środowiskową z wartością set zamiast setx.

Po dodaniu zmiennych środowiskowych może być konieczne ponowne uruchomienie wszystkich uruchomionych programów, które będą musiały odczytać zmienne środowiskowe, w tym okno konsoli. Jeśli na przykład używasz programu Visual Studio jako edytora, uruchom ponownie program Visual Studio przed uruchomieniem przykładu.

Dodawanie biblioteki klienta

Utwórz projekt Maven w preferowanym środowisku IDE lub w środowisku deweloperskim. Następnie dodaj następującą zależność do pliku pom.xml projektu. Składnię implementacji dla innych narzędzi kompilacji można znaleźć w Internecie.

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

Przykład kodu

Utwórz plik Java o nazwie Example.java. Otwórz plik i skopiuj poniższy kod. Następnie uruchom kod.

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

Wyjście

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.

Czyszczenie zasobów

Jeśli chcesz wyczyścić i usunąć subskrypcję usług Azure AI, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów.

Użyj następujących poleceń, aby usunąć zmienne środowiskowe utworzone na potrzeby tego przewodnika Szybki start.

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

Następne kroki

Dokumentacja referencyjna Dodatkowe przykłady | Package (npm) | Kod źródłowy biblioteki |

Użyj tego przewodnika Szybki start, aby utworzyć aplikację analizy tonacji z biblioteką klienta na potrzeby Node.js. W poniższym przykładzie utworzysz aplikację JavaScript, która będzie mogła zidentyfikować tonacje wyrażone w przykładzie tekstowym i przeprowadzić analizę tonacji opartej na aspektach.

Wymagania wstępne

Konfigurowanie

Tworzenie zasobu platformy Azure

Aby użyć poniższego przykładu kodu, musisz wdrożyć zasób platformy Azure. Ten zasób będzie zawierać klucz i punkt końcowy używany do uwierzytelniania wywołań interfejsu API wysyłanych do usługi językowej.

  1. Użyj poniższego linku, aby utworzyć zasób językowy przy użyciu witryny Azure Portal. Musisz zalogować się przy użyciu subskrypcji platformy Azure.

  2. Na wyświetlonym ekranie Wybierz dodatkowe funkcje wybierz pozycję Kontynuuj, aby utworzyć zasób.

    Zrzut ekranu przedstawiający dodatkowe opcje funkcji w witrynie Azure Portal.

  3. Na ekranie Tworzenie języka podaj następujące informacje:

    Szczegół opis
    Subskrypcja Konto subskrypcji, z którymi zostanie skojarzony zasób. Wybierz subskrypcję platformy Azure z menu rozwijanego.
    Grupa zasobów Grupa zasobów to kontener, który przechowuje tworzone zasoby. Wybierz pozycję Utwórz nową , aby utworzyć nową grupę zasobów.
    Region (Region) Lokalizacja zasobu Language. Różne regiony mogą wprowadzać opóźnienia w zależności od lokalizacji fizycznej, ale nie mają wpływu na dostępność zasobu w czasie wykonywania. W tym przewodniku Szybki start wybierz dostępny region w pobliżu, lub wybierz pozycję Wschodnie stany USA.
    Nazwisko Nazwa zasobu Language. Ta nazwa będzie również używana do tworzenia adresu URL punktu końcowego używanego przez aplikacje do wysyłania żądań interfejsu API.
    Warstwa cenowa Warstwa cenowa zasobu Language. Możesz użyć warstwy Bezpłatna F0 , aby wypróbować usługę i uaktualnić ją później do warstwy płatnej dla środowiska produkcyjnego.

    Zrzut ekranu przedstawiający szczegóły tworzenia zasobów w witrynie Azure Portal.

  4. Upewnij się, że pole wyboru Odpowiedzialne powiadomienie o sztucznej inteligencji jest zaznaczone.

  5. Wybierz pozycję Przejrzyj i utwórz w dolnej części strony.

  6. Na wyświetlonym ekranie upewnij się, że walidacja została pomyślnie przekazana i czy informacje zostały wprowadzone poprawnie. Następnie wybierz Utwórz.

Uzyskiwanie klucza i punktu końcowego

Następnie będziesz potrzebować klucza i punktu końcowego z zasobu, aby połączyć aplikację z interfejsem API. W dalszej części przewodnika Szybki start wklejesz klucz i punkt końcowy do kodu.

  1. Po pomyślnym wdrożeniu zasobu Language kliknij przycisk Przejdź do zasobu w obszarze Następne kroki.

    Zrzut ekranu przedstawiający następne kroki po wdrożeniu zasobu.

  2. Na ekranie zasobu wybierz pozycję Klucze i punkt końcowy w menu nawigacji po lewej stronie. Użyjesz jednego z kluczy i punktu końcowego w poniższych krokach.

    Zrzut ekranu przedstawiający sekcję kluczy i punktów końcowych dla zasobu.

Tworzenie zmiennych środowiskowych

Aby wysyłać żądania interfejsu API, aplikacja musi być uwierzytelniona. W środowisku produkcyjnym należy użyć bezpiecznego sposobu przechowywania poświadczeń i uzyskiwania do nich dostępu. W tym przykładzie zostaną zapisane poświadczenia do zmiennych środowiskowych na komputerze lokalnym z uruchomioną aplikacją.

Napiwek

Nie dołączaj klucza bezpośrednio do kodu i nigdy nie publikuj go publicznie. Aby uzyskać więcej opcji uwierzytelniania, takich jak usługa Azure Key Vault, zobacz artykuł Dotyczący zabezpieczeń usług Azure AI.

Aby ustawić zmienną środowiskową dla klucza zasobu Language, otwórz okno konsoli i postępuj zgodnie z instrukcjami dotyczącymi systemu operacyjnego i środowiska programistycznego.

  1. Aby ustawić zmienną LANGUAGE_KEY środowiskową, zastąp your-key element jednym z kluczy zasobu.
  2. Aby ustawić zmienną LANGUAGE_ENDPOINT środowiskową, zastąp your-endpoint element punktem końcowym zasobu.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Uwaga

Jeśli musisz uzyskać dostęp tylko do zmiennych środowiskowych w bieżącej uruchomionej konsoli, możesz ustawić zmienną środowiskową z wartością set zamiast setx.

Po dodaniu zmiennych środowiskowych może być konieczne ponowne uruchomienie wszystkich uruchomionych programów, które będą musiały odczytać zmienne środowiskowe, w tym okno konsoli. Jeśli na przykład używasz programu Visual Studio jako edytora, uruchom ponownie program Visual Studio przed uruchomieniem przykładu.

Tworzenie nowej aplikacji Node.js

W oknie konsoli (na przykład cmd, PowerShell lub Bash) utwórz nowy katalog dla aplikacji i przejdź do niego.

mkdir myapp 

cd myapp

Uruchom polecenie npm init, aby utworzyć aplikację Node przy użyciu pliku package.json.

npm init

Instalowanie biblioteki klienta

Zainstaluj pakiety npm:

npm install @azure/ai-language-text

Przykład kodu

Otwórz plik i skopiuj poniższy kod. Następnie uruchom kod.

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

Wyjście

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

Czyszczenie zasobów

Jeśli chcesz wyczyścić i usunąć subskrypcję usług Azure AI, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów.

Użyj następujących poleceń, aby usunąć zmienne środowiskowe utworzone na potrzeby tego przewodnika Szybki start.

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

Następne kroki

Dokumentacja referencyjna Dodatkowe przykłady | Package (PyPi) | Kod źródłowy biblioteki |

Użyj tego przewodnika Szybki start, aby utworzyć aplikację analizy tonacji z biblioteką klienta dla języka Python. W poniższym przykładzie utworzysz aplikację w języku Python, która będzie mogła identyfikować tonacje wyrażone w przykładzie tekstowym i przeprowadzać analizę tonacji opartej na aspektach.

Wymagania wstępne

Konfigurowanie

Tworzenie zasobu platformy Azure

Aby użyć poniższego przykładu kodu, musisz wdrożyć zasób platformy Azure. Ten zasób będzie zawierać klucz i punkt końcowy używany do uwierzytelniania wywołań interfejsu API wysyłanych do usługi językowej.

  1. Użyj poniższego linku, aby utworzyć zasób językowy przy użyciu witryny Azure Portal. Musisz zalogować się przy użyciu subskrypcji platformy Azure.

  2. Na wyświetlonym ekranie Wybierz dodatkowe funkcje wybierz pozycję Kontynuuj, aby utworzyć zasób.

    Zrzut ekranu przedstawiający dodatkowe opcje funkcji w witrynie Azure Portal.

  3. Na ekranie Tworzenie języka podaj następujące informacje:

    Szczegół opis
    Subskrypcja Konto subskrypcji, z którymi zostanie skojarzony zasób. Wybierz subskrypcję platformy Azure z menu rozwijanego.
    Grupa zasobów Grupa zasobów to kontener, który przechowuje tworzone zasoby. Wybierz pozycję Utwórz nową , aby utworzyć nową grupę zasobów.
    Region (Region) Lokalizacja zasobu Language. Różne regiony mogą wprowadzać opóźnienia w zależności od lokalizacji fizycznej, ale nie mają wpływu na dostępność zasobu w czasie wykonywania. W tym przewodniku Szybki start wybierz dostępny region w pobliżu, lub wybierz pozycję Wschodnie stany USA.
    Nazwisko Nazwa zasobu Language. Ta nazwa będzie również używana do tworzenia adresu URL punktu końcowego używanego przez aplikacje do wysyłania żądań interfejsu API.
    Warstwa cenowa Warstwa cenowa zasobu Language. Możesz użyć warstwy Bezpłatna F0 , aby wypróbować usługę i uaktualnić ją później do warstwy płatnej dla środowiska produkcyjnego.

    Zrzut ekranu przedstawiający szczegóły tworzenia zasobów w witrynie Azure Portal.

  4. Upewnij się, że pole wyboru Odpowiedzialne powiadomienie o sztucznej inteligencji jest zaznaczone.

  5. Wybierz pozycję Przejrzyj i utwórz w dolnej części strony.

  6. Na wyświetlonym ekranie upewnij się, że walidacja została pomyślnie przekazana i czy informacje zostały wprowadzone poprawnie. Następnie wybierz Utwórz.

Uzyskiwanie klucza i punktu końcowego

Następnie będziesz potrzebować klucza i punktu końcowego z zasobu, aby połączyć aplikację z interfejsem API. W dalszej części przewodnika Szybki start wklejesz klucz i punkt końcowy do kodu.

  1. Po pomyślnym wdrożeniu zasobu Language kliknij przycisk Przejdź do zasobu w obszarze Następne kroki.

    Zrzut ekranu przedstawiający następne kroki po wdrożeniu zasobu.

  2. Na ekranie zasobu wybierz pozycję Klucze i punkt końcowy w menu nawigacji po lewej stronie. Użyjesz jednego z kluczy i punktu końcowego w poniższych krokach.

    Zrzut ekranu przedstawiający sekcję kluczy i punktów końcowych dla zasobu.

Tworzenie zmiennych środowiskowych

Aby wysyłać żądania interfejsu API, aplikacja musi być uwierzytelniona. W środowisku produkcyjnym należy użyć bezpiecznego sposobu przechowywania poświadczeń i uzyskiwania do nich dostępu. W tym przykładzie zostaną zapisane poświadczenia do zmiennych środowiskowych na komputerze lokalnym z uruchomioną aplikacją.

Napiwek

Nie dołączaj klucza bezpośrednio do kodu i nigdy nie publikuj go publicznie. Aby uzyskać więcej opcji uwierzytelniania, takich jak usługa Azure Key Vault, zobacz artykuł Dotyczący zabezpieczeń usług Azure AI.

Aby ustawić zmienną środowiskową dla klucza zasobu Language, otwórz okno konsoli i postępuj zgodnie z instrukcjami dotyczącymi systemu operacyjnego i środowiska programistycznego.

  1. Aby ustawić zmienną LANGUAGE_KEY środowiskową, zastąp your-key element jednym z kluczy zasobu.
  2. Aby ustawić zmienną LANGUAGE_ENDPOINT środowiskową, zastąp your-endpoint element punktem końcowym zasobu.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Uwaga

Jeśli musisz uzyskać dostęp tylko do zmiennych środowiskowych w bieżącej uruchomionej konsoli, możesz ustawić zmienną środowiskową z wartością set zamiast setx.

Po dodaniu zmiennych środowiskowych może być konieczne ponowne uruchomienie wszystkich uruchomionych programów, które będą musiały odczytać zmienne środowiskowe, w tym okno konsoli. Jeśli na przykład używasz programu Visual Studio jako edytora, uruchom ponownie program Visual Studio przed uruchomieniem przykładu.

Instalowanie biblioteki klienta

Po zainstalowaniu środowiska Python możesz zainstalować bibliotekę klienta przy użyciu następującego polecenia:

pip install azure-ai-textanalytics==5.2.0

Przykład kodu

Utwórz nowy plik języka Python i skopiuj poniższy kod. Następnie uruchom kod

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

Wyjście

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

Czyszczenie zasobów

Jeśli chcesz wyczyścić i usunąć subskrypcję usług Azure AI, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów.

Użyj następujących poleceń, aby usunąć zmienne środowiskowe utworzone na potrzeby tego przewodnika Szybki start.

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

Następne kroki

Dokumentacja referencyjna

Skorzystaj z tego przewodnika Szybki start, aby wysyłać żądania analizy tonacji przy użyciu interfejsu API REST. W poniższym przykładzie użyjesz biblioteki cURL do identyfikowania tonacji wyrażonych w przykładzie tekstowym i przeprowadzania analizy tonacji opartej na aspektach.

Wymagania wstępne

Konfigurowanie

Tworzenie zasobu platformy Azure

Aby użyć poniższego przykładu kodu, musisz wdrożyć zasób platformy Azure. Ten zasób będzie zawierać klucz i punkt końcowy używany do uwierzytelniania wywołań interfejsu API wysyłanych do usługi językowej.

  1. Użyj poniższego linku, aby utworzyć zasób językowy przy użyciu witryny Azure Portal. Musisz zalogować się przy użyciu subskrypcji platformy Azure.

  2. Na wyświetlonym ekranie Wybierz dodatkowe funkcje wybierz pozycję Kontynuuj, aby utworzyć zasób.

    Zrzut ekranu przedstawiający dodatkowe opcje funkcji w witrynie Azure Portal.

  3. Na ekranie Tworzenie języka podaj następujące informacje:

    Szczegół opis
    Subskrypcja Konto subskrypcji, z którymi zostanie skojarzony zasób. Wybierz subskrypcję platformy Azure z menu rozwijanego.
    Grupa zasobów Grupa zasobów to kontener, który przechowuje tworzone zasoby. Wybierz pozycję Utwórz nową , aby utworzyć nową grupę zasobów.
    Region (Region) Lokalizacja zasobu Language. Różne regiony mogą wprowadzać opóźnienia w zależności od lokalizacji fizycznej, ale nie mają wpływu na dostępność zasobu w czasie wykonywania. W tym przewodniku Szybki start wybierz dostępny region w pobliżu, lub wybierz pozycję Wschodnie stany USA.
    Nazwisko Nazwa zasobu Language. Ta nazwa będzie również używana do tworzenia adresu URL punktu końcowego używanego przez aplikacje do wysyłania żądań interfejsu API.
    Warstwa cenowa Warstwa cenowa zasobu Language. Możesz użyć warstwy Bezpłatna F0 , aby wypróbować usługę i uaktualnić ją później do warstwy płatnej dla środowiska produkcyjnego.

    Zrzut ekranu przedstawiający szczegóły tworzenia zasobów w witrynie Azure Portal.

  4. Upewnij się, że pole wyboru Odpowiedzialne powiadomienie o sztucznej inteligencji jest zaznaczone.

  5. Wybierz pozycję Przejrzyj i utwórz w dolnej części strony.

  6. Na wyświetlonym ekranie upewnij się, że walidacja została pomyślnie przekazana i czy informacje zostały wprowadzone poprawnie. Następnie wybierz Utwórz.

Uzyskiwanie klucza i punktu końcowego

Następnie będziesz potrzebować klucza i punktu końcowego z zasobu, aby połączyć aplikację z interfejsem API. W dalszej części przewodnika Szybki start wklejesz klucz i punkt końcowy do kodu.

  1. Po pomyślnym wdrożeniu zasobu Language kliknij przycisk Przejdź do zasobu w obszarze Następne kroki.

    Zrzut ekranu przedstawiający następne kroki po wdrożeniu zasobu.

  2. Na ekranie zasobu wybierz pozycję Klucze i punkt końcowy w menu nawigacji po lewej stronie. Użyjesz jednego z kluczy i punktu końcowego w poniższych krokach.

    Zrzut ekranu przedstawiający sekcję kluczy i punktów końcowych dla zasobu.

Tworzenie zmiennych środowiskowych

Aby wysyłać żądania interfejsu API, aplikacja musi być uwierzytelniona. W środowisku produkcyjnym należy użyć bezpiecznego sposobu przechowywania poświadczeń i uzyskiwania do nich dostępu. W tym przykładzie zostaną zapisane poświadczenia do zmiennych środowiskowych na komputerze lokalnym z uruchomioną aplikacją.

Napiwek

Nie dołączaj klucza bezpośrednio do kodu i nigdy nie publikuj go publicznie. Aby uzyskać więcej opcji uwierzytelniania, takich jak usługa Azure Key Vault, zobacz artykuł Dotyczący zabezpieczeń usług Azure AI.

Aby ustawić zmienną środowiskową dla klucza zasobu Language, otwórz okno konsoli i postępuj zgodnie z instrukcjami dotyczącymi systemu operacyjnego i środowiska programistycznego.

  1. Aby ustawić zmienną LANGUAGE_KEY środowiskową, zastąp your-key element jednym z kluczy zasobu.
  2. Aby ustawić zmienną LANGUAGE_ENDPOINT środowiskową, zastąp your-endpoint element punktem końcowym zasobu.
setx LANGUAGE_KEY your-key
setx LANGUAGE_ENDPOINT your-endpoint

Uwaga

Jeśli musisz uzyskać dostęp tylko do zmiennych środowiskowych w bieżącej uruchomionej konsoli, możesz ustawić zmienną środowiskową z wartością set zamiast setx.

Po dodaniu zmiennych środowiskowych może być konieczne ponowne uruchomienie wszystkich uruchomionych programów, które będą musiały odczytać zmienne środowiskowe, w tym okno konsoli. Jeśli na przykład używasz programu Visual Studio jako edytora, uruchom ponownie program Visual Studio przed uruchomieniem przykładu.

Tworzenie pliku JSON z przykładową treścią żądania

W edytorze kodu utwórz nowy plik o nazwie test_sentiment_payload.json i skopiuj poniższy przykład JSON. To przykładowe żądanie zostanie wysłane do interfejsu API w następnym kroku.

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

Zapisz test_sentiment_payload.json gdzieś na komputerze. Na przykład pulpit.

Wysyłanie analizy tonacji i żądania interfejsu API wyszukiwania opinii

Uwaga

Poniższe przykłady obejmują żądanie funkcji wyszukiwania opinii analizy tonacji, która zawiera szczegółowe informacje na temat ocen (przymiotników) związanych z celami (rzeczownikami) w tekście.

Użyj następujących poleceń, aby wysłać żądanie interfejsu API przy użyciu używanego programu. Skopiuj polecenie do terminalu i uruchom je.

parametr Opis
-X POST <endpoint> Określa punkt końcowy na potrzeby uzyskiwania dostępu do interfejsu API.
-H Content-Type: application/json Typ zawartości do wysyłania danych JSON.
-H "Ocp-Apim-Subscription-Key:<key> Określa klucz dostępu do interfejsu API.
-d <documents> Plik JSON zawierający dokumenty, które chcesz wysłać.

Zastąp C:\Users\<myaccount>\Desktop\test_sentiment_payload.json element lokalizacją przykładowego pliku żądania JSON utworzonego w poprzednim kroku.

Wiersz polecenia

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"

Odpowiedź w formacie 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"
	}
}

Czyszczenie zasobów

Jeśli chcesz wyczyścić i usunąć subskrypcję usług Azure AI, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów.

Użyj następujących poleceń, aby usunąć zmienne środowiskowe utworzone na potrzeby tego przewodnika Szybki start.

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

Następne kroki