Natural Language API mit C# verwenden

1. Übersicht

In diesem Codelab konzentrieren Sie sich auf die Verwendung der Natural Language API mit C#. Sie lernen, wie Sie eine Sentiment-, Entitäts- und Syntaxanalyse durchführen.

Die Natural Language API von Google Cloud bietet Entwicklern Technologien für das Verständnis natürlicher Sprache, darunter Sentiment-, Entitäts- und Syntaxanalyse.

Aufgaben in diesem Lab

  • Cloud Shell verwenden
  • So aktivieren Sie die Natural Language API
  • API-Anfragen authentifizieren
  • Google Cloud-Clientbibliothek für C# installieren
  • So führen Sie eine Sentimentanalyse durch
  • Entitätsanalyse
  • So führen Sie eine Syntaxanalyse durch

Voraussetzungen

  • Google Cloud Platform-Projekt
  • Browser, z. B. Chrome oder Firefox
  • Vertrautheit mit C#

Umfrage

Wie möchten Sie diese Anleitung nutzen?

<ph type="x-smartling-placeholder"></ph> Nur bis zum Ende lesen Lies sie dir durch und absolviere die Übungen

Wie würden Sie Ihre Erfahrung mit C# bewerten?

<ph type="x-smartling-placeholder"></ph> Neuling Mittel Kompetent

Wie würden Sie Ihre Erfahrungen im Umgang mit Google Cloud Platform-Diensten bewerten?

<ph type="x-smartling-placeholder"></ph> Neuling Mittel Kompetent

2. Einrichtung und Anforderungen

Umgebung für das selbstbestimmte Lernen einrichten

  1. Melden Sie sich in der Google Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes Projekt. Wenn Sie noch kein Gmail- oder Google Workspace-Konto haben, müssen Sie eines erstellen.

295004821bab6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

  • Der Projektname ist der Anzeigename für die Projektteilnehmer. Es handelt sich um eine Zeichenfolge, die von Google APIs nicht verwendet wird. Sie können sie jederzeit aktualisieren.
  • Die Projekt-ID ist für alle Google Cloud-Projekte eindeutig und unveränderlich. Sie kann nach dem Festlegen nicht mehr geändert werden. Die Cloud Console generiert automatisch einen eindeutigen String. ist Ihnen meist egal, was es ist. In den meisten Codelabs musst du auf deine Projekt-ID verweisen, die üblicherweise als PROJECT_ID bezeichnet wird. Wenn Ihnen die generierte ID nicht gefällt, können Sie eine weitere zufällige ID generieren. Alternativ können Sie einen eigenen verwenden und nachsehen, ob er verfügbar ist. Sie kann nach diesem Schritt nicht mehr geändert werden und bleibt für die Dauer des Projekts erhalten.
  • Zur Information gibt es noch einen dritten Wert, die Projektnummer, die von manchen APIs verwendet wird. Weitere Informationen zu allen drei Werten finden Sie in der Dokumentation.
  1. Als Nächstes müssen Sie in der Cloud Console die Abrechnung aktivieren, um Cloud-Ressourcen/APIs verwenden zu können. Dieses Codelab ist kostengünstig. Sie können die von Ihnen erstellten Ressourcen oder das Projekt löschen, um Ressourcen herunterzufahren, um zu vermeiden, dass über diese Anleitung hinaus Kosten anfallen. Neue Google Cloud-Nutzer haben Anspruch auf das kostenlose Testprogramm mit 300$Guthaben.

Cloud Shell starten

Sie können Google Cloud zwar von Ihrem Laptop aus der Ferne bedienen, in diesem Codelab verwenden Sie jedoch Google Cloud Shell, eine Befehlszeilenumgebung, die in der Cloud ausgeführt wird.

Cloud Shell aktivieren

  1. Klicken Sie in der Cloud Console auf Cloud Shell aktivieren d1264ca30785e435.png.

cb81e7c8e34bc8d.png

Wenn Sie Cloud Shell zum ersten Mal starten, wird ein Zwischenbildschirm mit einer Beschreibung der Funktion angezeigt. Wenn ein Zwischenbildschirm angezeigt wird, klicken Sie auf Weiter.

d95252b003979716.png

Die Bereitstellung und Verbindung mit Cloud Shell dauert nur einen Moment.

7833d5e1c5d18f54.png

Diese virtuelle Maschine verfügt über alle erforderlichen Entwicklertools. Es bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und wird in Google Cloud ausgeführt. Dadurch werden die Netzwerkleistung und die Authentifizierung erheblich verbessert. Viele, wenn nicht sogar alle Arbeiten in diesem Codelab können mit einem Browser erledigt werden.

