[PYTHON] Vérifiez la précision du NLC avec le bloc-notes Jupyter de Watson Studio

introduction

Le NLC (Natural Language Classifier) de Watson API est en service depuis le début du service Watson API et fournit le service depuis longtemps (bien que cela dure depuis environ 3 ou 4 ans). ) API. Au départ, il ne disposait que d'une interface API, mais une version bêta de l'outil d'interface utilisateur était fournie au milieu, et un outil d'interface utilisateur avec une meilleure interface utilisateur était fourni en fonction de Watson Studio, et cela continue jusqu'à ce jour. Le guide d'utilisation des outils d'interface utilisateur sur Studio a déjà été présenté dans un autre article Apprendre NLC avec Watson Studio. Cet outil dispose également d'une fonction de test simple et les tests peuvent également être effectués à partir de l'interface utilisateur, mais le problème dans ce cas est qu'un seul test peut être effectué et que les données de test cibles sont envoyées en même temps. Il y a un point qu'il n'est pas possible d'obtenir la précision. J'ai créé un outil simple pour compléter cette partie, je vais donc le présenter.

Introduction de la fonction

Tout d'abord, examinons rapidement ce que vous pouvez faire avec cet outil. Tous les matériaux utilisés pour l'introduction ici sont téléchargés sur Github, vous pouvez donc vérifier le fonctionnement dans votre environnement. Malheureusement, NLC n'a pas de plan léger, mais Standard a également une instance elle-même gratuitement, et il existe une plage où vous pouvez vérifier le fonctionnement gratuitement ci-dessous, il devrait donc être possible de vérifier cet échantillon dans la plage libre.

1 classificateur de langage naturel gratuit par mois
1000 appels API gratuits par mois
4 formations gratuites par mois

Apprentissage

On suppose que vous avez déjà appris. Peu importe que vous utilisiez les fonctionnalités de Studio ou que vous appeliez directement l'API. Dans cet exemple, nous avons utilisé le texte suivant de Wikipédia pour étudier trois genres (classes): "Histoire japonaise (j-hist)", "Géographie japonaise (j-geo)" et "science". C'était.

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

Données de validation

Les données de vérification utilisent le fichier execl suivant.

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

La première ligne de EXCEL signifie le nom de la colonne. L'élément avec le nom de colonne ** text ** signifie les données textuelles utilisées lors de l'appel de NLC. ** class ** est le nom de classe correct correspondant à ce texte. D'autres éléments ne sont pas utilisés lors de la réalisation du test, ils peuvent donc être présents ou non. Dans cet exemple d'Excel, il existe un élément clé ** text_id ** pour plus de commodité, mais peu importe si une telle colonne existe ou non.

des données de sortie

Les données de sortie créées à la suite du test sont également Excel. L'exemple est présenté ci-dessous. (Le look sera conçu plus tard pour le rendre plus facile à voir. La sortie réelle est plus simple.)

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

Les trois premières colonnes sont les données d'entrée de test elles-mêmes. Après cela, le résultat de l'application de texte au modèle, La sortie est dans l'ordre de ** nom de classe **, ** confiance **. Le nombre d'éléments à afficher peut être défini avec des variables sur le notebook. Dans cet exemple, n = 3.

Matrice confuse

La sortie sous Excel est comme ci-dessus, mais en tant que fonction bonus, la matrice de confusion suivante (Confusion Matirx) est également affichée sur Notebook. Avec cela, vous pouvez également vérifier quelle classe est exacte et combien.

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

environnement

J'expliquerai l'environnement requis pour exécuter l'exemple.

Environnement cloud

Vous devez avoir un compte sur IBM Cloud et avoir NLC et Watson Studio disponibles en tant que services. Malheureusement, pour NLC, vous avez besoin d'un compte de carte de crédit. Veuillez vous référer au lien ci-dessous pour la procédure spécifique.

De l'enregistrement utilisateur IBM Cloud à l'utilisation de Jupyter Notebook

Easy Jupyter Notebook dans le Cloud - Procédures d'utilisation de Jupyter Notebook dans IBM Cloud-

Passer à un compte de carte de crédit

Procédure de mise à niveau vers le compte de crédit IBM Cloud (anciennement Bluemix)

Procédure d'enregistrement de service supplémentaire

L'article suivant décrit la procédure d'association des services Spark / Watson ML à Studio, mais vous pouvez associer NLC à la même procédure. (Le groupe de services est "** AI **" comme Watson ML)

Enregistrer des services supplémentaires dans Watson Studio

Matériel nécessaire

Les matériaux nécessaires pour déplacer l'échantillon sont les suivants.

