Audience
Ce tutoriel est conçu pour vous permettre d'explorer et de développer rapidement des applications avec l'API Google Cloud Natural Language. Il est conçu pour les personnes qui maîtrisent la programmation de base. Cependant, vous ne devriez pas avoir de souci à suivre ce tutoriel, même si vous n'avez aucune connaissance approfondie de la programmation. Après avoir parcouru ce tutoriel, vous devriez être capable de créer vos propres applications de base à l'aide de la documentation de référence.
Ce tutoriel vous présente une application de l'API Natural Language utilisant du code Python. Il ne s'agit pas ici d'expliquer les bibliothèques clientes Python, mais d'expliquer comment effectuer des appels à l'API Natural Language. Les applications Java et Node.js sont similaires pour l'essentiel. Consultez la rubrique Exemples de l'API Natural Language pour voir des exemples dans d'autres langages (y compris cet exemple dans le tutoriel).
Conditions préalables
Ce tutoriel a plusieurs prérequis :
- Vous disposez d'un compte Google Cloud. Si vous débutez sur la plate-forme, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
- Vous devez avoir configuré un projet avec l'API Cloud Natural Language dans la console Google Cloud.
- Vous devez avoir configuré votre environnement à l'aide des identifiants par défaut de l'application.
- Vous possédez des connaissances de base en programmation Python.
- Vous devez avoir configuré l'environnement de développement Python. Il est recommandé d'installer la dernière version de Python,
pip
etvirtualenv
sur votre système. Pour savoir comment faire, consultez le guide de configuration de l'environnement de développement Python pour Google Cloud Platform. - Vous devez avoir installé la bibliothèque cliente de Google Cloud pour Python.
Analyser des sentiments dans des documents
Ce tutoriel vous présente une application de base de l'API Natural Language, à l'aide de la requête analyzeSentiment
qui effectue une analyse des sentiments sur du texte.
L'analyse des sentiments tente de déterminer l'attitude globale (positive ou négative) relevée dans un document. Elle est représentée par les valeurs numériques score
et magnitude
.
(Pour plus d'informations sur ces concepts, consultez la section Principes de base de l'API Natural Language.)
Nous affichons d'abord l'ensemble du code. (Notez que nous avons supprimé la plupart des commentaires de ce code afin d'insister sur sa brièveté. Nous ajouterons d'autres commentaires en parcourant le code.)
Cette application simple effectue les tâches suivantes :
- Elle importe les bibliothèques nécessaires pour exécuter l'application.
- Elle prend un fichier texte et le transmet à la fonction
main()
. - Elle lit le fichier texte et envoie une requête au service.
- Elle analyse la réponse du service et l'affiche à l'utilisateur.
Nous reviendrons plus en détail sur ces étapes ci-dessous.
Importer des bibliothèques
Nous importons argparse
, une bibliothèque standard, pour permettre à l'application d'accepter les noms de fichiers d'entrée en tant qu'arguments.
Pour utiliser l'API Cloud Natural Language, nous allons également importer le module language
à partir de la bibliothèque google-cloud-language
. Le module types
contient les classes nécessaires à la création des requêtes.
Exécuter l'application
Ici, il suffit d'analyser l'argument transmis pour le nom de fichier texte et de le transmettre à la fonction analyze()
.
S'authentifier dans l'API
Avant de communiquer avec le service de l'API Natural Language, vous devez authentifier votre service avec les identifiants précédemment acquis. Dans une application, le moyen le plus simple d'obtenir des identifiants est d'utiliser les identifiants par défaut de l'application. Par défaut, la stratégie des identifiants par défaut de l'application (ADC, Application Default Credential) tente d'obtenir les identifiants à partir du fichier d'environnement GOOGLE_APPLICATION_CREDENTIALS
. Ce fichier doit être défini pour pointer vers le fichier de clé JSON de votre compte de service. (Vous devez avoir configuré votre compte de service et votre environnement pour utiliser cette stratégie ADC dans le guide de démarrage rapide. Voir
Configurer un compte de service
pour en savoir plus.)
La bibliothèque cliente Google Cloud pour Python utilise automatiquement les identifiants par défaut de l'application.
Envoyer la requête
Maintenant que notre service d'API Natural Language est prêt, nous pouvons accéder au service en appelant la méthode analyze_sentiment
de l'instance LanguageServiceClient
.
La bibliothèque cliente encapsule le détail des requêtes et des réponses de l'API. Consultez la documentation de référence sur l'API Natural Language pour obtenir des informations complètes sur la structure spécifique d'une telle requête.
Cet extrait de code effectue les tâches suivantes :
- Il crée une instance
LanguageServiceClient
en tant que client. - Il lit le nom du fichier contenant les données de texte dans une variable.
- Il crée une instance d'objet
Document
avec le contenu du fichier. - Il appelle la méthode
analyze_sentiment
du client.
Analyser la réponse
Nous parcourons la réponse pour extraire les valeurs de sentiment score
pour chaque phrase, ainsi que les valeurs globales score
et magnitude
pour l'ensemble de l'avis et les présenter à l'utilisateur.
Exécuter l'exemple
Pour exécuter l'exemple, nous allons le tester sur un ensemble de (faux) avis sur le film "Blade Runner".
Téléchargez les exemples à partir de Google Cloud Storage :
gcloud storage cp gs://cloud-samples-tests/natural-language/sentiment-samples.tgz .
Pour installer la dernière version de Google Cloud CLI, consultez la documentation de gcloud CLI.
Décompressez ces exemples pour créer un dossier "reviews" :
gunzip sentiment-samples.tgz tar -xvf sentiment-samples.tar
Exécutez l'analyse des sentiments sur l'un des fichiers spécifiés :
python sentiment_analysis.py reviews/bladerunner-pos.txt Sentence 0 has a sentiment score of 0.8 Sentence 1 has a sentiment score of 0.9 Sentence 2 has a sentiment score of 0.8 Sentence 3 has a sentiment score of 0.2 Sentence 4 has a sentiment score of 0.1 Sentence 5 has a sentiment score of 0.4 Sentence 6 has a sentiment score of 0.3 Sentence 7 has a sentiment score of 0.4 Sentence 8 has a sentiment score of 0.2 Sentence 9 has a sentiment score of 0.9 Overall Sentiment: score of 0.5 with magnitude of 5.5
L'exemple ci-dessus indiquerait un avis relativement positif (score de 0.5
) et relativement émotionnel (magnitude de 5.5
).
L'analyse exécutée sur les autres exemples doit produire des valeurs similaires à celles indiquées ci-dessous :
python sentiment_analysis.py reviews/bladerunner-neg.txt ... Overall Sentiment: score of -0.6 with magnitude of 3.3 python sentiment_analysis.py reviews/bladerunner-mixed.txt ... Overall Sentiment: score of 0 with magnitude of 4.7 python sentiment_analysis.py reviews/bladerunner-neutral.txt ... Overall Sentiment: score of -0.1 with magnitude of 1.8
Notez que les valeurs de magnitude sont toutes similaires (indiquant un nombre de sentiments émotionnellement significatifs relativement égal) à l'exception du cas "neutre", qui indique un avis dénotant peu de sentiments émotionnels, qu'ils soient positifs ou négatifs. (Pour plus d'informations sur les scores et la magnitude des sentiments, ainsi que sur l'interprétation de ces valeurs, consultez la rubrique Interpréter les valeurs d'analyse des sentiments.)
Si vous souhaitez explorer l'analyse des sentiments avec plus de données, Stanford fournit un ensemble de données d'avis sur les films provenant de la base de données IMDB. Pour récupérer ces avis :
- Téléchargez l'ensemble de données Large Movie Review.
- Décompressez le fichier dans votre répertoire de travail. Les critiques de films sont réparties dans les répertoires
pos
etneg
des répertoires de donnéestrain
ettest
, chaque fichier contenant un avis de film. - Exécutez l'outil
sentiment_analysis.py
sur n'importe quel fichier texte d'avis de films.
Félicitations ! Vous avez effectué vos premières tâches d'inférence à l'aide de l'API Google Cloud Natural Language !