Watsonと連携したPepper:NLCを使用して質問に答えるPepperを作ってみよう

Watson NLCと連携して質問に回答できるpepper作成

こんにちは。

AI coordinatorの清水秀樹です。

前回記事で紹介した「Watsonと連携したPepper:Speech to Textで音声認識精度を上げてみよう」で、会話を聞き取れるPepperを開発できたら、次のステップアップとして質問に回答できるPepperを作ってみましょう。

 

準備するもの

Pepperアプリ開発用のコレグラフは言うまでもありませんね。

そして、今回使用するWatson API は「Natural Language Classifier」です。

Bluemix上で「Natural Language Classifier」を作成することができます。

また、このAPIを使用するには機械学習をしておく必要があります。

「Natural Language Classifier」の詳細な作り方については以下の記事を参考にしてください。

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

 

また、当記事最後にプロジェクトファイルのダウンロードリンクを貼ってあります。

手っ取り早く使ってみたい方は、記事最後まで読み飛ばしてください。

 

プロジェクトファイルの説明

前回作成したPythonボックス「Watson STT」に後に、NLC用のPythonボックス「Watson NLC」を繋げています。

人が質問した内容を「Watson STT」でテキスト化し、それを「Watson NLC」ボックスに繋いでPepperが質問に対する回答をする仕組みになっています。

「Watson NCL」Pythonボックスのソースは以下の通りです。

class MyClass(GeneratedClass):
    def __init__(self):
        GeneratedClass.__init__(self)

    def onLoad(self):
        #put initialization code here
        pass

    def onUnload(self):
        #put clean-up code here
        pass

    def onInput_onStart(self, p):
        #self.onStopped() #activate the output of the box
        import requests
        import json

        username='サービス資格情報のusername'
        password='サービス資格情報のpassword'

        url="https://gateway.watsonplatform.net/natural-language-classifier/api/v1/classifiers/90e7acx197-nlc-4234/classify?text="+str(p)

        r = requests.get(url ,auth =(username,password))

        NewText= r.json()["top_class"]
        final= NewText.encode('utf-8')
        self.onStopped(final)

    def onInput_onStop(self):
        self.onUnload() #it is recommended to reuse the clean-up as the box is stopped
        self.onStopped() #activate the output of the box

一番確信度の高い分類[“top_class”]を取得するようにしています。

必要に応じて変更してください。

 

プロジェクトファイルのダウンロードはこちらから → Natural Language Classifier.zip

 

実機で確認済みです。

 

是非お試しあれ。

 


その他のPepperアプリ記事はこちらから

あなたにオススメの記事

コメント

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

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

PAGE TOP