Watson NLCが使えるGUIをPythonで実装する方法

PythonでWatson NLCを使えるGUIを作ってみよう

こんにちは。

AI coordinatorの清水秀樹です。

質問を入力すれば、一番高い確信度を回答として返却してくれるGUIをPythonで開発してみたので紹介します。

 

いたって簡単なUIになります。

コマンド入力できる方ならUIは必要ありませんが、そうでない方からしてみれば簡単にNLCが使えるUIがあった方が助かりますよね。

そんな思いから作ってみました。

ソースを公開しますので、参考にしてみてください。

事前準備

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
from Tkinter import*
import requests
from watson_developer_cloud import NaturalLanguageClassifierV1 as NaturalLanguageClassifier

class nlc():

    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)
        #台詞用テキストボックス & ボタン--------------------
        Label(text=u'質問を入力').place(x=25,y=60)
        self.say = Entry(width=50)
        self.say.place(x=130,y=60)
        self.say.insert(0,"ログインできません")
        Button(root,text = "質問する",command=self.en_say_btn).place(x=570,y=55)

        Label(text="質問の回答").place(x=25,y=100)
        self.answer = Entry(width=50)
        self.answer.place(x=130,y=100)

        root.mainloop()

    def en_say_btn(self):
        #回答--------------------------
        say = self.say.get()
        natural_language_classifier = NaturalLanguageClassifier(
        username='サービス資格情報から取得',password='サービス資格情報から取得')

        r = natural_language_classifier.classify('分類器を作成時に割り振られるID', say)

        #jsonファイルの中身を確認したいときはコメントアウトを解除
        #print json.dumps(r, indent=4)

        print  r["text"]
        print  r["top_class"]
        print  r['classes'][0]['class_name']
        print  r['classes'][0]['confidence']

        self.answer.delete(0,END)
        self.answer.insert(0,r["top_class"])
        
nlc()

 

特に難しい部分はありません。

ソースコードはこちらからダウンロードできます。 → NLC.zip

 

それではまた。

あなたにオススメの記事

コメント

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

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

PAGE TOP