nom de fichier Objectif Lien
nlc-test-tool-v1.ipynb Corps du script de vérification de l'exactitude À téléchargerPourlaconfirmationducode
nlc-test-sample.xlsx Exemple Excel pour vérification À télécharger
nlc-test-sample-output.xlsx Exemple de résultat de vérification Excel À télécharger
nlc-train.csv Exemple CSV pour l'apprentissage À téléchargerPourlaconfirmationdesdonnées

procédure

Maintenant, je vais expliquer la procédure pour exécuter réellement l'exemple d'application.

Modèle d'apprentissage NLC

Dans cet exemple d'application, le modèle formé en utilisant le `` nlc-train.csv '' ci-dessus comme données d'apprentissage est utilisé. Pour la procédure d'apprentissage à l'aide de Watson Studio, reportez-vous à l'article séparé NLC learning with Watson Studio. Après avoir appris, vérifiez l'ID de modèle du modèle que vous avez créé sur l'écran de gestion des ressources de Watson Studio. Copiez-le et enregistrez-le avec un éditeur de texte, etc., car vous l'utiliserez plus tard.

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

Vérifiez les informations d'identification NLC

https://cloud.ibm.com/services
Dans, affichez la liste des services IBM Cloud et cliquez sur le lien NLC.

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

L'écran ressemblera à celui ci-dessous. ① Cliquez sur ** Informations d'identification du service ** ② Cliquez sur ** Afficher les informations d'identification ** ③ Cliquez sur l'icône ** clip ** pour copier les informations d'identification En ordre.

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

Collez les informations d'identification sur le presse-papiers dans un éditeur de texte et enregistrez-le. Nous utiliserons ces informations plus tard.

Téléchargement d'Excel pour une utilisation avec l'outil

Téléchargez Excel `` nlc-test-sample.xlsx '' à utiliser pour la vérification sur le cloud. La procédure est la suivante:

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

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

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

Après un téléchargement réussi, vous devriez voir nlc-test-sample.xlsx dans ** Data Assets **, comme illustré dans la figure suivante.

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

Importer le bloc-notes dans Watson Studio

Chargez le fichier `` nlc-test-tool-v1.ipynb '' pré-téléchargé dans le Jupyter Notebook de Watson Studio. Pour la procédure de chargement, reportez-vous à Easy Jupyter Notebook dans les procédures Cloud pour l'utilisation de Jupyter Notebook dans IBM Cloud-.

Définition des informations d'identification COS

Le bloc-notes Jupyter chargé doit être modifié à plusieurs endroits pour s'adapter à l'environnement. Tout d'abord, définissez les informations d'identification COS. Le bloc-notes immédiatement après le chargement doit ressembler à l'illustration ci-dessous, cliquez donc sur l'icône «** + **» en haut de l'écran pour insérer une cellule.

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

Dans l'état de la figure ci-dessous

① Cliquez sur l'icône ** fichier ** en haut de l'écran ② Dans la liste des fichiers, cliquez sur le `` nlc-test-sample.xlsx '' que vous avez téléchargé précédemment. ③ Cliquez sur ** Insérer des Credenstails ** dans le menu qui apparaît

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

Le contenu de la cellule vide que vous avez insérée précédemment doit ressembler à celui ci-dessous, donc copiez ** IAM_SRVICE_ID ** dans ** BUCKET ** dans le presse-papiers.

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