Sobald Sie mit Cloud Shell verbunden sind, sollten Sie sehen, dass Sie authentifiziert sind und das Projekt auf Ihre Projekt-ID eingestellt ist.

  1. Führen Sie in Cloud Shell den folgenden Befehl aus, um zu prüfen, ob Sie authentifiziert sind:
gcloud auth list

Befehlsausgabe

 Credentialed Accounts
ACTIVE  ACCOUNT
*       <my_account>@<my_domain.com>

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
  1. Führen Sie in Cloud Shell den folgenden Befehl aus, um zu prüfen, ob der gcloud-Befehl Ihr Projekt kennt:
gcloud config list project

Befehlsausgabe

[core]
project = <PROJECT_ID>

Ist dies nicht der Fall, können Sie die Einstellung mit diesem Befehl vornehmen:

gcloud config set project <PROJECT_ID>

Befehlsausgabe

Updated property [core/project].

3. Natural Language API aktivieren

Bevor Sie die Natural Language API verwenden können, müssen Sie die API aktivieren. In Cloud Shell können Sie die API mit dem folgenden Befehl aktivieren:

gcloud services enable language.googleapis.com

4. Google Cloud Natural Language API-Clientbibliothek für C# installieren

Erstellen Sie zuerst eine einfache C#-Konsolenanwendung, mit der Sie Natural Language API-Beispiele ausführen:

dotnet new console -n NaturalLanguageApiDemo

Die erstellte Anwendung und die Abhängigkeiten sollten aufgelöst werden:

The template "Console Application" was created successfully.
Processing post-creation actions...
...
Restore succeeded.

Gehen Sie dann zum Ordner NaturalLanguageApiDemo:

cd NaturalLanguageApiDemo/

Fügen Sie dem Projekt außerdem das NuGet-Paket Google.Cloud.Language.V1 hinzu:

dotnet add package Google.Cloud.Language.V1
info : Adding PackageReference for package 'Google.Cloud.Language.V1' into project '/home/atameldev/NaturalLanguageApiDemo/NaturalLanguageApiDemo.csproj'.
log  : Restoring packages for /home/atameldev/NaturalLanguageApiDemo/NaturalLanguageApiDemo.csproj...
...
info : PackageReference for package 'Google.Cloud.Language.V1' version '1.1.0' added to file '/home/atameldev/NaturalLanguageApiDemo/NaturalLanguageApiDemo.csproj'.

Jetzt können Sie die Natural Language API verwenden.

5. Sentimentanalyse

In diesem Abschnitt führen Sie eine Sentimentanalyse für einen String durch und ermitteln mithilfe der Natural Language API den Score und die Magnitude.

Der Score-Wert der Stimmung liegt zwischen -1,0 (negativ) und 1,0 (positiv) und entspricht der Gesamtstimmung aus den angegebenen Informationen.

Der Magnitude-Wert der Stimmung reicht von 0,0 bis +unendlich und gibt die allgemeine Stärke der Stimmung aus den gegebenen Informationen an. Je mehr Informationen angegeben werden, desto höher ist die Größenordnung.

Öffnen Sie oben rechts in Cloud Shell den Code-Editor:

fd3fc1303e63572.png

Gehen Sie zur Datei Program.cs im Ordner NaturalLanguageApiDemo und ersetzen Sie den Code durch folgenden Code:

using System;
using Google.Cloud.Language.V1;

namespace NaturalLanguageApiDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            var text = "Yukihiro Matsumoto is great!";
            var client = LanguageServiceClient.Create();
            var response = client.AnalyzeSentiment(Document.FromPlainText(text));
            var sentiment = response.DocumentSentiment;
            Console.WriteLine($"Score: {sentiment.Score}");
            Console.WriteLine($"Magnitude: {sentiment.Magnitude}");
        }
    }
}

Nehmen Sie sich ein bis zwei Minuten Zeit, um den Code zu untersuchen und zu sehen, wie das Code-Snippet verwendet wird, um eine Sentimentanalyse für den String "Yukihiro Matsumoto is great!" durchzuführen.

Führen Sie die Anwendung in Cloud Shell aus:

dotnet run

Es sollte folgende Ausgabe angezeigt werden:

Score: 0.9
Magnitude: 0.9

Zusammenfassung

In diesem Schritt haben Sie eine Sentimentanalyse für einen Textstring durchgeführt und Werte und Größe ausgegeben. Weitere Informationen zur Sentimentanalyse

6. Entitätsanalyse

