GSP063
Aperçu
L'API Cloud Natural Language vous permet d'extraire des entités à partir de
texte, d'effectuer des analyses des sentiments et de la syntaxe, ainsi que de
classer du texte selon des catégories. Dans cet atelier, nous allons nous
concentrer sur la classification de texte. Grâce à une base de données riche
de plus de 700 catégories, cette fonctionnalité de l'API permet de classer
facilement de vastes ensembles de données de texte.
Objectifs
Dans cet atelier, vous allez apprendre à effectuer les tâches suivantes :
-
Créer une requête pour l'API Natural Language et appeler l'API avec curl
-
Utiliser la fonctionnalité de classification de texte de l'API
Natural Language
-
Utiliser la classification de texte pour comprendre un ensemble de données
issu d'articles de presse
Préparation
Avant de cliquer sur le bouton "Démarrer l'atelier"
Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.
Cet atelier pratique vous permet de suivre les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Des identifiants temporaires vous sont fournis pour vous permettre de vous connecter à Google Cloud le temps de l'atelier.
Pour réaliser cet atelier :
- Vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome).
Remarque : Ouvrez une fenêtre de navigateur en mode incognito (recommandé) ou de navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le compte temporaire de participant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
- Vous disposez d'un temps limité. N'oubliez pas qu'une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Utilisez uniquement le compte de participant pour cet atelier. Si vous utilisez un autre compte Google Cloud, des frais peuvent être facturés à ce compte.
Démarrer l'atelier et se connecter à la console Google Cloud
-
Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, une boîte de dialogue s'affiche pour vous permettre de sélectionner un mode de paiement.
Sur la droite, vous trouverez le panneau Préparation et accès à l'atelier, qui contient les éléments suivants :
- Le bouton Ouvrir la console Google Cloud
- Les identifiants temporaires (nom d'utilisateur et mot de passe) que vous devez utiliser pour cet atelier
- Des informations complémentaires vous permettant d'effectuer l'atelier, si nécessaire
Notez que le minuteur de l'atelier se trouve en haut de la page et indique le temps restant.
-
Cliquez sur Ouvrir la console Google Cloud (ou effectuez un clic droit et sélectionnez Ouvrir le lien dans une fenêtre en navigation privée si vous utilisez Chrome).
L'atelier lance les ressources, puis ouvre la page "Se connecter" dans un nouvel onglet.
Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.
Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
-
Si nécessaire, copiez le nom d'utilisateur ci-dessous et collez-le dans la boîte de dialogue Se connecter.
{{{user_0.username | "Username"}}}
Vous trouverez également le nom d'utilisateur dans le panneau Préparation et accès à l'atelier.
-
Cliquez sur Suivant.
-
Copiez le mot de passe ci-dessous et collez-le dans la boîte de dialogue Bienvenue.
{{{user_0.password | "Password"}}}
Vous trouverez également le mot de passe dans le panneau Préparation et accès à l'atelier.
-
Cliquez sur Suivant.
Important : Vous devez utiliser les identifiants fournis pour l'atelier. N'utilisez pas les identifiants de votre compte Google Cloud.
Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires pourront vous être facturés.
-
Accédez aux pages suivantes :
- Acceptez les conditions d'utilisation.
- N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
- Ne vous inscrivez pas à des essais sans frais.
Après quelques instants, la console Cloud s'ouvre dans cet onglet.
Remarque : Pour accéder aux produits et services Google Cloud, cliquez sur le menu de navigation ou saisissez le nom du service ou du produit dans le champ Recherche.
Activer Cloud Shell
Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud. Cloud Shell vous permet d'accéder via une ligne de commande à vos ressources Google Cloud.
-
Cliquez sur Activer Cloud Shell
en haut de la console Google Cloud.
-
Passez les fenêtres suivantes :
- Accédez à la fenêtre d'informations de Cloud Shell.
- Autorisez Cloud Shell à utiliser vos identifiants pour effectuer des appels d'API Google Cloud.
Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET : . Le résultat contient une ligne qui déclare l'ID_PROJET pour cette session :
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.
- (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
- Cliquez sur Autoriser.
Résultat :
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project
Résultat :
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Remarque : Pour consulter la documentation complète sur gcloud, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.
Tâche 1 : Activer l'API Cloud Natural Language
-
Développez le menu de navigation (
) en haut à gauche de l'écran.
-
Sélectionnez API et services >
API et services activés.
- Cliquez sur Activer les API et les services.
-
Saisissez ensuite language dans la zone de recherche.
-
Cliquez sur API Cloud Natural Language :
Si l'API n'est pas activée, le bouton Activer apparaît.
-
Cliquez sur Activer pour activer l'API Cloud
Natural Language.
Une fois que l'API est activée, Google Cloud affiche les informations
suivantes :
Tâche 2 : Créer une clé API
Étant donné que vous utilisez curl pour envoyer une requête à
l'API Natural Language, vous devez générer une clé API afin de transmettre
l'URL de la requête.
-
Pour créer une clé API, dans votre console, cliquez sur le
menu de navigation > API et services >
Identifiants.
-
Cliquez ensuite sur Créer des identifiants.
-
Dans le menu déroulant, sélectionnez Clé API.
-
Ensuite, copiez la clé que vous venez de générer, puis cliquez sur
Fermer.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Créer une clé API
Vous disposez désormais d'une clé API. Enregistrez sa valeur en tant que
variable d'environnement afin d'éviter de l'insérer à chaque requête.
Pour poursuivre, connectez-vous à l'instance configurée pour vous via SSH.
-
Ouvrez le menu de navigation et sélectionnez
Compute Engine > Instances de VM. Vous
devez voir une instance
linux-instance provisionnée.
-
Cliquez sur le bouton SSH. Vous êtes redirigé vers un
shell interactif.
-
Dans la ligne de commande, saisissez la commande suivante, en remplaçant
<YOUR_API_KEY> par la clé que vous venez de copier :
export API_KEY=<YOUR_API_KEY>
Tâche 3 : Classer un article de presse
Grâce à la méthode "classifyText" de l'API Natural Language, vous pouvez
classer des données de texte par catégorie grâce à un seul appel d'API. Vous
obtenez ainsi une liste de catégories de contenu qui s'appliquent à un
document texte.
Ces catégories sont plus ou moins spécifiques. Elles concernent aussi bien des
thèmes généraux, comme
/Computers & Electronics (/Informatique et électronique), que
des sujets très spécifiques :
/Computers & Electronics/Programming/Java (Programming Language)
(/Informatique et électronique/Programmation/Java [langage de programmation]).
La liste complète des catégories (plus de 700) est disponible sur la page
Catégories de contenu.
Vous allez commencer par classer un seul article, puis vous verrez comment
utiliser cette méthode pour analyser un vaste corpus d'articles de presse.
-
Pour commencer, prenez le titre et la description d'un article du New York
Times paru dans la rubrique gastronomie :
A Smoky Lobster Salad With a Tapa Twist. This spin on the Spanish pulpo a
la gallega skips the octopus, but keeps the sea salt, olive oil, pimentón
and boiled potatoes.
(Salade de homard fumé façon tapas. Pour cette version revisitée de la recette
espagnole du poulpe à la galicienne, pas de poulpe, mais nous gardons l'esprit
de la recette avec le sel de mer, l'huile d'olive, le paprika et les pommes de
terre vapeur.)
-
Créez un fichier nommé
request.json et ajoutez-y le code
ci-dessous. Vous pouvez créer le fichier à l'aide de l'éditeur de ligne de
commande de votre choix (nano, vim ou emacs).
{ "document":{ "type":"PLAIN_TEXT", "content":"A Smoky Lobster Salad With a
Tapa Twist. This spin on the Spanish pulpo a la gallega skips the octopus, but
keeps the sea salt, olive oil, pimentón and boiled potatoes." } }
Créer une requête pour classer un article de presse
-
Vous pouvez maintenant envoyer ce texte à la méthode
classifyText de l'API Natural Language à l'aide de la commande
curl suivante :
curl
"https://language.googleapis.com/v1/documents:classifyText?key=${API_KEY}" \
-s -X POST -H "Content-Type: application/json" --data-binary @request.json
Examinez la réponse.
{ categories: [ { name: '/Food & Drink/Cooking & Recipes', confidence:
0.85 }, { name: '/Food & Drink/Food/Meat & Seafood', confidence: 0.63
} ] }
Vous avez créé une requête API Speech, puis appelé cette API.
-
Exécutez la commande suivante pour enregistrer la réponse dans le fichier
result.json :
curl
"https://language.googleapis.com/v1/documents:classifyText?key=${API_KEY}" \
-s -X POST -H "Content-Type: application/json" --data-binary @request.json >
result.json
Vérifier la réponse de l'analyse d'entités
L'API renvoie deux catégories pour ce texte :
/Food & Drink/Cooking & Recipes
/Food & Drink/Food/Meat & Seafood
Bien que le texte ne mentionne pas clairement qu'il s'agit d'une recette à
base de fruits de mer, l'API est capable de le classer. Nous venons de classer
un premier article. Pour prendre toute la mesure de cette fonctionnalité,
classons maintenant d'importants volumes de données textuelles.
Tâche 4 : Classer un grand ensemble de données textuelles
La méthode classifyText peut vous aider à analyser des ensembles
de données contenant beaucoup de texte. Vous allez l'utiliser sur
cet ensemble de données public
composé d'articles de presse publiés par la BBC. L'ensemble de données
comprend 2 225 articles portant sur cinq thèmes (économie, divertissement,
politique, sport et technologie) parus en 2004 et 2005. Un sous-ensemble de
ces articles se trouve dans un bucket public Cloud Storage. Les articles se
présentent sous forme de fichier .txt.
Afin d'examiner les données et de les envoyer à l'API Natural Language, vous
devez écrire un script Python permettant de lire chaque fichier texte à partir
de Cloud Storage. Vous devez ensuite les envoyer au point de terminaison
classifyText, puis stocker les résultats dans une table BigQuery.
BigQuery est l'outil d'entrepôt big data de Google Cloud. Grâce à lui, vous
pouvez stocker et analyser facilement de vastes ensembles de données.
-
Pour visualiser le type de texte avec lequel vous allez travailler, exécutez
la commande ci-dessous qui permet d'afficher un article (
gsutil
fournit une interface de ligne de commande pour Cloud Storage) :
gsutil cat gs://spls/gsp063/bbc_dataset/entertainment/001.txt
Vous allez maintenant créer une table BigQuery pour vos données.
Tâche 5 : Créer une table BigQuery pour les données textuelles catégorisées
Avant d'envoyer le texte à l'API Natural Language, vous devez disposer d'un
emplacement pour stocker le texte et les catégories associés à chaque article.
-
Accédez au menu de navigation >
BigQuery dans la console.
-
Cliquez sur OK.
-
Pour créer un ensemble de données, cliquez sur l'icône
Afficher les actions à côté de l'ID de votre projet, puis
sélectionnez Créer un ensemble de données :
-
Nommez l'ensemble de données news_classification_dataset,
puis cliquez sur Créer un ensemble de données.
-
Pour créer une table, cliquez sur l'icône
Afficher les actions à côté de
news_classification_dataset, puis sélectionnez
Créer une table.
-
Utilisez les paramètres suivants pour la nouvelle table :
- Créez la table à partir d'une table vide.
- Nommez la table article_data.
-
Sous "Schéma", cliquez sur Ajouter un champ et ajoutez
les trois champs suivants :
| Nom du champ |
Type |
Mode |
article_text |
STRING |
NULLABLE |
category |
STRING |
NULLABLE |
confidence |
FLOAT |
NULLABLE |
- Cliquez sur Créer une table.
Pour le moment, la table est vide. Lors de la prochaine étape, vous allez lire
les articles à partir de Cloud Storage, les envoyer à l'API Natural Language
pour qu'ils soient classés, et stocker les résultats dans BigQuery.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Créer un ensemble de données et une table pour les données textuelles
catégorisées
Tâche 6 : Classer les données des articles de presse et stocker le résultat
dans BigQuery
Pour poursuivre, connectez-vous à Cloud Shell. Cliquez sur
Continuer si vous y êtes invité.
Avant d'écrire un script permettant d'envoyer les données de presse à l'API
Natural Language, vous devez créer un compte de service. Il vous permettra de
vous authentifier auprès de l'API Natural Language et de BigQuery à partir
d'un script Python.
- Exportez l'ID de votre projet en tant que variable d'environnement :
export PROJECT={{{project_0.project_id | Project ID}}}
- Exécutez les commandes suivantes pour créer un compte de service :
gcloud iam service-accounts create my-account --display-name my-account gcloud
projects add-iam-policy-binding $PROJECT
--member=serviceAccount:my-account@$PROJECT.iam.gserviceaccount.com
--role=roles/bigquery.admin gcloud projects add-iam-policy-binding $PROJECT
--member=serviceAccount:my-account@$PROJECT.iam.gserviceaccount.com
--role=roles/serviceusage.serviceUsageConsumer gcloud iam service-accounts
keys create key.json --iam-account=my-account@$PROJECT.iam.gserviceaccount.com
export GOOGLE_APPLICATION_CREDENTIALS=key.json
Vous êtes maintenant prêt à envoyer des données textuelles à l'API
Natural Language.
- Écrivez un script Python à l'aide du module Python pour Google Cloud.
Vous pouvez réaliser cette opération dans le langage de votre choix, car
plusieurs bibliothèques clientes cloud sont disponibles.
-
Créez un fichier nommé
classify-text.py et copiez-y le code
ci-dessous. Vous pouvez créer le fichier à l'aide de l'éditeur de ligne de
commande de votre choix (nano, vim ou emacs).
from google.cloud import storage, language, bigquery # Set up your GCS, NL,
and BigQuery clients storage_client = storage.Client() nl_client =
language.LanguageServiceClient() bq_client =
bigquery.Client(project='{{{project_0.project_id | Project ID}}}') dataset_ref
= bq_client.dataset('news_classification_dataset') dataset =
bigquery.Dataset(dataset_ref) table_ref = dataset.table('article_data') table
= bq_client.get_table(table_ref) # Send article text to the NL API's
classifyText method def classify_text(article): response =
nl_client.classify_text( document=language.Document( content=article,
type=language.Document.Type.PLAIN_TEXT ) ) return response rows_for_bq = []
files = storage_client.bucket('qwiklabs-test-bucket-gsp063').list_blobs()
print("Got article files from GCS, sending them to the NL API (this will take
~2 minutes)...") # Send files to the NL API and save the result to send to
BigQuery for file in files: if file.name.endswith('txt'): article_text =
file.download_as_bytes().decode('utf-8') # Decode bytes to string nl_response
= classify_text(article_text) if len(nl_response.categories) > 0:
rows_for_bq.append((article_text, nl_response.categories[0].name,
nl_response.categories[0].confidence)) print("Writing NL API article data to
BigQuery...") # Write article text + category data to BQ if rows_for_bq:
errors = bq_client.insert_rows(table, rows_for_bq) if errors:
print("Encountered errors while writing to BigQuery:", errors) else: print("No
articles found in the specified bucket.")
Vous êtes désormais prêt à classer les articles et à les importer dans
BigQuery.
- Exécutez le script suivant :
python3 classify-text.py
L'exécution du script prend environ deux minutes. Nous allons en profiter pour
examiner son rôle plus en détail.
Nous utilisons la bibliothèque
cliente Python
Google Cloud pour accéder à Cloud Storage, à l'API Natural Language et à
BigQuery. Tout d'abord, un client est créé pour chaque service, puis des
références à la table BigQuery sont générées. L'élément
files fait référence à chacun des fichiers de l'ensemble de
données BBC du bucket public. Les fichiers sont examinés, les articles sont
téléchargés sous forme de chaînes, puis chaque chaîne est envoyée à l'API
Natural Language dans la fonction classify_text. Lorsque l'API
Natural Language renvoie une catégorie pour un article, ces données (article
et catégorie) sont enregistrées dans la liste rows_for_bq. Au
terme du classement des articles, les données sont insérées dans BigQuery à
l'aide de insert_rows().
Remarque : L'API Natural Language peut renvoyer plusieurs
catégories pour un document, mais pour plus de simplicité, vous ne stockerez
que la première catégorie dans cet atelier.
Une fois le script exécuté, vérifiez que les données des articles ont bien été
enregistrées dans BigQuery.
-
Dans BigQuery, accédez à la table
article_data dans l'onglet
"Explorateur", puis cliquez sur Requête pour interroger la
table :
-
Modifiez les résultats dans le champ
Requête non enregistrée en ajoutant un astérisque entre
SELECT et FROM :
SELECT * FROM `{{{project_0.project_id | Project
ID}}}.news_classification_dataset.article_data`
- Cliquez à présent sur Exécuter.
Une fois la requête exécutée, vos données apparaissent.
-
Faites-les défiler vers la droite pour afficher la colonne "category".
La colonne "category" contient le nom de la première catégorie renvoyée par
l'API Natural Language pour l'article. L'indicateur confidence est
traduit par une valeur entre 0 et 1. Il permet de déterminer le degré de
confiance de l'API quant à la classification correcte de l'article.
Lors de la prochaine étape, vous allez apprendre à effectuer des requêtes plus
complexes sur les données.
Tâche 7 : Analyser des données d'articles de presse catégorisées dans BigQuery
Commencez par rechercher les catégories les plus courantes dans l'ensemble de
données.
-
Dans la console BigQuery, cliquez sur + Requête SQL.
-
Saisissez la requête suivante :
SELECT category, COUNT(*) c FROM `{{{project_0.project_id | Project
ID}}}.news_classification_dataset.article_data` GROUP BY category ORDER BY c
DESC
- Cliquez à présent sur Exécuter.
Les résultats de la requête doivent ressembler à ceci :
Si vous souhaitez connaître les articles appartenant à une catégorie plus
précise, telle que
/Arts & Entertainment/Music & Audio/Classical Music
(/Arts et divertissement/Musique et audio/Musique classique), vous pouvez
saisir la requête suivante :
SELECT * FROM `{{{project_0.project_id | Project
ID}}}.news_classification_dataset.article_data` WHERE category = "/Arts &
Entertainment/Music & Audio/Classical Music"
De la même façon, vous pouvez demander uniquement les articles dont le score
de confiance généré par l'API Natural Language est supérieur à 90 % :
SELECT article_text, category FROM `{{{project_0.project_id | Project
ID}}}.news_classification_dataset.article_data` WHERE cast(confidence as
float64) > 0.9
Pour exécuter davantage de requêtes sur vos données, consultez la
documentation BigQuery. BigQuery comprend également plusieurs outils de visualisation. Pour créer
des visualisations de vos données de presse catégorisées, consultez
Data Studio
pour BigQuery.
Félicitations !
Vous avez appris comment utiliser la méthode de classification de texte de
l'API Natural Language afin de catégoriser des articles de presse. Vous avez
commencé par catégoriser un premier article, puis vous avez appris à classer
et analyser un vaste ensemble de données de presse à l'aide de l'API
Natural Language et de BigQuery. Vous avez également appris à créer une table
BigQuery et à exécuter des requêtes sur vos données.
Étapes suivantes et informations supplémentaires
Formations et certifications Google Cloud
Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.
Dernière mise à jour du manuel : 21 mars 2025
Dernier test de l'atelier : 21 mars 2025
Copyright 2026 Google LLC. Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.