[PYTHON] Überprüfen Sie die NLC-Genauigkeit mit dem Jupyter Notebook von Watson Studio

Einführung

Der NLC (Natural Language Classifier) von Watson API ist seit Beginn des Watson API-Dienstes in Betrieb und bietet den Dienst seit langer Zeit an (obwohl dies etwa 3 oder 4 Jahre her ist). ) API. Ursprünglich hatte es nur eine API-Oberfläche, aber in der Mitte wurde eine Beta-Version des UI-Tools bereitgestellt, und in Abhängigkeit von Watson Studio wurde ein UI-Tool mit einer besseren Benutzeroberfläche bereitgestellt, das bis heute andauert. Die Anleitung zur Verwendung von UI-Tools in Studio wurde bereits in einem anderen Artikel Lernen von NLC mit Watson Studio vorgestellt. Dieses Tool verfügt auch über eine einfache Testfunktion, und Tests können auch über die Benutzeroberfläche ausgeführt werden. In diesem Fall besteht jedoch das Problem, dass nur ein Test ausgeführt werden kann und die Zieltestdaten gleichzeitig gesendet werden. Es gibt einen Punkt, an dem es nicht möglich ist, Genauigkeit zu erhalten. Ich habe ein einfaches Tool erstellt, um diesen Teil zu ergänzen, daher werde ich es vorstellen.

Funktionseinführung

Lassen Sie uns zunächst einen kurzen Blick darauf werfen, was Sie mit diesem Tool tun können. Alle für die Einführung hier verwendeten Materialien werden auf Github hochgeladen, sodass Sie den Betrieb in Ihrer Umgebung überprüfen können. Leider hat NLC keinen Lichtplan, aber Standard hat auch eine kostenlose Instanz selbst, und es gibt einen Bereich, in dem Sie den Vorgang unten kostenlos überprüfen können, sodass es möglich sein sollte, dieses Beispiel innerhalb des freien Bereichs zu überprüfen.

Kostenlos 1 Natural Language Classifier pro Monat
Kostenlose 1000 API-Aufrufe pro Monat
4 kostenlose Schulungsveranstaltungen pro Monat

Lernen

Es wird davon ausgegangen, dass Sie bereits gelernt haben. Es spielt keine Rolle, ob Sie Studio-Funktionen verwenden oder die API direkt aufrufen. In diesem Beispiel haben wir den folgenden Text aus Wikipedia verwendet, um drei Genres (Klassen) zu untersuchen: "Japanische Geschichte (j-hist)", "Japanische Geographie (j-geo)" und "Wissenschaft". Es war.

スクリーンショット 2019-11-04 10.47.02.png

Validierungsdaten

Die Überprüfungsdaten verwenden die folgende Execl-Datei.

スクリーンショット 2019-11-04 10.34.57.png

Die erste Zeile von EXCEL bedeutet den Spaltennamen. Das Element mit dem Spaltennamen ** text ** bezeichnet die Textdaten, die beim Aufruf von NLC verwendet werden. ** Klasse ** ist der korrekte Klassenname, der diesem Text entspricht. Andere Gegenstände werden bei der Durchführung des Tests nicht verwendet, daher können sie vorhanden sein oder nicht. In diesem Excel-Beispiel gibt es der Einfachheit halber ein Schlüsselelement ** text_id **, aber es spielt keine Rolle, ob eine solche Spalte vorhanden ist oder nicht.

Ausgabedaten

Die als Ergebnis des Tests erstellten Ausgabedaten sind ebenfalls Excel. Das Beispiel ist unten gezeigt. (Das Erscheinungsbild wird später erstellt, um die Sichtbarkeit zu verbessern. Die tatsächliche Ausgabe ist klarer.)

スクリーンショット 2019-11-04 10.34.08.png

Die ersten drei Spalten sind die Testeingabedaten selbst. Danach wird das Ergebnis der Anwendung von Text auf das Modell angezeigt. Die Ausgabe erfolgt in der Reihenfolge ** Klassenname **, ** Vertrauen **. Die Anzahl der auszugebenden Elemente kann mit Variablen auf dem Notizbuch festgelegt werden. In diesem Beispiel ist n = 3.

Verwirrte Matrix

Die Ausgabe als Excel ist wie oben, aber als Bonusfunktion wird die folgende Verwirrungsmatrix (Confusion Matirx) auch auf dem Notebook angezeigt. Mit dieser Funktion können Sie auch überprüfen, welche Klasse genau und wie viel ist.

