Utiliser l'API Natural Language avec C#

Utiliser l'API Natural Language avec C#

À propos de cet atelier de programmation

subjectDernière mise à jour : juin 26, 2023
account_circleRédigé par Mete Atamel

1. Présentation

Dans cet atelier de programmation, vous allez vous concentrer sur l'utilisation de l'API Natural Language avec C#. Vous apprendrez à effectuer une analyse des sentiments, des entités et de la syntaxe.

L'API Natural Language de Google Cloud fournit aux développeurs des technologies de compréhension du langage naturel, telles que l'analyse des sentiments, l'analyse des entités et l'analyse de la syntaxe.

Points abordés

  • Utiliser Cloud Shell
  • Activer l'API Natural Language
  • Authentifier les requêtes API
  • Installer la bibliothèque cliente Google Cloud pour C#
  • Effectuer une analyse des sentiments
  • Effectuer une analyse des entités
  • Comment effectuer une analyse syntaxique

Prérequis

  • Un projet Google Cloud Platform
  • Un navigateur tel que Chrome ou Firefox
  • Bonne connaissance de C#

Enquête

<ph type="x-smartling-placeholder">

Comment allez-vous utiliser ce tutoriel ?

Comment évalueriez-vous votre expérience avec C#?

Quel est votre niveau d'expérience avec les services Google Cloud Platform ?

.

2. Préparation

Configuration de l'environnement au rythme de chacun

  1. Connectez-vous à la console Google Cloud, puis créez un projet ou réutilisez un projet existant. (Si vous ne possédez pas encore de compte Gmail ou Google Workspace, vous devez en créer un.)

295004821bab6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

  • Le nom du projet est le nom à afficher pour les participants au projet. Il s'agit d'une chaîne de caractères non utilisée par les API Google. Vous pourrez toujours le modifier.
  • L'ID du projet est unique parmi tous les projets Google Cloud et non modifiable une fois défini. La console Cloud génère automatiquement une chaîne unique (en général, vous n'y accordez d'importance particulière). Dans la plupart des ateliers de programmation, vous devrez indiquer l'ID de votre projet (généralement identifié par PROJECT_ID). Si l'ID généré ne vous convient pas, vous pouvez en générer un autre de manière aléatoire. Vous pouvez également en spécifier un et voir s'il est disponible. Après cette étape, l'ID n'est plus modifiable et restera donc le même pour toute la durée du projet.
  • Pour information, il existe une troisième valeur (le numéro de projet) que certaines API utilisent. Pour en savoir plus sur ces trois valeurs, consultez la documentation.
  1. Vous devez ensuite activer la facturation dans la console Cloud pour utiliser les ressources/API Cloud. L'exécution de cet atelier de programmation est très peu coûteuse, voire sans frais. Pour désactiver les ressources et éviter ainsi que des frais ne vous soient facturés après ce tutoriel, vous pouvez supprimer le projet ou les ressources que vous avez créées. Les nouveaux utilisateurs de Google Cloud peuvent participer au programme d'essai sans frais pour bénéficier d'un crédit de 300 $.

Démarrer Cloud Shell

Bien que Google Cloud puisse être utilisé à distance depuis votre ordinateur portable, nous allons nous servir de Google Cloud Shell pour cet atelier de programmation, un environnement de ligne de commande exécuté dans le cloud.

Activer Cloud Shell

  1. Dans Cloud Console, cliquez sur Activer Cloud Shell d1264ca30785e435.png.

cb81e7c8e34bc8d.png

Si vous démarrez Cloud Shell pour la première fois, un écran intermédiaire vous explique de quoi il s'agit. Si un écran intermédiaire s'est affiché, cliquez sur Continuer.

d95252b003979716.png

Le provisionnement et la connexion à Cloud Shell ne devraient pas prendre plus de quelques minutes.

7833d5e1c5d18f54.png

Cette machine virtuelle contient tous les outils de développement nécessaires. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute dans Google Cloud, ce qui améliore considérablement les performances du réseau et l'authentification. Une grande partie, voire la totalité, de votre travail dans cet atelier de programmation peut être effectué dans un navigateur.

Une fois connecté à Cloud Shell, vous êtes authentifié et le projet est défini sur votre ID de projet.

  1. Exécutez la commande suivante dans Cloud Shell pour vérifier que vous êtes authentifié :
gcloud auth list

Résultat de la commande

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

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
  1. Exécutez la commande suivante dans Cloud Shell pour vérifier que la commande gcloud connaît votre projet:
gcloud config list project

Résultat de la commande

[core]
project = <PROJECT_ID>

Si vous obtenez un résultat différent, exécutez cette commande :

gcloud config set project <PROJECT_ID>

Résultat de la commande

Updated property [core/project].

3. Activer l&#39;API Natural Language

