複数ロボット自然会話システム(2)
複数ロボット自然会話システム(1)
複数ロボット自然会話システム(2)
複数ロボット自然会話システム(3)
複数ロボット自然会話システム(4)
複数ロボット自然会話システム
ソフトウェア要件定義:
- ホームページの仕様:
ホームページにアクセスして、参加ロボットのID、名前、会話モード、独り言モード、鼎談モードのロボット指定などのパラメータをFormで設定し、サーバーに設定する。設定データは、MySQLデータベースに保存する。以下の機能もホームページで行う。
- 新規ロボットの追加
- ロボットの削除
- 登録情報の表示
- サーバーのWebサービスAPI仕様
- 複数ロボット自然会話システムの中枢でシステム全体をクライアント側のサーバープログラムと連携して管理する。
- プログラミング言語はPHP。
- セッションを立ち上げ、session変数で管理する。
- 会話情報やログ情報は、サーバーのMySQLデータベースで管理する。
- クライアント側のサーバープログラムの仕様
- サーバーから参加ロボット情報、会話モード、独り言モードなどのパラメータ情報をMySQLデータベースからダウンロードして、設定する。
- 会話モードに従って、パターンを設定して、サーバーのsession変数にアップロードする。
- 対談モード:
1) 順序(重複あり)nΠr=nのr乗でパターンリスト生成。 n=3、r=2の場合、3Π2=3の2乗=9通りのパターン
AA BA CA
AB BB CB
AC BC CC
となる。
独り言パターンは、AA、BB、CCの3通りとなる。2) 独り言モードに対応して、重複パターンの有無を設定する。
3) 各パターンのアップロード・パターンに最初の挨拶文を時刻に応じて、「こんにちは」、「こんばんは」を設定してサーバーにアップロードする。
4) AA-u/d、AB-u/dの形式でパターンを設定。
AAは、独り言モードで、u/dは、アップロード済/ダウンロード済を表す。 AB-u/dは、AロボットからBロボットへの会話文が格納され、u/dは、アップロード済/ダウンロード済を表す。 - 鼎談(ていだん)モード:
1) 組合せ、nCrで、rは3とし、鼎談パターンを生成。
2) nが4の場合は、4!/3!×(4-3)!=4通りのパターンを生成。
3) nが4の場合は、ABC、ACD、BCD、BADの4パターンとなる。
ABC-A-u/d ACD-A-u/d BCD-B-u/d BAD-B-u/d
ABC-B-u/d ACD-C-u/d BCD-C-u/d BAD-A-u/d
ABC-C-u/d ACD-D-u/d BCD-D-u/d BAD-D-u/d4) 各パターン毎に各ロボットの会話文格納場所を確保して、u/dの状態で、アップロード済、ダウンロード済を表す。
5) 各パターンからランダムに1つのロボットを抽出して、残りのロボットへ最初の挨拶文を時刻に応じて、「こんにちは」、「こんばんは」を設定してサーバーにアップロードする。
- 会談モード:
1) 組合せ、nCrで、n、rは4以上の人数とし、会談パターンを生成。
2) 仕組みは鼎談モードと同一。
- クライアントプログラム仕様
- クライアントプログラムは、1つのロボットのプログラムで、各ロボットの数だけ存在する。
- 各ロボットは、IDと名前を持ち、サーバーを通して他のロボットと会話する。
- 電源投入すると、サーバーから参加ロボット情報、会話モードなどのパラメータ情報をダウンロードして、初期化を行いスタンバイ状態になったら、スタンバイ状態をサーバーに送信する。
- ロボットとサーバー間の通信は、WebサービスAPIで行う。
- サーバーの会話開始合図で、他のロボットと会話を始める。
- サーバーの会話終了の合図で会話を中止する。
- 各ロボットは、投げ掛けられた会話に対して、応答を順次行う。
- 応答文は、AIクラウドの自然会話サービスを利用したり、ローカルで機械学習で生成したもの、形態素解析で抽出した品詞で新たに会話文を生成、マルコフ連鎖で生成した応答文などを使用する。
- ロボットは、ある特定の話題について会話を行うことができる。その話題のキーワードでインターネットから検索した情報をもとに応答文を生成して会話相手のロボットに応答文を返すこともできる。