スクリーンショット 2019-11-04 10.58.30.png

Umgebung

Ich werde die Umgebung erläutern, die zum Ausführen des Beispiels erforderlich ist.

Cloud-Umgebung

Sie müssen über ein Konto in der IBM Cloud verfügen und NLC und Watson Studio als Services verfügbar haben. Leider benötigen Sie für NLC ein Kreditkartenkonto. Bitte beziehen Sie sich auf den Link unten für das spezifische Verfahren.

Von der Registrierung von IBM Cloud-Benutzern bis zur Verwendung von Jupyter Notebooks

Einfaches Jupyter-Notizbuch in den Cloud-Verfahren zur Verwendung von Jupyter-Notizbuch in IBM Cloud-

Upgrade auf ein Kreditkartenkonto

Verfahren zum Upgrade auf ein IBM Cloud-Guthabenkonto (ehemals Bluemix)

Zusätzliches Serviceregistrierungsverfahren

Der folgende Artikel beschreibt das Verfahren zum Zuordnen von Spark / Watson ML-Diensten zu Studio. Sie können NLC jedoch mit demselben Verfahren verknüpfen. (Die Gruppe der Dienste ist "** AI **" wie Watson ML)

Zusätzliche Dienste in Watson Studio registrieren

Notwendige Materialien

Die notwendigen Materialien zum Bewegen der Probe sind wie folgt.

Dateiname Zweck Verknüpfung
nlc-test-tool-v1.ipynb Skriptkörper zur Überprüfung der Genauigkeit Zum DownloadZurCodebestätigung
nlc-test-sample.xlsx Excel-Beispiel zur Überprüfung Zum Download
nlc-test-sample-output.xlsx Überprüfungsergebnis Excel-Beispiel Zum Download
nlc-train.csv CSV-Beispiel zum Lernen Zum DownloadZurDatenbestätigung

Verfahren

Jetzt werde ich das Verfahren zum tatsächlichen Ausführen der Beispiel-App erläutern.

NLC-Modell lernen

In dieser Beispielanwendung wird das Modell verwendet, das unter Verwendung der obigen nlc-train.csv als Trainingsdaten trainiert wurde. Informationen zum Lernverfahren mit Watson Studio finden Sie im separaten Artikel NLC-Lernen mit Watson Studio. Überprüfen Sie nach dem Lernen die Modell-ID des Modells, das Sie auf dem Asset Management-Bildschirm von Watson Studio erstellt haben. Kopieren Sie es und speichern Sie es mit einem Texteditor usw., wie Sie es später verwenden werden.

スクリーンショット 2019-11-04 11.59.31.png

Bestätigung der NLC-Anmeldeinformationen

https://cloud.ibm.com/services
Zeigen Sie in die IBM Cloud-Serviceliste an und klicken Sie auf den Link NLC.

スクリーンショット 2019-11-04 12.08.10.png

Der Bildschirm sieht wie folgt aus. ① Klicken Sie auf ** Service Credentials ** ② Klicken Sie auf ** Anmeldeinformationen anzeigen ** ③ Klicken Sie auf das ** Clip-Symbol **, um die Anmeldeinformationen zu kopieren In Ordnung.

スクリーンショット 2019-11-04 12.11.34.png

Fügen Sie die Anmeldeinformationen in der Zwischenablage in einen Texteditor ein und speichern Sie sie. Wir werden diese Informationen später verwenden.

Hochladen von Excel zur Verwendung mit dem Tool

Laden Sie Excel nlc-test-sample.xlsx hoch, um es zur Überprüfung in der Cloud zu verwenden. Das Verfahren ist wie folgt:

スクリーンショット 2019-11-04 12.22.44.png

スクリーンショット 2019-11-04 12.22.51.png

スクリーンショット 2019-11-04 12.22.59.png

Nach einem erfolgreichen Upload sollte in ** Data Assets ** nlc-test-sample.xlsx angezeigt werden (siehe folgende Abbildung).

スクリーンショット 2019-11-04 12.33.07.png

Importieren Sie Notebook in Watson Studio

Laden Sie das vorab heruntergeladene nlc-test-tool-v1.ipynb in das Jupyter Notebook von Watson Studio. Informationen zum Laden finden Sie unter Easy Jupyter Notebook in den Cloud-Verfahren zur Verwendung von Jupyter Notebook in IBM Cloud-.

Festlegen von COS-Anmeldeinformationen

