1. Przegląd
W tym module skupisz się na używaniu interfejsu Natural Language API w języku C#. Dowiesz się, jak przeprowadzać analizę nastawienia, encji i składni.
Natural Language API Google Cloud udostępnia deweloperom technologie rozumienia języka naturalnego, w tym analizę nastawienia, analizę encji i analizę składni.
Czego się nauczysz
- Jak korzystać z Cloud Shell
- Jak włączyć interfejs Natural Language API
- Uwierzytelnianie żądań do interfejsu API
- Instalowanie biblioteki klienta Google Cloud dla C#
- Jak przeprowadzić analizę nastawienia
- Jak przeprowadzić analizę encji
- Jak przeprowadzić analizę składni
Czego potrzebujesz
Ankieta
Jak zamierzasz korzystać z tego samouczka?
Jak oceniasz swoje doświadczenie z językiem C#?
Jak oceniasz korzystanie z usług Google Cloud Platform?
2. Konfiguracja i wymagania
Samodzielne konfigurowanie środowiska
- Zaloguj się w konsoli Google Cloud i utwórz nowy projekt lub użyj istniejącego. Jeśli nie masz jeszcze konta Gmail ani Google Workspace, musisz je utworzyć.



- Nazwa projektu to wyświetlana nazwa uczestników tego projektu. Jest to ciąg znaków, który nie jest używany przez interfejsy API Google. Zawsze możesz ją zaktualizować.
- Identyfikator projektu jest unikalny we wszystkich projektach Google Cloud i nie można go zmienić po ustawieniu. Konsola Cloud automatycznie generuje unikalny ciąg znaków. Zwykle nie musisz się tym przejmować. W większości ćwiczeń z programowania musisz odwoływać się do identyfikatora projektu (zwykle oznaczanego jako
PROJECT_ID). Jeśli wygenerowany identyfikator Ci się nie podoba, możesz wygenerować inny losowy identyfikator. Możesz też spróbować własnej nazwy i sprawdzić, czy jest dostępna. Po tym kroku nie można go zmienić i pozostaje on taki przez cały czas trwania projektu. - Warto wiedzieć, że istnieje też trzecia wartość, numer projektu, której używają niektóre interfejsy API. Więcej informacji o tych 3 wartościach znajdziesz w dokumentacji.
- Następnie musisz włączyć płatności w konsoli Cloud, aby korzystać z zasobów i interfejsów API Google Cloud. Wykonanie tego laboratorium nie będzie kosztować dużo, a może nawet nic. Aby wyłączyć zasoby i uniknąć naliczania opłat po zakończeniu tego samouczka, możesz usunąć utworzone zasoby lub projekt. Nowi użytkownicy Google Cloud mogą skorzystać z bezpłatnego okresu próbnego, w którym mają do dyspozycji środki w wysokości 300 USD.
Uruchamianie Cloud Shell
Z Google Cloud można korzystać zdalnie na laptopie, ale w tym module praktycznym będziesz używać Google Cloud Shell, czyli środowiska wiersza poleceń działającego w chmurze.
Aktywowanie Cloud Shell
- W konsoli Cloud kliknij Aktywuj Cloud Shell
.

Jeśli uruchamiasz Cloud Shell po raz pierwszy, zobaczysz ekran pośredni z opisem tego środowiska. Jeśli pojawił się ekran pośredni, kliknij Dalej.

Uzyskanie dostępu do środowiska Cloud Shell i połączenie się z nim powinno zająć tylko kilka chwil.

Ta maszyna wirtualna zawiera wszystkie potrzebne narzędzia dla programistów. Zawiera również stały katalog domowy o pojemności 5 GB i działa w Google Cloud, co znacznie zwiększa wydajność sieci i usprawnia proces uwierzytelniania. Większość zadań w tym module, a być może wszystkie, możesz wykonać w przeglądarce.
Po połączeniu z Cloud Shell zobaczysz, że uwierzytelnianie zostało już przeprowadzone, a projekt jest już ustawiony na Twój identyfikator projektu.
- Aby potwierdzić, że uwierzytelnianie zostało przeprowadzone, uruchom w Cloud Shell to polecenie:
gcloud auth list
Wynik polecenia
Credentialed Accounts
ACTIVE ACCOUNT
* <my_account>@<my_domain.com>
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- Aby potwierdzić, że polecenie gcloud zna Twój projekt, uruchom w Cloud Shell to polecenie:
gcloud config list project
Wynik polecenia
[core] project = <PROJECT_ID>
Jeśli nie, możesz go ustawić za pomocą tego polecenia:
gcloud config set project <PROJECT_ID>
Wynik polecenia
Updated property [core/project].
3. Włączanie interfejsu Natural Language API
Zanim zaczniesz korzystać z interfejsu Natural Language API, musisz go włączyć. W Cloud Shell możesz włączyć interfejs API za pomocą tego polecenia:
gcloud services enable language.googleapis.com
4. Instalowanie biblioteki klienta interfejsu Google Cloud Natural Language API dla C#
Najpierw utwórz prostą aplikację konsolową w C#, której będziesz używać do uruchamiania przykładów interfejsu Natural Language API:
dotnet new console -n NaturalLanguageApiDemo
Powinna pojawić się utworzona aplikacja i rozwiązane zależności:
The template "Console Application" was created successfully.
Processing post-creation actions...
...
Restore succeeded.
Następnie otwórz folder NaturalLanguageApiDemo:
cd NaturalLanguageApiDemo/
Dodaj do projektu pakiet Google.Cloud.Language.V1 NuGet:
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'.
Możesz teraz używać interfejsu Natural Language API.
5. Analiza nastawienia
W tej sekcji przeprowadzisz analizę nastawienia w przypadku ciągu znaków i za pomocą interfejsu Natural Language API określisz wynik i wartość.
Wynik analizy nastrojów mieści się w zakresie od -1,0 (negatywne) do 1,0 (pozytywne) i odpowiada ogólnej analizie nastrojów na podstawie podanych informacji.
Wartość sentymentu mieści się w zakresie od 0,0 do +nieskończoności i określa ogólną siłę sentymentu na podstawie podanych informacji. Im więcej informacji podasz, tym większa będzie skala.
Otwórz edytor kodu w prawym górnym rogu Cloud Shell:

