会話制御システム、並びに端末装置
【課題】会話制御による情報入力に対する反応表現をどのように実行するかを、会話の文脈や流れに応じて判断することで、様々な情報出力の表現パターンを用いて出力を行うことができるようにする
【解決手段】本発明は、会話制御システムとして提案される。入力文に対する回答文を決定し、この回答とともに回答文に応じた動作を指示する情報である動作制御情報を送信する会話サーバと、利用者から入力された入力文を前記サーバに送信し、前記サーバから送信された回答文及び動作制御情報を受信し、受信した回答文を出力するとともに、この動作制御情報に応じた動作を実行する利用者端末装置とを有する
【解決手段】本発明は、会話制御システムとして提案される。入力文に対する回答文を決定し、この回答とともに回答文に応じた動作を指示する情報である動作制御情報を送信する会話サーバと、利用者から入力された入力文を前記サーバに送信し、前記サーバから送信された回答文及び動作制御情報を受信し、受信した回答文を出力するとともに、この動作制御情報に応じた動作を実行する利用者端末装置とを有する
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、利用者からの入力文に回答する回答文を出力する会話制御システム、並びに端末装置に関する。
【背景技術】
【0002】
従来より、インターネット等で情報処理装置を介して利用者の情報入力に対して情報出力を行うシステムが知られている。これらの一例として、ユーザ端末に表示される主表示(ポータルサイト)に付加して表示されるイメージデータに対して、ユーザが入力したアクションに応じて、第三者のデータサーバにアクション情報が送信され、その送信された情報に基づいた返信データに対応する表示を、前記イメージデータに行うことができるデータ送受信方法等について提案されている(例えば、特許文献1、特許文献2)。
【特許文献1】特開2005−208691号公開公報
【特許文献2】特開2006−251950号公開公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、これら従来の情報出力システムにおいては、利用者からの入力とDBに用意された回答パターンとの1対1のパターンマッチングとなり、利用者端末装置である情報処理装置における情報出力のパターンにも限界がある。この点から、クライアント(利用者)に受け入れられない、或いは関心を引きつけ続けることができないなどの問題点が生じる虞がある。
【0004】
本発明の目的は、会話制御による情報入力に対する反応表現をどのように実行するかを、会話の文脈や流れに応じて判断することで、様々な情報出力の表現パターンを用いて出力を行うことができるようにすることを目的とする。
【課題を解決するための手段】
【0005】
上記課題を解決するための手段として、本発明は、以下の特徴を有する。
本発明の第1の態様は、会話制御システムとして提案される。この会話制御システムは、
入力文に対する回答文を決定する第1の決定手段(例えば、サーバ側会話制御部)と、決定された回答文に応じた動作を指示する情報である動作指示情報を決定する第2の決定手段(例えば、端末側会話制御部、サーバ側会話制御部)と、決定された回答文を出力するとともに決定された動作指示情報に応じた動作を実行(制御)する制御手段(例えば、会話制御部(回答制御部))とを有することを特徴としている。
【0006】
この会話制御システムによれば、会話制御による情報入力に対する反応表現をどのように実行するかを、端末装置側で判断することにより、様々な情報出力の表現パターンを用いて情報出力を行うことができる。
【0007】
前記会話制御システムにおいて、前記回答文は利用者を誘導するための一連の発話文であるようにしてもよい。かかる会話制御システムによれば、ユーザの発話内容が本来の目的とするところと異なっていても、決められた順番で、決められた項目についての回答を取得することが可能となる。
【0008】
また、前記会話制御システムにおいて、前記制御手段は、利用者からの入力がない場合、前記動作制御情報に基づいて前記第1の決定手段に回答文を要求するメッセージを送信し、このメッセージに応じて前記第1の決定手段から送信される、利用者に入力を催促する回答文を出力するようにしてもよい。かかる会話制御システムによれば、不自然な沈黙期間を発生させることなく、より自然な会話を成立させることが可能となる。また、端末装置が催促する回答文の出力を判断するため、サーバに判断を求めるためのデータ伝送を増大させることがない。
【0009】
また、前記会話制御システムにおいて、前記第1の決定手段は、利用者の入力の内容にかかわらず、予め定めた回答文を予め定めた順番で出力させるようにしてもよい。ここでいう「順番」は、いわゆる一本道である会話の流れに限定される趣旨ではなく、利用者の入力内容に応じて、会話のシナリオが分岐する場合も「順番で出力される」ものに含まれるものとする。かかる会話制御システムによれば、利用者に質問を繰り返して行うことで、利用者にある結論やアドバイスなどの情報にたどり着かせることが可能となる。
【0010】
本発明の別の態様は、端末装置(例えば、利用者端末装置)として提案される。
この端末装置は、 前記サーバから送信される、入力文に対する回答文及び動作制御情報を受信し、受信した回答文を利用者のために出力するとともに、受信した動作制御情報に対応する動作を実行する制御手段とを有することを特徴としている。
【0011】
この端末装置において、制御手段は、予め定めた条件が満たされた場合、回答文に対応する動作とは別の特別の動作(例えば、広告主が利用者を誘導したい目的のサイトへのジャンプ)を決定するようにしてもよい。
【0012】
また、この端末装置において、前記動作制御情報は、前記サーバに回答文を要求するメッセージの送信であるようにしてもよい。かかる端末装置によれば、不自然な沈黙期間を発生させることなく、より自然な会話を成立させることが可能となる。また、会話の流れに応じた回答文を選択するサーバが、利用者に対して催促する回答文をそれまでの会話の流れに応じた回答文を選択できるため、より自然な回答文による回答の催促を行うことができる。
【発明の効果】
【0013】
本発明によれば、会話制御による情報入力に対する反応表現をどのように実行するかを、会話の文脈や流れに応じて判断することで、様々な情報出力の表現パターンを用いて出力を行うことができる。
【発明を実施するための最良の形態】
【0014】
以下、図面を参照しながら本発明の実施の形態について説明する。
[1.第1の実施の形態]
本発明の第1の実施の形態は、利用者の入力文に対して回答を出力し、回答に応じた反応を演出する会話制御システムとして提案される。なお、この第1の実施の形態では、いわゆるポータルサイトなどのWebサイトに含まれるバナーと呼ばれる領域(以下、広告表示領域)を、利用者の入力文の入力領域、回答文の表示領域、及び回答に応じた反応を演出する表示領域として使用するのであるが、本発明がこの実施形態に限定される趣旨ではない。
【0015】
[1.1.システム構成例]
まず、本実施形態にかかる会話制御システムの構成例について説明する。図1は、本実施形態にかかる会話制御システムの構成例を示すブロック図である。
会話制御システム1は、利用者端末装置10と、WWWサーバ11と、広告配信サーバ12と、会話制御サーバ13とで構成される。利用者端末装置10は、通信網14を介してWWWサーバ11、広告配信サーバ12、及び会話制御サーバ13と通信可能である。
【0016】
[1.1.1.利用者端末装置]
利用者端末装置10は、利用者から入力文を受け付け、この入力文に対する回答文を出力し、かつ回答文に応じた動作制御を実行する機能を有する装置である。
【0017】
利用者端末装置10は、演算処理装置(CPU)、主メモリ(RAM)、読出し専用メモリ(ROM)、入出力装置(I/O)、必要な場合にはハードディスク装置等の外部記憶装置を具備している情報装置であって、例えばパーソナルコンピュータ、携帯電話機、携帯ゲーム機である。利用者端末装置10として機能する情報処理装置は、通信網14を介して他の装置とデータの送受信を行うことのできる通信機能を有する必要がある。前記ROM、若しくはハードディスク装置などに情報処理装置を利用者端末装置10として機能させるためのプログラムが記憶されており、このプログラムを主メモリ上に載せ、CPUがこれを実行することにより利用者端末装置10が実現される。また、上記プログラムは必ずしも情報処理装置内の記憶装置に記憶されていなくともよく、外部の装置(例えば、ASP(アプリケーション・サービス・プロバイダ)のサーバなど)から提供され、これを主メモリに乗せる構成であってもよい。
【0018】
図2は、利用者端末装置10の構成例を示す機能ブロック図である。利用者端末装置10は、通信制御部201と、通信制御部201に接続された情報処理部202と、情報処理部202に接続された入力部203及び出力部204とを有している。なお、利用者に入力文を入力させるための入力手段(例えば、入力部203)、利用者に会話サーバ13から受信した回答文に対応する動作を実行(制御)する制御手段(会話制御部206)で実行(制御)される動作を出力する出力手段(例えば、出力部204)は、会話制御システム1(通信網14)に個別で配置させても良い。
【0019】
通信制御部201は、通信網14を介して他の装置とデータの送受信を実行するための処理を行う機能を有し、例えば通信ボード、LANボード、モデムなどである。
【0020】
情報処理部202は、他の装置へのデータのリクエストを生成し、生成したリクエストを通信制御部201に送信させ、リクエストに応じて他の装置から受け取ったデータを解釈して、出力部204に表示させる機能を有する。本実施の形態では、情報処理部202は、ブラウザ部205と会話制御部206とで構成されている。会話制御部206は、本発明の第2の決定手段、及び制御手段に相当する。
【0021】
ブラウザ部205は、利用者にWebサイトを閲覧させる機能を有する。ブラウザ部205は、例えば利用者によって指定されたURLに宛ててリクエストメッセージを送信し、リクエストメッセージを受信したノードから返信される、URLによって指定されたWeb文書(例えばHTMLファイル)を受信し、このHTMLを解釈してWeb文書の内容を画像として出力部204に表示させる。ブラウザ部205は、例えばブラウザと呼ばれるソフトウエア(インターネット・エクスプローラー、ファイアー・フォックスなど)である。但し、ブラウザはOS(Operating System;基本ソフトウエア)上で動作するためOSもブラウザ部205を構成する要素であるともいえる。
【0022】
会話制御部206は、入力部203を介して、利用者から入力文を受け取り、これを会話サーバ13に通信制御部201,通信網14を介して送信し、会話サーバ13から送信される、入力文に対する回答文及び動作制御情報を,通信網14、通信制御部201を介して取得し、回答文を出力するとともに動作制御情報に基づいて動作を実行させる機能を有する。
図3に、会話制御部206の構成例を示す機能ブロック図を掲げる。
会話制御部206は入力受付部301と、回答制御部302とを有している。
【0023】
入力受付部301は、利用者の入力文(例えば、「こんにちは」というユーザ発話)を受付け、その入力文を含む回答文要求メッセージを通信制御部201、通信網14を介して会話サーバ13に送信する機能を有する。なお、この入力文の送信は入力文をブラウザ部205に渡し、ブラウザ部205に入力文を含む回答文要求メッセージの生成及び送信を行わせるようにしてもよい。
【0024】
回答制御部302は、回答文要求メッセージを受信した会話サーバ13から送信された回答文及び動作制御情報を受信し、回答文をブラウザ部205に出力させ、且つ動作制御情報に基づいて指定された動作をブラウザ部205などに実行ないし制御させる機能を有する。
【0025】
動作制御情報は、回答文に応じた動作を指示する情報である。、ただし、必ずしも回答文と一対一の対抗関係になっている必要はなく、一つの回答文について、実行する条件の異なる動作を規定することも、本発明の動作制御情報では可能である。例えば、ある動作制御情報には、回答文の出力時に動作A(例えば、女性が微笑みながら挨拶する動画の再生)を実行することを規定するとともに、前記動作Aの実行後規定時間(例えば30秒)ないに利用者からの新たな入力文がない場合には動作D(例えば、会話サーバ13に回答文を要求するメッセージの送信)を規定することも可能である。
動作制御情報は、後述する会話サーバ13の会話データベース500(図11参照)の回答文830に関連付けられて記憶されている。図4は、後述する会話データベース500における回答文830と動作制御情報との対応関係の例を示す。この会話データベース500では回答文830とその回答文に付加される動作制御情報を対にして記憶している。会話サーバ13は、入力文を受信すると、動作会話データベース500を調べて回答文及び対応する動作制御情報を抽出し、回答文と動作制御情報を利用者端末装置10に送信する。
【0026】
また、回答制御部302は、会話サーバ13からの回答文受信をトリガとして回答文の出力及び動作制御情報により指定された動作の実行を行わせるだけでなく、会話サーバ13からの回答文受信以外の所定の条件が満たされた場合に、自立的に回答文の決定及びその回答文に対応する動作の決定を行う機能を有している。
図2に戻り、利用者端末装置10の構成例の説明を再開する。
【0027】
利用者端末装置10の情報処理部202には、入力部203及び出力部204が設けられている。入力部203は、利用者の入力を信号に変換して情報処理部202に出力する機能を有し、例えば、キーボード、ポインティングデバイス、タッチパネルなどである。
【0028】
出力部204は、回答文を含む出力内容を利用者が了知可能な態様で出力する機能を有し、例えば液晶ディスプレイ装置、スピーカ(音声出力がある場合)、アクチュエータ、モータなどの駆動装置(物理的動作がある場合)などである。
【0029】
図5に、利用者端末装置10の出力部204に表示される画面例を示す。図5では、出力部204(ここでは、一例として液晶ディスプレイとする)の表示領域を示している。表示領域510には、ウインドウ501が開かれている。ウインドウ501内にはWWWサーバ11から受信したWeb文書(サイト)の内容が表示されている。ここでは内容の例としてテキスト領域502と画像領域503があるものとした。ウインドウ501内にはWeb文書の一部として埋め込まれている広告表示領域504が生成されている。広告表示領域504は動画が表示されているとともに、利用者の入力文のための入力ボックス505が設けられている。利用者は入力部203を用いて入力文を入力ボックス505に入力し、所定の操作(例えば、エンターキーの押下)を行うことにより、入力文が会話サーバ13に送信される。
以上で、利用者端末装置10の構成例の説明を終了する。
【0030】
図1に戻り、会話制御システム1の構成要素の説明を再開する。
[1.1.2.WWWサーバ(又はWebサーバ)]
WWWサーバ11は、利用者端末装置10からのリクエストに応じて、リクエスト対象となったWeb文書(HTMLファイルなど)をデータとして通信網14を介してその利用者端末装置10に送信する機能を有する。WWWサーバ11は、演算処理装置(CPU)、主メモリ(RAM)、読出し専用メモリ(ROM)、入出力装置(I/O)、必要な場合にはハードディスク装置等の外部記憶装置を具備している情報装置であって、例えばコンピュータ、ワークステーション、サーバ装置などである。
【0031】
[1.1.2.広告配信サーバ]
広告配信サーバ12は、広告表示領域に表示させるデータを、利用者端末装置10に送信する機能を有する。WWWサーバ11から送信されるWeb文書内には、広告配信サーバ12に対応するURLが記述されており、利用者端末装置10、より詳しくはブラウザ部205は、広告配信サーバ12に対応するURLをWeb文書から読み取り、広告表示領域に表示するコンテンツ(画像、テキストなど)をデータを送信するよう広告配信サーバ12に要求する(リクエストメッセージを送信する)。広告配信サーバ12は、演算処理装置(CPU)、主メモリ(RAM)、読出し専用メモリ(ROM)、入出力装置(I/O)、必要な場合にはハードディスク装置等の外部記憶装置を具備している情報装置であって、例えばコンピュータ、ワークステーション、サーバ装置などである。
【0032】
[1.1.3.通信網]
通信網14は、有線・無線、専用回線・交換回線を問わず、これに接続されている装置がそれぞれ目的とする装置に対しセッションを確立したときにその装置間での情報の送受を可能とするように作用する。通信網14は、インターネットのように、ゲートウエイを介して複数のネットワークが組み合わされて実現しても構わない。また、その接続についてもいわゆるバックボーンといわれる基幹線に直接接続せずとも、PPP接続などによって一時的に接続してあっても、セッションを確立したときにその間で情報の送受ができるようになっていれば構わない。なお、上記「通信網」は専用回線を固定的に張りめぐらせたような、交換機、スイッチ、ルータなど経路切り替え手段を用いない通信網も含むものとする。
【0033】
[1.1.4.会話サーバ]
会話サーバ13は、その筐体内部に、例えばコンピュータ、ワークステーションなどの情報処理装置若しくは情報処理装置に相当するハードウエアを搭載している。会話サーバ13が有する情報処理装置は、演算処理装置(CPU)、主メモリ(RAM)、読出し専用メモリ(ROM)、入出力装置(I/O)、ハードディスク装置等の外部記憶装置を具備している装置で構成されている。前記ROM、若しくは外部記憶装置などに情報処理装置を会話サーバ13として機能させるためのプログラムが記憶されており、該プログラムを主メモリ上に載せ、CPUがこれを実行することにより会話サーバ13が実現される。また、上記プログラムは必ずしも当該装置内の記憶装置に記憶されていなくともよく、磁気ディスク、光ディスク、光磁気ディスク、CD(Compact Disc)、DVD(Digital Video Disc)などのコンピュータ読み取り可能なプログラム記録媒体や、外部の装置(例えば、ASP(アプリケーション・サービス・プロバイダ)のサーバなど)から提供され、これを主メモリに乗せる構成であってもよい。
【0034】
図6に、会話サーバ13の構成例を示す機能ブロック図を掲げる。図6に示すように、会話サーバ13は、通信制御部200と、サーバ側会話制御部300と、文解析部400と、会話データベース500とを備えている。サーバ側会話制御部300は、本発明の第1の決定手段、第2の決定手段に相当する。
通信制御部200は、通信網14を介して他の装置とデータの送受信を実行するための処理を行う機能を有し、例えば通信ボード、LANボード、モデムなどである。
【0035】
次に、図7を参照しながらサーバ側会話制御部300及び文解析部400の構成例について説明する。図7は、会話サーバ13の部分拡大ブロック図であって、サーバ側会話制御部300及び文解析部400の具体的構成例を示すブロック図である。なお、図7においては、サーバ側会話制御部300、文解析部400、及び会話データベース500のみ図示しており、その他の構成要素は表示を省略している。
【0036】
文解析部400は、入力文である文字列を解析するものである。この文解析部400は、本実施の形態では、図7に示すように、文字列特定部410と、形態素抽出部420と、形態素データベース430と、入力種類判定部440と、発話種類データベース450とを有している。文字列特定部410は、一連の文字列を一文節毎に区切るものである。この一文節とは、文法の意味を崩さない程度に文字列をできるだけ細かく区切った一区切り文を意味する。具体的に、文字列特定部410は、一連の文字列の中に、ある一定以上の時間間隔があるときは、その部分で文字列を区切る。文字列特定部410は、その区切った各文字列を形態素抽出部420及び入力種類判定部440に出力する。なお、以下で説明する「文字列」は、一文節毎の文字列を意味するものとする。
【0037】
形態素抽出部420は、文字列特定部410で区切られた一文節の文字列に基づいて、その一文節の文字列の中から、文字列の最小単位を構成する各形態素を第一形態素情報として抽出するものである。ここで、形態素とは、本実施の形態では、文字列に現された語構成の最小単位を意味するものとする。この語構成の最小単位としては、例えば、名詞、形容詞、動詞などの品詞が挙げられる。
【0038】
各形態素は、図8に示すように、本実施の形態ではm1、m2、m3…、と表現することができる。図8は、文字列とこの文字列から抽出される形態素との関係を示す図である。図8に示すように、文字列特定部410から文字列が入力された形態素抽出部420は、入力された文字列と、形態素データベース430に予め格納されている形態素群(この形態素群は、それぞれの品詞分類に属する各形態素についてその形態素の見出し語・読み・品詞・活用形などを記述した形態素辞書として用意されている)とを照合する。その照合をした形態素抽出部420は、その文字列の中から、予め記憶された形態素群のいずれかと一致する各形態素(m1、m2、…)を抽出する。この抽出された各形態素を除いた要素(n1、n2、n3…)は、例えば助動詞等が挙げられる。
【0039】
この形態素抽出部420は、抽出した各形態素を第一形態素情報として話題特定情報検索蔀320に出力する。なお、第一形態素情報は構造化されている必要はない。ここで「構造化」とは、文字列の中に含まれる形態素を品詞等に基づいて分類し配列することをいい、例えば発話文である文字列を、「主語+目的語+述語」などの様に、所定の順番で形態素を配列してなるデータに変換することをいう。もちろん、構造化した第一形態素情報を用いたとしても、それが本実施の形態の実現をさまたげることはない。
【0040】
入力種類判定部440は、文字列特定部410で特定された文字列に基づいて、発話内容の種類(発話種類)を判定するものである。この発話種類は、発話内容の種類を特定する情報であって、本実施の形態では、例えば図9に示す「発話文のタイプ」を意味する。図9は、「発話文のタイプ」と、その発話文のタイプを表す二文字のアルファベット、及びその発話文のタイプに該当する発話文の例を示す図である。
【0041】
ここで、「発話文のタイプ」は、本実施の形態では、図9に示すように、陳述文(D ; Declaration)、時間文(T ; Time)、場所文(L ; Location)、反発文(N ; Negation)などから構成される。この各タイプから構成される文は、肯定文又は質問文で構成される。「陳述文」とは、利用者の意見又は考えを示す文を意味するものである。この陳述文は本実施の形態では、図9に示すように、例えば"私は佐藤が好きです"などの文が挙げられる。「場所文」とは、場所的な概念を伴う文を意味するものである。「時間文」とは、時間的な概念を伴う文を意味するものである。「反発文」とは、陳述文を否定するときの文を意味する。「発話文のタイプ」についての例文は図9に示す通りである。
【0042】
入力種類判定部440が「発話文のタイプ」を判定するには、入力種類判定部440は、本実施の形態では、図10に示すように、陳述文であることを判定するための定義表現辞書、反発文であることを判定するための反発表現辞書等を用いる。具体的に、文字列特定部410から文字列が入力された入力種類判定部440は、入力された文字列に基づいて、その文字列と発話種類データベース450に格納されている各辞書とを照合する。その照合をした入力種類判定部440は、その文字列の中から、各辞書に関係する要素を抽出する。
【0043】
この入力種類判定部440は、抽出した要素に基づいて、「発話文のタイプ」を判定する。例えば、入力種類判定部440は、ある事象について陳述している要素が文字列の中に含まれる場合には、その要素が含まれている文字列を陳述文として判定する。入力種類判定部440は、判定した「発話文のタイプ」を回答取得部380に出力する。
【0044】
次に、会話データベース500が記憶するデータのデータ構成例について図11を参照しながら説明する。図11は、会話データベース500が記憶するデータの構成例を示す概念図である。
【0045】
会話データベース500は、図11に示すように、話題を特定するための話題特定情報810を予め複数記憶している。また、それぞれの話題特定情報810は、他の話題特定情報810と関連付けられていてもよく、例えば、図11に示す例では、話題特定情報C(810)が特定されると、この話題特定情報C(810)に関連付けられている他の話題特定情報A(810)、話題特定情報B(810),話題特定情報D(810)が定まるように記憶されている。
具体的には、話題特定情報810は、本実施の形態では、利用者から入力されると予想される入力内容、又は利用者への回答文に関連性のある「キーワード」を意味する。
【0046】
話題特定情報810には、一又は複数の話題タイトル820が対応付けられて記憶されている。話題タイトル820は、一つの文字、複数の文字列又はこれらの組み合わせからなる形態素により構成されている。各話題タイトル820には、利用者への回答文830が対応付けられて記憶されている。また、回答文830の種類を示す複数の回答種類は、回答文830に対応付けされている。また、回答文に対応する動作制御情報835も記憶されている。
【0047】
次に、ある話題特定情報810と他の話題特定情報810との関連付けについて説明する。図12は、ある話題特定情報810Aと他の話題特定情報810B、810C1〜810C4、810D1〜810D3…との関連付けを示す図である。なお、以下の説明において「関連付けされて記憶される」とは、ある情報Xを読み取るとその情報Xに関連付けられている情報Yを読み取りできることをいい、例えば、情報Xのデータの中に情報Yを読み出すための情報(例えば、情報Yの格納先アドレスを示すポインタ、情報Yの格納先物理メモリアドレス、論理アドレスなど)が格納されている状態を、「情報Yが情報Xに『関連付けされて記憶され』ている」というものとする。
【0048】
図12に示す例では、話題特定情報は他の話題特定情報との間で上位概念、下位概念、同義語、対義語(本図の例では省略)が関連付けされて記憶させることができる。本図に示す例では、話題特定情報810A(=「映画」)に対する上位概念の話題特定情報として話題特定情報810B(=「娯楽」)が話題特定情報810Aに関連付けされて記憶されており、例えば話題特定情報(「映画」)に対して上の階層に記憶される。
【0049】
また、話題特定情報810A(=「映画」)に対する下位概念の話題特定情報810C1(=「監督」)、話題特定情報810C2(=「主演」)、話題特定情報810C3(=「配給会社」)、話題特定情報810C4(=「上映時間」)、及び話題特定情報810D1(=「七人の侍」)、話題特定情報810D2(=「乱」)、話題特定情報810D3(=「用心棒」)、…、が話題特定情報810Aに関連付けされて記憶されている。
【0050】
また、話題特定情報810Aには、同義語900が関連付けられている。この例では、話題特定情報810Aであるキーワード「映画」の同義語として「作品」、「内容」、「シネマ」が記憶されている様子を示している。このような同意語を定めることにより、発話にはキーワード「映画」は含まれていないが「作品」、「内容」、「シネマ」が発話文等に含まれている場合に、話題特定情報810Aが発話文等に含まれているものとして取り扱うことを可能とする。
【0051】
本実施の形態にかかる会話サーバ13は、会話データベース500の記憶内容を参照することにより、ある話題特定情報810を特定するとその話題特定情報810に関連付けられて記憶されている他の話題特定情報810及びその話題特定情報810の話題タイトル820、回答文830などを高速で検索・抽出することが可能となる。
【0052】
次に、話題タイトル820(「第二形態素情報」ともいう)のデータ構成例について、図13を参照しながら説明する。図13は、話題タイトル820のデータ構成例を示す図である。
【0053】
話題特定情報810D1、810D2、810D3、…はそれぞれ複数の異なる話題タイトル8201、8202、…、話題タイトル8203、8204、…、話題タイトル8205、8206、…を有している。本実施の形態では、図13に示すように、それぞれの話題タイトル820は、第一特定情報1001と、第二特定情報1002と、第三特定情報1003によって構成される情報である。ここで、第一特定情報1001は、本実施の形態では、話題を構成する主要な形態素を意味するものである。第一特定情報1001の例としては、例えば文を構成する主語が挙げられる。また、第二特定情報1002は、本実施の形態では、第一特定情報1001と密接な関連性を有する形態素を意味するものである。この第二特定情報1002は、例えば目的語が挙げられる。更に、第三特定情報1003は、本実施の形態では、ある対象についての動きを示す形態素、又は名詞等を修飾する形態素を意味するものである。この第三特定情報1003は、例えば動詞、副詞又は形容詞が挙げられる。なお、第一特定情報1001、第二特定情報1002、第三特定情報1003それぞれの意味は上述の内容に限定される必要はなく、別の意味(別の品詞)を第一特定情報1001、第二特定情報1002、第三特定情報1003に与えても、これらから文の内容を把握可能な限り、本実施の形態は成立する。
【0054】
例えば、主語が「七人の侍」、形容詞が「面白い」である場合には、図13に示すように、話題タイトル(第二形態素情報)8202は、第一特定情報1001である形態素「七人の侍」と、第三特定情報1003である形態素「面白い」とから構成されることになる。なお、この話題タイトル8202には第二特定情報1002に該当する形態素は含まれておらず、該当する形態素がないことを示すための記号「*」が第二特定情報1002として格納されている。
【0055】
なお、この話題タイトル8202(七人の侍;*;面白い)は、「七人の侍は面白い」の意味を有する。この話題タイトル820を構成する括弧内は、以下では左から第一特定情報1001、第二特定情報1002、第三特定情報1003の順番となっている。また、話題タイトル820のうち、第一から第三特定情報に含まれる形態素がない場合には、その部分については、「*」を示すことにする。
【0056】
なお、上記話題タイトル820を構成する特定情報は、上記のような第一から第三特定情報のように3つに限定されるものではなく、例えば更に他の特定情報(第四特定情報、及びそれ以上)を有するようにしてもよい。
【0057】
次に、回答文830について図14を参照して説明する。回答文830は、図14に示すように、本実施の形態では、利用者から入力(発話)された入力文(発話文)のタイプに対応した回答をするために、陳述(D ; Declaration)、時間(T ; Time)、場所(L ; Location)、否定(N ; Negation)などのタイプ(回答種類)に分類されて、タイプ毎に用意されている。また肯定文は「A」とし、質問文は「Q」とする。
【0058】
話題特定情報810のデータ構成例について、図15を参照して説明する。図15は、ある話題特定情報810「佐藤」に対応付けされた話題タイトル820,回答文830の具体例を示す。
【0059】
話題特定情報810「佐藤」には、複数の話題タイトル(820)1−1、1−2、…が対応付けされている。それぞれの話題タイトル(820)1−1,1−2,…には回答文(830)1−1,1−2、…が対応付けされて記憶されている。回答文830は、回答種類840毎に用意されている。
【0060】
話題タイトル(820)1−1が(佐藤;*;好き){これは、「佐藤が好きです」に含まれる形態素を抽出したもの}である場合には、その話題タイトル(820)1-1に対応する回答文(830)1−1は、(DA;陳述肯定文「私も佐藤が好きです」)、(TA;時間肯定文「私は打席に立ったときの佐藤が好きです」)などが挙げられる。後述する回答取得部380は、入力種類判定部440の出力を参照しながらその話題タイトル820に対応付けられた一の回答文830を取得する。
【0061】
各回答文には、当該回答文に対応するように、ユーザ発話に対して優先的に出力される回答文(「次回答文」と呼ぶ)を指定する情報である次プラン指定情報840が定められている。次プラン指定情報840は、次回答文を特定できる情報であれば、どのような情報であってもよく、例えば、会話データベース500に格納されているすべての回答文から少なくとも一つの回答文を特定できる回答文ID、などである。
【0062】
なお、本実施の形態においては、次プラン指定情報840は、回答文単位で次回答文を特定する情報(例えば、回答文ID)として説明するが、次プラン指定情報840は、話題タイトル820、話題特定情報810単位で、次回答文(この場合には、複数の回答文が次回答文として指定されるので、次回答文群と呼ぶ。但し、実際に回答文として出力されるのは、この回答文群に含まれるいずれかの回答文となる)を特定する情報であっても構わない。例えば、話題タイトルID、話題特定情報IDを次プラン指定情報として使用しても本実施の形態は成立する。
[1.1.6.会話制御部]
ここで図7に戻り、サーバ側会話制御部300の構成例を説明する。
【0063】
サーバ側会話制御部300は、会話サーバ13内の各構成要素(文解析部400、会話データベース500)間のデータの受け渡しを制御するとともに、利用者入力文(ユーザ発話)に応答する回答文の決定、出力及び回答文に応じた動作制御情報の出力を行う機能を有する。
【0064】
サーバ側会話制御部300は、本実施の形態では、図7に示すように、管理部310と、プラン会話処理部320と,談話空間会話制御処理部330と、CA会話処理部340とを有している。以下これらの構成要素について説明する。
【0065】
管理部310は談話履歴を記憶し、且つ必要に応じて更新する機能を有する。管理部310は話題特定情報検索部350と、省略文補完部360と、話題検索部370と、回答取得部380からの要求に応じて、記憶している談話履歴の全部又は一部をこれら各部に渡す機能を有する。
【0066】
プラン会話処理部320は、プランを実行し、プランに従った会話をユーザとの間で成立させる機能を有する。「プラン」とは、予め定めた順番に従って予め定めた回答をユーザに提供することをいう。以下、プラン会話処理部320について説明する。
プラン会話処理部320は、ユーザ発話に応じて、予め定めた順番に従って予め定めた回答を出力する機能を有する。
【0067】
図16は、プランを説明するための概念図である。図16に示すように、プラン空間1401には複数のプラン1、プラン2,プラン3、プラン4など様々なプラン1402が予め準備されている。プラン空間1401とは、会話データベース500に格納された複数のプラン1402の集合をいう。会話サーバ13は、装置起動時若しくは会話開始時に予め開始用に定められたプランを選択し、若しくは各利用者入力(ユーザ発話)の内容に応じて、プラン空間1401の中から適宜いずれかのプラン1402を選択し、選択したプラン1402を用いてユーザ発話に対する回答文の出力を行う。
【0068】
図17は、プラン1402の構成例を示す図である。プラン1402は、回答文1501と、これに関連付けられた次プラン指定情報1502を有している。次プラン指定情報1502は、当該プラン1402に含まれる回答文1501の次に、ユーザに出力する予定の回答文(次候補回答文と呼ぶ)を含むプラン1402を特定する情報である。この例では、プラン1は、プラン1実行時に会話サーバ13が出力する回答文A(1501)と、この回答文A(1501)に関連付けられた次プラン指定情報1502とを有している。次プラン指定情報1502は、回答文A(1501)についての次候補回答文である回答文B(1501)を有するプラン1402を特定する情報「ID:002」である。同様に、回答文B(1501)についても、次プラン指定情報1502が定められており、回答文B(1501)が出力された場合に、次候補回答文を含むプラン2(1402)が指定される。このように、プラン1402は次プラン指定情報1502により連鎖的につながり、一連の連続した内容をユーザに出力するというプラン会話を実現する。すなわち、ユーザに伝えたい内容(説明文、案内文、アンケート、など)を複数の回答文に分割し、かつ各回答文の順番を予め定めてプランとして準備しておくことにより、ユーザの発話に応じてこれら回答文を順番にユーザに提供することが可能となる。なお、次プラン指定情報1502によって指定されたプラン1402に含まれる回答文1502は、直前の回答文の出力に応答するユーザ発話があれば、必ずしも直ちに出力される必要はなく、ユーザと会話サーバ13との間で、当該プラントは別の話題についての会話を挟んだ後に、次プラン指定情報1502によって指定されたプラン1402に含まれる回答文1501が出力されることもあり得る。
【0069】
なお、図17に示す回答文1501は、図15に示す回答文830の中のいずれか一の回答文文字列に対応し、また図17に示す次プラン指定情報1502は、図15に示す次プラン指定情報840に対応している。
【0070】
なお、プラン1402のつながりは、図17に示すような一次元的配列に限られるものではない。図18は、図17とは別のつながり方を有するプラン1402の例を示す図である。図18に示す例では、プラン1(1402)は次候補回答文となる2つの回答文1501,すなわちプラン1402を指定できるよう、2つの次プラン指定情報1502を有している。ある回答文A(1501)を出力した場合の次候補回答文を有するプラン1402として、回答文B(1501)を有するプラン2(1402)、及び回答文C(1501)を有するプラン3(1402)の2つのプラン1402が定まるよう、次プラン指定情報1502が2つ設けられる。なお、回答文B、回答文Cは選択的・択一的であり、一方が出力された場合は他方は出力されず、当該プラン1(1402)は終了する。このように、プラン1402のつながりは一次元的順列の形態に限定されるものではなく、樹形図的な連結、網的な連結であっても構わない。
【0071】
なお、各プランがいくつの次候補回答文を有するかは限定されるものではない。また、話の終了となるプラン1402については、次プラン指定情報1502が存在しないこともあり得る。
【0072】
図19に、ある一連のプラン1402の具体例を示す。この一連のプラン14021〜14024は、危機管理に関する情報をユーザに知らせるための4つの回答文15011〜15014に対応している。4つの回答文15011〜15014は全部で一つのまとまりのある話(説明文章)を構成する。各プラン14021〜14024はそれぞれ「1000−01」「1000−02」「1000−03」「1000−04」というIDデータ17021〜17024を有している。なお、IDデータ中のハイフン以下の番号は、出力の順番を示す情報である。また、各プラン14021〜14024はそれぞれ次プラン指定情報15021〜15024を有している。次プラン指定情報15024の内容は、「1000−0F」というデータであるが、このハイフン以下の番号「0F」は、次に出力する予定のプランは存在せず、当該回答文が一連の話(説明文章)の終わりであることを示す情報である。
【0073】
この例では、ユーザ発話が「大地震が発生したときの危機管理を教えて」である場合に、プラン会話処理部320がこの一連のプランを実行開始する。すなわち、ユーザ発話「大地震が発生したときの危機管理を教えて」をプラン会話処理部320が受け付けると、プラン会話処理部320はプラン空間1401を検索して、ユーザ発話「大地震が発生したときの危機管理を教えて」に対応する回答文15011を有するプラン1402があるかどうかを調べる。この例では、「大地震が発生したときの危機管理を教えて」に対応するユーザ発話文字列17011が、プラン14021に対応するものとする。
【0074】
プラン会話処理部320はプラン14021を発見すると、そのプラン14021に含まれる回答文15011を取得し、この回答文15011をユーザ発話に対する回答として出力するとともに、次プラン指定情報15021により次候補回答文を特定する。
【0075】
次に、回答文15011の出力後に入力部100や音声認識部200などを介してユーザ発話を受け付けると、プラン会話処理部320は、プラン14022の実行を行う。すなわち、プラン会話処理部320は、次プラン指定情報15021により指定されたプラン14022の実行、すなわち2番目の回答文15012を出力するか否かを判定する。具体的には、プラン会話処理部320は当該回答文15012に対応付けられたユーザ発話文字列(用例文ともいう)17012、あるいは話題タイトル820(図19において図略)と、受け付けたユーザ発話とを比較し、これらが一致するか否かを判定する。一致する場合には、2番目の回答文15012を出力する。また、2番目の回答文15012を含むプラン14022には、次プラン指定情報15022が記述されているので、次候補回答文が特定される。
【0076】
同様に、これ以降継続してなされるユーザ発話に応じて、プラン会話処理部320はプラン14023、プラン14024に順に移行して、3番目の回答文15013、4番目の回答文15013の出力を行うことができる。なお、4番目の回答文15014は最終回答文であり、4番目の回答文15014の出力が完了すると、プラン会話処理部320はプラン実行を終了する。
このように、プラン14021〜14024を次々と実行することにより、予め用意した会話内容を定めた順番通りにユーザに提供することが可能となる。
図7に戻り、サーバ側会話制御部300の構成例の説明を続ける。
【0077】
談話空間会話制御処理部330は、話題特定情報検索部350と、省略文補完部360と、話題検索部370と、回答取得部380とを有している。前記管理部310は、サーバ側会話制御部300の全体を制御するものである。
【0078】
「談話履歴」とは、ユーザと会話サーバ13間の会話の話題や主題を特定する情報であって、談話履歴は後述する「着目話題特定情報」「着目話題タイトル」「利用者入力文話題特定情報」「回答文話題特定情報」の少なくともいずれか一つを含む情報である。また、談話履歴に含まれる「着目話題特定情報」「着目話題タイトル」「回答文話題特定情報」は直前の会話によって定められたものに限定されず、過去の所定期間の間に「着目話題特定情報」「着目話題タイトル」「回答文話題特定情報」となったもの、若しくはそれらの累積的記録であってもよい。
以下、談話空間会話制御処理部330を構成するこれら各部について説明する。
【0079】
話題特定情報検索部350は、形態素抽出部420で抽出された第一形態素情報と各話題特定情報とを照合し、各話題特定情報の中から、第一形態素情報を構成する形態素と一致する話題特定情報を検索するものである。具体的に、話題特定情報検索部350は、形態素抽出部420から入力された第一形態素情報が「佐藤」及び「好き」の二つの形態素で構成される場合には、入力された第一形態素情報と話題特定情報群とを照合する。
【0080】
この照合をした話題特定情報検索部320は、着目話題タイトル820focus(前回までに検索された話題タイトル、他の話題タイトルと区別するため820focusと表記する)に第一形態素情報を構成する形態素(例えば「佐藤」)が含まれているときは、その着目話題タイトル820focusを回答取得部380に出力する。一方、着目話題タイトル820focusに第一形態素情報を構成する形態素が含まれていないときは、話題特定情報検索部350は、第一形態素情報に基づいて利用者入力文話題特定情報を決定し、入力された第一形態素情報及び利用者入力文話題特定情報を省略文補完部360に出力する。なお、「利用者入力文話題特定情報」は、第一形態素情報に含まれる形態素のうち、利用者が話題としている内容に該当する形態素に相当する話題特定情報、若しくは第一形態素情報に含まれる形態素のうち、利用者が話題としている内容に該当する可能性がある形態素に相当する話題特定情報をいう。
【0081】
省略文補完部360は、前記第一形態素情報を、前回までに検索された話題特定情報810(以下、「着目話題特定情報」と呼ぶ)及び前回の回答文に含まれる話題特定情報810(以下、「回答文話題特定情報」と呼ぶ)を利用して、補完することにより複数種類の補完された第一形態素情報を生成する。例えばユーザ発話が「好きだ」という文であった場合、省略文補完部360は、着目話題特定情報「佐藤」を、第一形態素情報「好き」に含めて、補完された第一形態素情報「佐藤、好き」を生成する。
【0082】
すなわち、第一形態素情報を「W」、着目話題特定情報や回答文話題特定情報の集合を「D」とすると、省略文補完部360は、第一形態素情報「W」に集合「D」の要素を含めて、補完された第一形態素情報を生成する。
【0083】
これにより、第一形態素情報を用いて構成される文が、省略文であって日本語として明解でない場合などにおいて、省略文補完部360は、集合「D」を用いて、その集合「D」の要素(例えば、"佐藤")を第一形態素情報「W」に含めることができる。この結果、省略文補完部360は、第一形態素情報「好き」を補完された第一形態素情報「佐藤、好き」にすることができる。なお、補完された第一形態素情報「佐藤、好き」は、「佐藤が好きだ」というユーザ発話に対応する。
【0084】
すなわち、省略文補完部360は、利用者の発話内容が省略文である場合などであっても、集合「D」を用いて省略文を補完することができる。この結果、省略文補完部360は、第一形態素情報から構成される文が省略文であっても、その文が適正な日本語となるようにすることができる。
【0085】
また、省略文補完部360が、前記集合「D」に基づいて、補完後の第一形態素情報に一致する話題タイトル820を検索する。補完後の第一形態素情報に一致する話題タイトル820を発見した場合は、省略文補完部360はこの話題タイトル820を回答取得部380に出力する。回答取得部380は、省略文補完部360で検索された適切な話題タイトル820に基づいて、利用者の発話内容に最も適した回答文830を出力することができる。
【0086】
なお、省略文補完部360は、集合「D」の要素を第一形態素情報に含めるだけに限定されるものではない。この省略文補完部360は、着目話題タイトルに基づいて、その話題タイトルを構成する第一特定情報、第二特定情報又は第三特定情報のいずれかに含まれる形態素を、抽出された第一形態素情報に含めてもよい。
【0087】
話題検索部370は、省略文補完部360で話題タイトル810が決まらなかったとき、第一形態素情報と、利用者入力文話題特定情報に対応する各話題タイトル810とを照合し、各話題タイトル810の中から、第一形態素情報に最も適する話題タイトル810を検索するものである。
【0088】
具体的に、省略文補完部360から検索命令信号が入力された話題検索部370は、入力された検索命令信号に含まれる利用者入力文話題特定情報及び第一形態素情報に基づいて、その利用者入力文話題特定情報に対応付けられた各話題タイトルの中から、その第一形態素情報に最も適した話題タイトル810を検索する。話題検索部370は、その検索した話題タイトル810を検索結果信号として回答取得部380に出力する。
【0089】
先に掲げた図15は、ある話題特定情報810(=「佐藤」)に対応付けされた話題タイトル820,回答文830の具体例を示す。図15に示すように、例えば、話題検索部370は、入力された第一形態素情報「佐藤、好き」に話題特定情報810(=「佐藤」)が含まれるので、その話題特定情報810(=「佐藤」)を特定し、次に、その話題特定情報810(=「佐藤」)に対応付けられた各話題タイトル(820)1-1,1-2,…と入力された第一形態素情報「佐藤、好き」とを照合する。
【0090】
話題検索部370は、その照合結果に基づいて、各話題タイトル(820)1-1〜1-2の中から、入力された第一形態素情報「佐藤、好き」と一致する話題タイトル(820)1-1(佐藤;*;好き)を特定する。話題検索部340は、検索した話題タイトル(820)1-1(佐藤;*;好き)を検索結果信号として回答取得部380に出力する。
【0091】
回答取得部380は、省略文補完部360,或いは話題検索部370で検索された話題タイトル820に基づいて、その話題タイトル820に対応付けられた回答文830を取得する。また、回答取得部380は、話題検索部370で検索された話題タイトル820に基づいて、その話題タイトル820に対応付けられた各回答種類と、入力種類判定部440で判定された発話種類とを照合する。その照合をした回答取得部380は、各回答種類の中から、判定された発話種類と一致する回答種類を検索する。
【0092】
図15に示す例においては、回答取得部350は、話題検索部370で検索された話題タイトルが話題タイトル1-1(佐藤;*;好き)である場合には、その話題タイトル1-1に対応付けられている回答文1-1(DA,TAなど)の中から、入力種類判定部440で判定された「発話文のタイプ」(例えばDA)と一致する回答種類(DA)を特定する。この回答種類(DA)を特定した回答取得部380は、特定した回答種類(DA)に基づいて、その回答種類(DA)に対応付けられた回答文1-1(「私も佐藤が好きです。」)を取得する。
【0093】
ここで、上記"DA"、"TA"等のうち、"A"は、肯定形式を意味する。従って、発話種類及び回答種類に"A"が含まれているときは、ある事柄について肯定することを示している。また、発話種類及び回答種類には、"DQ"、"TQ"等の種類を含めることもできる。この"DQ"、"TQ"等のうち"Q"は、ある事柄についての質問を意味する。
【0094】
回答種類が上記質問形式(Q)からなるときは、この回答種類に対応付けられる回答文は、肯定形式(A)で構成される。この肯定形式(A)で作成された回答文としては、質問事項に対して回答する文等が挙げられる。例えば、発話文が「あなたはスロットマシンを操作したことがありますか?」である場合には、この発話文についての発話種類は、質問形式(Q)となる。この質問形式(Q)に対応付けられる回答文は、例えば「私はスロットマシンを操作したことがあります」(肯定形式(A))が挙げられる。
【0095】
一方、発話種類が肯定形式(A)からなるときは、この回答種類に対応付けられる回答文は、質問形式(Q)で構成される。この質問形式(Q)で作成された回答文としては、発話内容に対して聞き返す質問文、又は特定の事柄を聞き出す質問文等が挙げられる。例えば、発話文が「私はスロットマシンで遊ぶのが趣味です」である場合には、この発話文についての発話種類は、肯定形式(A)となる。この肯定形式(A)に対応付けられる回答文は、例えば"パチンコで遊ぶのは趣味ではないのですか?"(特定の事柄を聞き出す質問文(Q))が挙げられる。
【0096】
回答取得部380は、取得した回答文830を回答文信号として管理部310に出力する。回答取得部350から回答文信号が入力された管理部310は、入力された回答文信号を出力部600に出力する。
【0097】
CA会話処理部340は、ユーザ発話に対して、プラン会話処理部320及び談話空間会話制御処理部330のいずれにおいても回答文が決定しない場合に、ユーザ発話の内容に応じて、ユーザとの会話を継続できるような回答文を出力する機能を有する。
以上で会話サーバ13の構成例の説明を終了する。
【0098】
[2.会話制御方法]
上記構成を有する会話サーバ13は、以下のように動作することにより会話制御方法を実行する。
次に、本実施の形態にかかる会話サーバ13,より詳しくはサーバ側会話制御部300の動作について説明する。
【0099】
図20は、サーバ側会話制御部300のメイン処理の一例を示すフローチャートである。このメイン処理は、サーバ側会話制御部300がユーザ発話を受け付ける毎に実行される処理であり、このメイン処理が行われることによりユーザ発話に対する回答文の出力が行われ、ユーザと会話サーバ13間の会話(対話)が成立する。
【0100】
メイン処理にはいると、サーバ側会話制御部300、より詳しくはプラン会話処理部320はまずプラン会話制御処理(S1801)を実行する。プラン会話制御処理は、プランを実行する処理である。
図21、図22はプラン会話制御処理の一例を示すフローチャートである。以下に図21、図22を参照しながら、プラン会話制御処理の例について説明する。
【0101】
プラン会話制御処理を開始すると、プラン会話処理部320はまず、基本制御状態情報チェックを行う(S1901)。基本制御状態情報は、プラン1402の実行の完了の有無が、基本制御状態情報として所定の記憶領域に格納される。
基本制御状態情報は、プランの基本制御状態を記述する役割を有する。
図23は、シナリオと呼ばれるタイプのプランについて生じうる4つの基本制御状態を示す図である。以下、それぞれの状態について説明する。
(1)結束
【0102】
この基本制御状態は、ユーザ発話が実行中のプラン1402、より詳しくはプラン1402に対応する話題タイトル820や用例文1701に一致する場合である。この場合は、プラン会話処理部320は当該プラン1402を終了し、次プラン指定情報1502にて指定された回答文1501に対応するプラン1402に移行する。
(2)破棄
【0103】
この基本制御状態は、ユーザ発話内容がプラン1402の終了を要求していると判断される場合、又はユーザの関心が実行中のプラン以外の事項に移ったと判定される場合に、設定される基本制御状態である。基本制御状態情報が破棄を示している場合は、プラン会話処理部320は、破棄の対象となったプラン1402以外にユーザ発話に対応するプラン1402がないかどうかを検索し、存在する場合にはそのプラン1402の実行を開始し、存在しない場合には、プランの実行を終了する。
(3)維持
【0104】
この基本制御状態は、ユーザ発話が、実行中のプラン1402に対応するに対応する話題タイトル820(図17参照)や用例文1701(図19参照)に該当しない場合であって、かつユーザ発話が基本制御状態「破棄」に該当するものではないと判断される場合に、基本制御状態情報に記述される基本制御状態である。
【0105】
この基本制御状態である場合には、プラン会話処理部320は、ユーザ発話を受け付けると、まず保留・中止しているプラン1402を再開するか否かを検討し、ユーザ発話がプラン1402再開に適さない場合、例えばユーザ発話がプラン1402に対応する話題タイトル802や用例文1702に対応しない場合は、他のプラン1402の実行を開始し、或いは後述の談話空間会話制御処理(S1902)などを行う。ユーザ発話がプラン1402再開に適している場合は、記憶している次プラン指定情報1502に基づいて、回答文1501の出力を行う。
【0106】
基本制御状態が「維持」である場合は、プラン会話処理部320は、当該プラン1402に対応する回答文1501以外の回答を出力できるように、他のプラン1402を検索し、あるいは後述の談話空間会話制御処理などを行うが、ユーザ発話が再びプラン1402に関するものとなった場合は、そのプラン1402の実行を再開する。
(4)継続
【0107】
この状態は、ユーザ発話が、実行中のプラン1402に含まれる回答文1501に対応しない場合であって、かつユーザ発話内容が基本制御状態「破棄」に該当するものではないと判断され、かつユーザ発話から解釈されるユーザの意図が明瞭でない場合に、設定される基本制御状態である。
【0108】
基本制御状態が「継続」である場合は、プラン会話処理部320は、ユーザ発話を受け付けるとまず保留・中止しているプラン1402を再開するか否かを検討し、ユーザ発話がプラン1402再開に適さない場合は、ユーザからさらなる発話を引き出すための回答文を出力できるように、後述のCA会話制御処理などを行う。
図21に戻り、プラン会話制御処理の説明を続ける。
【0109】
基本制御状態情報を参照したプラン会話処理部320は、基本制御状態情報が示す基本制御状態が「結束」であるか否かを判定する(S1902)。基本制御状態が「結束」であると判定した場合(S1902、Yes)は、プラン会話処理部320は、基本制御状態情報が示す実行中のプラン1402において、回答文1501が最終回答文であるかどうかを判定する(S1903)。
【0110】
最終回答文1501が出力済みであると判定した場合(S1903、Yes)、プラン会話処理部320は、すでにそのプラン1402においてユーザに回答すべき内容をすべて伝え終えているので、新たな別のプラン1402を開始するかいなかを判定するため、プラン空間内にユーザ発話に対応するプラン1402が存在するか検索を行う(S1904)。この検索の結果ユーザ発話に対応するプラン1402が発見できなかった場合(S1905、No)、ユーザに提供すべきプラン1402は存在していないので、プラン会話処理部320はそのままプラン会話制御処理終了する。
【0111】
一方、この検索の結果、ユーザ発話に対応するプラン1402を発見した場合(S1905、Yes)、プラン会話処理部320は当該プラン1402に移行する(S1906)。これは、ユーザに提供すべきプラン1402が存在しているため、当該プラン1402の実行(プラン1402に含まれる回答文1501の出力)を開始するためである。
【0112】
次に、プラン会話処理部320は当該プラン1402の回答文1501を出力する(S1908)。出力された回答文1501は、ユーザ発話に対する回答となり、プラン会話処理部320はユーザに伝えたい情報を提供することとなる。
回答文出力処理(S1908)後、プラン会話処理部320はプラン会話制御処理を終了する。
【0113】
一方、先に出力した回答文1501が最終の回答文1501であるか否かの判定(S1903)において、先に出力した回答文1501が最終の回答文1501でない場合(S1903,No)は、プラン会話処理部320は、先に出力した回答文1501に続く回答文1501、すなわち次プラン指定情報1502により特定されている回答文1501に対応するプラン1402に移行する(S1907)。
【0114】
この後、プラン会話処理部320は該当するプラン1402に含まれる回答文1501を出力し、ユーザ発話に対する回答を行う(S1908)。出力された回答文1501は、ユーザ発話に対する回答となり、プラン会話処理部320はユーザに伝えたい情報を提供することとなる。回答文出力処理(S1908)後、プラン会話処理部320はプラン会話制御処理を終了する。
【0115】
さて、S1902の判定処理において、基本制御状態情報が「結束」でない場合(S1902,No)は、プラン会話処理部320は基本制御状態情報が示す基本制御状態が「破棄」であるか否かを判定する(S1909)。基本制御状態が「破棄」であると判定した場合(S1909、Yes)は、継続すべきプラン1402が存在していないため、プラン会話処理部320は、開始すべき新たな別のプラン1402が存在するか判定すべく、プラン空間1401内にユーザ発話に対応するプラン1402が存在するか検索を行う(S1904)。この後、先に述べたS1903(Yes)における処理と同様に、S1905からS1908までの処理をプラン会話処理部320は実行する。
【0116】
一方、基本制御状態情報が示す基本制御状態が「破棄」であるか否かの判定(S1909)において、基本制御状態が「破棄」でないと判定した場合(S1909,No)は、プラン会話処理部320は、基本制御状態情報が示す基本制御状態が「維持」であるか否かの判定(S1910)をさらに行う。
【0117】
基本制御状態情報が示す基本制御状態が「維持」である場合(S1910、Yes)には、プラン会話処理部320は、保留・停止しているプラン1402についてユーザが再び関心を示したか否かを調べ、関心を示した場合には、一時保留・停止しているプラン1402を再開するように動作する。すなわち、プラン会話処理部320は、保留・停止中のプラン1402を検査(図22;S2001)し、ユーザ発話が保留・停止中の当該プラン1402が対応するか否かを判定する(S2002)。
【0118】
ユーザ発話が当該プラン1402に対応すると判定された場合(S2002、Yes)は、プラン会話処理部320はそのユーザ発話に対応するプラン1402に移行し(S2003)、その後、そのプラン1402に含まれる回答文1501を出力するように、回答文出力処理(図21;S1908)を実行する。このように動作することにより、プラン会話処理部320は、保留・中断していたプラン1402を、ユーザ発話に応じて、再開することが可能となり、予め用意していたプラン1402に含まれる内容をすべてユーザに伝達することが可能となる。
【0119】
一方、先のS2002(図22参照)において、保留・停止中のプラン1402がユーザ発話に対応しないと判定された場合(S2002、No)は、プラン会話処理部320は、開始すべき新たな別のプラン1402が存在するか判定すべく、プラン空間1401内にユーザ発話に対応するプラン1402が存在するか検索を行う(図21;S1904)。この後、先に述べたS1903(Yes)における処理と同様に、S1905からS1909までの処理をプラン会話処理部320は実行する。
【0120】
さて、S1910の判定において、基本制御状態情報が示す基本制御状態が「維持」でない場合(S1910、No)は、基本制御状態情報が示す基本制御状態が「継続」であることを意味する。この場合には、プラン会話処理部320は、回答文の出力を行うことなく、プラン会話制御処理を終了する。
以上で、プラン会話制御処理の説明を終了する。
【0121】
図20に戻り、メイン処理の説明を続ける。
プラン会話制御処理(S1801)を終了すると、サーバ側会話制御部300は談話空間会話制御処理を開始する(S1802)。但し、プラン会話制御処理(S1801)において回答文出力を行った場合は、サーバ側会話制御部300は談話空間会話制御処理(S1802)、及び後に説明するCA会話制御処理(S1803)のいずれも行わず、基本制御情報更新処理(S1804)を行ってメイン処理を終了する。
図24は、本実施の形態にかかる談話空間会話制御処理の一例を示すフローチャートである。
まず、利用者からの入力内容を取得するステップを行う(ステップS2201)。
次いで、取得した入力内容に基づいて、入力内容に対応する文字列を特定するステップを行う(ステップS2202)。
【0122】
そして、文字列特定部410が、特定された一連の文字列を一文毎に区切るステップを行う(ステップS2203)。具体的には、管理部310から文字列信号(あるいは形態素信号)が入力された文字列特定部410は、その入力された一連の文字列の中に、ある一定以上の時間間隔があるときは、その部分で文字列を区切る。文字列特定部410は、その区切った各文字列を形態素抽出部420及び入力種類判定部440に出力する。なお、文字列特定部410は、入力された文字列がキーボードから入力された文字列である場合には、句読点又はスペース等のある部分で文字列を区切るのが好ましい。
【0123】
その後、形態素抽出部420が、文字列特定部410で特定された文字列に基づいて、文字列の最小単位を構成する各形態素を第一形態素情報として抽出するステップを行う(ステップS2204)。具体的に、文字列特定部410から文字列が入力された形態素抽出部420は、入力された文字列と、形態素データベース430に予め格納されている形態素群とを照合する。なお、その形態素群は、本実施の形態では、それぞれの品詞分類に属する各形態素について、その形態素の見出し語・読み・品詞・活用形などを記述した形態素辞書として準備されている。
【0124】
この照合をした形態素抽出部420は、入力された文字列の中から、予め記憶された形態素群に含まれる各形態素と一致する各形態素(m1、m2、…)を抽出する。形態素抽出部420は、抽出した各形態素を第一形態素情報として話題特定情報検索部350に出力する。
【0125】
次いで、入力種類判定部440が、文字列特定部410で特定された一文を構成する各形態素に基づいて、「発話文のタイプ」を判定するステップを行う(ステップS2205)。具体的には、文字列特定部410から文字列が入力された入力種類判定部440は、入力された文字列に基づいて、その文字列と発話種類データベース450に格納されている各辞書とを照合し、その文字列の中から、各辞書に関係する要素を抽出する。この要素を抽出した入力種類判定部440は、抽出した要素に基づいて、その要素がどの「発話文のタイプ」に属するのかを判定する。入力種類判定部440は、判定した「発話文のタイプ」(発話種類)を回答取得部380に出力する。
【0126】
そして、話題特定情報検索部350が、形態素抽出部420で抽出された第一形態素情報と着目話題タイトル820focusとを比較するステップを行う(ステップS2206)。
【0127】
第一形態素情報を構成する形態素と着目話題タイトル820focusとが一致する場合、話題特定情報検索部350は、その話題タイトル820を回答取得部380に出力する。一方、話題特定情報検索部350は、第一形態素情報を構成する形態素と話題タイトル820とが一致しなかった場合には、入力された第一形態素情報及び利用者入力文話題特定情報を検索命令信号として省略文補完部360に出力する。
【0128】
その後、省略文補完部360が、話題特定情報検索部350から入力された第一形態素情報に基づいて、着目話題特定情報及び回答文話題特定情報を、入力された第一形態素情報に含めるステップを行う(ステップS2207)。具体的には、第一形態素情報を「W」、着目話題特定情報及び回答文話題特定情報の集合を「D」とすると、省略文補完部360は、第一形態素情報「W」に話題特定情報「D」の要素を含めて、補完された第一形態素情報を生成し、この補完された第一形態素情報と集合「D」に関連付けされたすべての話題タイトル820とを照合し、補完された第一形態素情報と一致する話題タイトル820があるか検索する。補完された第一形態素情報と一致する話題タイトル820がある場合は、省略文補完部360は、その話題タイトル820を回答取得部380に出力する。一方、補完された第一形態素情報と一致する話題タイトル820を発見しなかった場合は、省略文補完部360は、第一形態素情報と利用者入力文話題特定情報とを話題検索部370に渡す。
【0129】
次いで、話題検索部370は、第一形態素情報と、利用者入力文話題特定情報とを照合し、各話題タイトル820の中から、第一形態素情報に適した話題タイトル820を検索するステップを行う(ステップS2208)。具体的には、省略文補完部360から検索命令信号が入力された話題検索部370は、入力された検索命令信号に含まれる利用者入力文話題特定情報及び第一形態素情報に基づいて、その利用者入力文話題特定情報に対応付けられた各話題タイトル820の中から、その第一形態素情報に適した話題タイトル820を検索する。話題検索部370は、その検索の結果得られた話題タイトル820を検索結果信号として回答取得部380に出力する。
【0130】
次いで、回答取得部380が、話題特定情報検索部350、省略文補完部360,あるいは話題検索部370で検索された話題タイトル820に基づいて、文解析部400により判定された利用者の発話種類と、話題タイトル820に対応付けられた各回答種類とを照合し、回答文830の選択を行う(ステップS2209)。
【0131】
具体的には、以下のようにして回答文830の選択が行われる。すなわち、話題検索部370から検索結果信号と、入力種類判定部440から「発話文のタイプ」とが入力された回答取得部380は、入力された検索結果信号に対応する「話題タイトル」と、入力された「発話文のタイプ」とに基づいて、その「話題タイトル」に対応付けられている回答種類群の中から、「発話文のタイプ」(DAなど)と一致する回答種類を特定する。
続いて、回答取得部380は、管理部310を介して、ステップS2209において取得した回答文830を出力する(ステップS2210)。
以上で、談話空間会話制御処理の説明を終了し、図20に戻りメイン処理の説明を再開する。
【0132】
サーバ側会話制御部300は談話空間会話制御処理を終了すると、CA会話制御処理を実行する(S1803)。但し、プラン会話制御処理(S1801)及び談話空間会話制御処理(S1801)において回答文出力を行った場合は、サーバ側会話制御部300はCA会話制御処理(S1803)を行わず、基本制御情報更新処理(S1804)を行ってメイン処理を終了する。
【0133】
CA会話制御処理(S1803)は、ユーザ発話が、「何かを説明している」のか、「何かを確認している」のか、「非難や攻撃をしている」のか、「これら以外」なのかを判定し、ユーザ発話の内容及び判定結果に応じた回答文を出力する処理である。このCA会話制御処理を行うことにより、プラン会話制御処理、及び談話空間会話制御処理のいずれにおいても、ユーザ発話に適した回答文が出力できなくとも、ユーザとの会話の流れをとぎれさせることなく継続できるような、いわば「つなぎ」の回答文を出力することを可能とする役割を有している。
図25は、CA会話処理部340の構成例を示す機能ブロック図である。CA会話処理部340は、判定部2301と、回答部2302とを有している。
【0134】
判定部2301は、管理部310又は談話空間会話制御処理部330からユーザ発話文を受け取ると共に、回答文出力命令を受け取る。この回答文出力命令は、前記プラン会話処理部20及び談話空間会話制御処理部330が回答文出力を行わない、又は行ない場合になされる。また、判定部2301は、文解析部400(より詳しくは入力種類判定部440)より入力種類、すなわちユーザ発話のタイプ(図9参照)を受け取る。判定部2301は、これに基づいてユーザ発話意図を判定する。例えば、ユーザ発話が「佐藤が好きです」という文であった場合には、この文に含まれる「佐藤」「好き」という自立語と、ユーザ発話のタイプが陳述肯定文(DA)であることに基づいて、「佐藤」「好き」についてユーザが説明を行っていると判定する。
【0135】
回答部2302は、判定部2301からの判定結果に応じて、回答文を決定し、出力する。この例では、回答部2302は、説明会話対応文テーブル、確認会話対応文テーブル、非難攻撃会話対応文テーブル、反射会話文テーブルを有している。
【0136】
説明会話対応文テーブルは、ユーザ発話が何かを説明していると判定された場合にその発話に対する回答として出力する回答文を複数種類格納したテーブルである。例えば、回答文例としては、「はいそうなんですか。」のような聞き返しをされない回答文が用意されている。
【0137】
確認会話対応文テーブルは、ユーザ発話が何かを確認・質問していると判定された場合にその発話に対する回答として出力する回答文を複数種類格納したテーブルである。例えば、回答文例としては、「ちょっとわかりません。」のような聞き返しをされない回答文が用意されている。
【0138】
非難攻撃会話対応文テーブルは、ユーザ発話が会話制御システムを非難攻撃していると判定された場合にその発話に対する回答として出力する回答文を複数種類格納したテーブルである。例えば、回答文例としては、「ごめんなさい。」のような回答文が用意されている。
【0139】
反射会話文テーブルは、ユーザ発話「『***』なら興味ありません。」のような回答文が用意されている。なお、『***』は当該ユーザ発話に含まれる自立語が格納されることを意味する。
【0140】
回答部2302は、これら説明会話対応文テーブル、確認会話対応文テーブル、非難攻撃会話対応文テーブル、反射会話文テーブルを参照して、回答文を決定し、決定した回答文を管理部310に渡すように機能する。
【0141】
次に、上記CA会話処理部340が実行する処理であるCA会話処理(S1803)の具体例について説明する。図26は、CA会話処理の具体例を示すフローチャートである。なお、先に述べた様に、プラン会話制御処理(S1801)及び談話空間会話制御処理(S1802)において回答文出力を行った場合は、サーバ側会話制御部300はCA会話制御処理(S1803)を行わない。すなわち、CA会話制御処理(S1803)はプラン会話制御処理(S1801)及び談話空間会話制御処理(S1802)において回答文出力が保留されている場合にのみ、回答文出力を行う。
【0142】
CA会話処理(S1803)において、CA会話処理部340(判定部2301)はまず、ユーザ発話が何かを説明している文か否かを判定する(S2401)。ユーザ発話が何かを説明している文であると判定した場合(S2401,Yes)には、CA会話処理部340(回答部2302)は説明会話対応文テーブルを参照するなどの方法によって回答文を決定する。
【0143】
一方、ユーザ発話が何かを説明している文ではないと判定した場合(S2401,No)には、CA会話処理部340(判定部2301)は、ユーザ発話が何かを確認又は質問している文か否かを判定する(S2403)。ユーザ発話が何かを確認又は質問している文であると判定した場合(S2403,Yes)には、CA会話処理部340(回答部2302)は確認会話対応文テーブルを参照するなどの方法によって回答文を決定する(S2404)。
【0144】
一方、ユーザ発話が何かを確認又は質問している文ではないと判定した場合(S2403,No)には、CA会話処理部340(判定部2301)は、ユーザ発話が非難又は攻撃をしている文か否かを判定する(S2405)。ユーザ発話が非難又は攻撃をしている文であると判定した場合(S2405,Yes)には、CA会話処理部340(回答部2302)は攻撃非難会話対応文テーブルを参照するなどの方法によって回答文を決定する(S2406)。
【0145】
一方、ユーザ発話が非難又は攻撃をしている文ではないと判定した場合(S2405,No)には、CA会話処理部340(判定部2301)は、回答部2302に反射会話回答文を決定するよう要求する。この要求に応じて、CA会話処理部340(回答部2302)は反射会話対応文テーブルを参照するなどの方法によって回答文を決定する(S2407)。
【0146】
以上でCA会話処理(S1903)は終了する。このCA会話処理により、会話サーバ13はユーザ発話状態に応じて会話の成立を維持することが可能な回答を行る。
図20に戻り、サーバ側会話制御部300のメイン処理を続ける。
【0147】
CA会話処理(S1803)が終了すると、サーバ側会話制御部300は基本制御情報更新処理を行う(S1804)。この処理において、サーバ側会話制御部300,より詳しくは管理部310は、プラン会話処理部320が回答文出力を行った場合は基本制御情報を「結束」に設定し、プラン会話処理部320が回答文出力を停止した場合は基本制御情報を「破棄」に設定し、談話空間会話制御処理部330が回答文出力を行った場合は基本制御情報を「維持」に設定し、CA会話処理部340が回答文出力を行った場合は基本制御情報を「継続」に設定する。
この基本制御情報更新処理で設定された基本制御情報は、前述のプラン会話制御処理(S1801)において参照され、プランの継続や再開に利用される。
【0148】
以上、メイン処理を、ユーザ発話を受け付ける毎に実行することにより、会話サーバ13は、ユーザ発話に応じて、予め用意したプランを実行できるとともに、プランに含まれない話題についても適宜応答することができる。
[会話サーバの第2の態様]
【0149】
次に、会話サーバ13の第2の態様について述べる。第2の実施の形態にかかる会話サーバ13は、ユーザ発話内容がいかなる内容であっても、ユーザ発話の内容がいかなるものであっても、予め定めた回答文を予め定めた順番で出力させるように回答文を出力されるプランである、強制型シナリオと呼ぶタイプのプランを扱うことができることを特徴としている。かかる会話サーバ13は、会話データベース500に記憶されているプラン1402(複数)の少なくとも一部は、例えば、順番に出力される第1から第Mまでの回答文を格納したN個のプランであって、このN個のプランのうちの第M番目のプランは、第M+1番目の回答文を指定する次候補指定情報を有している(但し、M、Mは整数、且つ1≦M<N)。
【0150】
なお、第2の態様にかかる会話サーバ13の説明は、先に述べた会話サーバ13と異なる部分についてのみ説明し、同様の構成・動作については説明を省略する。
【0151】
図27に、強制型シナリオと呼ばれるタイプのプラン1402の具体例を示す。この一連のプラン140211〜140216は、車に関係するアンケートを構成する回答文150111〜150116に対応している。プラン140211〜140216におけるユーザ発話文字列170111〜170116は、「*」として表示されているが「*」はすべてのユーザ発話にも対応することを意味する。
【0152】
なお、ここに示した例では、図27において、プラン140210は、強制型シナリオの開始のきっかけとなるプランであって、強制型シナリオの一部とはしていない。
【0153】
各プラン140210〜140216はそれぞれ「2000−01」「2000−02」「1000−03」「2000−04」「2000−05」「2000−06」「2000−07」というIDデータ170210〜170216を有している。また、各プラン140210〜140216はそれぞれ次プラン指定情報150210〜150216を有している。また、次プラン指定情報150216の内容は、「2000−0F」というデータであるが、このハイフン以下の番号「0F」は、次に出力する予定のプランは存在せず、当該回答文がアンケートの終わりであることを示す情報である。
【0154】
さて、この例では、ユーザと会話サーバ13との会話が進行する中で、ユーザが「車が欲しい」というユーザ発話を発した(若しくは入力した)場合に、プラン会話処理部320がこの一連のプランを実行開始する。すなわち、ユーザ発話「車が欲しい」を会話サーバ13、より詳しくはプラン会話処理部320が受け付けると、プラン会話処理部320はプラン空間1401を検索して、ユーザ発話「車が欲しい」に対応する回答文1501を有するプラン1402があるかどうかを調べる。
この例では、「車が欲しい」に対応するユーザ発話文字列170110が、プラン140210に対応するものとする。
【0155】
プラン会話処理部320はプラン140210を発見すると、そのプラン140210に含まれる回答文150110を取得し、この回答文150110をユーザ発話に対する回答「それでは簡単なアンケートにお答えください。質問は五つです。アンケートにお答えいただける方は、『アンケートに答えてもよい』と入力してください」として出力するとともに、次プラン指定情報150210により次候補回答文を特定する。この例では、次プラン指定情報150210は、IDデータ「2000−02」を含んでいる。プラン会話処理部320は、IDデータ「2000−02」に対応するプラン140211の回答文を次候補回答文として記憶保持する。
【0156】
上記回答文「それでは簡単なアンケートにお答えください。質問は五つです。アンケートとにお答えいただける方は、『アンケートに答えてもよい』と入力してください」に対するユーザの回答、すなわちユーザ発話が「アンケートに答えてもよい」ではない場合には、プラン会話処理部320、或いは談話空間会話制御処理部330、或いはCA会話処理部340が、このユーザ発話に対応する何らかの回答文の出力を行い、アンケートの開始には至らない。
【0157】
一方、ユーザ発話「アンケートに答えてもよい」がなされた場合には、プラン会話処理部320は、次候補回答文として指定されているプラン140211を選択し、このプランの実行を行う。すなわち、プラン会話処理部320は、当該プラン140211の有する回答文150111であるという回答を出力させると共に、当該プラン140211の有する次プラン指定情報150211により次候補回答文を特定する。この例では、次プラン指定情報150211は、IDデータ「2000−03」を含んでいる。プラン会話処理部320は、IDデータ「2000−03」に対応するプラン140212が有する回答文を次候補回答文とする。これで強制型シナリオであるアンケートの実施が開始することになる。
【0158】
この会話サーバ13から出力された回答文「ありがとうございます。それでは第一問。車をお買いになるとしたら新車にしますか?中古車にしますか?」に対して何らかのユーザ発話があった場合は、次候補回答文として指定されているプラン140212を選択し、このプランの実行を行う。すなわち、プラン会話処理部320は、当該プラン140212の有する回答文150112である「第2問。国産車か外車かどちらをお望みですか?」という回答を出力させると共に、当該プラン140212の有する次プラン指定情報150212により次候補回答文を特定する。この例では、次プラン指定情報150212は、「2000−04」であり、このIDを有するプラン140213が次候補回答文として選択される。
【0159】
なお、この強制型シナリオと呼ばれるタイプのプランは、ユーザ発話文字列1701の内容がすべてのユーザ発話内容を示す記述「*」となっているため、どのような内容のユーザ発話がなされても、プラン会話処理部320は選択したプランを実行する。例えば、ユーザ発話が「わからないなあ」「もうやめようよ」等のアンケートの回答ではないと思われる場合でも、次の質問である回答文の出力を継続して行うこととなる。
【0160】
これ以降、会話サーバ13、より詳しくはプラン会話処理部320は、ユーザ発話を受け付ける毎に、ユーザ発話の内容の如何を問わず、プラン140213、プラン140214、プラン140215、プラン140216の実行を順番に行う。すなわち、会話サーバ13、より詳しくはプラン会話処理部320は、ユーザ発話を受け付ける毎に、ユーザ発話の内容の如何を問わず、プラン140213、プラン140214、プラン140215、プラン140216の回答文150113〜150116である「第3問。車種は?セダンかスポーツカーか、ワゴンかワンボックスか、どのようなタイプが欲しいですか?」、「第4問。予算はいくらくらいをお考えですか?」、「第5問。お求めになるとすれば、いつ頃でしょうか?」、「質問は以上です。どうもありがとうございました。」を順番に出力する。
【0161】
なお、プラン会話処理部320は、プラン140216の有する次プラン指定情報150216より当該回答文がアンケートの終わりと認識し、プラン会話処理を終了する。
図28は、強制型シナリオと呼ばれるタイプのプランの別の例を示す図である。
【0162】
図27に示した例においては、ユーザ発話がアンケートの回答であるか否かを問わず、アンケートの質問を進めていく会話制御方式であったが、図28に示す例では、ユーザ発話がアンケートの回答である場合にのみ、次のアンケート質問に進み、そうでない場合はアンケート質問を繰り返してアンケートの回答を取得することを試みる会話制御方式である。
【0163】
図28に示す例は、図27と同様の車に関係するアンケートを構成する回答文を有するプランであって、このアンケートのうち第一問(図27,プラン140211参照)、第二問(図27,プラン140212参照)、第三問(図27,プラン140213参照)に対応するプランを図示しており、第四問以降に対応するプランは省略している。なお、ユーザ発話文字列170124は、ユーザ発話が「新車」又は「中古車」のいずれでもない発話であることを示すデータであり、同様にユーザ発話文字列170127は、ユーザ発話が「国産車」又は「外車」のいずれでもない発話であることを示すデータである。
【0164】
さて、図28に示す例において、「アンケートに回答してもよい」というユーザ発話がなされたものとする。すると、プラン会話処理部320はプラン空間1401を検索して、プラン140221を発見する。そのプラン140221に含まれる回答文150121を取得し、この回答文150121をユーザ発話に対する回答「ありがとうございます。それでは第一問。車をお買いになるとしたら新車にしますか?中古車にしますか?」として出力するとともに、次プラン指定情報150221により次候補回答文を特定する。この例では、次プラン指定情報150221は、3つのIDデータ「2000−02」「2000−03」「2000−04」を含んでいる。プラン会話処理部320は、この3つのIDデータ「2000−02」「2000−03」「2000−04」に対応するプラン140222、プラン140223、プラン140224の回答文を次候補回答文として記憶保持する。
【0165】
ここで、会話サーバ13から出力された回答文「ありがとうございます。それでは第一問。車をお買いになるとしたら新車にしますか?中古車にしますか?」に答えるユーザ発話「新車」がなされた場合には、プラン会話処理部320は、次候補回答文として指定されている3つの140222、プラン140223、プラン140224のうち、このユーザ発話に対応するユーザ発話文字列170122を有するプラン140222を選択し、このプランの実行を行う。すなわち、プラン会話処理部320は、当該プラン140222の有する回答文150122である「第2問。国産車か外車かどちらをお望みですか?」という回答を出力させると共に、当該プラン140222の有する次プラン指定情報150222により次候補回答文を特定する。この例では、次プラン指定情報150222は、3つのIDデータ「2000−06」「2000−07」「2000−08」を含んでいる。プラン会話処理部320は、3つのIDデータ「2000−06」「2000−07」「2000−08」に対応する3つのプラン140225、140226、140227が有する回答文を次候補回答文とする。すなわち、会話サーバ13は、アンケート第一問の答え「新車」の収集を完了し、アンケート第二問の答えの取得へ進むよう、会話制御を実行している。
【0166】
一方、会話サーバ13から出力された回答文「ありがとうございます。それでは第一問。車をお買いになるとしたら新車にしますか?中古車にしますか?」に答えるユーザ発話「中古車」がなされた場合には、プラン会話処理部320は、次候補回答文として指定されている3つの140222、プラン140223、プラン140224のうち、このユーザ発話に対応するユーザ発話文字列170123を有するプラン140223を選択し、このプランの実行を行う。すなわち、プラン会話処理部320は、当該プラン140223の有する回答文150123である「第2問。国産車か外車かどちらをお望みですか?」という回答を出力させると共に、当該プラン140223の有する次プラン指定情報150223により次候補回答文を特定する。この例では、次プラン指定情報150223は、先の次プラン指定情報150222と同様に、3つのIDデータ「2000−06」「2000−07」「2000−08」を含んでいる。プラン会話処理部320は、3つのIDデータ「2000−06」「2000−07」「2000−08」に対応する3つのプラン140225、140226、140227が有する回答文を次候補回答文とする。すなわち、会話サーバ13は、アンケート第一問の答え「中古車」の収集を完了し、アンケート第二問の答え取得へ進むよう、会話制御を実行している。
【0167】
また、会話サーバ13から出力された回答文「ありがとうございます。それでは第一問。車をお買いになるとしたら新車にしますか?中古車にしますか?」に答えるユーザ発話が「新車」でも「中古車」でもない場合、例えば「わからない」とか「どちらでもよい」がなされた場合には、プラン会話処理部320は、次候補回答文として指定されている3つの140222、プラン140223、プラン140224のうち、このユーザ発話に対応するユーザ発話文字列170124を有するプラン140224を選択し、このプランの実行を行う。すなわち、プラン会話処理部320は、当該プラン140224の有する回答文150124である「とりあえず第1問の回答をお願いします。車をお買いになるとしたら、新車にしますか?中古車にしますか?」という回答を出力させると共に、当該プラン140224の有する次プラン指定情報150224により次候補回答文を特定する。この例では、次プラン指定情報150224は、3つのIDデータ「2000−03」「2000−04」「2000−05」を含んでいる。プラン会話処理部320は、3つのIDデータ「2000−03」「2000−04」「2000−05」に対応する3つのプラン140222、140223、140224が有する回答文を次候補回答文とする。すなわち、会話サーバ13は、再びユーザにアンケート第一問を繰り返し、アンケート第一問に対する答えの収集を試みる会話制御を実行する。言い換えれば、会話サーバ13、より詳しくはプラン会話処理部320は、ユーザが「新車」若しくは「中古車」のいずれかのユーザ発話するまでユーザにアンケート第一問を繰り返す。
【0168】
さて、プラン会話処理部320が先のプラン140222又は140223を実行し、回答文「第2問。国産車か外車かどちらをお望みですか?」を出力した後の処理について説明を進める。会話サーバ13から出力された回答文「第2問。国産車か外車かどちらをお望みですか?」に対して、ユーザ発話「国産車」がなされた場合には、プラン会話処理部320は、次候補回答文として指定されている3つのプラン140225、プラン140226、プラン140227のうち、このユーザ発話に対応するユーザ発話文字列170125を有するプラン140225を選択し、このプランの実行を行う。すなわち、プラン会話処理部320は、当該プラン140225の有する回答文150125である「第3問。車種は?セダンかスポーツカーか、ワゴンかワンボックスか、どのようなタイプが欲しいですか?」という回答を出力させると共に、当該プラン140225の有する次プラン指定情報150225により次候補回答文を特定する。この例では、次プラン指定情報150225は、3つのIDデータ「2000−09」「2000−10」「2000−11」を含んでいる。プラン会話処理部320は、3つのIDデータ「2000−09」「2000−10」「2000−11」に対応する3つのプランが有する回答文を次候補回答文とする。すなわち、この時点で会話サーバ13は、アンケート第二問の答え「国産車」の収集を完了し、アンケート第三問の答え取得へ進むよう、会話制御を実行している。なお、「2000−09」「2000−10」「2000−11」に対応するプランは図28においては省略されている。
【0169】
一方、会話サーバ13から出力された回答文「第2問。国産車か外車かどちらをお望みですか?」に答えるユーザ発話「外車」がなされた場合には、プラン会話処理部320は、次候補回答文として指定されている3つのプラン140225、プラン140226、プラン140227のうち、このユーザ発話に対応するユーザ発話文字列170126を有するプラン140226を選択し、このプランの実行を行う。すなわち、プラン会話処理部320は、当該プラン140226の有する回答文150126である「第3問。車種は?セダンかスポーツカーか、ワゴンかワンボックスか、どのようなタイプが欲しいですか?」という回答を出力させると共に、当該プラン140226の有する次プラン指定情報150226により次候補回答文を特定する。この例では、次プラン指定情報150225は、3つのIDデータ「2000−09」「2000−10」「2000−11」を含んでいる。プラン会話処理部320は、3つのIDデータ「2000−09」「2000−10」「2000−11」に対応する3つのプランが有する回答文を次候補回答文とする。すなわち、会話サーバ13は、アンケート第二問の答え「外車」の収集を完了し、アンケート第三問の答え収集へ進むよう、会話制御を実行している。
【0170】
また、会話サーバ13から出力された回答文「第2問。国産車か外車かどちらをお望みですか?」に答えるユーザ発話が「国産車」でも「外車」でもない場合、例えば「わからない」とか「どちらでもよい」がなされた場合には、プラン会話処理部320は、次候補回答文として指定されている3つのプラン140225、プラン140226、プラン140227のうち、このユーザ発話に対応するユーザ発話文字列170127を有するプラン140227を選択し、このプランの実行を行う。すなわち、プラン会話処理部320は、当該プラン140227の有する回答文150127である「とりあえず、第2問にご回答ください。国産車か外車かどちらをお望みですか?」という回答を出力させると共に、当該プラン140227の有する次プラン指定情報150227により次候補回答文を特定する。この例では、次プラン指定情報150227は、3つのIDデータ「2000−06」「2000−07」「2000−08」を含んでいる。プラン会話処理部320は、3つのIDデータ「2000−06」「2000−07」「2000−08」に対応する3つのプラン140225、140226、140227が有する回答文を次候補回答文とする。すなわち、会話サーバ13は、再びユーザにアンケート第二問を繰り返し、アンケート第二問に対する答えの収集を試みる会話制御を実行する。言い換えれば、会話サーバ13、より詳しくはプラン会話処理部320は、ユーザが「国産車」若しくは「外車」のいずれかのユーザ発話するまでユーザにアンケート第二問を繰り返す。
【0171】
以下、上記と同様の会話制御方式により、会話サーバ13、より詳しくはプラン会話処理部320は、アンケート第三問からアンケート第五問の答えの収集を行う。
【0172】
上記のような第2の実施の形態にかかる会話サーバ13によれば、ユーザの発話内容が本来の目的とするところと異なっていても、決められた順番で、決められた項目についての回答を取得することが可能な会話制御システムを提供できる。
【0173】
次に、会話サーバ13の第3の態様について述べる。第3の態様にかかる会話サーバ13は、ユーザに質問を繰り返して行うことで、ユーザにある結論やアドバイスなどの情報にたどり着かせるための、誘導談話と呼ぶタイプのプランを扱うことができることを特徴としている。かかる会話サーバ13は、会話データベース500に記憶されているプラン1402(複数)の少なくとも一部は、ユーザを誘導するための一連の質問を回答文として有しており、そのプランの有する次プラン指定情報は、複数の次候補回答文を指定する情報である。
【0174】
なお、第3の態様にかかる会話サーバ13の説明は、第1の実施の形態と異なる部分についてのみ説明し、第1の実施の形態と同様の構成・動作については説明を省略する。
【0175】
図29に、ユーザに質問を繰り返して行うことで、ユーザにある結論やアドバイスなどの情報にたどり着かせるための、一連の質問文を回答文として有するプラン1402の具体例を示す。この一連のプラン140210〜140216は、育児中の母親などからの育児相談に対する4回答文150110〜150116に対応している。この例では、プラン140211、140212,及びプラン140211、140212は選択的な関係にあり、一方が選択された場合は、他方は選択されない関係となっている。
【0176】
各プラン140210〜140216はそれぞれ「2000−01」「2000−02」「1000−03」「2000−04」「2000−05」「2000−06」というIDデータ170210〜170216を有している。また、各プラン140210〜140216はそれぞれ次プラン指定情報150210〜150216を有している。なお、次プラン指定情報150211及び150214は、複数の次プランを指定するものであるため、複数のIDデータを有している。また、次プラン指定情報150212、150213、150216の内容は、「2000−0F」というデータであるが、このハイフン以下の番号「0F」は、次に出力する予定のプランは存在せず、当該回答文が一連の話(質問)の終わりであることを示す情報である。
【0177】
この例では、ユーザ発話が「赤ちゃんが頭を打った」である場合に、プラン会話処理部320がこの一連のプランを実行開始する。すなわち、ユーザ発話「赤ちゃんが頭を打った」をプラン会話処理部320が受け付けると、プラン会話処理部320はプラン空間1401を検索して、ユーザ発話「赤ちゃんが頭を打った」に対応する回答文1501を有するプラン1402があるかどうかを調べる。この例では、「赤ちゃんが頭を打った」に対応するユーザ発話文字列170110が、プラン140210に対応するものとする。
【0178】
プラン会話処理部320はプラン140210を発見すると、そのプラン140210に含まれる回答文150110を取得し、この回答文150110をユーザ発話に対する回答「意識はある?」として出力するとともに、次プラン指定情報150210により次候補回答文を特定する。この例では、次プラン指定情報150210は、2つのIDデータ「2000−02」「2000−03」を含んでいる。プラン会話処理部320は、2つのIDデータ「2000−02」及び「2000−03」に対応する2つのプラン140211、140212の回答文を次候補回答文とする。
【0179】
ここで、会話サーバ13から出力された回答文「意識はある?」に答えるユーザ発話「はい」がなされた場合には、プラン会話処理部320は、次候補回答文として指定されている2つのプラン140211、140212のうち、このユーザ発話に対応するユーザ発話文字列170111を有するプラン140211を選択し、このプランの実行を行う。すなわち、プラン会話処理部320は、当該プラン140211の有する回答文150111である「麻痺や呼吸の乱れはある?」という回答を出力させると共に、当該プラン140211の有する次プラン指定情報150211により次候補回答文を特定する。この例では、次プラン指定情報150211は、2つのIDデータ「2000−04」「2000−05」を含んでいる。プラン会話処理部320は、2つのIDデータ「2000−04」及び「2000−05」に対応する2つのプラン140213、140214が有する回答文を次候補回答文とする。
【0180】
一方、会話サーバ13から出力された回答文「意識はある?」に答えるユーザ発話が「いいえ」であった場合には、プラン会話処理部320は、このユーザ発話に対応するユーザ発話文字列170112を有するプラン140212の実行を行う。すなわち、プラン会話処理部320は、当該プラン140212の有する回答文150112である「すぐに救急車を呼んでください!」という回答を出力させると共に、当該プラン140212の有する次プラン指定情報150212により、当該回答文が質問の終わりと認識し、プラン会話処理を終了する。
【0181】
さて、会話サーバ13から出力された回答文「麻痺や呼吸の乱れはある?」に答えるユーザ発話が「はい」であった場合には、プラン会話処理部320は、プラン140211において次候補回答文として指定されている2つのプラン140213、140214のうち、このユーザ発話「はい」に対応するユーザ発話文字列170113を有するプラン140213を選択し、このプランの実行を行う。すなわち、プラン会話処理部320は、当該プラン140213の有する回答文150113である「すぐに救急車を呼んでください!」という回答を出力させると共に、当該プラン140213の有する次プラン指定情報150213により、当該回答文が質問の終わりと認識し、プラン会話処理を終了する。
【0182】
さて、会話サーバ13から出力された回答文「麻痺や呼吸の乱れはある?」に答えるユーザ発話が「いいえ」であった場合には、プラン会話処理部320は、プラン140211において次候補回答文として指定されている2つのプラン140213、140214のうち、このユーザ発話「いいえ」に対応するユーザ発話文字列170114を有するプラン140214を選択し、このプランの実行を行う。すなわち、プラン会話処理部320は、当該プラン140214の有する回答文150114である「生あくびや嘔吐はありますか?」という回答を出力させると共に、次プラン指定情報150214により次候補回答文を特定する。この例では、次プラン指定情報150214は、2つのIDデータ「2000−04」「2000−06」を含んでいる。プラン会話処理部320は、2つのIDデータ「2000−04」及び「2000−06」に対応する2つのプラン140213、140215の回答文を次候補回答文とする。
【0183】
上記に続いて、会話サーバ13から出力された回答文「生あくびや嘔吐はありますか?」に答えるユーザ発話が「はい」であった場合には、プラン会話処理部320は、プラン140214において次候補回答文として指定されている2つのプラン140213、140216のうち、このユーザ発話に対応するユーザ発話文字列170113を有するプラン140213の実行を行う。すなわち、プラン会話処理部320は、当該プラン140213の有する回答文150113である「すぐに救急車を呼んでください!」という回答を出力させると共に、当該プラン140213の有する次プラン指定情報150213により、当該回答文が質問の終わりと認識し、プラン会話処理を終了する。
【0184】
一方、会話サーバ13から出力された回答文「生あくびや嘔吐はありますか?」に答えるユーザ発話が「いいえ」であった場合には、プラン会話処理部320は、プラン140214において次候補回答文として指定されている2つのプラン140213、140216のうち、このユーザ発話に対応するユーザ発話文字列170115を有するプラン140215の実行を行う。すなわち、プラン会話処理部320は、当該プラン140215の有する回答文150115である「頭を打った直後に大声で泣き、やがて泣きやんだ後、機嫌良くしていたら、とりあえず大きな心配はないでしょう」という回答を出力させると共に、当該プラン140213の有する次プラン指定情報150213により、当該回答文が質問の終わりと認識し、プラン会話処理を終了する。
【0185】
図30は、図29に示すような、ユーザに質問を繰り返して行うことで、ユーザにある結論やアドバイスなどの情報にたどり着かせるための、一連の質問文を回答文として有するタイプのプランについて生じうる4つの基本制御状態を示す図である。以下、それぞれの状態について説明する。
【0186】
(1)目標達成
この基本制御状態は、シナリオと呼ぶタイプのプランの基本制御状態を示した図23における「結束」に対応する状態である。ユーザ発話が実行中のプラン1402、より詳しくはプラン1402に対応する話題タイトル820や用例文1701に一致する場合である。この場合は、プラン会話処理部320は当該プラン1402を終了し、次プラン指定情報1502にて指定された回答文1501に対応するプラン1402に移行する。
【0187】
(2)破棄
この基本制御状態は、シナリオと呼ぶタイプのプランの基本制御状態を示した図23における「破棄」と同様である。ユーザ発話内容がプラン1402の終了を要求していると判断される場合、又はユーザの関心が実行中のプラン以外の事項に移ったと判定される場合に、設定される基本制御状態である。基本制御状態情報が破棄を示している場合は、プラン会話処理部320は、破棄の対象となったプラン1402以外にユーザ発話に対応するプラン1402がないかどうかを検索し、存在する場合にはそのプラン1402の実行を開始し、存在しない場合には、プランの実行を終了する。
【0188】
(3)維持
この基本制御状態は、シナリオと呼ぶタイプのプランの基本制御状態を示した図23における「維持」と同様である。すなわち、基本制御状態「維持」は、ユーザ発話が、実行中のプラン1402に対応するに対応する話題タイトル820(図15参照)や用例文1701(図19参照)に該当しない場合であって、かつユーザ発話が基本制御状態「破棄」に該当するものではないと判断される場合に、基本制御状態情報に記述される基本制御状態である。
【0189】
この基本制御状態である場合には、プラン会話処理部320は、ユーザ発話を受け付けると、まず保留・中止しているプラン1402を再開するか否かを検討し、ユーザ発話がプラン1402再開に適さない場合、例えばユーザ発話がプラン1402に対応する話題タイトル802や用例文1702に対応しない場合は、他のプラン1402の実行を開始し、或いは前述の談話空間会話制御処理(S1802)などを行う。ユーザ発話がプラン1402再開に適している場合は、記憶している次プラン指定情報1502に基づいて、回答文1501の出力を行う。
【0190】
基本制御状態が「維持」である場合は、プラン会話処理部320は、当該プラン1402に対応する回答文1501以外の回答を出力できるように、他のプラン1402を検索し、あるいは前述の談話空間会話制御処理などを行うが、ユーザ発話が再びプラン1402に関するものとなった場合は、そのプラン1402の実行を再開する。
【0191】
(4)催促
この基本制御状態は、シナリオと呼ぶタイプのプランの基本制御状態を示した図23における「継続」に対応している。この基本制御状態は、ユーザ発話が、実行中のプラン1402に含まれる回答文1501に対応しない場合であって、かつユーザ発話内容が基本制御状態「破棄」に該当するものではないと判断され、かつユーザ発話から解釈されるユーザの意図が明瞭でない場合に、設定される基本制御状態である。
【0192】
基本制御状態が「催促」である場合は、プラン会話処理部320は、ユーザ発話を受け付けるとまず保留・中止しているプラン1402を再開するか否かを検討し、ユーザ発話がプラン1402再開に適さない場合は、ユーザからさらなる発話を引き出すための回答文を出力できるように、前述のCA会話制御処理などを行う。
【0193】
図31、図32は、第3の形態にかかる会話サーバ3において、誘導談話と呼ぶタイプのプランを扱うプラン会話制御処理の一例を示すフローチャートである。図31,32に示す第3の態様にかかる会話サーバ13において、誘導談話と呼ぶタイプのプランを扱うプラン会話制御処理は、S2502において「結束」が「目標達成」に変わっている点を除いて、図21,22に示した第1の態様におけるプラン会話制御処理と同様である。具体的には、図31におけるS2501からS2510は、図21におけるS1901からS1910とそれぞれ同様の処理であり、図32におけるS2601からS2603は、図22におけるS2001からS2003とそれぞれ同様の処理であるので、これらの詳細な説明は省略する。
【0194】
上記のような第3の態様にかかる会話サーバ13によれば、ユーザに質問を繰り返して行うことで、ユーザにある結論やアドバイスなどの、予め準備した情報にたどり着かせるための会話を提供することが可能となる。
なお、上記では特に明記しなかったが、いずれの態様においても、会話サーバ13は、回答文の出力に際しては、回答文とともにその回答文に応じた動作制御情報を出力する。
また、動作制御情報は、必ずしも会話サーバ13により決定されなくとも良く、通信網14に接続された他の装置(例えば利用者端末装置10,或いは他のサーバ装置など)が決定する構成としても本実施の形態及び本発明は成立する。
【0195】
[2.会話制御システムの動作]
次に、上記の会話制御システム1の動作例を説明する。
図33は、会話制御システム1の動作例を示したシーケンス図である。
ここでは、利用者が利用者端末装置10のブラウザ部205を起動させ、WWWサーバ11に設けられたあるサイトを閲覧しようとしたものとする。利用者端末装置10は、利用者によって指定されたサイトに相当するWeb文書を求めるリクエストメッセージをWWWサーバ11に宛てて送信する(S10)。WWWサーバ11はそのリクエストメッセージに応答して、求められたWeb文書のデータを利用者端末装置10に宛てて送信する(S20)。
【0196】
このWeb文書には、その構成要素として広告配信サーバ12に設定された広告動画のURLが記述されている。利用者端末装置10は、広告動画のURLに基づいて、広告表示領域504に相当するデータを求めるリクエストメッセージを広告配信サーバ12に宛てて送信する(S30)。広告配信サーバ12はそのリクエストメッセージに応答して、求められたデータを利用者端末装置10に宛てて送信する(S40)。
利用者端末装置10は、広告表示領域504を含む画面内容を出力部24に表示させる(S50)。その画面内容は、図5にて示したようになる。
【0197】
利用者は、広告表示領域に示される人物と会話を試みる場合、広告表示領域504に設けられた入力ボックス505に入力文を入力する(S60)。入力文が入力され、所定の操作が行われると、利用者端末装置10は入力文を会話サーバ13に宛てて送信する(S70)。入力文の送信は、この実施の形態では、回答文要求メッセージとして行われるものとするが、どのような送信方式であっても構わない。
【0198】
回答文要求メッセージを受信した会話サーバ13は、入力文に応じた回答文を決定(S80)するとともに、回答文に応じた動作制御情報を決定する(S90)。次に、会話サーバ13は決定した回答文及び動作制御情報を利用者端末装置10に宛てて送信する(S100)。
【0199】
利用者端末装置10は回答文及び動作制御情報を受信する(S110)。回答文及び動作制御情報を受信した利用者端末装置10は、回答文を出力部204に出力させる(S120)。例えば、回答文をテキストとして広告表示領域504に表示させるようにしてもよいし、新たなポップアップウインドウを広告表示領域504近傍に生成させ、そのポップアップウインドウ内に回答文であるテキストを表示させてもよい。或いは人工音声を生成させ、出力部1204であるスピーカから発生させるようにしてもよい。本発明において回答文の出力形態は特に制限はない。
【0200】
回答文の出力(S120)を行う一方、利用者端末装置10、より詳しくは会話制御部206は、受信した動作制御情報に基づいて実行すべき動作を決定し、決定した動作を実行(制御)する(S130)。例えば、受信した動作制御情報が「こんにちは、初めまして」というものである場合には、広告表示領域504内に、女性が「こんにちは、初めまして」と発話しながらお辞儀をする動画を表示させる動作が指定されている場合には、ブラウザ部205にこのような動画データを取得させ再生させる。なお、動画制御情報は、広告表示領域504内に表示される内容の制御に限定されないことは前述したとおりである。利用者端末装置10が実行可能な動作であれば、どのようなものでも動作制御情報の対象とすることができる。例えば、現在表示しているWebサイトとは別のWebサイトをウインドウ501内に表示させる動作制御情報としてもよいし、新たなウインドウを生成し、そこに動作制御情報により指定されたWebサイトを表示させてもよい。
【0201】
また、動作制御情報は回答文の受信後、利用者端末装置10において成立する条件に基づいて実行される内容でも良い。この場合、利用者端末装置10は、条件成立の判定を行い(S140)、条件が成立した場合には、所定の動作制御情報を生成し、これを実行する(S150)。例えば、回答文の送信回数が所定数を超えた場合、広告主が利用者の訪問を期待するサイトに画面遷移させるようにしてもよい。
以上で、会話制御システムの動作例の説明を終了する。
[3.変形例]
利用者の入力を音声により行うように本会話制御システム1を変形しても、本発明は成立する。この変形例の場合には、利用者端末装置10の入力部203を音声認識部とする。音声認識部は、音声信号に対応する文字列を特定しこれを入力文として出力する機能を有する構成要素である。
また、さらなる変形例としては、音声認識部を会話サーバ13或いは通信網14に接続されている別のサーバに設けて、利用者端末装置10から音声信号を通信網14を介して音声認識部に送信し、音声認識部が受信した音声信号に基づいて文字列を特定しこれを入力文として出力するようにしてもよい。
[3.本実施の形態の利点]
(1)本実施の形態によれば、出力される回答文は、従来のような1対1のパターンマッチングのようなものではなく、会話の文脈に応じた回答文を出力することができ、汎用性(どのような会話の流れにも対応可能である性質)を有している。
(2)さらには、本発明によれば、誘導会話や利用者からの入力が発生しない場合等における、利用者に対する入力の催促をも含んだ反応を演出することを可能とする。
なお、同等の会話処理を、パターンマッチングを用いて行う場合に比べて、本発明によれば、サーバのデータ量を遙かに軽減できる。
【図面の簡単な説明】
【0202】
【図1】会話制御システムの構成例を示すブロック図
【図2】利用者端末装置の構成例を示す機能ブロック図
【図3】会話制御部の構成例を示す機能ブロック図
【図4】会話データベースにおける回答文と動作制御情報とを示す図
【図5】利用者端末装置の出力部に表示される画面例を示す図
【図6】会話サーバの構成例を示す機能ブロック図
【図7】会話サーバの部分拡大ブロック図
【図8】文字列とこの文字列から抽出される形態素との関係を示す図
【図9】「発話文のタイプ」と、その発話文のタイプを表す二文字のアルファベット、及びその発話文のタイプに該当する発話文の例を示す図
【図10】文のタイプとそのタイプを判定するための辞書の関係を示す図
【図11】会話データベースが記憶するデータのデータ構成の一例を示す概念図
【図12】ある話題特定情報と他の話題特定情報との関連付けを示す図
【図13】話題タイトル(「第二形態素情報」ともいう)のデータ構成例を示す図
【図14】回答文のデータ構成例を説明するための図
【図15】ある話題特定情報に対応付けされた話題タイトル,回答文、次プラン指定情報の具体例を示す図
【図16】プラン空間を説明するための概念図
【図17】プランの例を示す図
【図18】別のアクション列の例を示す図
【図19】プラン会話処理の具体例を示す図
【図20】サーバ側会話制御部のメイン処理の一例を示すフローチャート
【図21】プラン会話制御処理の一例を示すフローチャート
【図22】図21に続く、プラン会話制御処理の一例を示すフローチャート
【図23】基本制御状態を示す図
【図24】談話空間会話制御処理の一例を示すフローチャート
【図25】CA会話処理部の構成例を示す機能ブロック図
【図26】CA会話処理の一例を示すフローチャート
【図27】プラン会話処理の具体例を示す図
【図28】プラン会話処理の、別の具体例を示す図
【図29】第3の形態にかかる会話サーバでのプラン会話処理の具体例を示す図
【図30】第3の形態にかかる会話サーバでの基本制御状態を示す図
【図31】第3の形態にかかる会話サーバでのプラン会話制御処理の一例を示すフローチャート
【図32】第3の形態にかかる会話サーバでの、図31に続く、プラン会話制御処理の一例を示すフローチャート
【図33】会話制御システムの動作例を示すシーケンス図
【符号の説明】
【0203】
1 会話制御システム
10 利用者端末装置
13 会話サーバ
206 会話制御部
301 入力受付部
302 回答制御部
【技術分野】
【0001】
本発明は、利用者からの入力文に回答する回答文を出力する会話制御システム、並びに端末装置に関する。
【背景技術】
【0002】
従来より、インターネット等で情報処理装置を介して利用者の情報入力に対して情報出力を行うシステムが知られている。これらの一例として、ユーザ端末に表示される主表示(ポータルサイト)に付加して表示されるイメージデータに対して、ユーザが入力したアクションに応じて、第三者のデータサーバにアクション情報が送信され、その送信された情報に基づいた返信データに対応する表示を、前記イメージデータに行うことができるデータ送受信方法等について提案されている(例えば、特許文献1、特許文献2)。
【特許文献1】特開2005−208691号公開公報
【特許文献2】特開2006−251950号公開公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、これら従来の情報出力システムにおいては、利用者からの入力とDBに用意された回答パターンとの1対1のパターンマッチングとなり、利用者端末装置である情報処理装置における情報出力のパターンにも限界がある。この点から、クライアント(利用者)に受け入れられない、或いは関心を引きつけ続けることができないなどの問題点が生じる虞がある。
【0004】
本発明の目的は、会話制御による情報入力に対する反応表現をどのように実行するかを、会話の文脈や流れに応じて判断することで、様々な情報出力の表現パターンを用いて出力を行うことができるようにすることを目的とする。
【課題を解決するための手段】
【0005】
上記課題を解決するための手段として、本発明は、以下の特徴を有する。
本発明の第1の態様は、会話制御システムとして提案される。この会話制御システムは、
入力文に対する回答文を決定する第1の決定手段(例えば、サーバ側会話制御部)と、決定された回答文に応じた動作を指示する情報である動作指示情報を決定する第2の決定手段(例えば、端末側会話制御部、サーバ側会話制御部)と、決定された回答文を出力するとともに決定された動作指示情報に応じた動作を実行(制御)する制御手段(例えば、会話制御部(回答制御部))とを有することを特徴としている。
【0006】
この会話制御システムによれば、会話制御による情報入力に対する反応表現をどのように実行するかを、端末装置側で判断することにより、様々な情報出力の表現パターンを用いて情報出力を行うことができる。
【0007】
前記会話制御システムにおいて、前記回答文は利用者を誘導するための一連の発話文であるようにしてもよい。かかる会話制御システムによれば、ユーザの発話内容が本来の目的とするところと異なっていても、決められた順番で、決められた項目についての回答を取得することが可能となる。
【0008】
また、前記会話制御システムにおいて、前記制御手段は、利用者からの入力がない場合、前記動作制御情報に基づいて前記第1の決定手段に回答文を要求するメッセージを送信し、このメッセージに応じて前記第1の決定手段から送信される、利用者に入力を催促する回答文を出力するようにしてもよい。かかる会話制御システムによれば、不自然な沈黙期間を発生させることなく、より自然な会話を成立させることが可能となる。また、端末装置が催促する回答文の出力を判断するため、サーバに判断を求めるためのデータ伝送を増大させることがない。
【0009】
また、前記会話制御システムにおいて、前記第1の決定手段は、利用者の入力の内容にかかわらず、予め定めた回答文を予め定めた順番で出力させるようにしてもよい。ここでいう「順番」は、いわゆる一本道である会話の流れに限定される趣旨ではなく、利用者の入力内容に応じて、会話のシナリオが分岐する場合も「順番で出力される」ものに含まれるものとする。かかる会話制御システムによれば、利用者に質問を繰り返して行うことで、利用者にある結論やアドバイスなどの情報にたどり着かせることが可能となる。
【0010】
本発明の別の態様は、端末装置(例えば、利用者端末装置)として提案される。
この端末装置は、 前記サーバから送信される、入力文に対する回答文及び動作制御情報を受信し、受信した回答文を利用者のために出力するとともに、受信した動作制御情報に対応する動作を実行する制御手段とを有することを特徴としている。
【0011】
この端末装置において、制御手段は、予め定めた条件が満たされた場合、回答文に対応する動作とは別の特別の動作(例えば、広告主が利用者を誘導したい目的のサイトへのジャンプ)を決定するようにしてもよい。
【0012】
また、この端末装置において、前記動作制御情報は、前記サーバに回答文を要求するメッセージの送信であるようにしてもよい。かかる端末装置によれば、不自然な沈黙期間を発生させることなく、より自然な会話を成立させることが可能となる。また、会話の流れに応じた回答文を選択するサーバが、利用者に対して催促する回答文をそれまでの会話の流れに応じた回答文を選択できるため、より自然な回答文による回答の催促を行うことができる。
【発明の効果】
【0013】
本発明によれば、会話制御による情報入力に対する反応表現をどのように実行するかを、会話の文脈や流れに応じて判断することで、様々な情報出力の表現パターンを用いて出力を行うことができる。
【発明を実施するための最良の形態】
【0014】
以下、図面を参照しながら本発明の実施の形態について説明する。
[1.第1の実施の形態]
本発明の第1の実施の形態は、利用者の入力文に対して回答を出力し、回答に応じた反応を演出する会話制御システムとして提案される。なお、この第1の実施の形態では、いわゆるポータルサイトなどのWebサイトに含まれるバナーと呼ばれる領域(以下、広告表示領域)を、利用者の入力文の入力領域、回答文の表示領域、及び回答に応じた反応を演出する表示領域として使用するのであるが、本発明がこの実施形態に限定される趣旨ではない。
【0015】
[1.1.システム構成例]
まず、本実施形態にかかる会話制御システムの構成例について説明する。図1は、本実施形態にかかる会話制御システムの構成例を示すブロック図である。
会話制御システム1は、利用者端末装置10と、WWWサーバ11と、広告配信サーバ12と、会話制御サーバ13とで構成される。利用者端末装置10は、通信網14を介してWWWサーバ11、広告配信サーバ12、及び会話制御サーバ13と通信可能である。
【0016】
[1.1.1.利用者端末装置]
利用者端末装置10は、利用者から入力文を受け付け、この入力文に対する回答文を出力し、かつ回答文に応じた動作制御を実行する機能を有する装置である。
【0017】
利用者端末装置10は、演算処理装置(CPU)、主メモリ(RAM)、読出し専用メモリ(ROM)、入出力装置(I/O)、必要な場合にはハードディスク装置等の外部記憶装置を具備している情報装置であって、例えばパーソナルコンピュータ、携帯電話機、携帯ゲーム機である。利用者端末装置10として機能する情報処理装置は、通信網14を介して他の装置とデータの送受信を行うことのできる通信機能を有する必要がある。前記ROM、若しくはハードディスク装置などに情報処理装置を利用者端末装置10として機能させるためのプログラムが記憶されており、このプログラムを主メモリ上に載せ、CPUがこれを実行することにより利用者端末装置10が実現される。また、上記プログラムは必ずしも情報処理装置内の記憶装置に記憶されていなくともよく、外部の装置(例えば、ASP(アプリケーション・サービス・プロバイダ)のサーバなど)から提供され、これを主メモリに乗せる構成であってもよい。
【0018】
図2は、利用者端末装置10の構成例を示す機能ブロック図である。利用者端末装置10は、通信制御部201と、通信制御部201に接続された情報処理部202と、情報処理部202に接続された入力部203及び出力部204とを有している。なお、利用者に入力文を入力させるための入力手段(例えば、入力部203)、利用者に会話サーバ13から受信した回答文に対応する動作を実行(制御)する制御手段(会話制御部206)で実行(制御)される動作を出力する出力手段(例えば、出力部204)は、会話制御システム1(通信網14)に個別で配置させても良い。
【0019】
通信制御部201は、通信網14を介して他の装置とデータの送受信を実行するための処理を行う機能を有し、例えば通信ボード、LANボード、モデムなどである。
【0020】
情報処理部202は、他の装置へのデータのリクエストを生成し、生成したリクエストを通信制御部201に送信させ、リクエストに応じて他の装置から受け取ったデータを解釈して、出力部204に表示させる機能を有する。本実施の形態では、情報処理部202は、ブラウザ部205と会話制御部206とで構成されている。会話制御部206は、本発明の第2の決定手段、及び制御手段に相当する。
【0021】
ブラウザ部205は、利用者にWebサイトを閲覧させる機能を有する。ブラウザ部205は、例えば利用者によって指定されたURLに宛ててリクエストメッセージを送信し、リクエストメッセージを受信したノードから返信される、URLによって指定されたWeb文書(例えばHTMLファイル)を受信し、このHTMLを解釈してWeb文書の内容を画像として出力部204に表示させる。ブラウザ部205は、例えばブラウザと呼ばれるソフトウエア(インターネット・エクスプローラー、ファイアー・フォックスなど)である。但し、ブラウザはOS(Operating System;基本ソフトウエア)上で動作するためOSもブラウザ部205を構成する要素であるともいえる。
【0022】
会話制御部206は、入力部203を介して、利用者から入力文を受け取り、これを会話サーバ13に通信制御部201,通信網14を介して送信し、会話サーバ13から送信される、入力文に対する回答文及び動作制御情報を,通信網14、通信制御部201を介して取得し、回答文を出力するとともに動作制御情報に基づいて動作を実行させる機能を有する。
図3に、会話制御部206の構成例を示す機能ブロック図を掲げる。
会話制御部206は入力受付部301と、回答制御部302とを有している。
【0023】
入力受付部301は、利用者の入力文(例えば、「こんにちは」というユーザ発話)を受付け、その入力文を含む回答文要求メッセージを通信制御部201、通信網14を介して会話サーバ13に送信する機能を有する。なお、この入力文の送信は入力文をブラウザ部205に渡し、ブラウザ部205に入力文を含む回答文要求メッセージの生成及び送信を行わせるようにしてもよい。
【0024】
回答制御部302は、回答文要求メッセージを受信した会話サーバ13から送信された回答文及び動作制御情報を受信し、回答文をブラウザ部205に出力させ、且つ動作制御情報に基づいて指定された動作をブラウザ部205などに実行ないし制御させる機能を有する。
【0025】
動作制御情報は、回答文に応じた動作を指示する情報である。、ただし、必ずしも回答文と一対一の対抗関係になっている必要はなく、一つの回答文について、実行する条件の異なる動作を規定することも、本発明の動作制御情報では可能である。例えば、ある動作制御情報には、回答文の出力時に動作A(例えば、女性が微笑みながら挨拶する動画の再生)を実行することを規定するとともに、前記動作Aの実行後規定時間(例えば30秒)ないに利用者からの新たな入力文がない場合には動作D(例えば、会話サーバ13に回答文を要求するメッセージの送信)を規定することも可能である。
動作制御情報は、後述する会話サーバ13の会話データベース500(図11参照)の回答文830に関連付けられて記憶されている。図4は、後述する会話データベース500における回答文830と動作制御情報との対応関係の例を示す。この会話データベース500では回答文830とその回答文に付加される動作制御情報を対にして記憶している。会話サーバ13は、入力文を受信すると、動作会話データベース500を調べて回答文及び対応する動作制御情報を抽出し、回答文と動作制御情報を利用者端末装置10に送信する。
【0026】
また、回答制御部302は、会話サーバ13からの回答文受信をトリガとして回答文の出力及び動作制御情報により指定された動作の実行を行わせるだけでなく、会話サーバ13からの回答文受信以外の所定の条件が満たされた場合に、自立的に回答文の決定及びその回答文に対応する動作の決定を行う機能を有している。
図2に戻り、利用者端末装置10の構成例の説明を再開する。
【0027】
利用者端末装置10の情報処理部202には、入力部203及び出力部204が設けられている。入力部203は、利用者の入力を信号に変換して情報処理部202に出力する機能を有し、例えば、キーボード、ポインティングデバイス、タッチパネルなどである。
【0028】
出力部204は、回答文を含む出力内容を利用者が了知可能な態様で出力する機能を有し、例えば液晶ディスプレイ装置、スピーカ(音声出力がある場合)、アクチュエータ、モータなどの駆動装置(物理的動作がある場合)などである。
【0029】
図5に、利用者端末装置10の出力部204に表示される画面例を示す。図5では、出力部204(ここでは、一例として液晶ディスプレイとする)の表示領域を示している。表示領域510には、ウインドウ501が開かれている。ウインドウ501内にはWWWサーバ11から受信したWeb文書(サイト)の内容が表示されている。ここでは内容の例としてテキスト領域502と画像領域503があるものとした。ウインドウ501内にはWeb文書の一部として埋め込まれている広告表示領域504が生成されている。広告表示領域504は動画が表示されているとともに、利用者の入力文のための入力ボックス505が設けられている。利用者は入力部203を用いて入力文を入力ボックス505に入力し、所定の操作(例えば、エンターキーの押下)を行うことにより、入力文が会話サーバ13に送信される。
以上で、利用者端末装置10の構成例の説明を終了する。
【0030】
図1に戻り、会話制御システム1の構成要素の説明を再開する。
[1.1.2.WWWサーバ(又はWebサーバ)]
WWWサーバ11は、利用者端末装置10からのリクエストに応じて、リクエスト対象となったWeb文書(HTMLファイルなど)をデータとして通信網14を介してその利用者端末装置10に送信する機能を有する。WWWサーバ11は、演算処理装置(CPU)、主メモリ(RAM)、読出し専用メモリ(ROM)、入出力装置(I/O)、必要な場合にはハードディスク装置等の外部記憶装置を具備している情報装置であって、例えばコンピュータ、ワークステーション、サーバ装置などである。
【0031】
[1.1.2.広告配信サーバ]
広告配信サーバ12は、広告表示領域に表示させるデータを、利用者端末装置10に送信する機能を有する。WWWサーバ11から送信されるWeb文書内には、広告配信サーバ12に対応するURLが記述されており、利用者端末装置10、より詳しくはブラウザ部205は、広告配信サーバ12に対応するURLをWeb文書から読み取り、広告表示領域に表示するコンテンツ(画像、テキストなど)をデータを送信するよう広告配信サーバ12に要求する(リクエストメッセージを送信する)。広告配信サーバ12は、演算処理装置(CPU)、主メモリ(RAM)、読出し専用メモリ(ROM)、入出力装置(I/O)、必要な場合にはハードディスク装置等の外部記憶装置を具備している情報装置であって、例えばコンピュータ、ワークステーション、サーバ装置などである。
【0032】
[1.1.3.通信網]
通信網14は、有線・無線、専用回線・交換回線を問わず、これに接続されている装置がそれぞれ目的とする装置に対しセッションを確立したときにその装置間での情報の送受を可能とするように作用する。通信網14は、インターネットのように、ゲートウエイを介して複数のネットワークが組み合わされて実現しても構わない。また、その接続についてもいわゆるバックボーンといわれる基幹線に直接接続せずとも、PPP接続などによって一時的に接続してあっても、セッションを確立したときにその間で情報の送受ができるようになっていれば構わない。なお、上記「通信網」は専用回線を固定的に張りめぐらせたような、交換機、スイッチ、ルータなど経路切り替え手段を用いない通信網も含むものとする。
【0033】
[1.1.4.会話サーバ]
会話サーバ13は、その筐体内部に、例えばコンピュータ、ワークステーションなどの情報処理装置若しくは情報処理装置に相当するハードウエアを搭載している。会話サーバ13が有する情報処理装置は、演算処理装置(CPU)、主メモリ(RAM)、読出し専用メモリ(ROM)、入出力装置(I/O)、ハードディスク装置等の外部記憶装置を具備している装置で構成されている。前記ROM、若しくは外部記憶装置などに情報処理装置を会話サーバ13として機能させるためのプログラムが記憶されており、該プログラムを主メモリ上に載せ、CPUがこれを実行することにより会話サーバ13が実現される。また、上記プログラムは必ずしも当該装置内の記憶装置に記憶されていなくともよく、磁気ディスク、光ディスク、光磁気ディスク、CD(Compact Disc)、DVD(Digital Video Disc)などのコンピュータ読み取り可能なプログラム記録媒体や、外部の装置(例えば、ASP(アプリケーション・サービス・プロバイダ)のサーバなど)から提供され、これを主メモリに乗せる構成であってもよい。
【0034】
図6に、会話サーバ13の構成例を示す機能ブロック図を掲げる。図6に示すように、会話サーバ13は、通信制御部200と、サーバ側会話制御部300と、文解析部400と、会話データベース500とを備えている。サーバ側会話制御部300は、本発明の第1の決定手段、第2の決定手段に相当する。
通信制御部200は、通信網14を介して他の装置とデータの送受信を実行するための処理を行う機能を有し、例えば通信ボード、LANボード、モデムなどである。
【0035】
次に、図7を参照しながらサーバ側会話制御部300及び文解析部400の構成例について説明する。図7は、会話サーバ13の部分拡大ブロック図であって、サーバ側会話制御部300及び文解析部400の具体的構成例を示すブロック図である。なお、図7においては、サーバ側会話制御部300、文解析部400、及び会話データベース500のみ図示しており、その他の構成要素は表示を省略している。
【0036】
文解析部400は、入力文である文字列を解析するものである。この文解析部400は、本実施の形態では、図7に示すように、文字列特定部410と、形態素抽出部420と、形態素データベース430と、入力種類判定部440と、発話種類データベース450とを有している。文字列特定部410は、一連の文字列を一文節毎に区切るものである。この一文節とは、文法の意味を崩さない程度に文字列をできるだけ細かく区切った一区切り文を意味する。具体的に、文字列特定部410は、一連の文字列の中に、ある一定以上の時間間隔があるときは、その部分で文字列を区切る。文字列特定部410は、その区切った各文字列を形態素抽出部420及び入力種類判定部440に出力する。なお、以下で説明する「文字列」は、一文節毎の文字列を意味するものとする。
【0037】
形態素抽出部420は、文字列特定部410で区切られた一文節の文字列に基づいて、その一文節の文字列の中から、文字列の最小単位を構成する各形態素を第一形態素情報として抽出するものである。ここで、形態素とは、本実施の形態では、文字列に現された語構成の最小単位を意味するものとする。この語構成の最小単位としては、例えば、名詞、形容詞、動詞などの品詞が挙げられる。
【0038】
各形態素は、図8に示すように、本実施の形態ではm1、m2、m3…、と表現することができる。図8は、文字列とこの文字列から抽出される形態素との関係を示す図である。図8に示すように、文字列特定部410から文字列が入力された形態素抽出部420は、入力された文字列と、形態素データベース430に予め格納されている形態素群(この形態素群は、それぞれの品詞分類に属する各形態素についてその形態素の見出し語・読み・品詞・活用形などを記述した形態素辞書として用意されている)とを照合する。その照合をした形態素抽出部420は、その文字列の中から、予め記憶された形態素群のいずれかと一致する各形態素(m1、m2、…)を抽出する。この抽出された各形態素を除いた要素(n1、n2、n3…)は、例えば助動詞等が挙げられる。
【0039】
この形態素抽出部420は、抽出した各形態素を第一形態素情報として話題特定情報検索蔀320に出力する。なお、第一形態素情報は構造化されている必要はない。ここで「構造化」とは、文字列の中に含まれる形態素を品詞等に基づいて分類し配列することをいい、例えば発話文である文字列を、「主語+目的語+述語」などの様に、所定の順番で形態素を配列してなるデータに変換することをいう。もちろん、構造化した第一形態素情報を用いたとしても、それが本実施の形態の実現をさまたげることはない。
【0040】
入力種類判定部440は、文字列特定部410で特定された文字列に基づいて、発話内容の種類(発話種類)を判定するものである。この発話種類は、発話内容の種類を特定する情報であって、本実施の形態では、例えば図9に示す「発話文のタイプ」を意味する。図9は、「発話文のタイプ」と、その発話文のタイプを表す二文字のアルファベット、及びその発話文のタイプに該当する発話文の例を示す図である。
【0041】
ここで、「発話文のタイプ」は、本実施の形態では、図9に示すように、陳述文(D ; Declaration)、時間文(T ; Time)、場所文(L ; Location)、反発文(N ; Negation)などから構成される。この各タイプから構成される文は、肯定文又は質問文で構成される。「陳述文」とは、利用者の意見又は考えを示す文を意味するものである。この陳述文は本実施の形態では、図9に示すように、例えば"私は佐藤が好きです"などの文が挙げられる。「場所文」とは、場所的な概念を伴う文を意味するものである。「時間文」とは、時間的な概念を伴う文を意味するものである。「反発文」とは、陳述文を否定するときの文を意味する。「発話文のタイプ」についての例文は図9に示す通りである。
【0042】
入力種類判定部440が「発話文のタイプ」を判定するには、入力種類判定部440は、本実施の形態では、図10に示すように、陳述文であることを判定するための定義表現辞書、反発文であることを判定するための反発表現辞書等を用いる。具体的に、文字列特定部410から文字列が入力された入力種類判定部440は、入力された文字列に基づいて、その文字列と発話種類データベース450に格納されている各辞書とを照合する。その照合をした入力種類判定部440は、その文字列の中から、各辞書に関係する要素を抽出する。
【0043】
この入力種類判定部440は、抽出した要素に基づいて、「発話文のタイプ」を判定する。例えば、入力種類判定部440は、ある事象について陳述している要素が文字列の中に含まれる場合には、その要素が含まれている文字列を陳述文として判定する。入力種類判定部440は、判定した「発話文のタイプ」を回答取得部380に出力する。
【0044】
次に、会話データベース500が記憶するデータのデータ構成例について図11を参照しながら説明する。図11は、会話データベース500が記憶するデータの構成例を示す概念図である。
【0045】
会話データベース500は、図11に示すように、話題を特定するための話題特定情報810を予め複数記憶している。また、それぞれの話題特定情報810は、他の話題特定情報810と関連付けられていてもよく、例えば、図11に示す例では、話題特定情報C(810)が特定されると、この話題特定情報C(810)に関連付けられている他の話題特定情報A(810)、話題特定情報B(810),話題特定情報D(810)が定まるように記憶されている。
具体的には、話題特定情報810は、本実施の形態では、利用者から入力されると予想される入力内容、又は利用者への回答文に関連性のある「キーワード」を意味する。
【0046】
話題特定情報810には、一又は複数の話題タイトル820が対応付けられて記憶されている。話題タイトル820は、一つの文字、複数の文字列又はこれらの組み合わせからなる形態素により構成されている。各話題タイトル820には、利用者への回答文830が対応付けられて記憶されている。また、回答文830の種類を示す複数の回答種類は、回答文830に対応付けされている。また、回答文に対応する動作制御情報835も記憶されている。
【0047】
次に、ある話題特定情報810と他の話題特定情報810との関連付けについて説明する。図12は、ある話題特定情報810Aと他の話題特定情報810B、810C1〜810C4、810D1〜810D3…との関連付けを示す図である。なお、以下の説明において「関連付けされて記憶される」とは、ある情報Xを読み取るとその情報Xに関連付けられている情報Yを読み取りできることをいい、例えば、情報Xのデータの中に情報Yを読み出すための情報(例えば、情報Yの格納先アドレスを示すポインタ、情報Yの格納先物理メモリアドレス、論理アドレスなど)が格納されている状態を、「情報Yが情報Xに『関連付けされて記憶され』ている」というものとする。
【0048】
図12に示す例では、話題特定情報は他の話題特定情報との間で上位概念、下位概念、同義語、対義語(本図の例では省略)が関連付けされて記憶させることができる。本図に示す例では、話題特定情報810A(=「映画」)に対する上位概念の話題特定情報として話題特定情報810B(=「娯楽」)が話題特定情報810Aに関連付けされて記憶されており、例えば話題特定情報(「映画」)に対して上の階層に記憶される。
【0049】
また、話題特定情報810A(=「映画」)に対する下位概念の話題特定情報810C1(=「監督」)、話題特定情報810C2(=「主演」)、話題特定情報810C3(=「配給会社」)、話題特定情報810C4(=「上映時間」)、及び話題特定情報810D1(=「七人の侍」)、話題特定情報810D2(=「乱」)、話題特定情報810D3(=「用心棒」)、…、が話題特定情報810Aに関連付けされて記憶されている。
【0050】
また、話題特定情報810Aには、同義語900が関連付けられている。この例では、話題特定情報810Aであるキーワード「映画」の同義語として「作品」、「内容」、「シネマ」が記憶されている様子を示している。このような同意語を定めることにより、発話にはキーワード「映画」は含まれていないが「作品」、「内容」、「シネマ」が発話文等に含まれている場合に、話題特定情報810Aが発話文等に含まれているものとして取り扱うことを可能とする。
【0051】
本実施の形態にかかる会話サーバ13は、会話データベース500の記憶内容を参照することにより、ある話題特定情報810を特定するとその話題特定情報810に関連付けられて記憶されている他の話題特定情報810及びその話題特定情報810の話題タイトル820、回答文830などを高速で検索・抽出することが可能となる。
【0052】
次に、話題タイトル820(「第二形態素情報」ともいう)のデータ構成例について、図13を参照しながら説明する。図13は、話題タイトル820のデータ構成例を示す図である。
【0053】
話題特定情報810D1、810D2、810D3、…はそれぞれ複数の異なる話題タイトル8201、8202、…、話題タイトル8203、8204、…、話題タイトル8205、8206、…を有している。本実施の形態では、図13に示すように、それぞれの話題タイトル820は、第一特定情報1001と、第二特定情報1002と、第三特定情報1003によって構成される情報である。ここで、第一特定情報1001は、本実施の形態では、話題を構成する主要な形態素を意味するものである。第一特定情報1001の例としては、例えば文を構成する主語が挙げられる。また、第二特定情報1002は、本実施の形態では、第一特定情報1001と密接な関連性を有する形態素を意味するものである。この第二特定情報1002は、例えば目的語が挙げられる。更に、第三特定情報1003は、本実施の形態では、ある対象についての動きを示す形態素、又は名詞等を修飾する形態素を意味するものである。この第三特定情報1003は、例えば動詞、副詞又は形容詞が挙げられる。なお、第一特定情報1001、第二特定情報1002、第三特定情報1003それぞれの意味は上述の内容に限定される必要はなく、別の意味(別の品詞)を第一特定情報1001、第二特定情報1002、第三特定情報1003に与えても、これらから文の内容を把握可能な限り、本実施の形態は成立する。
【0054】
例えば、主語が「七人の侍」、形容詞が「面白い」である場合には、図13に示すように、話題タイトル(第二形態素情報)8202は、第一特定情報1001である形態素「七人の侍」と、第三特定情報1003である形態素「面白い」とから構成されることになる。なお、この話題タイトル8202には第二特定情報1002に該当する形態素は含まれておらず、該当する形態素がないことを示すための記号「*」が第二特定情報1002として格納されている。
【0055】
なお、この話題タイトル8202(七人の侍;*;面白い)は、「七人の侍は面白い」の意味を有する。この話題タイトル820を構成する括弧内は、以下では左から第一特定情報1001、第二特定情報1002、第三特定情報1003の順番となっている。また、話題タイトル820のうち、第一から第三特定情報に含まれる形態素がない場合には、その部分については、「*」を示すことにする。
【0056】
なお、上記話題タイトル820を構成する特定情報は、上記のような第一から第三特定情報のように3つに限定されるものではなく、例えば更に他の特定情報(第四特定情報、及びそれ以上)を有するようにしてもよい。
【0057】
次に、回答文830について図14を参照して説明する。回答文830は、図14に示すように、本実施の形態では、利用者から入力(発話)された入力文(発話文)のタイプに対応した回答をするために、陳述(D ; Declaration)、時間(T ; Time)、場所(L ; Location)、否定(N ; Negation)などのタイプ(回答種類)に分類されて、タイプ毎に用意されている。また肯定文は「A」とし、質問文は「Q」とする。
【0058】
話題特定情報810のデータ構成例について、図15を参照して説明する。図15は、ある話題特定情報810「佐藤」に対応付けされた話題タイトル820,回答文830の具体例を示す。
【0059】
話題特定情報810「佐藤」には、複数の話題タイトル(820)1−1、1−2、…が対応付けされている。それぞれの話題タイトル(820)1−1,1−2,…には回答文(830)1−1,1−2、…が対応付けされて記憶されている。回答文830は、回答種類840毎に用意されている。
【0060】
話題タイトル(820)1−1が(佐藤;*;好き){これは、「佐藤が好きです」に含まれる形態素を抽出したもの}である場合には、その話題タイトル(820)1-1に対応する回答文(830)1−1は、(DA;陳述肯定文「私も佐藤が好きです」)、(TA;時間肯定文「私は打席に立ったときの佐藤が好きです」)などが挙げられる。後述する回答取得部380は、入力種類判定部440の出力を参照しながらその話題タイトル820に対応付けられた一の回答文830を取得する。
【0061】
各回答文には、当該回答文に対応するように、ユーザ発話に対して優先的に出力される回答文(「次回答文」と呼ぶ)を指定する情報である次プラン指定情報840が定められている。次プラン指定情報840は、次回答文を特定できる情報であれば、どのような情報であってもよく、例えば、会話データベース500に格納されているすべての回答文から少なくとも一つの回答文を特定できる回答文ID、などである。
【0062】
なお、本実施の形態においては、次プラン指定情報840は、回答文単位で次回答文を特定する情報(例えば、回答文ID)として説明するが、次プラン指定情報840は、話題タイトル820、話題特定情報810単位で、次回答文(この場合には、複数の回答文が次回答文として指定されるので、次回答文群と呼ぶ。但し、実際に回答文として出力されるのは、この回答文群に含まれるいずれかの回答文となる)を特定する情報であっても構わない。例えば、話題タイトルID、話題特定情報IDを次プラン指定情報として使用しても本実施の形態は成立する。
[1.1.6.会話制御部]
ここで図7に戻り、サーバ側会話制御部300の構成例を説明する。
【0063】
サーバ側会話制御部300は、会話サーバ13内の各構成要素(文解析部400、会話データベース500)間のデータの受け渡しを制御するとともに、利用者入力文(ユーザ発話)に応答する回答文の決定、出力及び回答文に応じた動作制御情報の出力を行う機能を有する。
【0064】
サーバ側会話制御部300は、本実施の形態では、図7に示すように、管理部310と、プラン会話処理部320と,談話空間会話制御処理部330と、CA会話処理部340とを有している。以下これらの構成要素について説明する。
【0065】
管理部310は談話履歴を記憶し、且つ必要に応じて更新する機能を有する。管理部310は話題特定情報検索部350と、省略文補完部360と、話題検索部370と、回答取得部380からの要求に応じて、記憶している談話履歴の全部又は一部をこれら各部に渡す機能を有する。
【0066】
プラン会話処理部320は、プランを実行し、プランに従った会話をユーザとの間で成立させる機能を有する。「プラン」とは、予め定めた順番に従って予め定めた回答をユーザに提供することをいう。以下、プラン会話処理部320について説明する。
プラン会話処理部320は、ユーザ発話に応じて、予め定めた順番に従って予め定めた回答を出力する機能を有する。
【0067】
図16は、プランを説明するための概念図である。図16に示すように、プラン空間1401には複数のプラン1、プラン2,プラン3、プラン4など様々なプラン1402が予め準備されている。プラン空間1401とは、会話データベース500に格納された複数のプラン1402の集合をいう。会話サーバ13は、装置起動時若しくは会話開始時に予め開始用に定められたプランを選択し、若しくは各利用者入力(ユーザ発話)の内容に応じて、プラン空間1401の中から適宜いずれかのプラン1402を選択し、選択したプラン1402を用いてユーザ発話に対する回答文の出力を行う。
【0068】
図17は、プラン1402の構成例を示す図である。プラン1402は、回答文1501と、これに関連付けられた次プラン指定情報1502を有している。次プラン指定情報1502は、当該プラン1402に含まれる回答文1501の次に、ユーザに出力する予定の回答文(次候補回答文と呼ぶ)を含むプラン1402を特定する情報である。この例では、プラン1は、プラン1実行時に会話サーバ13が出力する回答文A(1501)と、この回答文A(1501)に関連付けられた次プラン指定情報1502とを有している。次プラン指定情報1502は、回答文A(1501)についての次候補回答文である回答文B(1501)を有するプラン1402を特定する情報「ID:002」である。同様に、回答文B(1501)についても、次プラン指定情報1502が定められており、回答文B(1501)が出力された場合に、次候補回答文を含むプラン2(1402)が指定される。このように、プラン1402は次プラン指定情報1502により連鎖的につながり、一連の連続した内容をユーザに出力するというプラン会話を実現する。すなわち、ユーザに伝えたい内容(説明文、案内文、アンケート、など)を複数の回答文に分割し、かつ各回答文の順番を予め定めてプランとして準備しておくことにより、ユーザの発話に応じてこれら回答文を順番にユーザに提供することが可能となる。なお、次プラン指定情報1502によって指定されたプラン1402に含まれる回答文1502は、直前の回答文の出力に応答するユーザ発話があれば、必ずしも直ちに出力される必要はなく、ユーザと会話サーバ13との間で、当該プラントは別の話題についての会話を挟んだ後に、次プラン指定情報1502によって指定されたプラン1402に含まれる回答文1501が出力されることもあり得る。
【0069】
なお、図17に示す回答文1501は、図15に示す回答文830の中のいずれか一の回答文文字列に対応し、また図17に示す次プラン指定情報1502は、図15に示す次プラン指定情報840に対応している。
【0070】
なお、プラン1402のつながりは、図17に示すような一次元的配列に限られるものではない。図18は、図17とは別のつながり方を有するプラン1402の例を示す図である。図18に示す例では、プラン1(1402)は次候補回答文となる2つの回答文1501,すなわちプラン1402を指定できるよう、2つの次プラン指定情報1502を有している。ある回答文A(1501)を出力した場合の次候補回答文を有するプラン1402として、回答文B(1501)を有するプラン2(1402)、及び回答文C(1501)を有するプラン3(1402)の2つのプラン1402が定まるよう、次プラン指定情報1502が2つ設けられる。なお、回答文B、回答文Cは選択的・択一的であり、一方が出力された場合は他方は出力されず、当該プラン1(1402)は終了する。このように、プラン1402のつながりは一次元的順列の形態に限定されるものではなく、樹形図的な連結、網的な連結であっても構わない。
【0071】
なお、各プランがいくつの次候補回答文を有するかは限定されるものではない。また、話の終了となるプラン1402については、次プラン指定情報1502が存在しないこともあり得る。
【0072】
図19に、ある一連のプラン1402の具体例を示す。この一連のプラン14021〜14024は、危機管理に関する情報をユーザに知らせるための4つの回答文15011〜15014に対応している。4つの回答文15011〜15014は全部で一つのまとまりのある話(説明文章)を構成する。各プラン14021〜14024はそれぞれ「1000−01」「1000−02」「1000−03」「1000−04」というIDデータ17021〜17024を有している。なお、IDデータ中のハイフン以下の番号は、出力の順番を示す情報である。また、各プラン14021〜14024はそれぞれ次プラン指定情報15021〜15024を有している。次プラン指定情報15024の内容は、「1000−0F」というデータであるが、このハイフン以下の番号「0F」は、次に出力する予定のプランは存在せず、当該回答文が一連の話(説明文章)の終わりであることを示す情報である。
【0073】
この例では、ユーザ発話が「大地震が発生したときの危機管理を教えて」である場合に、プラン会話処理部320がこの一連のプランを実行開始する。すなわち、ユーザ発話「大地震が発生したときの危機管理を教えて」をプラン会話処理部320が受け付けると、プラン会話処理部320はプラン空間1401を検索して、ユーザ発話「大地震が発生したときの危機管理を教えて」に対応する回答文15011を有するプラン1402があるかどうかを調べる。この例では、「大地震が発生したときの危機管理を教えて」に対応するユーザ発話文字列17011が、プラン14021に対応するものとする。
【0074】
プラン会話処理部320はプラン14021を発見すると、そのプラン14021に含まれる回答文15011を取得し、この回答文15011をユーザ発話に対する回答として出力するとともに、次プラン指定情報15021により次候補回答文を特定する。
【0075】
次に、回答文15011の出力後に入力部100や音声認識部200などを介してユーザ発話を受け付けると、プラン会話処理部320は、プラン14022の実行を行う。すなわち、プラン会話処理部320は、次プラン指定情報15021により指定されたプラン14022の実行、すなわち2番目の回答文15012を出力するか否かを判定する。具体的には、プラン会話処理部320は当該回答文15012に対応付けられたユーザ発話文字列(用例文ともいう)17012、あるいは話題タイトル820(図19において図略)と、受け付けたユーザ発話とを比較し、これらが一致するか否かを判定する。一致する場合には、2番目の回答文15012を出力する。また、2番目の回答文15012を含むプラン14022には、次プラン指定情報15022が記述されているので、次候補回答文が特定される。
【0076】
同様に、これ以降継続してなされるユーザ発話に応じて、プラン会話処理部320はプラン14023、プラン14024に順に移行して、3番目の回答文15013、4番目の回答文15013の出力を行うことができる。なお、4番目の回答文15014は最終回答文であり、4番目の回答文15014の出力が完了すると、プラン会話処理部320はプラン実行を終了する。
このように、プラン14021〜14024を次々と実行することにより、予め用意した会話内容を定めた順番通りにユーザに提供することが可能となる。
図7に戻り、サーバ側会話制御部300の構成例の説明を続ける。
【0077】
談話空間会話制御処理部330は、話題特定情報検索部350と、省略文補完部360と、話題検索部370と、回答取得部380とを有している。前記管理部310は、サーバ側会話制御部300の全体を制御するものである。
【0078】
「談話履歴」とは、ユーザと会話サーバ13間の会話の話題や主題を特定する情報であって、談話履歴は後述する「着目話題特定情報」「着目話題タイトル」「利用者入力文話題特定情報」「回答文話題特定情報」の少なくともいずれか一つを含む情報である。また、談話履歴に含まれる「着目話題特定情報」「着目話題タイトル」「回答文話題特定情報」は直前の会話によって定められたものに限定されず、過去の所定期間の間に「着目話題特定情報」「着目話題タイトル」「回答文話題特定情報」となったもの、若しくはそれらの累積的記録であってもよい。
以下、談話空間会話制御処理部330を構成するこれら各部について説明する。
【0079】
話題特定情報検索部350は、形態素抽出部420で抽出された第一形態素情報と各話題特定情報とを照合し、各話題特定情報の中から、第一形態素情報を構成する形態素と一致する話題特定情報を検索するものである。具体的に、話題特定情報検索部350は、形態素抽出部420から入力された第一形態素情報が「佐藤」及び「好き」の二つの形態素で構成される場合には、入力された第一形態素情報と話題特定情報群とを照合する。
【0080】
この照合をした話題特定情報検索部320は、着目話題タイトル820focus(前回までに検索された話題タイトル、他の話題タイトルと区別するため820focusと表記する)に第一形態素情報を構成する形態素(例えば「佐藤」)が含まれているときは、その着目話題タイトル820focusを回答取得部380に出力する。一方、着目話題タイトル820focusに第一形態素情報を構成する形態素が含まれていないときは、話題特定情報検索部350は、第一形態素情報に基づいて利用者入力文話題特定情報を決定し、入力された第一形態素情報及び利用者入力文話題特定情報を省略文補完部360に出力する。なお、「利用者入力文話題特定情報」は、第一形態素情報に含まれる形態素のうち、利用者が話題としている内容に該当する形態素に相当する話題特定情報、若しくは第一形態素情報に含まれる形態素のうち、利用者が話題としている内容に該当する可能性がある形態素に相当する話題特定情報をいう。
【0081】
省略文補完部360は、前記第一形態素情報を、前回までに検索された話題特定情報810(以下、「着目話題特定情報」と呼ぶ)及び前回の回答文に含まれる話題特定情報810(以下、「回答文話題特定情報」と呼ぶ)を利用して、補完することにより複数種類の補完された第一形態素情報を生成する。例えばユーザ発話が「好きだ」という文であった場合、省略文補完部360は、着目話題特定情報「佐藤」を、第一形態素情報「好き」に含めて、補完された第一形態素情報「佐藤、好き」を生成する。
【0082】
すなわち、第一形態素情報を「W」、着目話題特定情報や回答文話題特定情報の集合を「D」とすると、省略文補完部360は、第一形態素情報「W」に集合「D」の要素を含めて、補完された第一形態素情報を生成する。
【0083】
これにより、第一形態素情報を用いて構成される文が、省略文であって日本語として明解でない場合などにおいて、省略文補完部360は、集合「D」を用いて、その集合「D」の要素(例えば、"佐藤")を第一形態素情報「W」に含めることができる。この結果、省略文補完部360は、第一形態素情報「好き」を補完された第一形態素情報「佐藤、好き」にすることができる。なお、補完された第一形態素情報「佐藤、好き」は、「佐藤が好きだ」というユーザ発話に対応する。
【0084】
すなわち、省略文補完部360は、利用者の発話内容が省略文である場合などであっても、集合「D」を用いて省略文を補完することができる。この結果、省略文補完部360は、第一形態素情報から構成される文が省略文であっても、その文が適正な日本語となるようにすることができる。
【0085】
また、省略文補完部360が、前記集合「D」に基づいて、補完後の第一形態素情報に一致する話題タイトル820を検索する。補完後の第一形態素情報に一致する話題タイトル820を発見した場合は、省略文補完部360はこの話題タイトル820を回答取得部380に出力する。回答取得部380は、省略文補完部360で検索された適切な話題タイトル820に基づいて、利用者の発話内容に最も適した回答文830を出力することができる。
【0086】
なお、省略文補完部360は、集合「D」の要素を第一形態素情報に含めるだけに限定されるものではない。この省略文補完部360は、着目話題タイトルに基づいて、その話題タイトルを構成する第一特定情報、第二特定情報又は第三特定情報のいずれかに含まれる形態素を、抽出された第一形態素情報に含めてもよい。
【0087】
話題検索部370は、省略文補完部360で話題タイトル810が決まらなかったとき、第一形態素情報と、利用者入力文話題特定情報に対応する各話題タイトル810とを照合し、各話題タイトル810の中から、第一形態素情報に最も適する話題タイトル810を検索するものである。
【0088】
具体的に、省略文補完部360から検索命令信号が入力された話題検索部370は、入力された検索命令信号に含まれる利用者入力文話題特定情報及び第一形態素情報に基づいて、その利用者入力文話題特定情報に対応付けられた各話題タイトルの中から、その第一形態素情報に最も適した話題タイトル810を検索する。話題検索部370は、その検索した話題タイトル810を検索結果信号として回答取得部380に出力する。
【0089】
先に掲げた図15は、ある話題特定情報810(=「佐藤」)に対応付けされた話題タイトル820,回答文830の具体例を示す。図15に示すように、例えば、話題検索部370は、入力された第一形態素情報「佐藤、好き」に話題特定情報810(=「佐藤」)が含まれるので、その話題特定情報810(=「佐藤」)を特定し、次に、その話題特定情報810(=「佐藤」)に対応付けられた各話題タイトル(820)1-1,1-2,…と入力された第一形態素情報「佐藤、好き」とを照合する。
【0090】
話題検索部370は、その照合結果に基づいて、各話題タイトル(820)1-1〜1-2の中から、入力された第一形態素情報「佐藤、好き」と一致する話題タイトル(820)1-1(佐藤;*;好き)を特定する。話題検索部340は、検索した話題タイトル(820)1-1(佐藤;*;好き)を検索結果信号として回答取得部380に出力する。
【0091】
回答取得部380は、省略文補完部360,或いは話題検索部370で検索された話題タイトル820に基づいて、その話題タイトル820に対応付けられた回答文830を取得する。また、回答取得部380は、話題検索部370で検索された話題タイトル820に基づいて、その話題タイトル820に対応付けられた各回答種類と、入力種類判定部440で判定された発話種類とを照合する。その照合をした回答取得部380は、各回答種類の中から、判定された発話種類と一致する回答種類を検索する。
【0092】
図15に示す例においては、回答取得部350は、話題検索部370で検索された話題タイトルが話題タイトル1-1(佐藤;*;好き)である場合には、その話題タイトル1-1に対応付けられている回答文1-1(DA,TAなど)の中から、入力種類判定部440で判定された「発話文のタイプ」(例えばDA)と一致する回答種類(DA)を特定する。この回答種類(DA)を特定した回答取得部380は、特定した回答種類(DA)に基づいて、その回答種類(DA)に対応付けられた回答文1-1(「私も佐藤が好きです。」)を取得する。
【0093】
ここで、上記"DA"、"TA"等のうち、"A"は、肯定形式を意味する。従って、発話種類及び回答種類に"A"が含まれているときは、ある事柄について肯定することを示している。また、発話種類及び回答種類には、"DQ"、"TQ"等の種類を含めることもできる。この"DQ"、"TQ"等のうち"Q"は、ある事柄についての質問を意味する。
【0094】
回答種類が上記質問形式(Q)からなるときは、この回答種類に対応付けられる回答文は、肯定形式(A)で構成される。この肯定形式(A)で作成された回答文としては、質問事項に対して回答する文等が挙げられる。例えば、発話文が「あなたはスロットマシンを操作したことがありますか?」である場合には、この発話文についての発話種類は、質問形式(Q)となる。この質問形式(Q)に対応付けられる回答文は、例えば「私はスロットマシンを操作したことがあります」(肯定形式(A))が挙げられる。
【0095】
一方、発話種類が肯定形式(A)からなるときは、この回答種類に対応付けられる回答文は、質問形式(Q)で構成される。この質問形式(Q)で作成された回答文としては、発話内容に対して聞き返す質問文、又は特定の事柄を聞き出す質問文等が挙げられる。例えば、発話文が「私はスロットマシンで遊ぶのが趣味です」である場合には、この発話文についての発話種類は、肯定形式(A)となる。この肯定形式(A)に対応付けられる回答文は、例えば"パチンコで遊ぶのは趣味ではないのですか?"(特定の事柄を聞き出す質問文(Q))が挙げられる。
【0096】
回答取得部380は、取得した回答文830を回答文信号として管理部310に出力する。回答取得部350から回答文信号が入力された管理部310は、入力された回答文信号を出力部600に出力する。
【0097】
CA会話処理部340は、ユーザ発話に対して、プラン会話処理部320及び談話空間会話制御処理部330のいずれにおいても回答文が決定しない場合に、ユーザ発話の内容に応じて、ユーザとの会話を継続できるような回答文を出力する機能を有する。
以上で会話サーバ13の構成例の説明を終了する。
【0098】
[2.会話制御方法]
上記構成を有する会話サーバ13は、以下のように動作することにより会話制御方法を実行する。
次に、本実施の形態にかかる会話サーバ13,より詳しくはサーバ側会話制御部300の動作について説明する。
【0099】
図20は、サーバ側会話制御部300のメイン処理の一例を示すフローチャートである。このメイン処理は、サーバ側会話制御部300がユーザ発話を受け付ける毎に実行される処理であり、このメイン処理が行われることによりユーザ発話に対する回答文の出力が行われ、ユーザと会話サーバ13間の会話(対話)が成立する。
【0100】
メイン処理にはいると、サーバ側会話制御部300、より詳しくはプラン会話処理部320はまずプラン会話制御処理(S1801)を実行する。プラン会話制御処理は、プランを実行する処理である。
図21、図22はプラン会話制御処理の一例を示すフローチャートである。以下に図21、図22を参照しながら、プラン会話制御処理の例について説明する。
【0101】
プラン会話制御処理を開始すると、プラン会話処理部320はまず、基本制御状態情報チェックを行う(S1901)。基本制御状態情報は、プラン1402の実行の完了の有無が、基本制御状態情報として所定の記憶領域に格納される。
基本制御状態情報は、プランの基本制御状態を記述する役割を有する。
図23は、シナリオと呼ばれるタイプのプランについて生じうる4つの基本制御状態を示す図である。以下、それぞれの状態について説明する。
(1)結束
【0102】
この基本制御状態は、ユーザ発話が実行中のプラン1402、より詳しくはプラン1402に対応する話題タイトル820や用例文1701に一致する場合である。この場合は、プラン会話処理部320は当該プラン1402を終了し、次プラン指定情報1502にて指定された回答文1501に対応するプラン1402に移行する。
(2)破棄
【0103】
この基本制御状態は、ユーザ発話内容がプラン1402の終了を要求していると判断される場合、又はユーザの関心が実行中のプラン以外の事項に移ったと判定される場合に、設定される基本制御状態である。基本制御状態情報が破棄を示している場合は、プラン会話処理部320は、破棄の対象となったプラン1402以外にユーザ発話に対応するプラン1402がないかどうかを検索し、存在する場合にはそのプラン1402の実行を開始し、存在しない場合には、プランの実行を終了する。
(3)維持
【0104】
この基本制御状態は、ユーザ発話が、実行中のプラン1402に対応するに対応する話題タイトル820(図17参照)や用例文1701(図19参照)に該当しない場合であって、かつユーザ発話が基本制御状態「破棄」に該当するものではないと判断される場合に、基本制御状態情報に記述される基本制御状態である。
【0105】
この基本制御状態である場合には、プラン会話処理部320は、ユーザ発話を受け付けると、まず保留・中止しているプラン1402を再開するか否かを検討し、ユーザ発話がプラン1402再開に適さない場合、例えばユーザ発話がプラン1402に対応する話題タイトル802や用例文1702に対応しない場合は、他のプラン1402の実行を開始し、或いは後述の談話空間会話制御処理(S1902)などを行う。ユーザ発話がプラン1402再開に適している場合は、記憶している次プラン指定情報1502に基づいて、回答文1501の出力を行う。
【0106】
基本制御状態が「維持」である場合は、プラン会話処理部320は、当該プラン1402に対応する回答文1501以外の回答を出力できるように、他のプラン1402を検索し、あるいは後述の談話空間会話制御処理などを行うが、ユーザ発話が再びプラン1402に関するものとなった場合は、そのプラン1402の実行を再開する。
(4)継続
【0107】
この状態は、ユーザ発話が、実行中のプラン1402に含まれる回答文1501に対応しない場合であって、かつユーザ発話内容が基本制御状態「破棄」に該当するものではないと判断され、かつユーザ発話から解釈されるユーザの意図が明瞭でない場合に、設定される基本制御状態である。
【0108】
基本制御状態が「継続」である場合は、プラン会話処理部320は、ユーザ発話を受け付けるとまず保留・中止しているプラン1402を再開するか否かを検討し、ユーザ発話がプラン1402再開に適さない場合は、ユーザからさらなる発話を引き出すための回答文を出力できるように、後述のCA会話制御処理などを行う。
図21に戻り、プラン会話制御処理の説明を続ける。
【0109】
基本制御状態情報を参照したプラン会話処理部320は、基本制御状態情報が示す基本制御状態が「結束」であるか否かを判定する(S1902)。基本制御状態が「結束」であると判定した場合(S1902、Yes)は、プラン会話処理部320は、基本制御状態情報が示す実行中のプラン1402において、回答文1501が最終回答文であるかどうかを判定する(S1903)。
【0110】
最終回答文1501が出力済みであると判定した場合(S1903、Yes)、プラン会話処理部320は、すでにそのプラン1402においてユーザに回答すべき内容をすべて伝え終えているので、新たな別のプラン1402を開始するかいなかを判定するため、プラン空間内にユーザ発話に対応するプラン1402が存在するか検索を行う(S1904)。この検索の結果ユーザ発話に対応するプラン1402が発見できなかった場合(S1905、No)、ユーザに提供すべきプラン1402は存在していないので、プラン会話処理部320はそのままプラン会話制御処理終了する。
【0111】
一方、この検索の結果、ユーザ発話に対応するプラン1402を発見した場合(S1905、Yes)、プラン会話処理部320は当該プラン1402に移行する(S1906)。これは、ユーザに提供すべきプラン1402が存在しているため、当該プラン1402の実行(プラン1402に含まれる回答文1501の出力)を開始するためである。
【0112】
次に、プラン会話処理部320は当該プラン1402の回答文1501を出力する(S1908)。出力された回答文1501は、ユーザ発話に対する回答となり、プラン会話処理部320はユーザに伝えたい情報を提供することとなる。
回答文出力処理(S1908)後、プラン会話処理部320はプラン会話制御処理を終了する。
【0113】
一方、先に出力した回答文1501が最終の回答文1501であるか否かの判定(S1903)において、先に出力した回答文1501が最終の回答文1501でない場合(S1903,No)は、プラン会話処理部320は、先に出力した回答文1501に続く回答文1501、すなわち次プラン指定情報1502により特定されている回答文1501に対応するプラン1402に移行する(S1907)。
【0114】
この後、プラン会話処理部320は該当するプラン1402に含まれる回答文1501を出力し、ユーザ発話に対する回答を行う(S1908)。出力された回答文1501は、ユーザ発話に対する回答となり、プラン会話処理部320はユーザに伝えたい情報を提供することとなる。回答文出力処理(S1908)後、プラン会話処理部320はプラン会話制御処理を終了する。
【0115】
さて、S1902の判定処理において、基本制御状態情報が「結束」でない場合(S1902,No)は、プラン会話処理部320は基本制御状態情報が示す基本制御状態が「破棄」であるか否かを判定する(S1909)。基本制御状態が「破棄」であると判定した場合(S1909、Yes)は、継続すべきプラン1402が存在していないため、プラン会話処理部320は、開始すべき新たな別のプラン1402が存在するか判定すべく、プラン空間1401内にユーザ発話に対応するプラン1402が存在するか検索を行う(S1904)。この後、先に述べたS1903(Yes)における処理と同様に、S1905からS1908までの処理をプラン会話処理部320は実行する。
【0116】
一方、基本制御状態情報が示す基本制御状態が「破棄」であるか否かの判定(S1909)において、基本制御状態が「破棄」でないと判定した場合(S1909,No)は、プラン会話処理部320は、基本制御状態情報が示す基本制御状態が「維持」であるか否かの判定(S1910)をさらに行う。
【0117】
基本制御状態情報が示す基本制御状態が「維持」である場合(S1910、Yes)には、プラン会話処理部320は、保留・停止しているプラン1402についてユーザが再び関心を示したか否かを調べ、関心を示した場合には、一時保留・停止しているプラン1402を再開するように動作する。すなわち、プラン会話処理部320は、保留・停止中のプラン1402を検査(図22;S2001)し、ユーザ発話が保留・停止中の当該プラン1402が対応するか否かを判定する(S2002)。
【0118】
ユーザ発話が当該プラン1402に対応すると判定された場合(S2002、Yes)は、プラン会話処理部320はそのユーザ発話に対応するプラン1402に移行し(S2003)、その後、そのプラン1402に含まれる回答文1501を出力するように、回答文出力処理(図21;S1908)を実行する。このように動作することにより、プラン会話処理部320は、保留・中断していたプラン1402を、ユーザ発話に応じて、再開することが可能となり、予め用意していたプラン1402に含まれる内容をすべてユーザに伝達することが可能となる。
【0119】
一方、先のS2002(図22参照)において、保留・停止中のプラン1402がユーザ発話に対応しないと判定された場合(S2002、No)は、プラン会話処理部320は、開始すべき新たな別のプラン1402が存在するか判定すべく、プラン空間1401内にユーザ発話に対応するプラン1402が存在するか検索を行う(図21;S1904)。この後、先に述べたS1903(Yes)における処理と同様に、S1905からS1909までの処理をプラン会話処理部320は実行する。
【0120】
さて、S1910の判定において、基本制御状態情報が示す基本制御状態が「維持」でない場合(S1910、No)は、基本制御状態情報が示す基本制御状態が「継続」であることを意味する。この場合には、プラン会話処理部320は、回答文の出力を行うことなく、プラン会話制御処理を終了する。
以上で、プラン会話制御処理の説明を終了する。
【0121】
図20に戻り、メイン処理の説明を続ける。
プラン会話制御処理(S1801)を終了すると、サーバ側会話制御部300は談話空間会話制御処理を開始する(S1802)。但し、プラン会話制御処理(S1801)において回答文出力を行った場合は、サーバ側会話制御部300は談話空間会話制御処理(S1802)、及び後に説明するCA会話制御処理(S1803)のいずれも行わず、基本制御情報更新処理(S1804)を行ってメイン処理を終了する。
図24は、本実施の形態にかかる談話空間会話制御処理の一例を示すフローチャートである。
まず、利用者からの入力内容を取得するステップを行う(ステップS2201)。
次いで、取得した入力内容に基づいて、入力内容に対応する文字列を特定するステップを行う(ステップS2202)。
【0122】
そして、文字列特定部410が、特定された一連の文字列を一文毎に区切るステップを行う(ステップS2203)。具体的には、管理部310から文字列信号(あるいは形態素信号)が入力された文字列特定部410は、その入力された一連の文字列の中に、ある一定以上の時間間隔があるときは、その部分で文字列を区切る。文字列特定部410は、その区切った各文字列を形態素抽出部420及び入力種類判定部440に出力する。なお、文字列特定部410は、入力された文字列がキーボードから入力された文字列である場合には、句読点又はスペース等のある部分で文字列を区切るのが好ましい。
【0123】
その後、形態素抽出部420が、文字列特定部410で特定された文字列に基づいて、文字列の最小単位を構成する各形態素を第一形態素情報として抽出するステップを行う(ステップS2204)。具体的に、文字列特定部410から文字列が入力された形態素抽出部420は、入力された文字列と、形態素データベース430に予め格納されている形態素群とを照合する。なお、その形態素群は、本実施の形態では、それぞれの品詞分類に属する各形態素について、その形態素の見出し語・読み・品詞・活用形などを記述した形態素辞書として準備されている。
【0124】
この照合をした形態素抽出部420は、入力された文字列の中から、予め記憶された形態素群に含まれる各形態素と一致する各形態素(m1、m2、…)を抽出する。形態素抽出部420は、抽出した各形態素を第一形態素情報として話題特定情報検索部350に出力する。
【0125】
次いで、入力種類判定部440が、文字列特定部410で特定された一文を構成する各形態素に基づいて、「発話文のタイプ」を判定するステップを行う(ステップS2205)。具体的には、文字列特定部410から文字列が入力された入力種類判定部440は、入力された文字列に基づいて、その文字列と発話種類データベース450に格納されている各辞書とを照合し、その文字列の中から、各辞書に関係する要素を抽出する。この要素を抽出した入力種類判定部440は、抽出した要素に基づいて、その要素がどの「発話文のタイプ」に属するのかを判定する。入力種類判定部440は、判定した「発話文のタイプ」(発話種類)を回答取得部380に出力する。
【0126】
そして、話題特定情報検索部350が、形態素抽出部420で抽出された第一形態素情報と着目話題タイトル820focusとを比較するステップを行う(ステップS2206)。
【0127】
第一形態素情報を構成する形態素と着目話題タイトル820focusとが一致する場合、話題特定情報検索部350は、その話題タイトル820を回答取得部380に出力する。一方、話題特定情報検索部350は、第一形態素情報を構成する形態素と話題タイトル820とが一致しなかった場合には、入力された第一形態素情報及び利用者入力文話題特定情報を検索命令信号として省略文補完部360に出力する。
【0128】
その後、省略文補完部360が、話題特定情報検索部350から入力された第一形態素情報に基づいて、着目話題特定情報及び回答文話題特定情報を、入力された第一形態素情報に含めるステップを行う(ステップS2207)。具体的には、第一形態素情報を「W」、着目話題特定情報及び回答文話題特定情報の集合を「D」とすると、省略文補完部360は、第一形態素情報「W」に話題特定情報「D」の要素を含めて、補完された第一形態素情報を生成し、この補完された第一形態素情報と集合「D」に関連付けされたすべての話題タイトル820とを照合し、補完された第一形態素情報と一致する話題タイトル820があるか検索する。補完された第一形態素情報と一致する話題タイトル820がある場合は、省略文補完部360は、その話題タイトル820を回答取得部380に出力する。一方、補完された第一形態素情報と一致する話題タイトル820を発見しなかった場合は、省略文補完部360は、第一形態素情報と利用者入力文話題特定情報とを話題検索部370に渡す。
【0129】
次いで、話題検索部370は、第一形態素情報と、利用者入力文話題特定情報とを照合し、各話題タイトル820の中から、第一形態素情報に適した話題タイトル820を検索するステップを行う(ステップS2208)。具体的には、省略文補完部360から検索命令信号が入力された話題検索部370は、入力された検索命令信号に含まれる利用者入力文話題特定情報及び第一形態素情報に基づいて、その利用者入力文話題特定情報に対応付けられた各話題タイトル820の中から、その第一形態素情報に適した話題タイトル820を検索する。話題検索部370は、その検索の結果得られた話題タイトル820を検索結果信号として回答取得部380に出力する。
【0130】
次いで、回答取得部380が、話題特定情報検索部350、省略文補完部360,あるいは話題検索部370で検索された話題タイトル820に基づいて、文解析部400により判定された利用者の発話種類と、話題タイトル820に対応付けられた各回答種類とを照合し、回答文830の選択を行う(ステップS2209)。
【0131】
具体的には、以下のようにして回答文830の選択が行われる。すなわち、話題検索部370から検索結果信号と、入力種類判定部440から「発話文のタイプ」とが入力された回答取得部380は、入力された検索結果信号に対応する「話題タイトル」と、入力された「発話文のタイプ」とに基づいて、その「話題タイトル」に対応付けられている回答種類群の中から、「発話文のタイプ」(DAなど)と一致する回答種類を特定する。
続いて、回答取得部380は、管理部310を介して、ステップS2209において取得した回答文830を出力する(ステップS2210)。
以上で、談話空間会話制御処理の説明を終了し、図20に戻りメイン処理の説明を再開する。
【0132】
サーバ側会話制御部300は談話空間会話制御処理を終了すると、CA会話制御処理を実行する(S1803)。但し、プラン会話制御処理(S1801)及び談話空間会話制御処理(S1801)において回答文出力を行った場合は、サーバ側会話制御部300はCA会話制御処理(S1803)を行わず、基本制御情報更新処理(S1804)を行ってメイン処理を終了する。
【0133】
CA会話制御処理(S1803)は、ユーザ発話が、「何かを説明している」のか、「何かを確認している」のか、「非難や攻撃をしている」のか、「これら以外」なのかを判定し、ユーザ発話の内容及び判定結果に応じた回答文を出力する処理である。このCA会話制御処理を行うことにより、プラン会話制御処理、及び談話空間会話制御処理のいずれにおいても、ユーザ発話に適した回答文が出力できなくとも、ユーザとの会話の流れをとぎれさせることなく継続できるような、いわば「つなぎ」の回答文を出力することを可能とする役割を有している。
図25は、CA会話処理部340の構成例を示す機能ブロック図である。CA会話処理部340は、判定部2301と、回答部2302とを有している。
【0134】
判定部2301は、管理部310又は談話空間会話制御処理部330からユーザ発話文を受け取ると共に、回答文出力命令を受け取る。この回答文出力命令は、前記プラン会話処理部20及び談話空間会話制御処理部330が回答文出力を行わない、又は行ない場合になされる。また、判定部2301は、文解析部400(より詳しくは入力種類判定部440)より入力種類、すなわちユーザ発話のタイプ(図9参照)を受け取る。判定部2301は、これに基づいてユーザ発話意図を判定する。例えば、ユーザ発話が「佐藤が好きです」という文であった場合には、この文に含まれる「佐藤」「好き」という自立語と、ユーザ発話のタイプが陳述肯定文(DA)であることに基づいて、「佐藤」「好き」についてユーザが説明を行っていると判定する。
【0135】
回答部2302は、判定部2301からの判定結果に応じて、回答文を決定し、出力する。この例では、回答部2302は、説明会話対応文テーブル、確認会話対応文テーブル、非難攻撃会話対応文テーブル、反射会話文テーブルを有している。
【0136】
説明会話対応文テーブルは、ユーザ発話が何かを説明していると判定された場合にその発話に対する回答として出力する回答文を複数種類格納したテーブルである。例えば、回答文例としては、「はいそうなんですか。」のような聞き返しをされない回答文が用意されている。
【0137】
確認会話対応文テーブルは、ユーザ発話が何かを確認・質問していると判定された場合にその発話に対する回答として出力する回答文を複数種類格納したテーブルである。例えば、回答文例としては、「ちょっとわかりません。」のような聞き返しをされない回答文が用意されている。
【0138】
非難攻撃会話対応文テーブルは、ユーザ発話が会話制御システムを非難攻撃していると判定された場合にその発話に対する回答として出力する回答文を複数種類格納したテーブルである。例えば、回答文例としては、「ごめんなさい。」のような回答文が用意されている。
【0139】
反射会話文テーブルは、ユーザ発話「『***』なら興味ありません。」のような回答文が用意されている。なお、『***』は当該ユーザ発話に含まれる自立語が格納されることを意味する。
【0140】
回答部2302は、これら説明会話対応文テーブル、確認会話対応文テーブル、非難攻撃会話対応文テーブル、反射会話文テーブルを参照して、回答文を決定し、決定した回答文を管理部310に渡すように機能する。
【0141】
次に、上記CA会話処理部340が実行する処理であるCA会話処理(S1803)の具体例について説明する。図26は、CA会話処理の具体例を示すフローチャートである。なお、先に述べた様に、プラン会話制御処理(S1801)及び談話空間会話制御処理(S1802)において回答文出力を行った場合は、サーバ側会話制御部300はCA会話制御処理(S1803)を行わない。すなわち、CA会話制御処理(S1803)はプラン会話制御処理(S1801)及び談話空間会話制御処理(S1802)において回答文出力が保留されている場合にのみ、回答文出力を行う。
【0142】
CA会話処理(S1803)において、CA会話処理部340(判定部2301)はまず、ユーザ発話が何かを説明している文か否かを判定する(S2401)。ユーザ発話が何かを説明している文であると判定した場合(S2401,Yes)には、CA会話処理部340(回答部2302)は説明会話対応文テーブルを参照するなどの方法によって回答文を決定する。
【0143】
一方、ユーザ発話が何かを説明している文ではないと判定した場合(S2401,No)には、CA会話処理部340(判定部2301)は、ユーザ発話が何かを確認又は質問している文か否かを判定する(S2403)。ユーザ発話が何かを確認又は質問している文であると判定した場合(S2403,Yes)には、CA会話処理部340(回答部2302)は確認会話対応文テーブルを参照するなどの方法によって回答文を決定する(S2404)。
【0144】
一方、ユーザ発話が何かを確認又は質問している文ではないと判定した場合(S2403,No)には、CA会話処理部340(判定部2301)は、ユーザ発話が非難又は攻撃をしている文か否かを判定する(S2405)。ユーザ発話が非難又は攻撃をしている文であると判定した場合(S2405,Yes)には、CA会話処理部340(回答部2302)は攻撃非難会話対応文テーブルを参照するなどの方法によって回答文を決定する(S2406)。
【0145】
一方、ユーザ発話が非難又は攻撃をしている文ではないと判定した場合(S2405,No)には、CA会話処理部340(判定部2301)は、回答部2302に反射会話回答文を決定するよう要求する。この要求に応じて、CA会話処理部340(回答部2302)は反射会話対応文テーブルを参照するなどの方法によって回答文を決定する(S2407)。
【0146】
以上でCA会話処理(S1903)は終了する。このCA会話処理により、会話サーバ13はユーザ発話状態に応じて会話の成立を維持することが可能な回答を行る。
図20に戻り、サーバ側会話制御部300のメイン処理を続ける。
【0147】
CA会話処理(S1803)が終了すると、サーバ側会話制御部300は基本制御情報更新処理を行う(S1804)。この処理において、サーバ側会話制御部300,より詳しくは管理部310は、プラン会話処理部320が回答文出力を行った場合は基本制御情報を「結束」に設定し、プラン会話処理部320が回答文出力を停止した場合は基本制御情報を「破棄」に設定し、談話空間会話制御処理部330が回答文出力を行った場合は基本制御情報を「維持」に設定し、CA会話処理部340が回答文出力を行った場合は基本制御情報を「継続」に設定する。
この基本制御情報更新処理で設定された基本制御情報は、前述のプラン会話制御処理(S1801)において参照され、プランの継続や再開に利用される。
【0148】
以上、メイン処理を、ユーザ発話を受け付ける毎に実行することにより、会話サーバ13は、ユーザ発話に応じて、予め用意したプランを実行できるとともに、プランに含まれない話題についても適宜応答することができる。
[会話サーバの第2の態様]
【0149】
次に、会話サーバ13の第2の態様について述べる。第2の実施の形態にかかる会話サーバ13は、ユーザ発話内容がいかなる内容であっても、ユーザ発話の内容がいかなるものであっても、予め定めた回答文を予め定めた順番で出力させるように回答文を出力されるプランである、強制型シナリオと呼ぶタイプのプランを扱うことができることを特徴としている。かかる会話サーバ13は、会話データベース500に記憶されているプラン1402(複数)の少なくとも一部は、例えば、順番に出力される第1から第Mまでの回答文を格納したN個のプランであって、このN個のプランのうちの第M番目のプランは、第M+1番目の回答文を指定する次候補指定情報を有している(但し、M、Mは整数、且つ1≦M<N)。
【0150】
なお、第2の態様にかかる会話サーバ13の説明は、先に述べた会話サーバ13と異なる部分についてのみ説明し、同様の構成・動作については説明を省略する。
【0151】
図27に、強制型シナリオと呼ばれるタイプのプラン1402の具体例を示す。この一連のプラン140211〜140216は、車に関係するアンケートを構成する回答文150111〜150116に対応している。プラン140211〜140216におけるユーザ発話文字列170111〜170116は、「*」として表示されているが「*」はすべてのユーザ発話にも対応することを意味する。
【0152】
なお、ここに示した例では、図27において、プラン140210は、強制型シナリオの開始のきっかけとなるプランであって、強制型シナリオの一部とはしていない。
【0153】
各プラン140210〜140216はそれぞれ「2000−01」「2000−02」「1000−03」「2000−04」「2000−05」「2000−06」「2000−07」というIDデータ170210〜170216を有している。また、各プラン140210〜140216はそれぞれ次プラン指定情報150210〜150216を有している。また、次プラン指定情報150216の内容は、「2000−0F」というデータであるが、このハイフン以下の番号「0F」は、次に出力する予定のプランは存在せず、当該回答文がアンケートの終わりであることを示す情報である。
【0154】
さて、この例では、ユーザと会話サーバ13との会話が進行する中で、ユーザが「車が欲しい」というユーザ発話を発した(若しくは入力した)場合に、プラン会話処理部320がこの一連のプランを実行開始する。すなわち、ユーザ発話「車が欲しい」を会話サーバ13、より詳しくはプラン会話処理部320が受け付けると、プラン会話処理部320はプラン空間1401を検索して、ユーザ発話「車が欲しい」に対応する回答文1501を有するプラン1402があるかどうかを調べる。
この例では、「車が欲しい」に対応するユーザ発話文字列170110が、プラン140210に対応するものとする。
【0155】
プラン会話処理部320はプラン140210を発見すると、そのプラン140210に含まれる回答文150110を取得し、この回答文150110をユーザ発話に対する回答「それでは簡単なアンケートにお答えください。質問は五つです。アンケートにお答えいただける方は、『アンケートに答えてもよい』と入力してください」として出力するとともに、次プラン指定情報150210により次候補回答文を特定する。この例では、次プラン指定情報150210は、IDデータ「2000−02」を含んでいる。プラン会話処理部320は、IDデータ「2000−02」に対応するプラン140211の回答文を次候補回答文として記憶保持する。
【0156】
上記回答文「それでは簡単なアンケートにお答えください。質問は五つです。アンケートとにお答えいただける方は、『アンケートに答えてもよい』と入力してください」に対するユーザの回答、すなわちユーザ発話が「アンケートに答えてもよい」ではない場合には、プラン会話処理部320、或いは談話空間会話制御処理部330、或いはCA会話処理部340が、このユーザ発話に対応する何らかの回答文の出力を行い、アンケートの開始には至らない。
【0157】
一方、ユーザ発話「アンケートに答えてもよい」がなされた場合には、プラン会話処理部320は、次候補回答文として指定されているプラン140211を選択し、このプランの実行を行う。すなわち、プラン会話処理部320は、当該プラン140211の有する回答文150111であるという回答を出力させると共に、当該プラン140211の有する次プラン指定情報150211により次候補回答文を特定する。この例では、次プラン指定情報150211は、IDデータ「2000−03」を含んでいる。プラン会話処理部320は、IDデータ「2000−03」に対応するプラン140212が有する回答文を次候補回答文とする。これで強制型シナリオであるアンケートの実施が開始することになる。
【0158】
この会話サーバ13から出力された回答文「ありがとうございます。それでは第一問。車をお買いになるとしたら新車にしますか?中古車にしますか?」に対して何らかのユーザ発話があった場合は、次候補回答文として指定されているプラン140212を選択し、このプランの実行を行う。すなわち、プラン会話処理部320は、当該プラン140212の有する回答文150112である「第2問。国産車か外車かどちらをお望みですか?」という回答を出力させると共に、当該プラン140212の有する次プラン指定情報150212により次候補回答文を特定する。この例では、次プラン指定情報150212は、「2000−04」であり、このIDを有するプラン140213が次候補回答文として選択される。
【0159】
なお、この強制型シナリオと呼ばれるタイプのプランは、ユーザ発話文字列1701の内容がすべてのユーザ発話内容を示す記述「*」となっているため、どのような内容のユーザ発話がなされても、プラン会話処理部320は選択したプランを実行する。例えば、ユーザ発話が「わからないなあ」「もうやめようよ」等のアンケートの回答ではないと思われる場合でも、次の質問である回答文の出力を継続して行うこととなる。
【0160】
これ以降、会話サーバ13、より詳しくはプラン会話処理部320は、ユーザ発話を受け付ける毎に、ユーザ発話の内容の如何を問わず、プラン140213、プラン140214、プラン140215、プラン140216の実行を順番に行う。すなわち、会話サーバ13、より詳しくはプラン会話処理部320は、ユーザ発話を受け付ける毎に、ユーザ発話の内容の如何を問わず、プラン140213、プラン140214、プラン140215、プラン140216の回答文150113〜150116である「第3問。車種は?セダンかスポーツカーか、ワゴンかワンボックスか、どのようなタイプが欲しいですか?」、「第4問。予算はいくらくらいをお考えですか?」、「第5問。お求めになるとすれば、いつ頃でしょうか?」、「質問は以上です。どうもありがとうございました。」を順番に出力する。
【0161】
なお、プラン会話処理部320は、プラン140216の有する次プラン指定情報150216より当該回答文がアンケートの終わりと認識し、プラン会話処理を終了する。
図28は、強制型シナリオと呼ばれるタイプのプランの別の例を示す図である。
【0162】
図27に示した例においては、ユーザ発話がアンケートの回答であるか否かを問わず、アンケートの質問を進めていく会話制御方式であったが、図28に示す例では、ユーザ発話がアンケートの回答である場合にのみ、次のアンケート質問に進み、そうでない場合はアンケート質問を繰り返してアンケートの回答を取得することを試みる会話制御方式である。
【0163】
図28に示す例は、図27と同様の車に関係するアンケートを構成する回答文を有するプランであって、このアンケートのうち第一問(図27,プラン140211参照)、第二問(図27,プラン140212参照)、第三問(図27,プラン140213参照)に対応するプランを図示しており、第四問以降に対応するプランは省略している。なお、ユーザ発話文字列170124は、ユーザ発話が「新車」又は「中古車」のいずれでもない発話であることを示すデータであり、同様にユーザ発話文字列170127は、ユーザ発話が「国産車」又は「外車」のいずれでもない発話であることを示すデータである。
【0164】
さて、図28に示す例において、「アンケートに回答してもよい」というユーザ発話がなされたものとする。すると、プラン会話処理部320はプラン空間1401を検索して、プラン140221を発見する。そのプラン140221に含まれる回答文150121を取得し、この回答文150121をユーザ発話に対する回答「ありがとうございます。それでは第一問。車をお買いになるとしたら新車にしますか?中古車にしますか?」として出力するとともに、次プラン指定情報150221により次候補回答文を特定する。この例では、次プラン指定情報150221は、3つのIDデータ「2000−02」「2000−03」「2000−04」を含んでいる。プラン会話処理部320は、この3つのIDデータ「2000−02」「2000−03」「2000−04」に対応するプラン140222、プラン140223、プラン140224の回答文を次候補回答文として記憶保持する。
【0165】
ここで、会話サーバ13から出力された回答文「ありがとうございます。それでは第一問。車をお買いになるとしたら新車にしますか?中古車にしますか?」に答えるユーザ発話「新車」がなされた場合には、プラン会話処理部320は、次候補回答文として指定されている3つの140222、プラン140223、プラン140224のうち、このユーザ発話に対応するユーザ発話文字列170122を有するプラン140222を選択し、このプランの実行を行う。すなわち、プラン会話処理部320は、当該プラン140222の有する回答文150122である「第2問。国産車か外車かどちらをお望みですか?」という回答を出力させると共に、当該プラン140222の有する次プラン指定情報150222により次候補回答文を特定する。この例では、次プラン指定情報150222は、3つのIDデータ「2000−06」「2000−07」「2000−08」を含んでいる。プラン会話処理部320は、3つのIDデータ「2000−06」「2000−07」「2000−08」に対応する3つのプラン140225、140226、140227が有する回答文を次候補回答文とする。すなわち、会話サーバ13は、アンケート第一問の答え「新車」の収集を完了し、アンケート第二問の答えの取得へ進むよう、会話制御を実行している。
【0166】
一方、会話サーバ13から出力された回答文「ありがとうございます。それでは第一問。車をお買いになるとしたら新車にしますか?中古車にしますか?」に答えるユーザ発話「中古車」がなされた場合には、プラン会話処理部320は、次候補回答文として指定されている3つの140222、プラン140223、プラン140224のうち、このユーザ発話に対応するユーザ発話文字列170123を有するプラン140223を選択し、このプランの実行を行う。すなわち、プラン会話処理部320は、当該プラン140223の有する回答文150123である「第2問。国産車か外車かどちらをお望みですか?」という回答を出力させると共に、当該プラン140223の有する次プラン指定情報150223により次候補回答文を特定する。この例では、次プラン指定情報150223は、先の次プラン指定情報150222と同様に、3つのIDデータ「2000−06」「2000−07」「2000−08」を含んでいる。プラン会話処理部320は、3つのIDデータ「2000−06」「2000−07」「2000−08」に対応する3つのプラン140225、140226、140227が有する回答文を次候補回答文とする。すなわち、会話サーバ13は、アンケート第一問の答え「中古車」の収集を完了し、アンケート第二問の答え取得へ進むよう、会話制御を実行している。
【0167】
また、会話サーバ13から出力された回答文「ありがとうございます。それでは第一問。車をお買いになるとしたら新車にしますか?中古車にしますか?」に答えるユーザ発話が「新車」でも「中古車」でもない場合、例えば「わからない」とか「どちらでもよい」がなされた場合には、プラン会話処理部320は、次候補回答文として指定されている3つの140222、プラン140223、プラン140224のうち、このユーザ発話に対応するユーザ発話文字列170124を有するプラン140224を選択し、このプランの実行を行う。すなわち、プラン会話処理部320は、当該プラン140224の有する回答文150124である「とりあえず第1問の回答をお願いします。車をお買いになるとしたら、新車にしますか?中古車にしますか?」という回答を出力させると共に、当該プラン140224の有する次プラン指定情報150224により次候補回答文を特定する。この例では、次プラン指定情報150224は、3つのIDデータ「2000−03」「2000−04」「2000−05」を含んでいる。プラン会話処理部320は、3つのIDデータ「2000−03」「2000−04」「2000−05」に対応する3つのプラン140222、140223、140224が有する回答文を次候補回答文とする。すなわち、会話サーバ13は、再びユーザにアンケート第一問を繰り返し、アンケート第一問に対する答えの収集を試みる会話制御を実行する。言い換えれば、会話サーバ13、より詳しくはプラン会話処理部320は、ユーザが「新車」若しくは「中古車」のいずれかのユーザ発話するまでユーザにアンケート第一問を繰り返す。
【0168】
さて、プラン会話処理部320が先のプラン140222又は140223を実行し、回答文「第2問。国産車か外車かどちらをお望みですか?」を出力した後の処理について説明を進める。会話サーバ13から出力された回答文「第2問。国産車か外車かどちらをお望みですか?」に対して、ユーザ発話「国産車」がなされた場合には、プラン会話処理部320は、次候補回答文として指定されている3つのプラン140225、プラン140226、プラン140227のうち、このユーザ発話に対応するユーザ発話文字列170125を有するプラン140225を選択し、このプランの実行を行う。すなわち、プラン会話処理部320は、当該プラン140225の有する回答文150125である「第3問。車種は?セダンかスポーツカーか、ワゴンかワンボックスか、どのようなタイプが欲しいですか?」という回答を出力させると共に、当該プラン140225の有する次プラン指定情報150225により次候補回答文を特定する。この例では、次プラン指定情報150225は、3つのIDデータ「2000−09」「2000−10」「2000−11」を含んでいる。プラン会話処理部320は、3つのIDデータ「2000−09」「2000−10」「2000−11」に対応する3つのプランが有する回答文を次候補回答文とする。すなわち、この時点で会話サーバ13は、アンケート第二問の答え「国産車」の収集を完了し、アンケート第三問の答え取得へ進むよう、会話制御を実行している。なお、「2000−09」「2000−10」「2000−11」に対応するプランは図28においては省略されている。
【0169】
一方、会話サーバ13から出力された回答文「第2問。国産車か外車かどちらをお望みですか?」に答えるユーザ発話「外車」がなされた場合には、プラン会話処理部320は、次候補回答文として指定されている3つのプラン140225、プラン140226、プラン140227のうち、このユーザ発話に対応するユーザ発話文字列170126を有するプラン140226を選択し、このプランの実行を行う。すなわち、プラン会話処理部320は、当該プラン140226の有する回答文150126である「第3問。車種は?セダンかスポーツカーか、ワゴンかワンボックスか、どのようなタイプが欲しいですか?」という回答を出力させると共に、当該プラン140226の有する次プラン指定情報150226により次候補回答文を特定する。この例では、次プラン指定情報150225は、3つのIDデータ「2000−09」「2000−10」「2000−11」を含んでいる。プラン会話処理部320は、3つのIDデータ「2000−09」「2000−10」「2000−11」に対応する3つのプランが有する回答文を次候補回答文とする。すなわち、会話サーバ13は、アンケート第二問の答え「外車」の収集を完了し、アンケート第三問の答え収集へ進むよう、会話制御を実行している。
【0170】
また、会話サーバ13から出力された回答文「第2問。国産車か外車かどちらをお望みですか?」に答えるユーザ発話が「国産車」でも「外車」でもない場合、例えば「わからない」とか「どちらでもよい」がなされた場合には、プラン会話処理部320は、次候補回答文として指定されている3つのプラン140225、プラン140226、プラン140227のうち、このユーザ発話に対応するユーザ発話文字列170127を有するプラン140227を選択し、このプランの実行を行う。すなわち、プラン会話処理部320は、当該プラン140227の有する回答文150127である「とりあえず、第2問にご回答ください。国産車か外車かどちらをお望みですか?」という回答を出力させると共に、当該プラン140227の有する次プラン指定情報150227により次候補回答文を特定する。この例では、次プラン指定情報150227は、3つのIDデータ「2000−06」「2000−07」「2000−08」を含んでいる。プラン会話処理部320は、3つのIDデータ「2000−06」「2000−07」「2000−08」に対応する3つのプラン140225、140226、140227が有する回答文を次候補回答文とする。すなわち、会話サーバ13は、再びユーザにアンケート第二問を繰り返し、アンケート第二問に対する答えの収集を試みる会話制御を実行する。言い換えれば、会話サーバ13、より詳しくはプラン会話処理部320は、ユーザが「国産車」若しくは「外車」のいずれかのユーザ発話するまでユーザにアンケート第二問を繰り返す。
【0171】
以下、上記と同様の会話制御方式により、会話サーバ13、より詳しくはプラン会話処理部320は、アンケート第三問からアンケート第五問の答えの収集を行う。
【0172】
上記のような第2の実施の形態にかかる会話サーバ13によれば、ユーザの発話内容が本来の目的とするところと異なっていても、決められた順番で、決められた項目についての回答を取得することが可能な会話制御システムを提供できる。
【0173】
次に、会話サーバ13の第3の態様について述べる。第3の態様にかかる会話サーバ13は、ユーザに質問を繰り返して行うことで、ユーザにある結論やアドバイスなどの情報にたどり着かせるための、誘導談話と呼ぶタイプのプランを扱うことができることを特徴としている。かかる会話サーバ13は、会話データベース500に記憶されているプラン1402(複数)の少なくとも一部は、ユーザを誘導するための一連の質問を回答文として有しており、そのプランの有する次プラン指定情報は、複数の次候補回答文を指定する情報である。
【0174】
なお、第3の態様にかかる会話サーバ13の説明は、第1の実施の形態と異なる部分についてのみ説明し、第1の実施の形態と同様の構成・動作については説明を省略する。
【0175】
図29に、ユーザに質問を繰り返して行うことで、ユーザにある結論やアドバイスなどの情報にたどり着かせるための、一連の質問文を回答文として有するプラン1402の具体例を示す。この一連のプラン140210〜140216は、育児中の母親などからの育児相談に対する4回答文150110〜150116に対応している。この例では、プラン140211、140212,及びプラン140211、140212は選択的な関係にあり、一方が選択された場合は、他方は選択されない関係となっている。
【0176】
各プラン140210〜140216はそれぞれ「2000−01」「2000−02」「1000−03」「2000−04」「2000−05」「2000−06」というIDデータ170210〜170216を有している。また、各プラン140210〜140216はそれぞれ次プラン指定情報150210〜150216を有している。なお、次プラン指定情報150211及び150214は、複数の次プランを指定するものであるため、複数のIDデータを有している。また、次プラン指定情報150212、150213、150216の内容は、「2000−0F」というデータであるが、このハイフン以下の番号「0F」は、次に出力する予定のプランは存在せず、当該回答文が一連の話(質問)の終わりであることを示す情報である。
【0177】
この例では、ユーザ発話が「赤ちゃんが頭を打った」である場合に、プラン会話処理部320がこの一連のプランを実行開始する。すなわち、ユーザ発話「赤ちゃんが頭を打った」をプラン会話処理部320が受け付けると、プラン会話処理部320はプラン空間1401を検索して、ユーザ発話「赤ちゃんが頭を打った」に対応する回答文1501を有するプラン1402があるかどうかを調べる。この例では、「赤ちゃんが頭を打った」に対応するユーザ発話文字列170110が、プラン140210に対応するものとする。
【0178】
プラン会話処理部320はプラン140210を発見すると、そのプラン140210に含まれる回答文150110を取得し、この回答文150110をユーザ発話に対する回答「意識はある?」として出力するとともに、次プラン指定情報150210により次候補回答文を特定する。この例では、次プラン指定情報150210は、2つのIDデータ「2000−02」「2000−03」を含んでいる。プラン会話処理部320は、2つのIDデータ「2000−02」及び「2000−03」に対応する2つのプラン140211、140212の回答文を次候補回答文とする。
【0179】
ここで、会話サーバ13から出力された回答文「意識はある?」に答えるユーザ発話「はい」がなされた場合には、プラン会話処理部320は、次候補回答文として指定されている2つのプラン140211、140212のうち、このユーザ発話に対応するユーザ発話文字列170111を有するプラン140211を選択し、このプランの実行を行う。すなわち、プラン会話処理部320は、当該プラン140211の有する回答文150111である「麻痺や呼吸の乱れはある?」という回答を出力させると共に、当該プラン140211の有する次プラン指定情報150211により次候補回答文を特定する。この例では、次プラン指定情報150211は、2つのIDデータ「2000−04」「2000−05」を含んでいる。プラン会話処理部320は、2つのIDデータ「2000−04」及び「2000−05」に対応する2つのプラン140213、140214が有する回答文を次候補回答文とする。
【0180】
一方、会話サーバ13から出力された回答文「意識はある?」に答えるユーザ発話が「いいえ」であった場合には、プラン会話処理部320は、このユーザ発話に対応するユーザ発話文字列170112を有するプラン140212の実行を行う。すなわち、プラン会話処理部320は、当該プラン140212の有する回答文150112である「すぐに救急車を呼んでください!」という回答を出力させると共に、当該プラン140212の有する次プラン指定情報150212により、当該回答文が質問の終わりと認識し、プラン会話処理を終了する。
【0181】
さて、会話サーバ13から出力された回答文「麻痺や呼吸の乱れはある?」に答えるユーザ発話が「はい」であった場合には、プラン会話処理部320は、プラン140211において次候補回答文として指定されている2つのプラン140213、140214のうち、このユーザ発話「はい」に対応するユーザ発話文字列170113を有するプラン140213を選択し、このプランの実行を行う。すなわち、プラン会話処理部320は、当該プラン140213の有する回答文150113である「すぐに救急車を呼んでください!」という回答を出力させると共に、当該プラン140213の有する次プラン指定情報150213により、当該回答文が質問の終わりと認識し、プラン会話処理を終了する。
【0182】
さて、会話サーバ13から出力された回答文「麻痺や呼吸の乱れはある?」に答えるユーザ発話が「いいえ」であった場合には、プラン会話処理部320は、プラン140211において次候補回答文として指定されている2つのプラン140213、140214のうち、このユーザ発話「いいえ」に対応するユーザ発話文字列170114を有するプラン140214を選択し、このプランの実行を行う。すなわち、プラン会話処理部320は、当該プラン140214の有する回答文150114である「生あくびや嘔吐はありますか?」という回答を出力させると共に、次プラン指定情報150214により次候補回答文を特定する。この例では、次プラン指定情報150214は、2つのIDデータ「2000−04」「2000−06」を含んでいる。プラン会話処理部320は、2つのIDデータ「2000−04」及び「2000−06」に対応する2つのプラン140213、140215の回答文を次候補回答文とする。
【0183】
上記に続いて、会話サーバ13から出力された回答文「生あくびや嘔吐はありますか?」に答えるユーザ発話が「はい」であった場合には、プラン会話処理部320は、プラン140214において次候補回答文として指定されている2つのプラン140213、140216のうち、このユーザ発話に対応するユーザ発話文字列170113を有するプラン140213の実行を行う。すなわち、プラン会話処理部320は、当該プラン140213の有する回答文150113である「すぐに救急車を呼んでください!」という回答を出力させると共に、当該プラン140213の有する次プラン指定情報150213により、当該回答文が質問の終わりと認識し、プラン会話処理を終了する。
【0184】
一方、会話サーバ13から出力された回答文「生あくびや嘔吐はありますか?」に答えるユーザ発話が「いいえ」であった場合には、プラン会話処理部320は、プラン140214において次候補回答文として指定されている2つのプラン140213、140216のうち、このユーザ発話に対応するユーザ発話文字列170115を有するプラン140215の実行を行う。すなわち、プラン会話処理部320は、当該プラン140215の有する回答文150115である「頭を打った直後に大声で泣き、やがて泣きやんだ後、機嫌良くしていたら、とりあえず大きな心配はないでしょう」という回答を出力させると共に、当該プラン140213の有する次プラン指定情報150213により、当該回答文が質問の終わりと認識し、プラン会話処理を終了する。
【0185】
図30は、図29に示すような、ユーザに質問を繰り返して行うことで、ユーザにある結論やアドバイスなどの情報にたどり着かせるための、一連の質問文を回答文として有するタイプのプランについて生じうる4つの基本制御状態を示す図である。以下、それぞれの状態について説明する。
【0186】
(1)目標達成
この基本制御状態は、シナリオと呼ぶタイプのプランの基本制御状態を示した図23における「結束」に対応する状態である。ユーザ発話が実行中のプラン1402、より詳しくはプラン1402に対応する話題タイトル820や用例文1701に一致する場合である。この場合は、プラン会話処理部320は当該プラン1402を終了し、次プラン指定情報1502にて指定された回答文1501に対応するプラン1402に移行する。
【0187】
(2)破棄
この基本制御状態は、シナリオと呼ぶタイプのプランの基本制御状態を示した図23における「破棄」と同様である。ユーザ発話内容がプラン1402の終了を要求していると判断される場合、又はユーザの関心が実行中のプラン以外の事項に移ったと判定される場合に、設定される基本制御状態である。基本制御状態情報が破棄を示している場合は、プラン会話処理部320は、破棄の対象となったプラン1402以外にユーザ発話に対応するプラン1402がないかどうかを検索し、存在する場合にはそのプラン1402の実行を開始し、存在しない場合には、プランの実行を終了する。
【0188】
(3)維持
この基本制御状態は、シナリオと呼ぶタイプのプランの基本制御状態を示した図23における「維持」と同様である。すなわち、基本制御状態「維持」は、ユーザ発話が、実行中のプラン1402に対応するに対応する話題タイトル820(図15参照)や用例文1701(図19参照)に該当しない場合であって、かつユーザ発話が基本制御状態「破棄」に該当するものではないと判断される場合に、基本制御状態情報に記述される基本制御状態である。
【0189】
この基本制御状態である場合には、プラン会話処理部320は、ユーザ発話を受け付けると、まず保留・中止しているプラン1402を再開するか否かを検討し、ユーザ発話がプラン1402再開に適さない場合、例えばユーザ発話がプラン1402に対応する話題タイトル802や用例文1702に対応しない場合は、他のプラン1402の実行を開始し、或いは前述の談話空間会話制御処理(S1802)などを行う。ユーザ発話がプラン1402再開に適している場合は、記憶している次プラン指定情報1502に基づいて、回答文1501の出力を行う。
【0190】
基本制御状態が「維持」である場合は、プラン会話処理部320は、当該プラン1402に対応する回答文1501以外の回答を出力できるように、他のプラン1402を検索し、あるいは前述の談話空間会話制御処理などを行うが、ユーザ発話が再びプラン1402に関するものとなった場合は、そのプラン1402の実行を再開する。
【0191】
(4)催促
この基本制御状態は、シナリオと呼ぶタイプのプランの基本制御状態を示した図23における「継続」に対応している。この基本制御状態は、ユーザ発話が、実行中のプラン1402に含まれる回答文1501に対応しない場合であって、かつユーザ発話内容が基本制御状態「破棄」に該当するものではないと判断され、かつユーザ発話から解釈されるユーザの意図が明瞭でない場合に、設定される基本制御状態である。
【0192】
基本制御状態が「催促」である場合は、プラン会話処理部320は、ユーザ発話を受け付けるとまず保留・中止しているプラン1402を再開するか否かを検討し、ユーザ発話がプラン1402再開に適さない場合は、ユーザからさらなる発話を引き出すための回答文を出力できるように、前述のCA会話制御処理などを行う。
【0193】
図31、図32は、第3の形態にかかる会話サーバ3において、誘導談話と呼ぶタイプのプランを扱うプラン会話制御処理の一例を示すフローチャートである。図31,32に示す第3の態様にかかる会話サーバ13において、誘導談話と呼ぶタイプのプランを扱うプラン会話制御処理は、S2502において「結束」が「目標達成」に変わっている点を除いて、図21,22に示した第1の態様におけるプラン会話制御処理と同様である。具体的には、図31におけるS2501からS2510は、図21におけるS1901からS1910とそれぞれ同様の処理であり、図32におけるS2601からS2603は、図22におけるS2001からS2003とそれぞれ同様の処理であるので、これらの詳細な説明は省略する。
【0194】
上記のような第3の態様にかかる会話サーバ13によれば、ユーザに質問を繰り返して行うことで、ユーザにある結論やアドバイスなどの、予め準備した情報にたどり着かせるための会話を提供することが可能となる。
なお、上記では特に明記しなかったが、いずれの態様においても、会話サーバ13は、回答文の出力に際しては、回答文とともにその回答文に応じた動作制御情報を出力する。
また、動作制御情報は、必ずしも会話サーバ13により決定されなくとも良く、通信網14に接続された他の装置(例えば利用者端末装置10,或いは他のサーバ装置など)が決定する構成としても本実施の形態及び本発明は成立する。
【0195】
[2.会話制御システムの動作]
次に、上記の会話制御システム1の動作例を説明する。
図33は、会話制御システム1の動作例を示したシーケンス図である。
ここでは、利用者が利用者端末装置10のブラウザ部205を起動させ、WWWサーバ11に設けられたあるサイトを閲覧しようとしたものとする。利用者端末装置10は、利用者によって指定されたサイトに相当するWeb文書を求めるリクエストメッセージをWWWサーバ11に宛てて送信する(S10)。WWWサーバ11はそのリクエストメッセージに応答して、求められたWeb文書のデータを利用者端末装置10に宛てて送信する(S20)。
【0196】
このWeb文書には、その構成要素として広告配信サーバ12に設定された広告動画のURLが記述されている。利用者端末装置10は、広告動画のURLに基づいて、広告表示領域504に相当するデータを求めるリクエストメッセージを広告配信サーバ12に宛てて送信する(S30)。広告配信サーバ12はそのリクエストメッセージに応答して、求められたデータを利用者端末装置10に宛てて送信する(S40)。
利用者端末装置10は、広告表示領域504を含む画面内容を出力部24に表示させる(S50)。その画面内容は、図5にて示したようになる。
【0197】
利用者は、広告表示領域に示される人物と会話を試みる場合、広告表示領域504に設けられた入力ボックス505に入力文を入力する(S60)。入力文が入力され、所定の操作が行われると、利用者端末装置10は入力文を会話サーバ13に宛てて送信する(S70)。入力文の送信は、この実施の形態では、回答文要求メッセージとして行われるものとするが、どのような送信方式であっても構わない。
【0198】
回答文要求メッセージを受信した会話サーバ13は、入力文に応じた回答文を決定(S80)するとともに、回答文に応じた動作制御情報を決定する(S90)。次に、会話サーバ13は決定した回答文及び動作制御情報を利用者端末装置10に宛てて送信する(S100)。
【0199】
利用者端末装置10は回答文及び動作制御情報を受信する(S110)。回答文及び動作制御情報を受信した利用者端末装置10は、回答文を出力部204に出力させる(S120)。例えば、回答文をテキストとして広告表示領域504に表示させるようにしてもよいし、新たなポップアップウインドウを広告表示領域504近傍に生成させ、そのポップアップウインドウ内に回答文であるテキストを表示させてもよい。或いは人工音声を生成させ、出力部1204であるスピーカから発生させるようにしてもよい。本発明において回答文の出力形態は特に制限はない。
【0200】
回答文の出力(S120)を行う一方、利用者端末装置10、より詳しくは会話制御部206は、受信した動作制御情報に基づいて実行すべき動作を決定し、決定した動作を実行(制御)する(S130)。例えば、受信した動作制御情報が「こんにちは、初めまして」というものである場合には、広告表示領域504内に、女性が「こんにちは、初めまして」と発話しながらお辞儀をする動画を表示させる動作が指定されている場合には、ブラウザ部205にこのような動画データを取得させ再生させる。なお、動画制御情報は、広告表示領域504内に表示される内容の制御に限定されないことは前述したとおりである。利用者端末装置10が実行可能な動作であれば、どのようなものでも動作制御情報の対象とすることができる。例えば、現在表示しているWebサイトとは別のWebサイトをウインドウ501内に表示させる動作制御情報としてもよいし、新たなウインドウを生成し、そこに動作制御情報により指定されたWebサイトを表示させてもよい。
【0201】
また、動作制御情報は回答文の受信後、利用者端末装置10において成立する条件に基づいて実行される内容でも良い。この場合、利用者端末装置10は、条件成立の判定を行い(S140)、条件が成立した場合には、所定の動作制御情報を生成し、これを実行する(S150)。例えば、回答文の送信回数が所定数を超えた場合、広告主が利用者の訪問を期待するサイトに画面遷移させるようにしてもよい。
以上で、会話制御システムの動作例の説明を終了する。
[3.変形例]
利用者の入力を音声により行うように本会話制御システム1を変形しても、本発明は成立する。この変形例の場合には、利用者端末装置10の入力部203を音声認識部とする。音声認識部は、音声信号に対応する文字列を特定しこれを入力文として出力する機能を有する構成要素である。
また、さらなる変形例としては、音声認識部を会話サーバ13或いは通信網14に接続されている別のサーバに設けて、利用者端末装置10から音声信号を通信網14を介して音声認識部に送信し、音声認識部が受信した音声信号に基づいて文字列を特定しこれを入力文として出力するようにしてもよい。
[3.本実施の形態の利点]
(1)本実施の形態によれば、出力される回答文は、従来のような1対1のパターンマッチングのようなものではなく、会話の文脈に応じた回答文を出力することができ、汎用性(どのような会話の流れにも対応可能である性質)を有している。
(2)さらには、本発明によれば、誘導会話や利用者からの入力が発生しない場合等における、利用者に対する入力の催促をも含んだ反応を演出することを可能とする。
なお、同等の会話処理を、パターンマッチングを用いて行う場合に比べて、本発明によれば、サーバのデータ量を遙かに軽減できる。
【図面の簡単な説明】
【0202】
【図1】会話制御システムの構成例を示すブロック図
【図2】利用者端末装置の構成例を示す機能ブロック図
【図3】会話制御部の構成例を示す機能ブロック図
【図4】会話データベースにおける回答文と動作制御情報とを示す図
【図5】利用者端末装置の出力部に表示される画面例を示す図
【図6】会話サーバの構成例を示す機能ブロック図
【図7】会話サーバの部分拡大ブロック図
【図8】文字列とこの文字列から抽出される形態素との関係を示す図
【図9】「発話文のタイプ」と、その発話文のタイプを表す二文字のアルファベット、及びその発話文のタイプに該当する発話文の例を示す図
【図10】文のタイプとそのタイプを判定するための辞書の関係を示す図
【図11】会話データベースが記憶するデータのデータ構成の一例を示す概念図
【図12】ある話題特定情報と他の話題特定情報との関連付けを示す図
【図13】話題タイトル(「第二形態素情報」ともいう)のデータ構成例を示す図
【図14】回答文のデータ構成例を説明するための図
【図15】ある話題特定情報に対応付けされた話題タイトル,回答文、次プラン指定情報の具体例を示す図
【図16】プラン空間を説明するための概念図
【図17】プランの例を示す図
【図18】別のアクション列の例を示す図
【図19】プラン会話処理の具体例を示す図
【図20】サーバ側会話制御部のメイン処理の一例を示すフローチャート
【図21】プラン会話制御処理の一例を示すフローチャート
【図22】図21に続く、プラン会話制御処理の一例を示すフローチャート
【図23】基本制御状態を示す図
【図24】談話空間会話制御処理の一例を示すフローチャート
【図25】CA会話処理部の構成例を示す機能ブロック図
【図26】CA会話処理の一例を示すフローチャート
【図27】プラン会話処理の具体例を示す図
【図28】プラン会話処理の、別の具体例を示す図
【図29】第3の形態にかかる会話サーバでのプラン会話処理の具体例を示す図
【図30】第3の形態にかかる会話サーバでの基本制御状態を示す図
【図31】第3の形態にかかる会話サーバでのプラン会話制御処理の一例を示すフローチャート
【図32】第3の形態にかかる会話サーバでの、図31に続く、プラン会話制御処理の一例を示すフローチャート
【図33】会話制御システムの動作例を示すシーケンス図
【符号の説明】
【0203】
1 会話制御システム
10 利用者端末装置
13 会話サーバ
206 会話制御部
301 入力受付部
302 回答制御部
【特許請求の範囲】
【請求項1】
入力文に対する回答文を決定する第1の決定手段と、
前記決定された回答文に応じた動作を指示する情報である動作指示情報を決定する第2の決定手段と、
前記決定された回答文を出力するとともに前記決定された前記動作指示情報に応じた動作を実行する制御手段と
を有することを特徴とする会話制御システム。
【請求項2】
前記回答文は利用者を誘導するための一連の発話文であることを特徴とする請求項1に記載の会話制御システム。
【請求項3】
前記制御手段は、利用者からの入力がない場合、前記動作制御情報に基づいて前記第1の決定手段に回答文を要求するメッセージを送信し、このメッセージに応じて前記サーバから送信される、利用者に入力を催促する回答文を出力することを特徴とする請求項1又は2に記載の会話制御システム。
【請求項4】
前記第1の決定手段は、利用者の入力の内容にかかわらず、予め定めた回答文を予め定めた順番で出力させることを特徴とする請求項1又は2に記載の会話制御システム。
【請求項5】
利用者の入力文をサーバに送信する受付手段と、
前記サーバから送信される、入力文に対する回答文及び動作制御情報を受信し、受信した回答文を利用者のために出力するとともに、受信した動作制御情報に対応する動作を実行する制御手段と
を有することを特徴とする端末装置。
【請求項6】
前記制御手段は、予め定めた条件が満たされた場合、回答文に対応する動作とは別の特別の動作を決定することを特徴とする、請求項5に記載の端末装置。
【請求項7】
前記動作制御情報は、前記サーバに回答文を要求するメッセージの送信であることを特徴とする、請求項5に記載の端末装置。
【請求項1】
入力文に対する回答文を決定する第1の決定手段と、
前記決定された回答文に応じた動作を指示する情報である動作指示情報を決定する第2の決定手段と、
前記決定された回答文を出力するとともに前記決定された前記動作指示情報に応じた動作を実行する制御手段と
を有することを特徴とする会話制御システム。
【請求項2】
前記回答文は利用者を誘導するための一連の発話文であることを特徴とする請求項1に記載の会話制御システム。
【請求項3】
前記制御手段は、利用者からの入力がない場合、前記動作制御情報に基づいて前記第1の決定手段に回答文を要求するメッセージを送信し、このメッセージに応じて前記サーバから送信される、利用者に入力を催促する回答文を出力することを特徴とする請求項1又は2に記載の会話制御システム。
【請求項4】
前記第1の決定手段は、利用者の入力の内容にかかわらず、予め定めた回答文を予め定めた順番で出力させることを特徴とする請求項1又は2に記載の会話制御システム。
【請求項5】
利用者の入力文をサーバに送信する受付手段と、
前記サーバから送信される、入力文に対する回答文及び動作制御情報を受信し、受信した回答文を利用者のために出力するとともに、受信した動作制御情報に対応する動作を実行する制御手段と
を有することを特徴とする端末装置。
【請求項6】
前記制御手段は、予め定めた条件が満たされた場合、回答文に対応する動作とは別の特別の動作を決定することを特徴とする、請求項5に記載の端末装置。
【請求項7】
前記動作制御情報は、前記サーバに回答文を要求するメッセージの送信であることを特徴とする、請求項5に記載の端末装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【公開番号】特開2010−15266(P2010−15266A)
【公開日】平成22年1月21日(2010.1.21)
【国際特許分類】
【出願番号】特願2008−172751(P2008−172751)
【出願日】平成20年7月1日(2008.7.1)
【出願人】(598098526)株式会社ユニバーサルエンターテインメント (7,628)
【Fターム(参考)】
【公開日】平成22年1月21日(2010.1.21)
【国際特許分類】
【出願日】平成20年7月1日(2008.7.1)
【出願人】(598098526)株式会社ユニバーサルエンターテインメント (7,628)
【Fターム(参考)】
[ Back to top ]