Avant de pouvoir utiliser l'API Natural Language, vous devez l'activer. Dans Cloud Shell, vous pouvez activer l'API à l'aide de la commande suivante:

gcloud services enable language.googleapis.com

4. Installer la bibliothèque cliente de l&#39;API Google Cloud Natural Language pour C#

Commencez par créer une application de console C# simple que vous utiliserez pour exécuter des exemples de l'API Natural Language:

dotnet new console -n NaturalLanguageApiDemo

L'application créée et les dépendances doivent être résolues:

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

Accédez ensuite au dossier NaturalLanguageApiDemo:

cd NaturalLanguageApiDemo/

Ajoutez le package NuGet Google.Cloud.Language.V1 au projet:

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

Vous êtes maintenant prêt à utiliser l'API Natural Language.

5. Analyse des sentiments

Dans cette section, vous allez effectuer une analyse des sentiments sur une chaîne, et déterminer le score et la magnitude à l'aide de l'API Natural Language.

Le score du sentiment est compris entre -1.0 (négatif) et 1.0 (positif), et correspond au sentiment général issu des informations données.

La magnitude du sentiment va de 0,0 à +infinity et indique la force globale du sentiment à partir de l'information donnée. Plus la quantité d'informations fournies est élevée, plus l'ampleur est élevée.

Ouvrez l'éditeur de code en haut à droite de Cloud Shell:

fd3fc1303e63572.png

Accédez au fichier Program.cs dans le dossier NaturalLanguageApiDemo et remplacez le code par ce qui suit:

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

Prenez une minute ou deux pour étudier le code et découvrez comment l'extrait de code est utilisé pour effectuer l'analyse des sentiments sur la chaîne "Yukihiro Matsumoto est génial !".

Retournez dans Cloud Shell, puis exécutez l'application:

dotnet run

Vous devriez obtenir le résultat suivant :

Score: 0.9
Magnitude: 0.9

Résumé

Au cours de cette étape, vous avez pu effectuer une analyse des sentiments sur une chaîne de texte, et imprimer le score et la magnitude. En savoir plus sur l'analyse des sentiments

6. Analyse des entités

L'analyse des entités inspecte les informations fournies pour rechercher des entités en recherchant des noms propres tels que des personnages publics, des points de repère, etc., et renvoie des informations sur ces entités.

Pour effectuer une analyse des entités, accédez au fichier Program.cs dans le dossier NaturalLanguageApiDemo et remplacez le code par ce qui suit:

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

Prenez une ou deux minutes pour étudier le code et découvrez comment l'extrait de code est utilisé pour effectuer une analyse d'entité sur la chaîne Yukihiro Matsumoto est génial !.

Retournez dans Cloud Shell, puis exécutez l'application:

dotnet run

Vous devriez obtenir le résultat suivant :

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

Résumé

Au cours de cette étape, vous avez effectué une analyse des entités sur une chaîne de texte et imprimé ses entités. En savoir plus sur l'analyse des entités

7. Analyse syntaxique

L'analyse syntaxique extrait les informations linguistiques en divisant le texte donné en une série de phrases et de jetons (qui correspondent généralement aux mots) et en procédant à une analyse approfondie de ces jetons.

Dans cet exemple, le nombre de phrases et de jetons est affiché, et la classe de mots pour chaque jeton.

Pour effectuer une analyse syntaxique, accédez au fichier Program.cs dans le dossier NaturalLanguageApiDemo et remplacez le code par ce qui suit:

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

Prenez une minute ou deux pour étudier le code et découvrez comment l'extrait de code est utilisé pour effectuer une analyse syntaxique sur la chaîne "Yukihiro Matsumoto est génial !".

Retournez dans Cloud Shell, puis exécutez l'application:

dotnet run

Vous devriez obtenir le résultat suivant :

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

Vous en trouverez une interprétation visuelle ci-dessous.

297dbabf1a723bad.png

Résumé

Au cours de cette étape, vous avez pu effectuer une analyse syntaxique sur une simple chaîne de texte et imprimer le nombre de phrases, le nombre de jetons et les informations linguistiques pour chaque jeton. En savoir plus sur l'analyse syntaxique

8. Félicitations !

Vous avez appris à utiliser l'API Natural Language avec C# pour effectuer différents types d'analyses sur les informations.

Effectuer un nettoyage

Afin d'éviter que des frais ne soient facturés sur votre compte Google Cloud Platform pour les ressources utilisées dans ce démarrage rapide, procédez comme suit :

  • Accédez à la console Cloud Platform.
  • Sélectionnez le projet que vous souhaitez arrêter, puis cliquez sur "Supprimer". en haut: la suppression du projet est programmée.

En savoir plus

Licence

Ce document est publié sous une licence Creative Commons Attribution 2.0 Generic.