Collez les informations copiées dans la cellule «** COS Credentials **» en dessous. L'élément des données factices d'origine est supprimé. En fin de compte, cela devrait ressembler à ceci: (Notez que seule la ligne inférieure `` FILE: infile '' utilise les informations d'origine.)

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

Après avoir terminé une série de travaux, supprimez les cellules ajoutées pour travailler avec les cellules. (Cliquez sur l'icône des ciseaux avec la cellule que vous souhaitez effacer sélectionnée)

paramètre model_id

Définissez le model_id suivant. Collez le model_id préparé dans la ligne model_id de la cellule "** Variable Definition **". Mettez la chaîne entre guillemets simples.

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

Définition des informations d'identification NLC

Enfin, définissez les informations d'identification NLC. Collez les informations d'identification NLC que vous avez préparées à l'avance dans la cellule "** Informations d'identification NLC **". Supprimez les parenthèses supplémentaires et la première ligne d'article factice pour qu'elle ressemble à la figure ci-dessous.

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

Exécuter le notebook

Je vous remercie pour votre travail acharné. Ceci termine tous les travaux préparatoires. Dans ** Jupyter Notebook **, la cellule correspondante est exécutée en appuyant sur la touche MAJ + Entrée '' pendant que le curseur est aligné avec la cellule que vous souhaitez traiter, et la cellule sélectionnée est avancée de un. Si vous déplacez la cellule sélectionnée vers la première cellule et répétez MAJ + Entrée '', elle doit évaluer le modèle avec des données de test, générer Excel, afficher la matrice de confusion, etc. Si une erreur se produit dans une cellule, consultez le message d'erreur pour déterminer le problème.

S'il n'y a pas d'affichage d'erreur et que le résultat de l'exécution est comme indiqué dans la figure ci-dessous, l'outil a été exécuté avec succès.

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

Obtenir la sortie EXCEL

L'Excel généré est constitué du Bloc-notes ci-dessus au point de le réécrire dans COS, mais le téléchargement de cet Excel à partir de l'écran Studio nécessite un autre effort. J'expliquerai la procédure. (Si vous créez une sortie EXCEL avec le même nom de fichier, la procédure sera inutile à partir de la deuxième fois)

Tout d'abord, sélectionnez "** Ajouter au projet " -> " Données **" dans l'écran de gestion de projet. (Procédure expliquée dans le téléchargement de fichier Excel)

Si vous définissez l'onglet en haut de l'écran sur "Fichier", le fichier nlc-test-sample-output.xlsx nouvellement généré doit être inclus dans la liste. (S'il n'apparaît pas dans la liste, essayez de fermer et de rouvrir le Porject.)

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

Sur l'écran ci-dessous

① Cochez la case de ce fichier ② Cliquez sur l'icône avec les points alignés verticalement ③ Sélectionnez "** Ajouter en tant que données ase et **" dans le menu

ça ira.

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

Ensuite, comme indiqué dans l'écran ci-dessous, la sortie EXCEL sera également affichée dans le champ ** Actif de données **. Cliquez sur l'icône sous Actions et sélectionnez ** Télécharger ** dans le menu pour télécharger le fichier Excel pour la sortie.

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

L'Excel brut avant le traitement ressemble à ceci.

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

prime

Avant que je ne le sache, il semble qu'EXCEL, qui n'a qu'une seule feuille, puisse être lu comme un élément de données dans Studio. Joignez le résultat de la lecture d'Excel enregistré côté Data Asset depuis Studio dans la procédure ci-dessus.

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

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

Recommended Posts

Vérifiez la précision du NLC avec le bloc-notes Jupyter de Watson Studio
Utilisation de Graphviz avec Jupyter Notebook
Utiliser pip avec Jupyter Notebook
Utiliser Cython avec Jupyter Notebook
Jouer avec Jupyter Notebook (IPython Notebook)
Autoriser les connexions externes avec le notebook Jupyter
Formatage avec autopep8 sur le notebook Jupyter
Visualisez l'arbre de décision avec le notebook Jupyter
Faites un son avec le notebook Jupyter
Utiliser Markdown avec le notebook Jupyter (avec raccourci)
Ajouter plus de noyaux avec Jupyter Notebook
Analyse pratique avec Pandas + notebook Jupyter
Utiliser nbextensions avec le notebook Jupyter d'Anaconda
Utilisation d'Apache Spark avec le notebook Jupyter (notebook IPython)
Je veux écrire un blog avec Jupyter Notebook
Utiliser Jupyter Lab et Jupyter Notebook avec EC2
Essayez SVM avec scikit-learn sur Jupyter Notebook
Comment utiliser le notebook Jupyter avec ABCI
Lier Python et JavaScript avec le notebook Jupyter
[Mémo Jupyter Notebook] Afficher les kanji avec matplotlib
Sortie de cellule riche avec Jupyter Notebook (IPython)
Comment déboguer avec Jupyter ou iPython Notebook
Construire un environnement d'analyse avec Docker (jupyter notebook + PostgreSQL)
Analyse des données pour améliorer POG 2 ~ Analyse avec le notebook jupyter ~
Activer Jupyter Notebook avec conda sur un serveur distant
Essayez d'utiliser l'environnement virtuel conda avec Jupyter Notebook
Remplissez la largeur du bloc-notes Jupyter pour remplir le navigateur
Dessin graphique avec jupyter (notebook ipython) + matplotlib + vagrant
Mémo Jupyter Notebook
Présentation de Jupyter Notebook
Puissant ordinateur portable Jupyter
Mot de passe du notebook Jupyter
Mémo Jupyter Notebook
Construction d'environnement virtuel avec Docker + Flask (Python) + notebook Jupyter
Machine learning facile avec AutoAI (partie 4) Jupyter Notebook
Surveiller le modèle d'entraînement avec TensorBord sur Jupyter Notebook
Dessiner une structure arborescente avec D3.js dans Jupyter Notebook
Importer des cellules spécifiques à partir d'autres blocs-notes avec le bloc-notes Jupyter
Approvisionnement EC2 avec Vagrant + Jupyter (IPython Notebook) sur Docker