Das geladene Jupyter-Notebook muss an mehreren Stellen an die Umgebung angepasst werden. Legen Sie zunächst die COS-Anmeldeinformationen fest. Das Notizbuch sollte unmittelbar nach dem Laden wie in der folgenden Abbildung aussehen. Klicken Sie daher oben auf dem Bildschirm auf das Symbol "** + **", um eine Zelle einzufügen.

スクリーンショット 2019-11-04 12.40.55.png

Im Zustand der folgenden Abbildung

① Klicken Sie oben auf dem Bildschirm auf das Symbol ** Datei ** ② Klicken Sie in der Dateiliste auf die zuvor hochgeladene nlc-test-sample.xlsx. ③ Klicken Sie im angezeigten Menü auf ** Credenstails einfügen **

スクリーンショット 2019-11-04 12.40.11.png

Der Inhalt der leeren Zelle, die Sie zuvor eingefügt haben, sollte wie folgt aussehen. Kopieren Sie daher ** IAM_SRVICE_ID ** nach ** BUCKET ** in die Zwischenablage.

スクリーンショット 2019-11-04 12.53.10.png

Fügen Sie die kopierten Informationen in die Zelle "** COS Credentials **" darunter ein. Das Element der ursprünglichen Dummy-Daten wird gelöscht. Am Ende sollte es so aussehen: (Beachten Sie, dass nur die untere Zeile FILE: infile die Originalinformationen verwendet.)

スクリーンショット 2019-11-04 12.53.40.png

Wenn die Arbeitsserie abgeschlossen ist, werden die für die Arbeit hinzugefügten Zellen zusammen mit den Zellen gelöscht. (Klicken Sie auf das Scherensymbol mit der Zelle, die Sie löschen möchten.)

model_id Einstellung

Stellen Sie die folgende model_id ein. Fügen Sie die zuvor vorbereitete model_id in die Zeile model_id der Zelle "** Variable Definition **" ein. Schließen Sie die Zeichenfolge in einfache Anführungszeichen ein.

スクリーンショット 2019-11-04 13.03.56.png

Festlegen von NLC-Anmeldeinformationen

Legen Sie abschließend die NLC-Anmeldeinformationen fest. Fügen Sie die zuvor vorbereiteten NLC-Anmeldeinformationen in die Zelle "** NLC-Anmeldeinformationen **" ein. Entfernen Sie die zusätzlichen Klammern und die erste Dummy-Elementzeile, damit sie wie in der folgenden Abbildung dargestellt aussehen.

スクリーンショット 2019-11-04 13.07.48.png

Führen Sie Notebook aus

Danke für deine harte Arbeit. Damit sind alle Vorarbeiten abgeschlossen. In ** Jupyter Notebook ** wird die entsprechende Zelle durch Drücken der Umschalttaste + Eingabetaste ausgeführt, während der Cursor an der zu verarbeitenden Zelle ausgerichtet ist und die ausgewählte Zelle um eins vorgerückt wird. Wenn Sie die ausgewählte Zelle zurück in die erste Zelle verschieben und "Umschalt + Eingabetaste" wiederholen, sollte das Modell mit Testdaten ausgewertet, Excel generiert, die Verwirrungsmatrix angezeigt usw. werden. Wenn in einer Zelle ein Fehler auftritt, lesen Sie die Fehlermeldung, um das Problem zu ermitteln.

Wenn keine Fehleranzeige angezeigt wird und das Ausführungsergebnis wie in der folgenden Abbildung dargestellt ist, wurde das Tool erfolgreich ausgeführt.

スクリーンショット 2019-11-04 13.15.41.png

Ausgabe EXCEL abrufen

Das generierte Excel besteht aus dem oben genannten Notizbuch, bis es in COS zurückgeschrieben wird. Das Herunterladen dieses Excel vom Studio-Bildschirm erfordert jedoch einen weiteren Aufwand. Ich werde das Verfahren erklären. (Wenn Sie eine EXCEL-Ausgabe mit demselben Dateinamen erstellen, ist die Prozedur ab dem zweiten Mal nicht mehr erforderlich.)

Wählen Sie zunächst "** Zum Projekt hinzufügen " -> " Daten **" im Projektverwaltungsbildschirm. (Vorgehensweise beim Hochladen der Excel-Datei erläutert)

Wenn Sie die Registerkarte oben auf dem Bildschirm auf "Datei" setzen, sollte die neu generierte Datei "nlc-test-sample-output.xlsx" in die Liste aufgenommen werden. (Wenn es nicht in der Liste angezeigt wird, versuchen Sie, das Porject zu schließen und erneut zu öffnen.)

