Verstehen Sie die Verarbeitung natürlicher Sprache

Verstehen Sie die Verarbeitung natürlicher Sprache

Websites und Apps können verschiedene bewegliche Teile enthalten, darunter Front-End-Creative, serverseitige Verarbeitung, APIs und Datenspeicherung. AI kann jede dieser Komponenten anschließen.

Im Frontend können Sie Sprachbefehle, Chatbot-Schnittstellen oder reaktive WebGL-Kreativelemente verbinden. Im Backend verwenden Datenbanken intelligente Algorithmen, um Geschwindigkeit und Analyse zu maximieren. APIs können eine Abstraktionsebene von einer Vielzahl von KI-Funktionen bereitstellen, von Vorhersagen bis hin zu kollektivem Training.

Wenn Sie gerade erst als Entwickler anfangen und einige Hinweise benötigen, finden Sie es heraus wie man eine App macht , oder wir können Ihnen bei der Auswahl helfen Webseitenersteller , Web-Hosting Service und Cloud-Speicher benutzen.



  • Chatbots: Was Sie wissen müssen.

Natürliche Sprache

Die Verarbeitung natürlicher Sprache (NLP) konzentriert sich auf die Interaktionen zwischen Maschinen und menschlichen Sprachen. Ziel von NLP ist es, große Mengen an Sprachdaten zu verarbeiten und zu analysieren, um die natürliche Kommunikation zwischen Mensch und Maschine zu verbessern. Dieses Gebiet der KI umfasst die Spracherkennung, das Verstehen von Sprache und das Erzeugen natürlicher Sprache. Unser Fokus wird auf dem Verständnis der natürlichen Sprache, dem Prozess der Analyse und Bestimmung der Bedeutung oder Absicht eines Textes liegen.

NLP hat mehrere Konzepte gemeinsam:

  • Sprache erkennen - Das Verständnis, welche Sprache im Text verwendet wird, ist von grundlegender Bedeutung, um zu wissen, welche Wörterbücher, Syntax- und Grammatikregeln für die Analyse verwendet werden sollen.
  • Entitätsextraktion - Identifizieren der Schlüsselwörter in Phrasen, wie relevant oder hervorstechend sie für den Gesamttext sind, und Bestimmen, was die Entitäten sind, basierend auf Schulungen oder Wissensdatenbanken.
  • Stimmungsanalyse - Beurteilung des allgemeinen Gefühlsniveaus in einem Text. Ist es im Allgemeinen positiv oder negativ? Auch die Stimmung in Bezug auf jedes Unternehmen. Spiegelt die Aussage positive oder negative Gefühle zum Thema wider?
  • Syntaktische Analyse - Die Struktur des Textes verstehen. Identifizieren Sie Attribute wie Sätze, Wortarten (z. B. Substantiv, Verb), Stimme, Geschlecht, Stimmung und Zeitform.
  • Inhaltsklassifizierung oder -kategorisierung - Organisieren Sie den Inhalt des Textes in gemeinsame Kategorien, um sie effizienter zu verarbeiten. Zum Beispiel sind New York, London, Paris, München alle 'Standorte' oder 'Städte'.

Es gibt zahlreiche technische Ansätze zum Parsen und Verarbeiten der Daten. Unabhängig davon, welches NLP-Tool Sie verwenden, müssen Sie die allgemeinen Schritte des Parsens und Analysierens in Angriff nehmen. Normalerweise wird Text in logische Abschnitte unterteilt. Diese Blöcke werden anhand trainierter Daten oder Wissensdatenbanken und zugewiesener Werte analysiert, die normalerweise zwischen 0,0 und 1,0 liegen, um das Vertrauen in die Analyse widerzuspiegeln.

Googles API für natürliche Sprache

Für dieses Tutorial verwenden wir die neue API für natürliche Sprache, die von Google entwickelt wurde. Es gibt zahlreiche APIs, aber Google bietet einige nette Vorteile, darunter Cloud Computing, Geschwindigkeit, eine unglaublich große Benutzerbasis und maschinelles Lernen. Die Suchmaschinen und Tools von Google verwenden AI seit Jahren. Sie nutzen all diese Erfahrungen und das Lernen, indem Sie die öffentlich zugänglichen Dienste nutzen.

