Zielgruppe
In dieser Anleitung erfahren Sie, wie Sie mit der Google Cloud Natural Language API schnell Anwendungen untersuchen und entwickeln können. Die Anleitung richtet sich an Nutzer, die mit den Grundlagen des Programmierens vertraut sind, ist jedoch auch ohne viel Programmierwissen verständlich. Nachdem Sie die Anleitung durchgegangen sind, sollten Sie in der Lage sein, mithilfe der Referenzdokumentation Ihre eigenen grundlegenden Anwendungen zu erstellen.
In dieser Anleitung wird für die Natural Language API-Anwendung Python-Code verwendet. Dabei wird nicht erläutert, wie die Python-Clientbibliotheken funktionieren, sondern wie Aufrufe an die Natural Language API erfolgen. Anwendungen in Java und Node.js verhalten sich im Wesentlichen ähnlich. In den Natural Language API-Beispielen finden Sie Beispiele in anderen Sprachen, einschließlich dieses in der vorliegenden Anleitung verwendeten Beispiels.
Voraussetzungen
Diese Anleitung setzt Folgendes voraus:
- Sie haben ein Google Cloud-Konto. Wenn Sie mit der Plattform noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistung unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
- Sie haben ein Cloud Natural Language API-Projekt in der Google Cloud Console eingerichtet.
- Sie haben in Ihrer Umgebung die Verwendung von Standardanmeldedaten für Anwendungen eingerichtet.
- Sie haben Grundkenntnisse des Programmierens mit Python.
- Sie haben Ihre Python-Entwicklungsumgebung eingerichtet. Es wird empfohlen, die neueste Version von Python (
pip
) undvirtualenv
auf Ihrem System zu installieren. Eine Anleitung finden Sie im Leitfaden zur Einrichtung der Python-Entwicklungsumgebung für die Google Cloud Platform. - Sie haben die Google Cloud-Clientbibliothek für Python installiert.
Sentimentanalyse eines Dokuments
In dieser Anleitung wird eine grundlegende Natural Language API-Anwendung anhand einer analyzeSentiment
-Anfrage vorgestellt, die eine Sentimentanalyse des Texts ausführt.
Bei der Sentimentanalyse wird versucht, die allgemeine (positive oder negative) Einstellung zu erkennen. Die Darstellung erfolgt durch die numerischen score
- und magnitude
-Werte.
Weitere Informationen zu diesen Konzepten finden Sie unter Grundlagen der Natural Language API.
Zuerst zeigen wir den gesamten Code. Wir haben die meisten Kommentare aus diesem Code entfernt, um zu zeigen, wie kurz er ist. Während wir den Code durchgehen, kommen jedoch weitere Kommentare hinzu.
Diese einfache Anwendung führt folgende Aufgaben aus:
- Importiert die für die Ausführung der Anwendung erforderlichen Bibliotheken
- Übergibt eine Textdatei an die Funktion
main()
- Liest die Textdatei und sendet eine Anfrage an den Dienst
- Analysiert die Antwort des Diensts und zeigt sie dem Nutzer an
Diese Schritte werden unten ausführlicher besprochen.
Bibliotheken importieren
Sie importieren die Standardbibliothek argparse
, damit die Anwendung die eingegebenen Dateinamen als Argumente akzeptieren kann.
Zur Verwendung der Cloud Natural Language API müssen Sie auch das Modul language
aus der google-cloud-language
-Bibliothek importieren. Das Modul types
enthält Klassen, die zum Erstellen von Anfragen erforderlich sind.
Anwendung ausführen
Hier parsen Sie das für den Textdateinamen übergebene Argument und übergeben es an die Funktion analyze()
.
Bei der API authentifizieren
Vor der Kommunikation mit dem Natural Language API-Dienst ist es notwendig, dass Sie Ihren Dienst authentifizieren. Dazu verwenden Sie die zuvor abgerufenen Anmeldedaten. Innerhalb einer Anwendung erhalten Sie die Anmeldedaten am einfachsten über die Verwendung der Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC). Standardmäßig ruft ADC die Anmeldedaten von der GOOGLE_APPLICATION_CREDENTIALS
-Umgebungsdatei ab, die so festgelegt sein muss, dass sie auf die JSON-Schlüsseldatei Ihres Dienstkontos verweist. (Sie müssen Ihr Dienstkonto und die Umgebung, wie in der Kurzanleitung beschrieben, zur Verwendung von ADC eingerichtet haben. Weitere Informationen finden Sie unter
Dienstkonto einrichten
.
Die Google Cloud-Clientbibliothek für Python verwendet automatisch die Standardanmeldedaten für Anwendungen.
Anfrage senden
Der Natural Language API-Dienst ist nun bereit. Rufen Sie die Methode analyze_sentiment
der Instanz LanguageServiceClient
auf, um auf den Dienst zuzugreifen.
Die Clientbibliothek enthält die Einzelheiten zu API-Anfragen und -Antworten. In der Natural Language API-Referenz finden Sie alle Einzelheiten zur spezifischen Struktur einer solchen Anfrage.
Dieses Code-Snippet führt folgende Aufgaben aus:
- Instanziiert eine
LanguageServiceClient
-Instanz als Client - Liest den Dateinamen mit den Textdaten in eine Variable ein
- Instanziiert ein
Document
-Objekt mit dem Inhalt der Datei - Ruft die Methode
analyze_sentiment
des Clients auf
Antwort analysieren
Gehen Sie die Antwort durch, damit die score
-Sentimentwerte für die einzelnen Sätze sowie die allgemeinen score
- und magnitude
-Werte für die gesamte Rezension extrahiert und dem Nutzer angezeigt werden.
Beispiel ausführen
Um das Beispiel auszuführen, testen wir es an einer Reihe von (fiktiven) Filmrezensionen für den Film "Bladerunner".
Laden Sie die Beispiele aus Google Cloud Storage herunter:
gcloud storage cp gs://cloud-samples-tests/natural-language/sentiment-samples.tgz .
Informationen zum Installieren der neuesten Version der Google Cloud CLI finden Sie unter Dokumentation zur gcloud CLI
Beim Entpacken dieser Beispiele wird ein "reviews"-Ordner erstellt:
gunzip sentiment-samples.tgz tar -xvf sentiment-samples.tar
Führen Sie die Sentimentanalyse an einer der angegebenen Dateien durch:
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
Das oben aufgeführte Beispiel würde eine relativ positive (Score-Wert von 0.5
) und eine relativ emotionale (Magnitude-Wert von 5.5
) Rezension ergeben.
Beim Durchführen einer Analyse für die anderen Beispiele müssten sich Werte ergeben, die den unten aufgeführten Werten ähnlich sind:
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
Beachten Sie, dass die Magnitude-Werte alle ähnlich sind (und einen relativ gleichen Anteil an emotional relevanter Stimmung zeigen), ausgenommen beim "neutralen" Fall, der eine Rezension mit nicht viel emotionaler, weder positiver noch negativer, Stimmung ergibt. (Weitere Informationen zu Score- und Magnitude-Stimmungswerten und ihrer Interpretation finden Sie unter Werte der Sentimentanalyse interpretieren.)
Wenn Sie die Sentimentanalyse mit einer größeren Datenmenge ausführen möchten, können Sie das von Stanford bereitgestellte Dataset mit IMDB-Filmrezensionen nutzen. So rufen Sie diese Filmrezensionen ab:
- Laden Sie das große Dataset mit Filmrezensionen herunter.
- Entpacken Sie die Datei in Ihr Arbeitsverzeichnis. Die Filmrezensionen sind in
pos
- undneg
-Verzeichnisse in den Datenverzeichnissentrain
undtest
aufgeteilt, wobei jede Textdatei eine Rezension enthält. - Führen Sie das Tool
sentiment_analysis.py
für eine der Textdateien mit Filmrezensionen aus.
Das wars! Sie haben Ihre ersten Ableitungsaufgaben mit der Google Cloud Natural Language API ausgeführt.