
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」の詳細な作り方については以下の記事を参考にしてください。
また、当記事最後にプロジェクトファイルのダウンロードリンクを貼ってあります。
手っ取り早く使ってみたい方は、記事最後まで読み飛ばしてください。
プロジェクトファイルの説明
前回作成した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
実機で確認済みです。
是非お試しあれ。
LEAVE A REPLY