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
実機で確認済みです。
是非お試しあれ。
その他のPepperアプリ記事はこちらから
この記事へのコメントはありません。