APIs lassen sich problemlos in jedes Projekt integrieren. Dies spart viel Zeit im Vergleich zur Handcodierung Ihres eigenen NLP. Die abstrahierte Restful-API ermöglicht die Integration in nahezu jede gewünschte Sprache über gängige cURL-Aufrufe oder eines der zahlreichen verfügbaren SDKs. Es gibt ein paar Tricks, um sich einzurichten, aber wir werden es Schritt für Schritt durcharbeiten.

Klicken Sie auf das Symbol oben rechts im Bild, um es zu vergrößern.

01. Erstellen Sie ein neues Google Cloud-Projekt

Verstehen der Verarbeitung natürlicher Sprache: Google Cloud Project

Erstellen eines neuen GCP

Gehe zum Google Cloud Platform Console und erstellen Sie ein neues Projekt oder wählen Sie ein vorhandenes aus, mit dem Sie arbeiten möchten. Der Dienst kann kostenlos verwendet werden, bis Sie eine große Anzahl von API-Anforderungen stellen. Möglicherweise müssen Sie dem Konto Rechnungsinformationen zuordnen, wenn Sie die API aktivieren. Dies wird jedoch nicht mit geringem Volumen berechnet. Sie können die Dienste nach Abschluss des Tests entfernen, wenn Sie dies wünschen.

02. Aktivieren Sie die Cloud NL

Grundlegendes zur Verarbeitung natürlicher Sprache: Aktivieren Sie die Cloud NL

Durchsuchen der API-Bibliothek und Aktivieren der API für natürliche Sprache

Navigieren Sie zu API-Bibliothek und wählen Sie die NL-API aus. Nach der Aktivierung sollte ein kleines grünes Häkchen und die Meldung 'API aktiviert' daneben angezeigt werden.

03. Erstellen Sie ein Dienstkonto

Sie müssen eine einrichten Dienstkonto für diesen Service. Da wir die Nutzung wie einen typischen Dienst einrichten, ist dies die beste Vorgehensweise. Es funktioniert auch am besten mit dem Authentifizierungsfluss.

04. Privaten Schlüssel herunterladen

Verstehen der Verarbeitung natürlicher Sprache: Laden Sie den privaten Schlüssel herunter

Abrufen Ihres privaten Schlüssels für das Dienstkonto

Sobald Sie ein Projekt mit aktivierter API und einem Dienstkonto haben, können Sie Ihren privaten Schlüssel als JSON-Datei herunterladen. Notieren Sie sich den Speicherort der Datei, damit Sie sie in den nächsten Schritten verwenden können.

Wenn Sie Probleme mit den ersten Schritten haben, gibt es eine Anleitung Hier Das hilft, was mit dem Herunterladen des JSON-Schlüssels endet.

05. Umgebungsvariable setzen

Als nächstes müssen Sie die einstellen GOOGLE_APPLICATION_CREDENTIALS Umgebungsvariable, damit unsere API-Aufrufe darauf zugreifen können. Dies verweist auf Ihre JSON-Datei, die Sie gerade heruntergeladen haben, und erspart Ihnen, jedes Mal den Pfad eingeben zu müssen. Öffnen Sie ein neues Terminalfenster und verwenden Sie den Befehl export wie folgt:

export GOOGLE_APPLICATION_CREDENTIALS='/Users/username/Downloads/[file name].json'

Ersetze das [Dateinamen] mit Ihrer privaten Schlüsseldatei und verwenden Sie den Pfad zu Ihrer Datei.

Unter Windows können Sie dasselbe über die Befehlszeile wie folgt tun:

$env:GOOGLE_APPLICATION_CREDENTIALS='C:UsersusernameDownloads[FILE_NAME].json'

Hinweis: Wenn Sie Ihr Terminal- oder Konsolenfenster schließen, müssen Sie dies möglicherweise erneut ausführen, um die Variable festzulegen.

06. Rufen Sie die API auf

Jetzt können Sie die API verwenden und NLP in Aktion sehen. Sie werden cURL verwenden, um schnelle Tests der API durchzuführen. Sie können diese Methode auch aus Ihrem Code verwenden.

cURL-Anforderungen können in den meisten Sprachen gestellt werden. Dies bedeutet, dass Sie die Aufrufe direkt in der Befehlszeile ausführen oder das Ergebnis einer Variablen in der Sprache Ihrer Wahl zuweisen können. Schau hier für einige schnelle Tipps zur Verwendung von cURL.