スクリーンショット 2019-11-04 13.29.40.png

Auf dem Bildschirm unten

① Aktivieren Sie das Kontrollkästchen dieser Datei ② Klicken Sie auf das Symbol, wobei die Punkte vertikal ausgerichtet sind ③ Wählen Sie im Menü "** Als Daten hinzufügen und **"

Wird besorgt.

スクリーンショット 2019-11-04 13.29.52.png

Dann wird, wie im folgenden Bildschirm gezeigt, die Ausgabe EXCEL auch im Feld ** Data Asset ** angezeigt. Klicken Sie auf das Symbol unter Aktionen und wählen Sie im Menü die Option ** Herunterladen **, um die Excel-Datei zur Ausgabe herunterzuladen.

スクリーンショット 2019-11-04 13.23.28.png

Das rohe Excel vor der Verarbeitung sieht folgendermaßen aus.

スクリーンショット 2019-11-04 13.24.09.png

Bonus

Bevor ich es wusste, scheint es, dass EXCEL, das nur ein Blatt enthält, als Datenelement in Studio gelesen werden kann. Fügen Sie das Ergebnis des Lesens von Excel, das auf der Data Asset-Seite von Studio registriert ist, wie oben beschrieben hinzu.

スクリーンショット 2019-11-05 8.11.52.png

スクリーンショット 2019-11-05 8.11.36.png

Recommended Posts

Überprüfen Sie die NLC-Genauigkeit mit dem Jupyter Notebook von Watson Studio
Verwenden von Graphviz mit Jupyter Notebook
Verwenden Sie pip mit Jupyter Notebook
Verwenden Sie Cython mit Jupyter Notebook
Spielen Sie mit Jupyter Notebook (IPython Notebook)
Ermöglichen Sie externe Verbindungen mit dem Jupiter-Notebook
Formatieren mit autopep8 auf Jupyter Notebook
Visualisieren Sie den Entscheidungsbaum mit einem Jupyter-Notizbuch
Machen Sie einen Sound mit Jupyter Notebook
Markdown mit Jupyter-Notebook verwenden (mit Verknüpfung)
Fügen Sie mit Jupyter Notebook weitere Kernel hinzu
Bequeme Analyse mit Pandas + Jupyter Notebook
Verwenden Sie nbextensions mit Anacondas Jupyter-Notizbuch
Verwenden von Apache Spark mit Jupyter Notebook (IPython Notebook)
Ich möchte einen Blog mit Jupyter Notebook schreiben
Verwenden Sie Jupyter Lab und Jupyter Notebook mit EC2
Probieren Sie SVM mit scikit-learn auf Jupyter Notebook aus
Verwendung des Jupyter-Notebooks mit ABCI
Verknüpfung von Python und JavaScript mit dem Jupiter-Notizbuch
[Jupyter Notebook Memo] Kanji mit Matplotlib anzeigen
Reichhaltige Zellenausgabe mit Jupyter Notebook (IPython)
So debuggen Sie mit Jupyter oder iPython Notebook
Erstellen einer Analyseumgebung mit Docker (Jupyter Notebook + PostgreSQL)
Datenanalyse zur Verbesserung von POG 2 ~ Analyse mit Jupiter-Notebook ~
Aktivieren Sie Jupyter Notebook mit conda auf dem Remote-Server
Versuchen Sie, die virtuelle Umgebung von conda mit Jupyter Notebook zu verwenden
Füllen Sie die Breite des Jupyter-Notizbuchs, um den Browser zu füllen
Grafikzeichnung mit Jupyter (Ipython-Notizbuch) + Matplotlib + Vagabund
Jupyter Notizbuch Memo
Einführung in Jupyter Notebook
Leistungsstarkes Jupyter-Notizbuch
Jupyter Notebook Passwort
Jupyter Notizbuch Memo
Aufbau einer virtuellen Umgebung mit Docker + Flask (Python) + Jupyter-Notebook
Einfaches maschinelles Lernen mit AutoAI (Teil 4) Jupyter Notebook
Überwachen Sie das Trainingsmodell mit TensorBord auf Jupyter Notebook
Zeichnen einer Baumstruktur mit D3.js in Jupyter Notebook
Importieren Sie bestimmte Zellen aus anderen Notizbüchern mit Jupyter-Notizbuch
EC2-Bereitstellung mit Vagrant + Jupyter (IPython Notebook) auf Docker