Utilizzo dell'API Natural Language con C#

1. Panoramica

In questo codelab ti concentrerai sull'utilizzo dell'API Natural Language con C#. Imparerai a eseguire l'analisi del sentiment, delle entità e della sintassi.

L'API Natural Language di Google Cloud fornisce agli sviluppatori tecnologie di comprensione del linguaggio naturale, tra cui analisi del sentiment, analisi delle entità e analisi della sintassi.

Cosa imparerai a fare

  • Come utilizzare Cloud Shell
  • Come abilitare l'API Natural Language
  • Come autenticare le richieste API
  • Come installare la libreria client Google Cloud per C#
  • Come eseguire l'analisi del sentiment
  • Come eseguire l'analisi delle entità
  • Come eseguire l'analisi della sintassi

Che cosa ti serve

  • Un progetto Google Cloud
  • Un browser, ad esempio Chrome o Firefox
  • Familiarità con C#

Sondaggio

Come utilizzerai questo tutorial?

Leggilo e basta Leggilo e completa gli esercizi

Come valuteresti la tua esperienza con C#?

Principiante Intermedio Avanzato

Come valuti la tua esperienza di utilizzo dei servizi Google Cloud Platform?

Principiante Intermedio Avanzato

2. Configurazione e requisiti

Configurazione dell'ambiente autonomo

  1. Accedi alla console Google Cloud e crea un nuovo progetto o riutilizzane uno esistente. Se non hai ancora un account Gmail o Google Workspace, devi crearne uno.

295004821bab6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

  • Il nome del progetto è il nome visualizzato per i partecipanti a questo progetto. È una stringa di caratteri non utilizzata dalle API di Google. Puoi sempre aggiornarlo.
  • L'ID progetto è univoco in tutti i progetti Google Cloud ed è immutabile (non può essere modificato dopo l'impostazione). La console Cloud genera automaticamente una stringa univoca, di solito non ti interessa di cosa si tratta. Nella maggior parte dei codelab, dovrai fare riferimento all'ID progetto (in genere identificato come PROJECT_ID). Se l'ID generato non ti piace, puoi generarne un altro casuale. In alternativa, puoi provare a crearne uno e vedere se è disponibile. Non può essere modificato dopo questo passaggio e rimane per tutta la durata del progetto.
  • Per tua informazione, esiste un terzo valore, un numero di progetto, utilizzato da alcune API. Scopri di più su tutti e tre questi valori nella documentazione.
  1. Successivamente, devi abilitare la fatturazione in Cloud Console per utilizzare le risorse/API Cloud. Completare questo codelab non costa molto, se non nulla. Per arrestare le risorse ed evitare addebiti oltre a quelli previsti in questo tutorial, puoi eliminare le risorse che hai creato o il progetto. I nuovi utenti di Google Cloud possono beneficiare del programma prova senza costi di 300$.

Avvia Cloud Shell

Sebbene Google Cloud possa essere gestito da remoto dal tuo laptop, in questo codelab utilizzerai Google Cloud Shell, un ambiente a riga di comando in esecuzione nel cloud.

Attiva Cloud Shell

  1. Nella console Cloud, fai clic su Attiva Cloud Shell d1264ca30785e435.png.

cb81e7c8e34bc8d.png

Se è la prima volta che avvii Cloud Shell, viene visualizzata una schermata intermedia che ne descrive le funzionalità. Se è stata visualizzata una schermata intermedia, fai clic su Continua.

d95252b003979716.png

Bastano pochi istanti per eseguire il provisioning e connettersi a Cloud Shell.

7833d5e1c5d18f54.png

Questa macchina virtuale è caricata con tutti gli strumenti di sviluppo necessari. Offre una home directory permanente da 5 GB e viene eseguita in Google Cloud, migliorando notevolmente le prestazioni e l'autenticazione della rete. Gran parte del lavoro per questo codelab, se non tutto, può essere svolto con un browser.

Una volta eseguita la connessione a Cloud Shell, dovresti vedere che il tuo account è autenticato e il progetto è impostato sul tuo ID progetto.

  1. Esegui questo comando in Cloud Shell per verificare che l'account sia autenticato:
gcloud auth list

Output comando

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

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
  1. Esegui questo comando in Cloud Shell per verificare che il comando gcloud conosca il tuo progetto:
gcloud config list project

Output comando

[core]
project = <PROJECT_ID>

In caso contrario, puoi impostarlo con questo comando:

gcloud config set project <PROJECT_ID>

Output comando

Updated property [core/project].

3. Attiva l'API Natural Language

