Watson NLCに学習データを投入できるGUIの開発方法

Watson NLCに学習データを投入できる画面をPythonで実装する方法

こんにちは。

AI coordinatorの清水秀樹です。

Watson NLCに学習データを投入できる簡単な画面を開発したので、その作り方を紹介します。

 

Watson NLCに学習データを投入する作業はコマンドラインで投入することが基本になります。

コマンドラインやプログラミングになれている技術屋さんであれば苦にならない仕様ではありますが、そうでない方からしたらWatsonに学習データを投入する作業はなかなかハードルの高いやり方になります。

 

そんなわけで、簡単に学習データを投入できる画面を作成してみたので紹介したいと思います。

 

事前準備

Watson NLCをBluemix上で作成しておく必要があります。

Watson NLCの作成方法については以下の記事を参考にしてください。

Watson APIのNLCを簡単に作成して使う方法

 

その他、Pythonの開発環境が必要になります。

開発環境の準備は以下の記事を参考にしてください。

Pepper用Python 2.7 SDK(WIN)セットアップ方法

Pepper用Python 2.7 SDK(MAC)セットアップ方法

 

ソースコード

以下、ソースコードになります。

# -*- coding: utf-8 -*-

import json
import time
from Tkinter import*
import tkMessageBox
import tkFileDialog
from watson_developer_cloud import NaturalLanguageClassifierV1

class nlc_file_in():

    def __init__(self):
        #ウインドウ定義
        root = Tk()
        root.option_add('*font', 'FixedSys 18')
        root.option_add('*Button.background', 'green')
        root.geometry("700x150")
        root.title(u"Natural Language Classifier")

        #アプリ名表示------------
        Label(text=u'NLC',font=(u'MS ゴシック', 24)).place(x=25,y=10)
        #CSVファイル入力ボタン--------------------
        Button(root,text = "CSV入力",command=self.file_in_btn).place(x=100,y=12)

        root.mainloop()

    def file_in_btn(self):
        #ファイルの指定 askopenfilename 一つのファイルを選択する。
        fTyp=[('csvファイル','*.csv')]
        iDir='CSV入力ボタンを押下したときに初期表示させるディレクトリのパス'
        filename=tkFileDialog.askopenfilename(filetypes=fTyp,initialdir=iDir)

        #NLCの作成
        natural_language_classifier = NaturalLanguageClassifierV1(
        username='サービス資格情報のusername',
        password='サービス資格情報のpassword')

        with open(filename, 'rb') as training_data:
            classifier = natural_language_classifier.create(
            training_data=training_data,
            name='nlc test',
            language='ja')
        
        print(json.dumps(classifier, indent=2))

        #ステータスの確認
        Label(text="学習ステータス:").place(x=180,y=20)
        status = natural_language_classifier.status(classifier["classifier_id"])
        while True:
            if status["status"] == "Available":
                break
            time.sleep(10)
            status = natural_language_classifier.status(classifier["classifier_id"])
            print  status["status"]

        #Label(text=status["status"],font=(u'MS ゴシック', 16,'underline')).place(x=130,y=100)        
        
        Label(text='学習完了').place(x=310,y=20)

nlc_file_in()

 

iDirにはCSVファイルを選択するときに、デフォルトで表示するディレクトリパスを指定してください。

特筆する点はそれぐらいです。

ソースコードを直接ダウンロードしたい方はこちらから → file_in.zip

 

それではまた。

あなたにオススメの記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

PAGE TOP