Zielgruppe
In dieser Anleitung erfahren Sie, wie Sie mit der 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 eine Natural Language-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, einschließlich des Beispiels in dieser Anleitung, finden Sie Beispiele in anderen Sprachen.
Voraussetzungen
Diese Anleitung setzt Folgendes voraus:
- Sie haben ein Cloud Natural Language API-Projekt in der Google Cloud Console eingerichtet.
- Sie haben Ihre Umgebung mit Standardanmeldedaten für Anwendungen in der Google Cloud Console eingerichtet.
- Sie sind mit Python in der Google Cloud Console-Programmierung vertraut.
- 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.
Überblick
In dieser Anleitung wird anhand von classifyText
-Anfragen eine grundlegende Natural Language-Anwendung vorgestellt, die Inhalte zusammen mit einer Konfidenzbewertung in Kategorien einteilt. Beispiel:
category: "/Internet & Telecom/Mobile & Wireless/Mobile Apps & Add-Ons"
confidence: 0.6499999761581421
Die Liste aller verfügbaren Kategorielabels finden Sie unter Kategorien.
Mithilfe dieser Anleitung können Sie eine Anwendung zur Durchführung der folgenden Aufgaben erstellen:
- Mehrere Textdateien klassifizieren und das Ergebnis in eine Indexdatei schreiben
- Eingabeabfragetext zur Suche nach ähnlichen Textdateien verarbeiten
- Eingabeabfrage-Kategorielabels zur Suche nach ähnlichen Textdateien verarbeiten
In dieser Anleitung werden Inhalte von Wikipedia verwendet. Sie könnten eine ähnliche Anwendung erstellen, um z. B. Nachrichtenartikel oder Onlinekommentare zu verarbeiten.
Quelldateien
Den Quellcode für die Anleitung finden Sie in den Beispielen zur Python-Clientbibliothek auf GitHub.
In dieser Anleitung wird Beispielquelltext von Wikipedia verwendet. Sie finden die Beispieltextdateien im Ordner resources/texts des GitHub-Projekts.
Bibliotheken importieren
Zur Verwendung der Cloud Natural Language API müssen Sie das Modul language
aus der Bibliothek google-cloud-language
importieren. Das Modul language.types
enthält Klassen, die zum Erstellen von Anfragen erforderlich sind. Das Modul language.enums
wird verwendet, um den Typ des Eingabetextes anzugeben. In dieser Anleitung werden Nur-Text-Inhalte klassifiziert (language.enums.Document.Type.PLAIN_TEXT
).
Damit die Ähnlichkeit von Texten anhand der resultierenden Inhaltsklassifizierung berechnet werden, wird in dieser Anleitung numpy
für Vektorberechnungen verwendet.
Python
Informationen zum Installieren und Verwenden der Clientbibliothek für Natural Language finden Sie unter Natural Language-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Natural Language Python API.
Richten Sie zur Authentifizierung bei Natural Language Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Schritt 1: Inhalte klassifizieren
Sie können die Python-Clientbibliothek verwenden, um eine Anfrage zur Klassifizierung von Inhalten an die Natural Language API zu stellen. Die Python-Clientbibliothek enthält die Details für Anfragen an die und Antworten von der Natural Language API.
Die Funktion classify
in der Anleitung ruft die Methode classifyText
der Natural Language API auf. Dabei wird zuerst eine Instanz der Klasse LanguageServiceClient
erstellt und dann wird die Methode classify_text
der Instanz LanguageServiceClient
aufgerufen.
Die Funktion classify
der Anleitung klassifiziert in diesem Beispiel nur Textinhalte. Sie können den Inhalt einer Webseite auch klassifizieren. Dazu übergeben Sie die Quell-HTML der Webseite als text
und legen den Parameter type
auf language.enums.Document.Type.HTML
fest.
Weitere Informationen finden Sie unter Inhaltsklassifizierung. Details zur Struktur von Anfragen an die Natural Language API finden Sie in der Natural Language-Referenz.
Python
Informationen zum Installieren und Verwenden der Clientbibliothek für Natural Language finden Sie unter Natural Language-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Natural Language Python API.
Richten Sie zur Authentifizierung bei Natural Language Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Das zurückgegebene Ergebnis ist ein Wörterbuch mit den Kategorielabels als Schlüssel und Konfidenzbewertungen als Werten. Beispiel:
{
"/Computers & Electronics": 0.800000011920929,
"/Internet & Telecom/Mobile & Wireless/Mobile Apps & Add-Ons": 0.6499999761581421
}
Das Python-Script der Anleitung ist so strukturiert, dass es für schnelle Tests über die Befehlszeile ausgeführt werden kann. Sie können beispielsweise Folgendes ausführen:
python classify_text_tutorial.py classify "Google Home enables users to speak voice commands to interact with services through the Home's intelligent personal assistant called Google Assistant. A large number of services, both in-house and third-party, are integrated, allowing users to listen to music, look at videos or photos, or receive news updates entirely by voice. "
Schritt 2: Mehrere Textdateien indexieren
Die Funktion index
im Anleitungsskript verwendet als Eingabe ein Verzeichnis mit mehreren Textdateien sowie den Pfad zu einer Datei, in der sie die indexierte Ausgabe speichert. Der Standardname ist index.json
. Die Funktion index
liest den Inhalt jeder Textdatei im Eingabeverzeichnis und übergibt dann die Textdateien an die Cloud Natural Language API, damit sie in Inhaltskategorien klassifiziert werden.
Python
Informationen zum Installieren und Verwenden der Clientbibliothek für Natural Language finden Sie unter Natural Language-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Natural Language Python API.
Richten Sie zur Authentifizierung bei Natural Language Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Die Ergebnisse aus der Cloud Natural Language API für jede Datei werden in einem einzigen Wörterbuch organisiert, als JSON-String serialisiert und dann in eine Datei geschrieben. Beispiel:
{
"android.txt": {
"/Computers & Electronics": 0.800000011920929,
"/Internet & Telecom/Mobile & Wireless/Mobile Apps & Add-Ons": 0.6499999761581421
},
"google.txt": {
"/Internet & Telecom": 0.5799999833106995,
"/Business & Industrial": 0.5400000214576721
}
}
Um Textdateien mit dem standardmäßigen Ausgabedateinamen index.json
über die Befehlszeile zu indexieren, führen Sie den folgenden Befehl aus:
python classify_text_tutorial.py index resources/texts
Schritt 3: Index abfragen
Mit Kategorielabels abfragen
Sobald die Indexdatei (Standarddateiname = index.json
) erstellt wurde, können Sie Abfragen an den Index senden, um einige der Dateinamen sowie die zugehörigen Konfidenzbewertungen abzurufen.
Eine Möglichkeit dafür ist die Verwendung eines Kategorielabels als Abfrage. In der Anleitung wird dies mit der Funktion query_category
erreicht. Angaben zur Implementierung von Hilfsfunktionen wie similarity
finden Sie in der Datei classify_text_tutorial.py
. In Ihren Anwendungen sollten die Ähnlichkeitsbewertung und das Ähnlichkeits-Ranking sorgfältig in Abhängigkeit von konkreten Anwendungsfällen gestaltet werden.
Python
Informationen zum Installieren und Verwenden der Clientbibliothek für Natural Language finden Sie unter Natural Language-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Natural Language Python API.
Richten Sie zur Authentifizierung bei Natural Language Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Eine Liste aller verfügbaren Kategorien finden Sie unter Kategorien.
Wie zuvor können Sie die Funktion query_category
über die Befehlszeile aufrufen:
python classify_text_tutorial.py query-category index.json "/Internet & Telecom/Mobile & Wireless"
Die Ausgabe sollte in etwa so aussehen:
Query: /Internet & Telecom/Mobile & Wireless
Most similar 3 indexed texts:
Filename: android.txt
Similarity: 0.665573579045
Filename: google.txt
Similarity: 0.517527175966
Filename: gcp.txt
Similarity: 0.5
Mit Text abfragen
Alternativ können Sie Abfragen mit Text durchführen, der nicht Teil des indexierten Texts ist. Die Funktion query
der Anleitung ähnelt der Funktion query_category
, umfasst aber einen zusätzlichen Schritt, bei dem eine classifyText
-Anfrage für die Texteingabe gestellt und die Ergebnisse zum Abfragen der Indexdatei verwendet werden.
Python
Informationen zum Installieren und Verwenden der Clientbibliothek für Natural Language finden Sie unter Natural Language-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Natural Language Python API.
Richten Sie zur Authentifizierung bei Natural Language Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Führen Sie Folgendes aus, um dies über die Befehlszeile zu tun:
python classify_text_tutorial.py query index.json "Google Home enables users to speak voice commands to interact with services through the Home's intelligent personal assistant called Google Assistant. A large number of services, both in-house and third-party, are integrated, allowing users to listen to music, look at videos or photos, or receive news updates entirely by voice. "
Die Ausgabe sieht ähnlich wie folgt aus:
Query: Google Home enables users to speak voice commands to interact with services through the Home's intelligent personal assistant called Google Assistant. A large number of services, both in-house and third-party, are integrated, allowing users to listen to music, look at videos or photos, or receive news updates entirely by voice.
Category: /Internet & Telecom, confidence: 0.509999990463
Category: /Computers & Electronics/Software, confidence: 0.550000011921
Most similar 3 indexed texts:
Filename: android.txt
Similarity: 0.600579500049
Filename: google.txt
Similarity: 0.401314790229
Filename: gcp.txt
Similarity: 0.38772339779
Nächste Schritte
Mit der API zur Inhaltsklassifizierung können Sie weitere Anwendungen erstellen. Beispiel:
Klassifizieren Sie jeden Absatz in einem Artikel, um den Übergang zwischen Themen zu sehen.
Klassifizieren Sie mit Zeitstempeln versehene Inhalte und analysieren Sie den Trend der Themen im Laufe der Zeit.
Vergleichen Sie Inhaltskategorien mit der Inhaltsstimmung unter Verwendung der
analyzeSentiment
-Methode.Vergleichen Sie Inhaltskategorien mit im Text erwähnten Entitäten.
Darüber hinaus können Sie Ihren Workflow mithilfe weiterer Google Cloud-Produkte optimieren:
In der Beispielanwendung für diese Anleitung wurden lokale Textdateien verarbeitet. Sie können den Code aber so ändern, dass Textdateien verarbeitet werden, die in einem Google Cloud Storage-Bucket gespeichert sind. Dazu übergeben Sie einen Google Cloud Storage-URI an die Methode
classify_text
.In der Beispielanwendung für diese Anleitung haben wir die Indexdatei lokal gespeichert und jede Abfrage wird durch Lesen der gesamten Indexdatei verarbeitet. Wenn Sie eine große Menge an indexierten Daten haben oder viele Abfragen verarbeiten müssen, entsteht hierdurch eine hohe Latenz. Datastore ist eine logische und bequeme Wahl für die Speicherung der Indexdaten.