Versuchen wir eine Testanfrage mit einem einfachen Satz. Wir werden es durch die laufen lassen analyseEntities Endpunkt.

Geben Sie in Ihrer Terminal- oder Befehlszeilenschnittstelle den folgenden Befehl ein:

curl -X POST -H 'Authorization: Bearer '$(gcloud auth application-default print-access-token) -H 'Content-Type: application/json; charset=utf-8' --data '{ 'document':{ 'type':'PLAIN_TEXT', 'content':'John McCarthy is one of the founding fathers of artificial intelligence.' }, 'encodingType':'UTF8' }' 'https://language.googleapis.com/v1/documents:analyzeEntities'

Nach der Ausführung sollte ein JSON-Ergebnis angezeigt werden. Möglicherweise werden Sie beim ersten Mal aufgefordert, die API zu aktivieren oder den Zugriff zuzulassen. Sie können diese Eingabeaufforderung mit 'Ja' oder 'Ja' beantworten. Danach sollte der JSON zurückgegeben werden.

Es wird eine Reihe von Einträgen zurückgegeben, ähnlich denen wie dieser erste für den Eintrag 'John McCarthy'.

{ 'name': 'John McCarthy', 'type': 'PERSON', 'metadata': { 'wikipedia_url': 'https://en.wikipedia.org/wiki/John_McCarthy_(computer_scientist)', 'mid': '/m/01svfj' }, 'salience': 0.40979216, 'mentions': [ { 'text': { 'content': 'John McCarthy', 'beginOffset': 0 }, 'type': 'PROPER' } ] },

Hinweis: Sie können im Inhaltsparameter der cURL-Anweisung eine URL anstelle von Inhaltstext verwenden.

Sie können in der Liste der Beispielentitäten die Name identifiziert und die Art , die die KI bestimmt hat, ist a PERSON . Es wurde auch eine Wikipedia-Übereinstimmung für die gefunden Name und gab das zurück. Dies kann nützlich sein, da Sie diese URL als Inhalt für eine zweite Anforderung an die API verwenden und noch mehr Entitäten und Informationen zu dieser API abrufen können. Sie können auch die sehen Salience Wert bei 0,4, was auf eine signifikante relative Bedeutung der Entität im Kontext des von uns bereitgestellten Textes hinweist. Sie können auch sehen, dass es korrekt als identifiziert ist RICHTIG Dies bezieht sich auf den Substantivtyp (ein Eigenname) sowie auf die Anzahl der Vorkommen (Erwähnungen) der Entität im Text.

Die API gibt Werte für alle Schlüsselentitäten in dem von Ihnen gesendeten Text zurück. Dies allein kann äußerst nützlich sein, um zu verarbeiten, was ein Benutzer möglicherweise mit Ihrer App kommuniziert. Unabhängig davon, was der Satz enthält, besteht eine gute Chance, dass es sich um die Person John McCarthy handelt, und wir könnten allein auf dieser Grundlage einige Informationen für den Benutzer nachschlagen. Wir könnten auch auf eine Weise reagieren, die unser Verständnis widerspiegelt, dass sich diese Aussage auf eine Person bezieht.

Sie können diese Methode weiterhin verwenden, um die von uns verwendeten Anrufe zu testen. Sie können das lokale SDK auch in einer von Ihnen bevorzugten Sprache einrichten und in Ihre App integrieren.

07. Installieren Sie die Clientbibliothek

Es ist Zeit, eine einfache webbasierte App zu erstellen, um zu demonstrieren, wie die API in Projekte integriert wird.

Für NLP-Apps wird häufig Python oder Node verwendet. Um die Vielseitigkeit der Verwendung der APIs zu demonstrieren, verwenden wir das PHP SDK. Wenn Sie den Code in eine andere Sprache ändern möchten, gibt es eine große Anzahl von SDKs Hier .

Stellen Sie zunächst sicher, dass auf Ihrem lokalen oder Remote-Server ein Projektordner eingerichtet ist. Wenn Sie es noch nicht haben, holen Sie sich Composer und installieren Sie es in Ihrem Projektordner. Möglicherweise ist Composer bereits global installiert, und das ist auch in Ordnung.