Die Entitätsanalyse untersucht die angegebenen Informationen auf Entitäten, indem sie nach Eigennamen wie Personen des öffentlichen Lebens, Sehenswürdigkeiten usw. sucht, und gibt Informationen über diese Entitäten zurück.

Rufen Sie für eine Entitätsanalyse die Datei Program.cs im Ordner NaturalLanguageApiDemo auf und ersetzen Sie den Code durch den folgenden Code:

using System;
using Google.Cloud.Language.V1;

namespace NaturalLanguageApiDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            var text = "Yukihiro Matsumoto is great!";
            var client = LanguageServiceClient.Create();
            var response = client.AnalyzeEntitySentiment(Document.FromPlainText(text));

            foreach (var entity in response.Entities)
            {
                Console.WriteLine($"Entity: \"{entity.Name}\" ({entity.Type})");
                if (entity.Metadata.ContainsKey("wikipedia_url"))
                {
                    Console.WriteLine($"URL: {entity.Metadata["wikipedia_url"]}");
                }
            }
        }
    }
}

Nehmen Sie sich ein bis zwei Minuten Zeit, um den Code zu untersuchen und zu sehen, wie das Code-Snippet verwendet wird, um eine Entitätsanalyse für den String "Yukihiro Matsumoto is great!" durchzuführen.

Führen Sie die Anwendung in Cloud Shell aus:

dotnet run

Es sollte folgende Ausgabe angezeigt werden:

Entity: "Yukihiro Matsumoto" (Person)
URL: https://en.wikipedia.org/wiki/Yukihiro_Matsumoto

Zusammenfassung

In diesem Schritt konnten Sie eine Entitätsanalyse für einen Textstring ausführen und die zugehörigen Entitäten ausgeben. Weitere Informationen zur Entitätsanalyse

7. Syntaxanalyse

Die Syntaxanalyse extrahiert linguistische Informationen und unterteilt den gegebenen Text in eine Reihe von Sätzen und Tokens (im Allgemeinen Wortgrenzen) für eine weitere Analyse dieser Tokens.

In diesem Beispiel werden die Anzahl der Sätze und Tokens ausgegeben und die Wortart für jedes Token angegeben.

Um eine Syntaxanalyse durchzuführen, rufen Sie die Datei Program.cs im Ordner NaturalLanguageApiDemo auf und ersetzen Sie den Code durch folgenden Code:

using System;
using Google.Cloud.Language.V1;
using static Google.Cloud.Language.V1.AnnotateTextRequest.Types;

namespace NaturalLanguageApiDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            var text = "Yukihiro Matsumoto is great!";
            var client = LanguageServiceClient.Create();
            var response = client.AnnotateText(Document.FromPlainText(text), 
                new Features { ExtractSyntax = true });

            var sentences = response.Sentences;
            var tokens = response.Tokens;

            Console.WriteLine($"Sentences: {sentences.Count}");
            Console.WriteLine($"Tokens: {tokens.Count}");

            foreach (var token in tokens)
            {
                Console.WriteLine($"{token.PartOfSpeech.Tag} {token.Text.Content}");
            }
        }
    }
}

Nehmen Sie sich ein bis zwei Minuten Zeit, um den Code zu untersuchen und zu sehen, wie das Code-Snippet verwendet wird, um eine Syntaxanalyse für den String "Yukihiro Matsumoto is great!" durchzuführen.

Führen Sie die Anwendung in Cloud Shell aus:

dotnet run

Es sollte folgende Ausgabe angezeigt werden:

Sentences: 1
Tokens: 5
Noun Yukihiro
Noun Matsumoto
Verb is
Adj great
Punct !

Eine visuelle Interpretation finden Sie unten.

297dbabf1a723bad.png

Zusammenfassung

In diesem Schritt konnten Sie eine Syntaxanalyse für eine einfache Textzeichenfolge durchführen und die Anzahl der Sätze, die Anzahl der Tokens und die linguistischen Informationen für jedes Token ausgedruckt haben. Weitere Informationen zur Syntaxanalyse

8. Glückwunsch!

Sie haben gelernt, wie Sie die Natural Language API mit C# verwenden, um verschiedene Arten von Informationsanalysen durchzuführen.

Bereinigen

So vermeiden Sie, dass Ihr Google Cloud Platform-Konto für die in diesem Schnellstart verwendeten Ressourcen belastet wird:

  • Rufen Sie die Cloud Platform Console auf.
  • Wählen Sie das Projekt aus, das Sie beenden möchten, und klicken Sie auf „Löschen“. oben: Dadurch wird das Projekt zum Löschen vorgemerkt.

Weitere Informationen

Lizenz

Dieser Text ist mit einer Creative Commons Attribution 2.0 Generic License lizenziert.