Prima di poter iniziare a utilizzare l'API Natural Language, devi abilitarla. Utilizzando Cloud Shell, puoi abilitare l'API utilizzando il seguente comando:

gcloud services enable language.googleapis.com

4. Installa la libreria client dell'API Google Cloud Natural Language per C#

Innanzitutto, crea una semplice applicazione console C# che utilizzerai per eseguire gli esempi dell'API Natural Language:

dotnet new console -n NaturalLanguageApiDemo

Dovresti vedere l'applicazione creata e le dipendenze risolte:

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

A questo punto, vai alla cartella NaturalLanguageApiDemo:

cd NaturalLanguageApiDemo/

e aggiungi il pacchetto NuGet Google.Cloud.Language.V1 al progetto:

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'.

Ora puoi utilizzare l'API Natural Language.

5. Analisi del sentiment

In questa sezione eseguirai l'analisi del sentiment su una stringa e troverai il punteggio e la magnitudo utilizzando l'API Natural Language.

Il punteggio del sentiment è compreso tra -1,0 (negativo) e 1,0 (positivo) e corrisponde al sentiment complessivo delle informazioni fornite.

La grandezza del sentiment varia da 0,0 a +infinito e indica la valenza complessiva del sentiment a partire dalle informazioni fornite. Più informazioni vengono fornite, maggiore è l'entità.

Apri l'editor di codice dalla parte in alto a destra di Cloud Shell:

fd3fc1303e63572.png

Vai al file Program.cs all'interno della cartella NaturalLanguageApiDemo e sostituisci il codice con il seguente:

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

Dedica un minuto o due allo studio del codice e scopri come lo snippet di codice viene utilizzato per eseguire l'analisi del sentiment sulla stringa "Yukihiro Matsumoto is great!".

Torna a Cloud Shell ed esegui l'app:

dotnet run

Dovresti vedere l'output seguente:

Score: 0.9
Magnitude: 0.9

Riepilogo

In questo passaggio, hai potuto eseguire l'analisi del sentiment su una stringa di testo e stampare il punteggio e la magnitudo. Scopri di più sull'analisi del sentiment.

6. Analisi delle entità

L'analisi delle entità esamina le informazioni fornite per le entità cercando nomi propri come personaggi pubblici, punti di riferimento e così via e restituisce informazioni su queste entità.

Per eseguire l'analisi delle entità, vai al file Program.cs all'interno della cartella NaturalLanguageApiDemo e sostituisci il codice con il seguente:

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

Dedica un minuto o due allo studio del codice e scopri come lo snippet di codice viene utilizzato per eseguire l'analisi delle entità sulla stringa "Yukihiro Matsumoto è fantastico!".

Torna a Cloud Shell ed esegui l'app:

dotnet run

Dovresti vedere l'output seguente:

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

Riepilogo

In questo passaggio, hai potuto eseguire l'analisi delle entità su una stringa di testo e stampare le relative entità. Scopri di più sull'analisi delle entità.

7. Analisi della sintassi

L'analisi sintattica estrae informazioni linguistiche, suddividendo il testo fornito in una serie di frasi e token (in genere, limiti delle parole), fornendo un'ulteriore analisi di questi token.

Questo esempio stamperà il numero di frasi e token e fornirà la parte del discorso per ogni token.

Per eseguire l'analisi della sintassi, vai al file Program.cs all'interno della cartella NaturalLanguageApiDemo e sostituisci il codice con il seguente:

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

Prenditi un minuto o due per studiare il codice e vedere come viene utilizzato lo snippet di codice per eseguire l'analisi della sintassi sulla stringa "Yukihiro Matsumoto is great!".

Torna a Cloud Shell ed esegui l'app:

dotnet run

Dovresti vedere l'output seguente:

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

Di seguito è riportata un'interpretazione visiva.

297dbabf1a723bad.png

Riepilogo

In questo passaggio, hai potuto eseguire l'analisi sintattica su una semplice stringa di testo e stampare il numero di frasi, il numero di token e le informazioni linguistiche per ogni token. Scopri di più sull'analisi della sintassi.

8. Complimenti!

Hai imparato a utilizzare l'API Natural Language utilizzando C# per eseguire diversi tipi di analisi sulle informazioni.

Esegui la pulizia

Per evitare che al tuo account Google Cloud Platform vengano addebitate le risorse utilizzate in questa guida rapida, procedi come segue.

  • Vai alla console Cloud Platform.
  • Seleziona il progetto che vuoi chiudere, quindi fai clic su "Elimina" in alto: il progetto verrà pianificato per l'eliminazione.

Scopri di più

Licenza

Questo lavoro è concesso in licenza ai sensi di una licenza Creative Commons Attribution 2.0 Generic.