Führen Sie den folgenden Composer-Befehl aus, um die Herstellerdateien in Ihrem Projekt zu installieren:

php -r 'copy('https://getcomposer.org/installer', 'composer-setup.php');' php -r 'if (hash_file('sha384', 'composer-setup.php') === '93b54496392c06277467 0ac18b134c3b3a95e5a5e5 c8f1a9f115f203b75bf9a129d5 daa8ba6a13e2cc8a1da080 6388a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;' php composer-setup.php php -r 'unlink('composer-setup.php');' php composer.phar require google/cloud-language

Composer erstellt einen Herstellerordner in Ihrem Projektordner und installiert alle Abhängigkeiten für Sie.

Wenn Sie beim Einrichten nicht weiterkommen und PHP verwenden möchten, können Sie diese Ressource unter überprüfen Composer installieren .

08. Erstellen Sie eine neue Datei

Wenn Sie in PHP mitarbeiten, erstellen Sie eine neue PHP-Datei in Ihrem Projektordner. Richten Sie es nach Belieben ein, fügen Sie jedoch ein einfaches HTML-Formular hinzu, um schnell Text einzureichen.

Hier ist eine Beispiel-PHP-Datei mit dem Formular:

NET - NLP Tutorial

Der Code enthält eine einfache HTML-Datei mit einem Formular sowie einen Platzhalter für Ihren PHP-Code. Der Code beginnt mit der einfachen Überprüfung der Existenz der Inhaltsvariablen (über das Formular gesendet). Wenn es noch nicht eingereicht wurde, wird es einfach beendet und tut nichts.

09. Machen Sie die Umgebungsvariable

Ähnlich wie bei dem Schritt, den wir zuvor bei der Verwendung des Befehlszeilenaufrufs cURL ausgeführt haben, müssen wir den Wert festlegen GOOGLE_APPLICATION_CREDENTIALS Variable. Dies ist wichtig, damit es sich authentifiziert.

In PHP verwenden wir die putenv Befehl zum Festlegen einer Umgebungsvariablen. Die vom SDK erstellte Authentifizierung läuft ab. Sie müssen diese also in Ihren Code aufnehmen, damit sie jedes Mal abgerufen und festgelegt werden kann.

Fügen Sie diesen Code als nächstes in Ihren PHP-Code ein:

putenv('GOOGLE_APPLICATION_CREDENTIALS=/Users/richardmattka/Downloads/NLP Tutorial 1-1027228343dc.json');

Ersetzen Sie den Pfad und den Dateinamen wie zuvor durch Ihren eigenen.

10. Initialisieren Sie die Bibliothek

Fügen Sie als Nächstes die Bibliothek hinzu und initialisieren Sie die LanguageClient Klasse in Ihrem Code. Fügen Sie diesen Code neben Ihrem PHP-Code-Abschnitt hinzu:

require __DIR__ . '/vendor/autoload.php'; use GoogleCloudLanguageLanguageClient; $projectId = 'nlp-tutorial-1-1543506531329'; $language = new LanguageClient([ 'projectId' => $projectId ]);

Beginnen Sie, indem Sie das automatische Laden des Herstellers benötigen. Dies ist in Python oder Node ähnlich, wenn Sie Ihre Abhängigkeiten benötigen. Importieren Sie die LanguageClient als nächstes, um die Klasse zu nutzen. Definieren Sie Ihre projectId . Wenn Sie sich nicht sicher sind, was dies ist, können Sie es in Ihrer GCP-Konsole nachschlagen, in der Sie das Projekt ursprünglich eingerichtet haben. Erstellen Sie schließlich eine neue LanguageClient Objekt mit Ihrem projectId und ordne es dem zu $ Sprache Variable.

11. Analysieren Sie die Entitäten

Jetzt können Sie die NLP-API in Ihrem Code verwenden. Sie können den Inhalt des Formulars an die API senden und das Ergebnis abrufen. Im Moment zeigen Sie das Ergebnis nur als JSON auf dem Bildschirm an. In der Praxis können Sie die Ergebnisse bewerten und nach Ihren Wünschen verwenden. Sie können dem Benutzer anhand der Ergebnisse antworten, weitere Informationen nachschlagen oder Aufgaben ausführen.