Otwórz plik Program.cs w folderze NaturalLanguageApiDemo i zastąp kod tym kodem:
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}");
}
}
}
Poświęć chwilę na zapoznanie się z kodem i zobacz, jak fragment kodu jest używany do przeprowadzenia analizy nastawienia w przypadku ciągu znaków „Yukihiro Matsumoto is great!”.
Wróć do Cloud Shell i uruchom aplikację:
dotnet run
Powinny się wyświetlić te dane wyjściowe:
Score: 0.9
Magnitude: 0.9
Podsumowanie
W tym kroku udało Ci się przeprowadzić analizę sentymentu ciągu tekstowego i wydrukować wynik oraz wielkość. Dowiedz się więcej o analizie nastawienia.
6. Analiza encji
Analiza encji sprawdza podane informacje pod kątem encji, wyszukując rzeczowniki własne, takie jak nazwiska osób publicznych, nazwy zabytków itp., i zwraca informacje o tych encjach.
Aby przeprowadzić analizę encji, otwórz plik Program.cs w folderze NaturalLanguageApiDemo i zastąp kod tym kodem:
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"]}");
}
}
}
}
}
Poświęć chwilę na zapoznanie się z kodem i zobacz, jak fragment kodu jest używany do analizy jednostek w ciągu znaków „Yukihiro Matsumoto is great!”.
Wróć do Cloud Shell i uruchom aplikację:
dotnet run
Powinny się wyświetlić te dane wyjściowe:
Entity: "Yukihiro Matsumoto" (Person)
URL: https://en.wikipedia.org/wiki/Yukihiro_Matsumoto
Podsumowanie
W tym kroku udało Ci się przeprowadzić analizę encji w ciągu tekstowym i wydrukować encje. Dowiedz się więcej o analizie podmiotów.
7. Analiza składni
Analiza składniowa wyodrębnia informacje językowe, dzieląc podany tekst na serię zdań i tokenów (zwykle granice słów) oraz przeprowadzając dalszą analizę tych tokenów.
Ten przykład wyświetli liczbę zdań i tokenów oraz część mowy każdego tokena.
Aby przeprowadzić analizę składniową, otwórz plik Program.cs w folderze NaturalLanguageApiDemo i zastąp kod tym kodem:
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}");
}
}
}
}
Poświęć chwilę na zapoznanie się z kodem i zobacz, jak fragment kodu jest używany do analizy składniowej ciągu znaków "Yukihiro Matsumoto is great!".
Wróć do Cloud Shell i uruchom aplikację:
dotnet run
Powinny się wyświetlić te dane wyjściowe:
Sentences: 1
Tokens: 5
Noun Yukihiro
Noun Matsumoto
Verb is
Adj great
Punct !
Poniżej znajduje się wizualizacja.

Podsumowanie
W tym kroku udało Ci się przeprowadzić analizę składniową prostego ciągu tekstu i wydrukować liczbę zdań, liczbę tokenów oraz informacje językowe dla każdego tokena. Dowiedz się więcej o analizie składni.
8. Gratulacje!
Dowiedzieliśmy się, jak używać interfejsu Natural Language API w języku C# do przeprowadzania różnych rodzajów analiz informacji.
Czyszczenie danych
Oto kroki, które musisz wykonać, aby uniknąć obciążenia konta Google Cloud Platform opłatami za zasoby zużyte podczas krótkiego wprowadzenia:
- Otwórz konsolę Cloud Platform.
- Wybierz projekt, który chcesz zamknąć, a następnie kliknij „Usuń” u góry. Spowoduje to zaplanowanie usunięcia projektu.
Więcej informacji
- Google Cloud Natural Language API: https://cloud.google.com/natural-language/docs/
- C#/.NET na Google Cloud Platform: https://cloud.google.com/dotnet/
- Klient Google Cloud .NET: https://googlecloudplatform.github.io/google-cloud-dotnet/
Licencja
To zadanie jest licencjonowane na podstawie ogólnej licencji Creative Commons Attribution 2.0.