Zusammenfassend lässt sich sagen, dass die Entitätsanalyse Informationen über das 'Was' oder die 'Dinge' im Text zurückgibt.

$result = $language->analyzeEntities($content); foreach($result->entities() as $e){ echo ' '; $result = json_encode($e, JSON_PRETTY_PRINT); echo $result; echo ' '; }

Dieser Code sendet den Inhalt des übermittelten Formulars an die analyseEntities Endpunkt und speichert das Ergebnis im $ Ergebnis Variable. Anschließend durchlaufen Sie die Liste der zurückgegebenen Entitäten $ result-> entity () . Um die Lesbarkeit zu verbessern, können Sie es vor der Ausgabe auf dem Bildschirm als JSON formatieren. Auch dies ist nur ein Beispiel, um Ihnen zu zeigen, wie Sie es verwenden. Sie können es verarbeiten und auf die Ergebnisse reagieren, wie Sie es benötigen.

12. Analysieren Sie die Stimmung

Verstehen der Verarbeitung natürlicher Sprache: Analysieren Sie das Gefühl

Verwenden eines einfachen Formulars und serverseitigen Codes zum Verarbeiten von Text mit der Natural Language API

Anstatt das „Was“ des Inhalts zu kennen, kann es auch wertvoll sein, das Gefühl zu kennen. Wie fühlt sich der Benutzer? Wie stehen sie zu den Entitäten in ihrer Kommunikation?

Aktualisieren Sie den Code, um das zu verwenden analyseEntitySentiment Endpunkt. Dies bewertet beide Entitäten wie zuvor, gibt aber auch eine Stimmungsbewertung für jede zurück.

$result = $language->analyzeEntitySentiment($content); foreach($result->entities() as $e){ echo ' '; $result = json_encode($e, JSON_PRETTY_PRINT); echo $result; echo ' '; }

Wenn Sie den Inhalt über das Formular 'Star Wars ist der beste Film aller Zeiten' testen, sehen Sie ein ähnliches Ergebnis:

{ 'name': 'Star Wars', 'type': 'WORK_OF_ART', 'metadata': { 'mid': '/m/06mmr', 'wikipedia_url': 'https://en.wikipedia.org/wiki/Star_Wars' }, 'salience': 0.63493526, 'mentions': [ { 'text': { 'content': 'Star Wars', 'beginOffset': 0 }, 'type': 'PROPER', 'sentiment': { 'magnitude': 0.6, 'score': 0.6 } } ], 'sentiment': { 'magnitude': 0.6, 'score': 0.6 } } { 'name': 'movie', 'type': 'WORK_OF_ART', 'metadata': [], 'salience': 0.36506474, 'mentions': [ { 'text': { 'content': 'movie', 'beginOffset': 22 }, 'type': 'COMMON', 'sentiment': { 'magnitude': 0.9, 'score': 0.9 } } ], 'sentiment': { 'magnitude': 0.9, 'score': 0.9 } }

Dies zeigt einen positiven Stimmungswert von signifikantem Wert. Sie kennen jetzt nicht nur die Schlüsselwörter, die der Benutzer kommuniziert, sondern auch, wie er sich dabei fühlt. Ihre App kann basierend auf diesen Daten angemessen reagieren. Sie haben eine eindeutige Identifizierung von 'Star Wars' als Hauptthema mit hohem Stellenwert. Sie haben einen Wikipedia-Link, über den Sie weitere Informationen abrufen können, wenn Sie diese URL über denselben API-Aufruf ausführen möchten. Sie wissen auch, dass der Benutzer sich positiv dazu fühlt. Sie können sogar sehen, dass die Aussage das positive Gefühl für die Qualität als Film gewichtet. Sehr cool.

Abschiedsgedanken

Versuchen Sie, mit anderen Endpunkten zu experimentieren. Schauen Sie sich insbesondere die analyseSyntax und classifyText Endpunkte. Diese geben Ihnen noch mehr Teile der Sprachdaten und die Klassifizierung der Inhaltsentitäten.

Dieser Artikel wurde ursprünglich in Ausgabe 315 von veröffentlicht Netz , das weltweit meistverkaufte Magazin für Webdesigner und Entwickler. Kaufen Sie hier die Ausgabe 315 oder Abonnieren Sie hier .

Zum Thema passende Artikel: