JP3898640B2 - 対話方法、対話装置およびプログラム - Google Patents
対話方法、対話装置およびプログラム Download PDFInfo
- Publication number
- JP3898640B2 JP3898640B2 JP2002382382A JP2002382382A JP3898640B2 JP 3898640 B2 JP3898640 B2 JP 3898640B2 JP 2002382382 A JP2002382382 A JP 2002382382A JP 2002382382 A JP2002382382 A JP 2002382382A JP 3898640 B2 JP3898640 B2 JP 3898640B2
- Authority
- JP
- Japan
- Prior art keywords
- information
- task
- dialogue
- stack
- storage means
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明は、所定の目的を達成するために、ユーザと自然言語で対話する対話方法、それを用いた対話装置、およびプログラムに関する。
【0002】
【従来の技術】
近年、音声や自然言語入力による文章入力を受理するインターフェースに関する研究が盛んである。また、そのようなインターフェースを用いるエキスパートシステムなどが多数開発され、音声やテキストなどによる入力を受理する装置が一般向けにも利用可能となっている。特に音声による入力はユーザにとって利用しやすいものと位置付けられ、音声認識技術を利用し音声入力を受理するシステムが開発されている。
【0003】
音声による自然言語入力の場合、ユーザはシステムに入力する全ての条件を一度に発話することは少なく、ユーザとシステムとの音声によるやりとりが必要となる。例えばユーザの入力に不備がある場合には、その足りない条件を問い合わせ、それに対するユーザの回答を統合するなどの処理が必要となる。この統合処理のためには今現在行われている対話内容をシステムが把握することが不可欠である。
【0004】
従来の対話管理技術として、話題をスタック構造で管理し、スタックの操作はユーザの入力が「入力が現在の話題を進める」、「現在の話題の中断」などの話題推移を求めているという判定結果に基づき行う、というものがある(例えば、非特許文献1参照)。
【0005】
この手法では、話題推移の発生の可能性をデータベース検索結果の候補の多さに基づいた対話状況に応じて分類しており、その対話状況では発生し得ない話題推移を求めた場合は話題の中断であると判定している。話題の中断の発話入力がなされたと判断された時には、その時の話題にマークをつけ、スタックに新たな話題をプッシュすることでその話題を割り込ませる。割り込んだ話題が終了した時には、マークをつけた話題にまで戻ることで元の対話に戻ることが可能である。
【0006】
しかし従来方式では話題の中断であると判定された時にあらかじめ復帰先の話題にマークを付与し、割り込んだ話題が終了した時にマーク箇所に復帰するために、割り込んだ話題が元々の話題に寄与する場合の対話制御が困難であるという問題点があった。
【0007】
例えば、カーナビゲーションシステムでのシステム(S)とユーザ(U)との次のような対話を例にあげる。
【0008】
S(1):「目的地を決定します。場所を指定してください」
U(1):「目的地の住所は、神奈川県」
S(2):「市区町村名をどうぞ」
U(2):「やっぱり登録名称で」
S(3):「登録名称をどうぞ」
U(3):「山下公園」
ここで従来方式では、ユーザの2番目の発言U(2)をきっかけに、「住所決定対話」にマークをつけ、「登録名称で検索対話」をプッシュすることになる。このため、ユーザの3番目の発言U(3)で登録名称で検索対話が完了すると、マークをつけた住所決定対話に復帰するため、応答は次のようになる。
【0009】
S(4):「山下公園はこちらです(地図表示を伴う)。市区町村名をどうぞ」
このように、ユーザは目的地として山下公園を選択していたという対話意図のずれが発生する。このため満足な対話が進められず、ユーザに対して多大な負担を与えることになる。
【0010】
また、従来は、自然言語解釈の曖昧性については考慮されていなかった。特に音声入力を伴う場合、音声認識結果には認識の曖昧性から、複数の認識候補が出現するのが現状である。このような音声認識の曖昧性に鑑み、その時の対話状況を加味して、複数の候補から対話に用いる認識結果を選択する必要がある。この対策が十分でなければ誤認識に基づき対話を進めてしまうため、満足な対話ができずユーザに多大な負担を与えることになる。
【0011】
【非特許文献1】
情報処理学会論文誌 vol29、No.9、「自然言語インタフェースシステムにおける意図の把握と話題の管理」
【0012】
【発明が解決しようとする課題】
このように従来は、所定の目的を達成するために、予め定められた複数の話題に従って対話を行う場合、現在の話題を中断して、新たな話題に移る場合には、中断した元の話題を復帰先として予め定めた後に、新たな話題へ移行し、再び復帰先として予め定められた話題に戻っていたため、新たな話題で対話した結果、目的が達成したとしても、また同じ目的のために別の話題で対話しなければならないという不都合が生じていた。
【0013】
すなわち、従来は、所定の目的を達成するための予め定められた複数の話題(課題)に従って対話を行う場合、ある話題を中断して新たな話題に移行したときには、その新たな話題が終了したときの次の話題を、新たな話題で対話した結果に応じて、柔軟に決定することができないという問題点があった。
【0014】
また、従来は、音声認識の結果を、その時の対話状況に関わりなく採用していたため、満足な対話ができずユーザに多大な負担を与えるという問題点があった。
【0015】
そこで、本発明は、上記問題点に鑑み、所定の目的を達成するための予め定められた複数の話題(課題)に従って対話を行う場合、ある話題(課題)を中断して新たな話題(課題)に移行したときには、その新たな話題(課題)で対話した結果に応じて、次の話題(課題)を柔軟に決定することができる対話方法および装置を提供することを目的とする。
【0016】
また、音声認識の結果得られる複数の候補の中から、その時の対話状況に応じて最適な候補を選択することにより、高精度の音声対話が行える対話方法および装置を提供することを目的とする。
【0017】
【課題を解決するための手段】
(1)本発明は、所定の目的を達成するための複数の課題を解決すべくユーザとの対話を行うものであって、前記複数の課題のうち、ユーザとの対話目的に選択した未解決課題を選択順に記憶手段に記憶し、前記記憶手段に最後に記憶された未解決課題を対話目的に使用して、第1の情報を得、前記第1の情報により前記記憶手段に記憶された第1の未解決課題を解決して、第2の情報を得、解決された前記第1の未解決課題を前記記憶手段から削除し、前記記憶手段に記憶された、前記第2の情報に関連する第2の未解決課題を前記第2のステップで次の前記対話目的に使用するために、前記第2の未解決課題の後に対話目的に選択した未解決課題を前記記憶手段から削除することにより、ある課題を中断して新たな課題に移行したときには、その新たな課題で対話した結果に応じて(解決された課題のタスク出力情報に関連する課題を次の対話目的とすることにより)、次の課題を柔軟に決定することができる。
【0018】
(2)前記第2の情報に関連する第2の未解決課題は、前記第2の情報が、前記第2の未解決課題が解決されたと判断するための条件を少なくとも1つ満足する。
【0019】
(3)前記第2の情報に関連する前記第2の未解決課題が前記記憶手段に記憶されていないとき、前記記憶手段に記憶された未解決課題のうち、前記第1の未解決課題が対話目的に選択される直前に対話目的に選択された未解決課題を、次の前記対話目的に使用する。
【0020】
(4)前記記憶手段は、ユーザとの対話目的に選択した未解決課題を選択順に記憶するスタックである。
【0021】
(5)前記記憶手段に、前記第1の情報により解決される前記第1の未解決課題が記憶されていないとき、前記第1の情報に関連する第3の未解決課題を次の前記対話目的に使用するために、前記第3の未解決課題の後に対話目的に選択した未解決課題を前記記憶手段から削除し、前記記憶手段に、前記第1の情報に関連する第3の未解決課題が記憶されていないとき、前記複数の課題のうちの前記第1の情報に関連する新たな課題を前記未解決課題として、次の前記対話目的に使用するために前記記憶手段に記憶する。
【0022】
(6)ユーザの入力から推定される前記第1の情報の候補が複数与えられた場合に、当該複数の候補のうち、前記記憶手段に記憶された未解決課題のうちの前記対話目的に使用した使用順が後にある未解決課題に関連する候補を優先して、前記第1の情報として選択する。
【0023】
【発明の実施の形態】
以下、本発明の実施形態について図面を参照して説明する。
【0024】
(第1の実施形態)
本発明は、話題(対話目的)の変更であると判定した場合にもあらかじめ復帰先の話題を決定することなく話題の中断処理を行い、話題が元々の話題に寄与するような場合においても適切に元の話題に復帰することができ、ユーザの入力時の対話状況を加味した候補選択を実行する機能を持つ対話システムを提供するものであり、以下、図面を参照して本発明の詳細につき説明する。
【0025】
図1は、本発明の実施形態に係る対話装置を含む対話システムの概略構成図で、例えば、カーナビゲーションシステムなどに用いられる対話システムの構成例を示したものである。図1に示すように、対話システムは、自然言語解釈装置1と対話装置100と、応答出力装置2とから構成されている。
【0026】
対話装置100は、候補選択部101、対話スタック操作部102、対話情報記憶部103、プラン記憶部104から構成されている。
【0027】
自然言語解釈装置1は、例えば、ユーザからの自然言語による入力を解析し、解析結果を対話装置100へ出力する。自然言語解釈装置1への入力は、テキスト、音声などの形式を問わず、その解釈方法はその種類に応じた既存の方法が使用できる。解析に曖昧性が発声した場合は、その候補と尤もらしさを組にして出力する。ここでは、ユーザの音声入力(発言)を音声認識する場合について説明する。音声認識により、通常、複数の認識候補が得られるが、ここでは、各認識候補と、その尤もらしさとして入力音声との類似度を対にして対話装置100へ出力するものとする。
【0028】
対話装置100は、所定の目的を達成するための予め定められた複数の話題に従ってユーザと対話を行うものである。例えば、ここでは、上記所定の目的として、カーナビゲーションシステムでの「目的地設定」である場合を例にとり説明する。すなわち、対話装置100は、目的地設定のために、図2に示すような、複数の話題からなる上記目的を達成するためのプランをプラン記憶部104に記憶する。
【0029】
各話題は、上記目的を達成するために解決すべき課題に対応する。各課題には、当該課題を解決するための条件(当該課題が解決されたと判断するために満足すべき条件)と、当該条件を満たすための動作と、全ての条件を満たしたときの動作(全条件達成時動作)と、課題を解決したときにタスク出力情報として出力される出力内容とが予め定められている。すなわち、各課題には、当該課題を解決するための少なくとも1つの条件と、各条件を満たすための動作と、全条件達成時動作と、課題を解決したときの出力内容を含むタスクが対応付けられている。ここでは、各課題に対応するタスクに含まれる条件と、動作と、全条件達成時動作と、課題を解決したときの出力内容とを記述したものをタスク情報と呼ぶ。
【0030】
「目的地設定」のための主な課題は、タスク情報T1に記述されている。
【0031】
タスク情報T1で表されている課題は、対話目的としての「目的地設定」である(「名称」フィールドに記述されている)。この課題を解決するための条件として、「目的地承認済みの場所」を得ることが必要であり(「条件」フィールドに記述されている)、そのための動作として、タスク情報T2に記述された処理動作を行い(タスク情報T2に記述された課題を解決し)、その後に、タスク情報T3の処理動作に遷移し、当該タスク情報T3に記述された処理動作を行う(タスク情報T3に記述された課題を解決する)。その結果、上記条件を満たしたときには、「全条件達成時動作」フィールドに記述されている動作(ここでは、「指定された場所までのルートを計算する」)を行い、その結果をタスク出力情報として出力するようになっている。
【0032】
なお、以下の説明において、タスク情報の記述に基づく処理動作を単にタスクと呼ぶ。例えば、タスク情報T2の記述に基づく処理動作をタスクT2と呼ぶ。
【0033】
タスク情報T4は、「場所検索」を課題とする処理動作で、この課題を解決するために、まず、「検索方法指定」を解決すべき課題とするタスク情報T5を呼び出し、当該タスク情報T5に記述されている処理動作を行うようになっている。
【0034】
タスク情報T5に記述された処理動作は、「住所と登録名称のどちらで検索しますか?」という発話を行い(「動作」フィールドに記述されている)、それに応じてユーザから入力される発言内容からユーザにより指定された検索方法を取得し(「条件」フィールドに記述されている)、「全条件達成時動作」フィールドに記述されているように、この指定された検索方法に対応する検索を行うタスク情報を呼び出す(タスクをロードする)。ここでは、住所で検索する方法が指定されたときには、タスク情報T6が読み出され、登録名称で検索する方法が指定されたときには、タスク情報T7が読み出される。
【0035】
タスク情報T6に記述された処理動作は、「住所で場所検索」を課題とするもので、3つの条件のそれぞれに対応する「動作」フィールドに記述されているように、ユーザに住所を入力してもらうための発話を行い、その結果、住所が得られると(「条件」フィールドに記述されている)、「全条件達成時動作」フィールドに記述されているように、「指定された住所に対応する場所を検索」を行い、検索結果をタスク出力情報として出力する。
【0036】
タスク情報T7に記述された処理動作は、「登録名称で場所検索」を課題とするもので、「動作」フィールドに記述されているように、ユーザに登録名称を入力してもらうための発話を行い、その結果、登録名称が得られると(「条件」フィールドに記述されている)、「全条件達成時動作」フィールドに記述されているように、「指定された登録名称に対応する場所を検索」を行い、検索結果をタスク出力情報として出力する。
【0037】
タスクT6あるいはタスクT7により、タスク出力情報として検索結果が通知されると、タスク情報T4の「条件」フィールドに記述された条件「検索済みの場所」が満たされることになる。タスク情報T4には、「全条件達成時動作」は記述されていないので、この場合、タスクT4を呼び出した(ロードした)タスクT2に戻る。タスクT4からは、タスクT6あるいはタスクT7から出力された「検索済みの場所」がタスク出力情報「検索結果の場所」として出力されるので、これがタスクT2への通知される情報となる。
【0038】
タスクT2では、当該入力情報により、「条件」フィールドに記述された「場所を取得」という条件が満たされたので、「全条件達成時動作」フィールドに記述された動作、すなわち、タスクT3へ遷移するとともに、「検索結果の場所」を出力し、これがタスクT3への入力情報となる。
【0039】
タスクT3では、当該入力情報としての「検索結果の場所」に対し、ユーザから承認をもらうことを課題としているので、そのための動作を行い、承認が得られたら、当該場所に承認済みフラグを与え、目的地として承認済みの場所をタスク出力情報として出力する。
【0040】
以上の処理動作により、承認済みの場所が得られたので(タスク情報T1の「条件」フィールドの条件を満たすので)、タスク情報T1の「全条件達成時動作」フィールドに記述されているように、目的として指定された場所までのルートを計算し、その結果をタスク出力情報として出力する。
【0041】
このように、1つのタスクが他のタスクを階層的に(入れ子状に)包含している場合(タスクT1とT2、タスクT2とT4、タスクT4とタスクT5等の関係に対応)に、他のタスクを読み出すときには、当該他のタスクをロードすると呼ぶ。また、1つのタスクに複数のタスクが並列的に含まれている場合(例えば、タスクT1内のタスクT2とタスクT3の関係)、タスクT2終了後タスクT3へ移行することを遷移と呼ぶ。
【0042】
ここで、各タスク情報の記述において、「出力」フィールドには、全条件が達成したときの出力内容が記述される。この出力内容がタスク出力情報に対応する。
【0043】
また、「条件」フィールドには、タスクの課題を解決するための条件(あるいは、課題が解決されたと判断するために満足すべき条件)を記述され、各「条件」フィールドに対応する「動作」フィールドには、当該条件を満たすための必要な処理動作(手順)が記述されている。ある条件を達成してから次のタスクへと進行することを記述する場合には、タスク情報T1のように「動作」フィールド内部に入れ子状に別のタスクを格納させる。
【0044】
対話装置100の候補選択部101は、自然言語解釈装置1から出力された、複数の認識候補の中から、対話情報記憶部103に記憶されている対話情報に基づく現在の対話状況あるいは過去の対話状況から最適のものを選択し、それを入力情報として、対話スタック操作部102へ出力する。
【0045】
対話情報記憶部103は、候補選択部101から入力する入力情報に応じて、現在までの対話状況を管理するための対話情報を記憶する。ここでは、対話状況を管理するために、ユーザとの対話目的として過去に用いた未解決の課題および現在の(未解決の)課題のそれぞれに対応する対話情報を対話情報記憶部103に記憶する。
【0046】
各対話情報には、対話目的として過去あるいは現在用いている課題(タスク情報)と、当該タスク情報中の条件のうちの、注目している条件(注目条件)と、意図情報を含む。
【0047】
対話情報記憶部103は、対話情報をLIFO(Last In First Out)方式で記憶するスタックである。
【0048】
対話スタック操作部102は、対話目的として用いた課題の順に、当該課題に対応する対話情報を対話情報記憶部103(スタック)に記憶する(プッシュ)。このスタックに記憶された対話情報のうち最後に記憶された対話情報(すなわち、スタックトップに記憶されている対話情報)に対応する課題が現在の対話目的となり、当該対話目的としての課題が解決されれば、当該スタックから当該対話情報が取り出される(ポップ)。
【0049】
対話スタック操作部102は、スタック操作(プッシュ、ポップ)することで、対話情報を管理する。すなわち、ある時点における対話状況は、その時のスタックの先頭アドレスで示された対話情報(スタックトップ)に記述されている。
【0050】
例えば、図1に示した対話システムを起動させて、ユーザが、「目的地を設定する」という発言を行ったとする。このとき、自然言語解釈装置1で解釈した結果、「目的地設定」が対話装置100の候補選択部101により選択され、対話スタック操作部102に入力情報として入力したとする。この入力情報に対応する(関連する)課題は、タスクT1であるので(タスク情報の課題(名称)が「目的地設定」であるので)、対話スタック操作部102では、当該課題(タスクT1)を入力情報「目的地設定」に対応付けた対話情報E1(図6参照)を生成し、スタックにプッシュする(書き込む)。そして、このタスクT1を実行するわけであるが、この場合、当該タスクT1の課題を解決するための条件「目的地承認済みの場所」がまだ得られていないので、この条件を満足すべく、当該条件を満たすための動作、すなわち、タスク情報T2をロードし、このタスクT2の課題を解決するための条件「場所を取得」を、当該対話情報の注目条件として設定する。このときの対話情報を図7に示す。
【0051】
なお、タスクT2はタスクT1からロードされる、すなわち、タスクT2はタスクT1に(入れ子状に)包含される関係にあるため、図7に示すように、この関係を表すため、タスクT2の名称「目的地場所設定」と条件「場所を取得」は、タスクT1の名称、条件にハイフン「−」で接続して表している。
【0052】
このようにある課題(課題x)を解決するためのある条件を満たすために、他の課題(課題y)を解決する必要がある場合、課題yは課題xに包含される関係にあるといえるが、この場合、課題yを解決するための条件も課題xを解決するための条件ともいえる。
【0053】
課題xと課題yのように包含関係にある場合、課題yに対応する対話情報は、課題xに対応する対話情報の名称や条件にハイフンで接続して記述され、課題xに対応する対話情報に包含されることもある。
【0054】
さて、スタックが図7に示した状態のときには、タスク情報T2に記述されている条件を満たすための動作が実行されるわけであるが、この場合、タスクT4がロードされる。タスクT4がロードされると、当該タスクT4の名称「場所検索」を意図情報とし、これとタスクT4とを対応付けて新たな対話情報E2を生成し、スタックにプッシュする(図8参照)。
【0055】
対話情報の意図情報とは、当該対話情報に対応する課題を対話目的としているときに、主に、ユーザと対話により得られた、ユーザの意図を表した情報を意味する。なお、この実施形態では、後述するように、タスク出力情報もユーザの意図と同様に扱い、対話情報に意図情報として対応付ける。
【0056】
対話がプランどおりに(例えば、中断されることなく)進行すると、上記のように、対話情報がスタックにプッシュダウンされ、各対話情報に対応するタスクの処理動作が終了する(当該タスクの課題が解決する)とスタックトップの対話情報から順にポップされ(取出し)、全ての対話情報がなくなった時点が、対話の目的が達成されたことになる。
【0057】
本実施形態にかかる対話装置では、ユーザの発話内容を表した発言情報やタスク出力情報のうちのいずれか一方である入力情報が入力されると、当該入力情報と、スタック中の全ての対話情報とを照合し、当該入力情報に関連する課題、すなわち、現在および過去の対話情報の中に、当該入力情報で少なくとも1つの条件が満足するような課題に対応する対話情報、当該入力情報と同じ種類の情報が意図情報として記録されている対話情報があるかを探索し、そのよう対話情報がある場合には、当該対話情報をスタックトップとして、当該対話情報に対応する課題を対話目的とする。
【0058】
対話目的としての課題の全ての条件を満足したときには、当該課題に対応する対話情報をスタックから削除するとともに、当該課題のタスクから出力される情報(「出力」フィールドに記述されている出力内容)と、スタック中の全ての対話情報とを照合し、過去の対話情報の中に、当該タスクの出力内容で少なくとも1つの条件が満足するような課題に対応する対話情報、当該出力内容と同じ種類の情報が意図情報として記録されている対話情報があるかを探索する。そのよう対話情報がある場合には、当該対話情報をスタックトップとなるようにスタック操作が行われる。なお、この新たにスタックトップとなった対話情報に対応する課題が、当該出力内容により全ての条件を満足し、解決されているときには当該対話情報もスタックから取り出される。
【0059】
対話目的とは、スタックトップにある対話情報に対応する課題であるが、より具体的には、当該対話情報の注目条件として設定されている、当該課題を解決するために満たすべき条件(そのような条件が複数あるときはそのうちの1つ)である。
【0060】
対話スタック操作部102は、スタック操作として、プッシュ/ポップの他に、ロード、遷移、クリア、達成条件選択、を実行する。
【0061】
ロードは、新たなタスクを呼び出す際に使用される手続き(操作)であり、当該新たなタスクに対応する対話情報をスタックにプッシュする。ある課題(課題x)を解決するためのある条件を満たすために、他の課題(課題y)を解決する必要がある場合、課題yのタスクを呼び出すときの操作である。
【0062】
遷移も新たなタスクを呼び出す際の手続きであるが、課題を順序だてて解決する場合に、ある課題xが解決したとき別の課題yへ移行する場合に、当該課題yを呼び出す手続きである。
【0063】
クリアは、ある課題xを対話目的とするために、当該課題xに対応する対話情報がスタックに格納された後に格納された対話情報をスタックから取出し、当該課題xに対応する対話情報をスタックトップとする手続きである。
【0064】
達成条件選択は、スタックトップの対話情報に対応する課題の注目条件が満たされたときなどに、注目条件を当該課題を解決するための他の条件を選択する手続きである。選択された条件に対応するタスク情報中の「動作」フィールドに、他の課題(タスク)が入れ子になっている場合は、そのタスクに対して再帰的に達成条件選択を進め、その経路を全て対話情報中の「注目条件」フィールドに書き込む。
【0065】
タスクT5のように、ある条件を満たすための動作として、「住所と登録名称のどちらで検索しますか?」という発話を対話システムが行う場合には、この発話内容を表した応答情報が応答出力装置2へ出力される。
【0066】
応答出力装置2は、対話スタック操作部102から出力された応答情報を、所定の形式で、例えば音声、テキスト等でユーザに出力する。なお、応答出力装置2の詳細は、本発明の要旨ではないので説明は省略するが、本実施形態では、説明の簡単のため、タスク情報中の動作として記述されている発話内容をそのまま音声あるいはテキストで出力するものとする。なお、これ以外にも意図情報からテンプレートを使用して文章を出力するなど既存のものを使用することができる。
【0067】
次に、図3〜図5に示すフローチャートを参照して、図1の対話システムの対話スタック操作部102の処理動作について説明する。
【0068】
図3は、対話スタック操作部102の処理動作全体を説明するためのフローチャートであり、この処理動作は、候補選択部101から対話スタック操作部102へユーザの発言から得られた情報(以下、発言情報)が入力したとき(ステップS0)に呼び出される。図4、図5は、図3のステップS2における通知先探索処理動作を説明するためのフローチャートであり、図3のステップS0で入力した上記発言情報や、スタックに対話情報として記憶されている課題が解決したときに、当該課題のタスクから出力される情報(タスク出力情報)の通知先としてのタスクをスタック中の対話情報を基に探索する処理動作を示している。ここで、通知先としてのタスクとは、スタック中に対話情報として格納されている課題のうちの1つであって、例えば、上記発言情報やタスク出力情報が、当該課題が解決されたと判断するための1つまたは複数の条件のうちの少なくとも1つを満足する課題に対応するタスク、あるいは、当該課題を解決するための他のタスクである。
【0069】
まず、図3を参照して、対話スタック操作部102の処理動作について説明する。
【0070】
ここでは、入力した発言情報やタスクから出力されたタスク出力情報を一時的に格納するバッファとしてバッファBF1と、当該バッファBF1に現在格納されているものが、候補選択部101から入力した発言情報であるとき「1」がセットされる新規フラグを使用する。
【0071】
ます、ステップS0で発言情報が入力すると、当該発言情報はバッファBF1に格納され、新規フラグに「1」がセットされる(ステップS1)。次に、ステップS2へ進み、バッファBF1に格納されている情報の通知先としてのタスクをスタック中の対話情報を基に探索する。その詳細は、後述する。
【0072】
ステップS2で通知先としてのタスクが探索されたときには、ステップS4へ進み、通知先としてのタスクが存在しないときには、ステップS13へ進む(ステップS3)。
【0073】
ステップS4では、通知先としてのタスクに対応する対話情報がスタックトップとするようにクリア操作を実行すると共に、当該対話情報の「意図情報」フィールドに、バッファBF1に格納されている発言情報を通知する。この場合の「通知」とはタスク内の同じ条件に対応する情報を上書きし、異なる条件に対する情報は追加する動作のことを云う。
【0074】
そして、当該対話情報の「意図情報」フィールドに現在記録されている情報、すなわち、意図情報が、当該対話情報に対応する課題を解決するための全ての条件を満たしているか否かをチェックする(ステップS5)。意図情報が、課題を解決するための全ての条件を満たしているときには、ステップS6へ進み、意図情報が、1つでも満たしていない条件があるときは、ステップS9へ進む。
【0075】
ステップS6では、スタックトップの対話情報に対応するタスク(全ての条件が達成し解決された課題に対応するタスク)の「全条件達成時動作」フィールドに指定されている手続きを実行し、その結果として、当該タスクの「出力」フィールドの記述に従ってタスク出力情報をバッファBF1に格納する(ステップS7a)。バッファBF1には、現在、タスク出力情報が格納されているので、ステップS7では、新規フラグをクリアし、「0」とする(ステップS7b)。
【0076】
更に、当該タスクの課題は達成されたので(当該課題を解決するための対話を続ける必要が無いので)スタックから、当該対話情報を削除する。この時、当該対話情報が他の対話情報に包含されていないものであれば、当該対話情報(これをスタック要素とも呼ぶ)はスタックからポップされる。
【0077】
次に、ステップS8へ進み、ステップS6での全条件達成時動作の実行中に他のタスクのロード、遷移を行っているか否かを確認する。全条件達成時動作として、他のタスクのロード、遷移動作を行っている(タスク情報にて他のタスクをロード、遷移が指定されている)場合には、ロードあるいは遷移したタスクに対応する対話情報がスタックトップに格納されている。そこで、この対話情報に対応するタスクを通知先とすべく、ステップS4へ戻る。一方、全条件達成時動作として、他のタスクのロードや遷移動作を行っていなければ、ステップS2へ戻り、バッファBF1に格納されているタスク出力情報の通知先としてのタスクを探索する。
【0078】
ステップS9では、スタックトップに対して達成条件選択操作を実行する。すなわち、スタックトップの対話情報に対応する課題を解決するための他の条件を選択して、それを注目条件として「注目条件」フィールドに書き込む。そして、ステップS10へ進み、現在の注目条件を満たすような情報を得るための動作を実行する。この動作において、他のタスクをロードする場合には(ステップS11)、ロードあるいは遷移したタスクに対応する対話情報がスタックトップに格納されている。そこで、当該タスクの名称をバッファBF1に格納し(ステップS12a)、その通知先のタスクを、当該対話情報に対応するタスクを通知先とすべく、新規フラグを「0」にした後(ステップS12b)、ステップS4へ戻る。
【0079】
注目条件に対応する動作の実行に際し、タスク情報に他のタスクのロード、遷移が指定されていないときには(ステップS11)、ここで処理が終了する。
【0080】
ステップS3において、バッファBF1に格納された発言情報あるいはタスク出力情報の通知先としてのタスクが現在までのスタックに格納されている対話情報からは求めることができなかったときには、ステップS13へ進む。
【0081】
ステップS13において、新規フラグが「1」であるときは、現在バッファBF1に格納されているものは、ユーザからの発言内容から得られた発言情報であるので、ステップS14へ進み、当該発言情報に対応する新たなタスクを求めて(例えば、当該発言情報に一致する名称のタスクをロードして)、当該新たなタスクに対応する対話情報をスタックに格納する。一方、ステップS13において、新規フラグが「0」のときは、現在バッファBF1に格納されているものは、タスク出力情報であり、このタスク出力情報により解決される課題や、解決されたと判断するための複数の条件のうちの少なくとも1つでも満足させるような課題がスタックには存在しないので、ここで処理を終了する。
【0082】
なお、このとき、スタック中に対話情報が残っている場合には、残っている対話情報を解決すべくスタックトップにある対話情報の注目条件に対応する動作を再度実行してもよい。
【0083】
次に、図4〜図5を参照して、図3のステップS2における通知先探索処理動作を説明する。
【0084】
ここでは、現在の探索対象となるスタック中の対話情報を格納するためにバッファBF2を用い、このバッファBF2に格納されている対話情報を「対象スタック」と呼ぶ。また、現在の探索対象となるタスク情報を格納するために、バッファBF3を用い、このバッファBF3に格納されているタスク情報(タスク)を「対象タスク」と呼ぶ。いずれも初期段階では空(NULL)である(ステップS100)。
【0085】
通知先探索処理が起動されると(バッファBF1に格納された発言情報あるいはタスク出力情報の通知先の探索が開始されると)、バッファBF1は、スタックトップの対話情報から順に(スタックの先頭から順に)下位に格納されている対話情報が1つづつ格納され(ステップS102)、スタック中の全ての対話情報についての探索が終了するまで、以下の通知先探索処理を繰り返すようになっている(ステップS101)。
【0086】
まず、ステップS103では、スタックトップの対話情報をバッファBF2に格納し、この「対象スタック」に設定された対話情報に対応するタスク情報がバッファBF3に格納される(「対象タスク」に設定する)。
【0087】
バッファBF1に格納された発言情報あるいはタスク出力情報を、この通知先探索処理では、入力情報と呼ぶ。
【0088】
まず、図5のステップS104へ進み、入力情報が「対象スタック」の注目条件を満たすかどうかチェックする。満たすときは、ステップS108へ進み、現在の「対象タスク」を通知先のタスクとして出力し、満たさないときは、ステップS105へ進む。
【0089】
ステップS105では、入力情報が「対象タスク」の全条件を満たすかどうかをチェックする。満たせば、ステップS108へ進み、現在の「対象タスク」を通知先のタスクとして出力し、満たさないときは、ステップS106へ進む。
【0090】
ステップS106では、入力情報が「対象スタック」の注目条件の動作の中に入れ子状に包含されているタスクの中で全条件を満たすものがあるかどうかを調べる。そのようなタスクがある場合にはステップS107へ進み当該タスクを「対象タスク」に設定し、そのようなタスクがない場合にはステップS109へ進む。
【0091】
ここで、ステップS104、ステップS106において、「対象スタック」の注目条件が入れ子のタスクの条件になっている場合は、「対象タスク」に定義されている条件を選択する。例えば、図7において注目条件が入れ子のタスクT2の「承認済みの場所−場所を取得」になっているが、「対象タスク」がT1であれば、「承認済みの場所」を注目条件として採用する。
【0092】
ステップS109では、入力情報と、「対象スタック」の「意図情報」フィールドに記述されている意図情報とを比較し、それらが同じ種類の情報であるかどうかチェックする。同じ種類の情報であるときは、ステップS108へ進み、現在の「対象タスク」を通知先のタスクとして出力し、異なるときには、ステップS110へ進む。
【0093】
ステップS110では、現在の「対象タスク」を入れ子状に包含するタスクがあるかどうかチェックする。「対象タスク」を包含するタスクがあるときは、ステップS111へ進み、当該タスクを「対象タスク」に設定し、ステップS104へ戻る。一方、「対象タスク」を包含するタスクがないときには、ステップS101へ戻り、スタック中の次の対話情報を対象スタックとして通知先探索処理を繰り返す。
【0094】
スタック中の全ての対話情報を基に、上記のような通知先を探索した結果、通知先としてのタスクが得られなかったときには(ステップS101)、ステップS112へ進み、「通知先なし」を出力する。
【0095】
通知先探索処理は、「ユーザが協調的であれば今現在の対話に関連する応答をする」ことを前提とし、現在の対話内容であるスタックトップから順に過去に遡って、入力情報を通知できるスタック、タスクを探索するものとなっている。
【0096】
続いて、候補選択部101の処理動作について説明する。候補選択部101も図4〜図5の通知先探索処理に基づき動作する。自然言語解釈装置1から入力された発言情報群の中から、よりスタックの上位に通知でき、同じスタック要素の場合は現在注目している対話により近いものに通知できる候補を優先するように尤度(スコア)を編集する。
【0097】
具体的にはスタックの上位(スタックの上位にある対話情報に対応するタスク)に通知するためには、図4のステップS101の通過回数を少なくする必要があり、現在注目している対話に近いものに通知するためには、図5のステップS104、ステップS105、ステップS106、ステップS109の通過回数を少なくするような候補を優先させる。
【0098】
例えばステップS101、ステップS104、ステップS105、ステップS106、ステップS109を通過するたびにその候補のスコアを下げるように動作させればよい。これによりその時点での対話に適する内容の発話を優先的に選択することができる。
【0099】
ここでカーナビゲーションシステムに適用された対話システムを例にとり、対話装置の処理動作をより具体的に説明する。
【0100】
カーナビゲーションシステムに入力されるユーザの意図は、例えば、目的地設定、場所検索、住所で場所検索、登録名称で場所検索の4種類であるとする。これらは、目的地を設定するための解決すべき複数の課題であるともいえる。各課題に対応するタスク情報を、図2に示した。
【0101】
初期状態のスタックは空であるものとする。ここでは簡単のために、対話装置100に入力するユーザの発言の認識結果として得られた情報には曖昧性がないものとし、自然言語解釈装置1による解釈結果が発言情報として直接対話スタック操作部102に通知されるものとする。候補選択部101の詳細動作については後述する。
【0102】
(1)第1の発言:「目的地を設定する」が自然言語解釈装置1に入力されたとする。
【0103】
自然言語解釈装置1の解釈結果は「目的地設定」であったとする。これが対話スタック操作部102に発言情報として通知されると、図3のフローチャートに従って、以下のように動作する。
【0104】
まず、バッファBF1には「目的地設定」が格納され、新規フラグが「1」に設定される(ステップS0、ステップS1)。ステップS2では通知先が探索されるが、スタックが空であるので通知先は無しと判定され(図4のステップS101、ステップS112)、しかも新規フラグが「1」であるため、ステップS14に進み、当該発言情報「目的地設定」に対応するタスク、すなわち、発言情報「目的地設定」を名称とするタスクT1をプラン記憶部104から選択し、ロードする。このとき、対話スタック操作部102は、当該タスクT1に対応する対話情報E1(図6参照)を生成し、スタックにプッシュする。
【0105】
タスクT1は、発言情報「目的地設定」を受けて呼び出されたので、現在のユーザの対話目的は「目的地設定」であり、これが意図情報として、図6に示すように対話情報E1に書き込まれる(ステップS4)。
【0106】
このときのスタックは図6に示したように、対話情報E1のみが格納されている状態である。
【0107】
タスクT1の条件は1つのみで、「承認済みの場所」であるが、まだ、図6のスタックの状態では、この条件を満たす情報は得られていない(ステップS5)。従って、注目条件として、「承認済みの場所」を選択する(ステップS9)。この条件「承認済みの場所」に対応する動作には、「目的地場所設定」というタスクT2が包含されている(入れ子になっている)ので、このタスクT2の条件、すなわち、「場所を取得」も選択する。その結果、対話情報E1は、図7に示すように、当該タスクの包含関係に対応して、名称が「目的地設定―目的地場所設定」、注目条件は「承認済みの場所―場所を取得」となる(ステップS9)。
【0108】
続いて、対話情報E1に設定された注目条件「場所を取得」に対応する動作を実行する(ステップS10)。この動作には、「場所検索」というタスクT4をロードするものであるので、この指定によりタスクT4をロードし(ステップS11)、このバッファBF1に(このタスクT4の呼び出しは、ユーザの発言によるのではなく、当該指定によるという意味で)、当該タスクT4の名称「場所検索」を格納し、新規フラグは「0」に設定する(ステップS12a、ステップS12b)。
【0109】
タスクT4がロードされて、スタックには、図8に示すように、タスクT4に対応する対話情報E2がプッシュされる(対話情報E2は、対話情報E1の上に積み上げられる)。タスクT4には、バッファBF1に格納された「場所検索」が通知されるので、対話情報E2の意図情報としては、「場所検索」が書き込まれる(ステップS4)。図8に示すように、現在、対話情報E2がスタックトップとなっており、このタスクT4に対応する課題が現在の対話目的である。
【0110】
タスクT4の条件は、1つのみで「検索済みの場所」であるが、まだ、図8のスタックの状態では、この条件を満たす情報は得られていない(ステップS5)。従って、注目条件として、「検索済みの場所」を選択する(ステップS9)。この条件「検索済みの場所」に対応する動作には、「検索方法指定」というタスクT5が包含されている(入れ子になっている)ので、このタスクT5の条件、すなわち、「検索方法を取得」も選択する。その結果、対話情報E2は、図9に示すように、当該タスクの包含関係に対応して、名称が「場所検索―検索方法指定」、注目条件は「検索済みの場所―検索方法を取得」となる(ステップS9)。
【0111】
続いて、対話情報E2に設定された注目条件「検索方法を取得」に対応する動作を実行する(ステップS10)。この動作はユーザに文を提示するものなので、その内容を表す応答情報を応答出力装置2に出力する。ここでとりあえず、図3に示した処理が終了する。このときのスタックの状態を図9に示す。
【0112】
応答出力装置2からは、上記動作により「住所と登録名称のどちらで検索しますか?」という応答文が出力される。その結果、ユーザからの発言があったときには(ユーザの発言内容から得られた発言情報が入力したときに)、再び、図3のステップS0から処理が開始される。
【0113】
(2)第2の発言:「住所で検索」が自然言語解釈装置1に入力されたとする。
【0114】
自然言語解釈装置1の解釈結果は「住所で場所検索」であったとする。これが対話スタック操作部102に通知されると、図3のフローチャートに従って、以下のように動作する。
【0115】
まず、バッファBF1には「住所で場所検索」が格納され、新規フラグが「1」に設定される(ステップS0、ステップS1)。ステップS2では通知先が探索される。ここでは、当該発言情報が、図9の対話情報E2の注目条件を満たしているので(図5のステップS104)、当該発言情報の通知先のタスクは、タスクT5となる。従って、図10に示すように、タスクT5に対応する対話情報E2の意図情報に、さらに「住所で場所検索」が追加される(ステップS4)。
【0116】
これにより、スタックトップの対話情報にE2に対応するタスクT5は、必要な条件を全て満たしたことになるので(ステップS5)、タスクT5に予め定められている全条件達成時動作を実行する(ステップS6)。なお、タスクT5の課題は達成されたので、当該入れ子のタスクT5に対応する対話情報は、スタックから削除する。例えば、この場合、対話情報E2の名称、注目条件から「検索方法の指定」、「検索方法を取得」をそれぞれ削除する。
【0117】
この全条件達成時動作には、対応する検索をロードするものであるから、この指定により、「住所で場所検索」というタスクT6をロードし(ステップS8)、このバッファBF1に、このタスクT6を呼び出す意図は、当該指定によるという意味で、当該タスクT6の名称「住所で場所検索」を格納し、新規フラグは「0」に設定する(ステップS7a、ステップS7b)。
【0118】
タスクT6がロードされて、スタックには、図11に示すように、タスクT6に対応する対話情報E3がプッシュされる(対話情報E3は、対話情報E2の上に積み上げられる)。タスクT6には、バッファBF1に格納された「住所で場所検索」が通知されるので、対話情報E3の意図情報としては、「住所で場所検索」が書き込まれる(ステップS4)。図11に示すように、現在、対話情報E3がスタックトップとなっており、このタスクT6に対応する課題が現在の対話目的である。
【0119】
以後前述同様にして処理が進められ、ステップS9では、注目条件として「都道府県名を取得」が選択されると、ステップS10では、当該注目条件に対応する動作として、「都道府県名をどうぞ」がユーザに提示される。この動作には他のタスクをロードする操作はないので、この時点で図3に示す処理は一時終了する。この時点におけるスタックの状態を図12に示す。
【0120】
(3)第3の発言:「神奈川県」が自然言語解釈装置1に入力されたとする。
【0121】
自然言語解釈装置1の解釈結果は、現在のスタックトップの対話情報の意図情報「住所で場所検索」を含めて、「住所で場所検索:神奈川県」であったとする。これが対話スタック操作部102に通知されると、図3のフローチャートに従って、以下のように動作する。
【0122】
まず、バッファBF1には、発言情報「住所で場所検索:神奈川県」が格納され、新規フラグが「1」に設定される(ステップS0、ステップS1)。ステップS2では通知先が探索される。ここでは、当該発言情報が、図12のスタックトップの対話情報E3の注目条件を満たしているので(図5のステップS104)、当該対話情報の通知先のタスクは、タスクT6となる。従って、タスクT6に対応する対話情報E3の意図情報に、「住所で場所検索:神奈川県」が書き込まれる(ステップS4)。タスクT6の課題を達成するための全ての条件はまだ満たされていないので(ステップS5)、残る条件の中から注目条件として「市区町村名を取得」が選択される(ステップS9)。当該注目条件に予め定められた動作を実行することにより、「市区町村名をどうぞ」と応答出力装置2から出力される。このときのスタックの状態を図13に示す。この動作には他のタスクをロードする操作はないので、この時点で図3に示す処理は一時終了する。
【0123】
(4)第4の発言:「やっぱり登録名称で」が自然言語解釈装置1に入力されたとする。
【0124】
自然言語解釈装置1の解釈結果は、現在のスタックトップの対話情報を基に、「登録名称で場所検索」であったとする。これが対話スタック操作部102に通知されると、図3のフローチャートに従って、以下のように動作する。
【0125】
まず、バッファBF1には、発言情報「登録名称で場所検索」が格納され、新規フラグが「1」に設定される(ステップS0、ステップS1)。ステップS2では通知先が探索されるが、発言情報「登録名称で場所検索」により、課題を解決するための全ての条件あるいは複数の条件のうちの少なくとも1つを満たすようなタスク、意図情報と同じ種類の対話情報が存在しない(ステップS104〜ステップS106、ステップS109)。従って、スタック中に最終的に通知先としてのタスクは存在しない。この場合、新規フラグは「1」であるから(ステップS13)、当該発言情報に対応する対応するタスク、すなわち、発言情報「登録名称で場所検索」を名称とするタスクT7をプラン記憶部104から選択し、ロードする。このとき、対話スタック操作部102は、当該タスクT7に対応する対話情報E4(図14参照)を生成し、対話情報E4がプッシュされる(対話情報E4は、対話情報E3の上に積み上げられる)。
【0126】
タスクT7は、発言情報「登録名称で場所検索」を受けて呼び出されたので、現在のユーザの対話目的は「登録名称で場所検索」であり、これが意図情報としての図14に示すように対話情報E4に書き込まれる(ステップS4)。
【0127】
このときのスタックを図14に示す。
【0128】
注目条件として、タスクT7の唯1つの条件「登録名称指定を取得」が選択され、当該注目条件に対応する動作を実行することにより「登録名称をどうぞ」がユーザに提示される。このときのスタックの状態を図15に示す。スタックトップの対話情報に対応する課題はタスクT7の登録名称で場所検索となっている。
【0129】
(5)第5の発言:「みなとみらい」が自然言語解釈装置1に入力されたとする。
【0130】
自然言語解釈装置1の解釈結果は、現在のスタックトップの対話情報の意図情報「登録名称で場所検索」を含めて、「登録名称で場所検索:みなとみらい」であったとする。これが対話スタック操作部102に通知されると、図3のフローチャートに従って、以下のように動作する。
【0131】
まず、バッファBF1には、発言情報「登録名称で場所検索:みなとみらい」が格納され、新規フラグが「1」に設定される(ステップS0、ステップS1)。ステップS2では通知先が探索される。ここでは、当該発言情報が図15のスタックトップの対話情報E4の注目条件を満たしているので(図5のステップS104)、当該対話情報の通知先のタスクは、タスクT7となる。従って、タスクT7に対応する対話情報E4の意図情報に、「登録名称で場所検索:みなとみらい」が書き込まれる(ステップS4)。この意図情報により、タスクT7の課題を達成するための全ての条件が満たされたので、すなわち、登録名称が取得されたので(ステップS5)、タスクT7に予め定められている全条件達成時動作を実行する(ステップS6)。この全条件達成時動作を実行すると、「みなとみらい」の登録名称を持つ場所(これをここでは、「minatomirai」と表す)が検索される。当該タスクT7に予め定められたタスク出力情報は、「検索結果の場所」であるから、この全条件達成時動作の検索結果である「minatomirai」がタスク出力情報としてバッファBF1に格納され、新規フラグは「0」に設定する(ステップS7a、ステップS7b)。
【0132】
なお、タスクT7の課題は達成されたので、タスクT7に対応する対話情報を、スタックから削除する。例えば、この場合、対話情報E4を削除する。このときのスタックの状態を図16に示す。すなわち、現在のスタックトップは、対話情報E3となっている。
【0133】
次に、ステップS2において、現在バッファBF1に格納されているタスク出力情報「minatomirai」の通知先を探索する。
【0134】
当該タスク出力情報は、図16に示したスタック中の対話情報E2の注目条件「検索済みの場所」を満足する情報であるので(図5のステップS104)、通知先は対話情報E2に対応するタスクT4となる(ステップS3)。
【0135】
この場合、対話情報E2がスタックトップとなるように、クリア操作を行う。すなわち、スタックから対話情報E3をポップする。そして、バッファBF1に格納されているタスク出力情報が対話情報E2に対応するタスクT4に通知されるので、対話情報E2の意図情報には、「minatomirai」が追加される。このときのスタックの状態を図17に示す。
【0136】
バッファBF1に格納されているタスク出力情報が通知されると、タスクT4の全ての条件が満足することとなる(ステップS5)。タスクT4には、全条件達成時動作がないので、タスクT4に予め定められたタスク出力情報、すなわち、「検索結果の場所」として、「minatomirai」がバッファBF1に格納されるとともに、新規フラグは「0」と設定される(ステップS7a、7b)。タスクT4に対応する課題は達成されたので、タスクT4に対応する対話情報、すなわち、対話情報E2もポップされる。スタックトップは対話情報E1となる。
【0137】
次に、ステップS2において、現在バッファBF1に格納されているタスク出力情報の通知先を探索する。当該タスク出力情報は、図18に示したスタック中の対話情報E1の注目条件「場所を取得」を満足する情報であるので(図5のステップS104)、通知先は、スタックトップの対話情報E1に対応するタスクT2となる(ステップS3)。
【0138】
バッファBF1に格納されているタスク出力情報が対話情報E1に対応するタスクT2に通知されるので、対話情報E1の意図情報には、「minatomirai」が追加される。
【0139】
バッファBF1に格納されているタスク出力情報が通知されると、タスクT2の全ての条件が満足することとなる(ステップS5)。従って、タスクT1に包含されているタスクT2の対話情報を対話情報E1から削除する。例えば、この場合、対話情報E1の名称、注目条件から「目的地場所」、「場所を取得」をそれぞれ削除する。このときのスタックの状態を図19に示す。
【0140】
タスクT2には、全条件達成時動作として、タスクT3への遷移が予め定められているので、タスクT3に遷移する(ステップS6)。そして、タスクT4に予め定められたタスク出力情報、すなわち、「検索結果の場所」として、「minatomirai」がバッファBF1に格納されるとともに、新規フラグは「0」と設定される(ステップS7a、7b)。
【0141】
タスクT3は、タスクT1に包含されるタスクであるので、タスクT3に遷移すると(ステップS8)、対話情報E1の名称には、タスクT3の名称である「目的地承認」が追加される(ステップS4)。タスクT3の課題を達成するための条件「検索された場所に対する承諾」、すなわち、検索された場所に対するユーザの承諾はまだ得られていないので(ステップS5)、対話情報E1の注目条件に、タスクT3の条件「検索された場所に対する承諾」を設定する(ステップS9)。そして、当該注目条件に対応する動作を実行する(ステップS10)。この動作を実行することにより、ユーザには「こちらを目的地に設定しますか?」が出力されると共に、「minatomirai」の位置が地図に表示される。「動作」フィールドには、ロード処理が無かったのでここで処理を終了してユーザの入力を待つ。この時点でのスタックの状態を図20に示す。
【0142】
(6)第6の発言:「はい」が自然言語解釈装置1に入力されたとする。
【0143】
自然言語解釈装置2の解釈結果は「許諾」であったとする。これが対話スタック操作部102に通知されると、図3のフローチャートに従って、以下のように動作する。
【0144】
まず、バッファBF1には、発言情報「許諾」が格納され、新規フラグが「1」に設定される(ステップS0、ステップS1)。ステップS2では通知先が探索される。ここでは、当該発言情報が図20のスタックトップの対話情報E1の注目条件を満たしているので(図5のステップS104)、当該対話情報の通知先のタスクは、タスクT3となる。従って、タスクT3に対応する対話情報E1の意図情報に、バッファBF1に格納されている発言情報「承諾」が書き込まれる(ステップS4)。この意図情報により、タスクT3の課題を達成するための全ての条件が満たされたので、すなわち、検索された場所に対する承諾が得られたので(ステップS5)、タスクT3に予め定められている全条件達成時動作を実行する(ステップS6)。この全条件達成時動作を実行すると、承諾された場所に承諾済みフラグ(これを「destOK」と表す)を与えられる。当該タスクT3に予め定められたタスク出力情報は、「検索結果の場所」であるから、この全条件達成時動作の結果である承諾済みフラグの与えられた承諾された場所、すなわち、「minatomirai(destOK)」がタスク出力情報としてバッファBF1に格納され、新規フラグは「0」に設定する(ステップS7a、ステップS7b)。タスクT3の課題は達成されたので、当該タスクT3に対応する対話情報をスタックから削除する。例えば、この場合、対話情報E1の名称、注目情報から「目的地承認」、「検索された場所に対する承諾」をそれぞれ削除する。この全条件達成時動作では、ロード処理がなかったので、ステップS2へ進む。このときのスタックの状態を図21に示す。
【0145】
現在バッファBF1に格納されている情報は、タスクT3のタスク出力情報である、承諾済みフラグの与えられた承諾された場所、すなわち、「minatomirai(destOK)」である。このタスク出力情報は、図21に示したスタック中の対話情報E1の注目条件「目的地承認済みの場所」を満足する情報であるので(図5のステップS104)、通知先は対話情報E1に対応するタスクT1となる(ステップS3)。バッファBF1に格納されているタスク出力情報が対話情報E1に対応するタスクT1に通知されるので、対話情報E1の意図情報には、「minatomirai(destOK)」が追加される。このときのスタックの状態を図22に示す。
【0146】
バッファBF1に格納されているタスク出力情報が通知されると、タスクT1の全ての条件が満足するので(ステップS5)、タスクT1に予め定められている全条件達成時動作を実行する(ステップS6)。この全条件達成時動作を実行すると、承諾済みの場所「minatomirai」までのルート計算が実施される。当該タスクT1に予め定められたタスク出力情報は、「ルート情報」であるから、この全条件達成時動作の計算結果である「minatomirai」までのルート情報がタスク出力情報としてバッファBF1に格納され、新規フラグは「0」に設定する(ステップS7a、ステップS7b)。なお、タスクT1の課題は達成されたので、タスクT1に対応する対話情報E1をスタックからポップする。この場合、スタックは空となる。
【0147】
タスクT1の全条件達成時動作には、ロード処理はないので、ステップS2へ進むが、ここでは、スタックが空であるので(図4のステップS101)、通知先なしと判定される。また、新規フラグは「0」であるから(ステップS13)、ユーザの入力待ち状態になる。
【0148】
(7)スタックが図20に示すような状態において、「こちらを目的地に設定しますか?」が出力されたとき、上記第6の発言:「はい」ではなく、ユーザが場所を変更することを意図して、第7の発言:「山下公園で」と発言し、これが、自然言語解釈装置1に入力されたとする。
【0149】
自然言語解釈装置2の解釈結果は、例えば、プラン記憶部104に記憶されているプランの各課題の条件などを参照することにより、「登録名称で場所検索:山下公園」であったとする。これが対話スタック操作部102に通知されると、図3のフローチャートに従って、以下のように動作する。
【0150】
まず、バッファBF1には、発言情報「登録名称で場所検索:山下公園」が格納され、新規フラグが「1」に設定される(ステップS0、ステップS1)。ステップS2では通知先が探索されるが、発言情報「登録名称で場所検索:山下公園」により、課題を解決するための全ての条件あるいは複数の条件のうちの少なくとも1つを満たすようなタスク、意図情報と同じ種類の対話情報が存在しない(ステップS104〜ステップS106、ステップS109)。従って、スタック中に最終的に通知先としてのタスクは存在しない。この場合、新規フラグは「1」であるから(ステップS13)、当該発言情報に対応する対応するタスク、すなわち、発言情報に含まれる情報「登録名称で場所検索」を名称とするタスクT7をプラン記憶部104から選択し、ロードする。このとき、対話スタック操作部102は、当該タスクT7に対応する対話情報E5を生成し、対話情報E5がプッシュされる(対話情報E5は、対話情報E1の上に積み上げられる)。
【0151】
タスクT7は、発言情報「登録名称で場所検索:山下公園」を受けて呼び出されたので、現在のユーザの対話目的は「山下公園という登録名称で場所検索」であり、これが意図情報として、図23に示すように対話情報E5に書き込まれる(ステップS4)。このときのスタックを図23に示す。
【0152】
ここでは、対話情報E5に意図情報として書き込まれた発言情報がタスクT7の課題を解決すべき全条件を満たすので、すなわち、登録名称が取得されたので(ステップS5)、タスクT7に予め定められている全条件達成時動作を実行する(ステップS6)。この全条件達成時動作を実行すると、「山下公園」の登録名称を持つ場所(これをここでは、「yamashita−park」と表す)が検索される。当該タスクT7に予め定められたタスク出力情報は、「検索結果の場所」であるから、この全条件達成時動作の検索結果である「yamashita−park」がタスク出力情報としてバッファBF1に格納され、新規フラグは「0」に設定する(ステップS7a、ステップS7b)。タスクT7の課題は達成されたので、タスクT7に対応する対話情報E5をスタックからポップする。
【0153】
次に、ステップS2において、現在バッファBF1に格納されているタスク出力情報「yamashita−park」の通知先を探索する。ステップS2の処理において、「対象タスク」が、対話情報E1に対応するタスクT3であるとき、このタスク出力情報は、タスクT3の条件を満たすようなユーザの許諾を表すものではなく、同種の意図でもないので(図5のステップS104〜ステップS106,ステップS109)、図5のステップS110へ進む。タスクT3を包含するタスクT1を「対象タスク」とする。ステップS104,S105を経由して、ステップS106へ進む。ここで対話情報E1の注目条件中のタスクT1に対応する条件「承認済みの場所」に関する動作に含まれるタスクT2、T3の全条件を調べる。
【0154】
すると、当該タスク出力情報は、タスクT2の全条件「場所を取得」を満たすので、「対象タスク」にタスクT2を設定し(ステップS107)、通知先をタスクT2と決定する(ステップS108)。
【0155】
この場合、対話情報E1の名称は、「目的地設定−目的地場所設定」となり、バッファBF1に格納されているタスク出力情報が対話情報E1に対応するタスクT2に通知されるので、対話情報E1の意図情報には、「minatomirai」ではなく、「yamashita−park」に書き換えられる。バッファBF1に格納されている対話情報E1に対応するタスクT2にタスク出力情報が通知されると、タスクT2の全ての条件が満足することとなる(ステップS5)。従って、タスクT1に包含されているタスクT2の対話情報を対話情報E1から削除する。例えば、この場合、対話情報E1の名称から「目的地場所」を削除する。このときのスタックの状態を図24に示す。この段階で、検索結果の場所として「yamashita−park」が得られた。
【0156】
図24に示すスタックの状態は、図19に示したスタックの状態と同じである。その後の処理動作も前述同様にして、タスクT3へ遷移して、当該検索結果の場所に対し承諾を得て、タスクT1に戻り、ルート計算を行い、その結果を出力する。
【0157】
続いて候補選択部101の詳細動作について、スタックが図13に示す状態のときを例にとり、図4、図5を用いて説明する。この例での候補選択部101のスコア編集方針は、ステップS101を通過し、下層のスタック要素を探索するようになる度にスコアを「−30」、ステップS104、ステップS105,ステップS106,ステップS109を通過するたびにスコアを「−10」、また、通知先が見つからなかった場合は探索中の減点を無視して一律スコアを「−50」とする。
【0158】
スタックが図13の状態のとき、第8の発言:「川崎市」が自然言語解釈装置1に入力されたとする。この入力は、応答出力装置2から出力される応答文「市区町村名をどうぞ」に対するユーザの回答の例である。この入力に対して、自然言語解釈装置1では、音声認識により、以下のような候補群が得られる。
「許諾(はい)」(920)
「香川県」(900)
「川崎市」(880)
なお、「( )」内はその候補に与えられた(音声認識時に求まる)スコアである。
【0159】
まず候補「許諾」について検討すると、ステップS103で「対象スタック」は対話情報E4が設定され、「対象タスク」にはタスクT6が設定される。ステップS104、ステップS105,ステップS106,ステップS109のいずれにおいても「住所で場所検索」というタスクにのもつ条件は「許諾」により満たされないのでステップS110へ進む。
【0160】
タスク「住所で場所検索」を包含するタスクは、対話情報E3には存在しないので、ステップS101に進み、「対象スタック」に対話情報E2を設定する。これも同様にタスク「場所検索」には「許諾」により満たされるような条件はなく、再びステップS101に進み、「対象スタック」に対話情報E1を設定する。この場合、ステップS103で「対象タスク」には最初タスクT2の「目的地場所設定」が設定されるが、このタスクには、「許諾」により満たされるような条件はないので、ステップS110まで進む。タスクT2は、タスクT1に包含されているので、「対象タスク」にタスクT1「目的地設定」を設定して、ステップS104へ進む。ステップS104からステップS105を経由して、ステップS106へ進む。
【0161】
ステップS106では、タスクT1に関連する注目条件「承認済みの場所」に関する動作に含まれるタスクT2、T3の全条件を調べる。すると、タスクT3「目的地承認」がユーザの許諾を待っているが、解決済みの場所が通知されていないので満たされず、最終的には「許諾」の通知先は見つからない。よって候補「許諾」のスコアは「870」となる。あるいは「許諾」に対応するタスクが定義されていない場合は新規タスクをロードできないので棄却される。
【0162】
候補「香川県」について検討すると、ステップS101で、「対象スタック」には、対話情報E3が設定される。ステップS104での判定では、こ当該候補は、注目条件「市区町村名を取得」を満たしていないので、ステップS105へ進む。ステップS105でも「香川県」は都道府県のみの情報なので全条件を満たしていないと判定されるので、ステップS106へ進む。ステップS106では条件「市区町村名を取得」に対応する動作には入れ子のタスクが存在しないので、満たすタスクも存在せず、従って、ステップS109へ進む。ステップS1009では、候補「香川県」と対象スタックの意図情報「神奈川県」は、同じ種類の情報、すなわち、同じ住所指定の意図であると判定されるので、通知先は、対話情報E3に対応するタスクT6と決定される。このとき自然言語解釈装置1で求めたスコアから30点減点されて「香川県」のスコアは870点となる。
【0163】
続いて、候補「川崎市」については、ステップS101で、「対象スタック」に対話情報E3が設定される。ステップS104の判定で、「川崎市」は注目条件「市区町村名を取得」を満たすので、通知先は、対話情報E3に対応するタスクT6と決定される。このとき、自然言語解釈装置1で求めたスコアから減点なしで「川崎市」のスコアは880点のままである。
【0164】
このようにしてスタックへの通知先を加味してスコアを再計算した結果、ユーザの入力として候補「川崎市」を発言情報として採用することになる。これはシステムが「市区町村名」を問い合わせているという状況を加味した選択であると言える。このように候補選択部101ではその時の対話スタック状態を加味してスコアを編集するので、その時の対話状態に応じた動的な候補選択が可能となる。
【0165】
かくしてこのように構成された対話管理装置100によれば、話題変更であると判定した場合にもあらかじめ復帰先の話題を決定することなく話題の中断処理を行い、話題が元々の話題に寄与するような場合においても適切に元の話題に復帰することが可能となる。また、本発明によれば、ユーザの入力時の対話状況を加味した候補選択を実行することが可能となる。
【0166】
尚、本発明は上述の実現形態に限定されるものではない。対話スタック管理部103で管理するプランで、タスクを入れ子にして記述できるように例示しているが、入れ子になっているタスクを新たな対話情報としてプッシュするように記述しても良い。この場合図3の判定操作のステップS106、ステップS107も省略されるだろう。
【0167】
尚、上述の例では、カーナビゲーションシステムの形式で実現しているように記述しているが、これらの対話管理方式については上述の実現形態に限定されるものではない。本発明の実現形態はこれに限定されるものではなく、例えば、観光案内システム等で実現することも可能であり、そのような実現形態も本発明の趣旨の範囲内である。以上のように、本発明の実現形態には上述の例に対して種々の変形が可能であり、それらも趣旨に反しない限り本発明の実施形態の範囲内である。
【0168】
このように、上記実施形態によれば、ユーザとの対話で得られた発言情報により解決する課題をスタックから削除するとともに、当該課題を解決した結果得られるタスク出力情報を得ると、スタックに記憶された、タスク出力情報に関連する課題(ここでは、第1の課題と呼ぶ)を次の対話目的として使用する(設定する)ために、第1の課題がスタックに記憶された後にスタックに記憶された課題はスタックから削除して、第1の課題をスタックトップとする。すなわち、対話により1つの課題が解決されたとき、その課題が解決された結果、対話目的とする必要のなくなった無用な課題を当該解決された課題のタスク出力情報を基に探索して、スタックから削除する。従って、1つの課題が解決された後は、当該課題と関連する、あるいは同様の課題を対話目的として対話することがなくなるため、冗長で不自然な対話を避けることができる。
【0169】
また、ユーザとの対話で得られた発言情報により、スタックに記憶された課題のうちの1つ(ここでは、第1の課題と呼ぶ)が解決されたと判断するための条件を少なくとも1つ満足するとき、当該第1の課題は前記発言情報に関連する課題であると判断して、当該第1の課題より後にスタックに記憶された課題をスタックから削除し、当該第1の課題を対話目的に設定することにより、ユーザの意図で対話目的を変更する場合も、違和感なく、対話目的を変更でき、その後に過去に用いた同様な対話目的で対話することもなくなり、冗長で不自然な対話を避けることができる。
【0170】
(第2の実施形態)
上記第1の実施形態では、課題を達成してからその課題の出力(タスク出力情報)の通知先を探索して対話を進めていたが、この場合に限らず、新たなタスクが呼び出されたときに、そのタスクのタスク出力情報の通知先を予め予測しておくようにしてもよい。そこで、第2の実施形態として、新たな課題に対応する対話情報をスタックに格納する際に、その課題に対応付けられているタスク出力情報を基に、スタック中に対話情報として記録されているタスクの中から当該新たな課題が達成したときの当該新たな課題のタスク出力情報の通知先を予め検索(予測)する対話装置について説明する。
【0171】
なお、第2の実施形態に係る対話装置の構成は、第1の実施形態にかかる対話装置の構成(図1参照)と同一であり、対話スタック操作部102の動作が異なる。また、新たな対話情報をスタックに記憶する際に、上記のように、当該新たな対話情報に対応する課題が解決されたときに出力されるタスク出力情報の通知先を予め予測するので、この予測結果としての通知先を記録しておくために、対話情報には、被通知可能性フィールドが追加されている。
【0172】
以上の2点が第1の実施形態の場合と異なり、以下、この異なる点を重点的に説明する。
【0173】
図26は第2の実施形態におけるスタックの状態の一例を示したもので、これは、第1の実施形態の図13に示したスタックの状態に対応する。
【0174】
図26に示したように、各対話情報には、前述同様、対話スタック操作部102によって対話に使用しているタスクが対応し、ある時点の対話内容はその時のスタックトップ(スタック内の一番上にある要素)に対応するタスクに関するものとなっている。
【0175】
図26の各対話情報には、新たに「被通知可能性」フィールドが追加されている。
【0176】
各対話情報の「被通知可能性」フィールドは、その上段にある対話情報の出力(タスク出力情報)の通知先として可能性があると推定されたときに、当該タスク出力情報を出力するタスクを列挙するフィールドである。
【0177】
図26に示すスタックでは、対話情報E2の「被通知可能性」フィールドの記述によれば、対話情報E2の「場所検索」タスクT4には、対話情報E3に対応する「住所で場所検索」タスクT6のタスク出力情報が通知されると推定されていることがわかる。また、対話情報E1の「被通知可能性」フィールドの記述によれば、対話情報E1の「目的地場所設定」タスクT2には、対話情報E2に対応する「場所検索」タスクT4のタスク出力情報が通知されると推定されていることがわかる。一方、対話情報E3には、その上段に対話情報が存在しないため、「被通知可能性」フィールドは空になっている。上段に複数対話情報が存在し,それらが同じ対話情報に通知する場合は「被通知可能性」フィールドには複数の対話情報が列挙される。
【0178】
対話スタック操作部102は、タスクをロードする際には、ロード元のタスクの対話情報の「被通知可能性」フィールドに、今回ロードしたタスク情報の名称を追加する。ユーザの発言内容から得られた発言情報から新規にタスクをロードする場合は、ロードするタスクの一番外側のタスク出力情報を利用して、図4、図5の通知先探索処理を実行し、その結果、通知先のタスク(に対応する対話情報)が存在した場合は,その対話情報の「被通知可能性」フィールドに今回新たにロードするタスク情報を通知する。ロードは、前述同様、対話においてより詳細な話題に進む場合、別の話題をはじめる場合に呼び出される手続きである。
【0179】
遷移も、前述同様、新たなタスクを呼び出す際の手続きであるが、現在の対話目的で使用しているタスクを変更するように新たなタスクをロードする。下段の対話情報の「被通知可能性」フィールドに、遷移元のタスクの名称が書き込まれている場合は、その対話情報の「被通知可能性」フィールドに遷移さきのタスクの名称を追加する。現在のタスクが通知されている場合は、その対話情報に現在のタスクを通知する。対話が順序だてて進む場合に話題が次に進む場合などに呼び出される手続きである。
【0180】
図25は、第2の実施形態にかかる対話スタック操作部102の処理動作全体を説明するためのフローチャートである。なお、図25において、図3と同一部分には同一符号を付し、異なる部分についてのみ説明する。すなわち、図3では、あるタスクの課題が達成されて当該タスクのタスク出力情報が実際に出力された時点でその通知先のタスクを探索するようになっていたが、これに代わり、図25では、あるタスクに対応する対話情報をスタックに記憶する際に(新たな課題が発言情報により呼び出されたときには図25のステップS14において、それ以外のタスクのロード・遷移の場合にはステップS6、ステップS10において)、当該タスクの課題が達成したときに当該タスクから出力されるタスク出力情報の通知先を予め推定しておく。当該タスクの課題が達成したときには、ステップS301において、当該タスクのタスク出力情報の通知先として予め推定されたタスクがあるかを各対話情報の「被通知可能性」フィールドを参照して探し、あれば、その通知先として推定されたタスクに対し、当該タスク出力情報を通知するようになっている。
【0181】
ステップS2では、バッファBF1に格納された発言情報の通知先を探索する。なお、この通知先探索処理は、図4〜図5と同様である。
【0182】
ステップS301では、バッファBF1に格納された発言情報あるいはタスク出力情報の通知先があるかどうかを確認する。ステップS2で得られた通知先があるか、あるいは、タスク出力情報の出力元のタスクに対応する対話情報より下に、当該タスク出力情報の出力元のタスクの名称が記述されている「被通知可能性」フィールドを持つ対話情報があるか探索する。通知先がある場合はステップS4へ進み、ない場合は、ステップS13へ進む。
【0183】
次に、第2の実施形態の具体例として、第1の実施形態の具体例と異なる部分について説明する。
【0184】
(1)第1の発言:「目的地を設定する」が自然言語解釈装置1に入力されたとき、対話スタック操作部102には発言情報「目的地設定」が通知され、ステップS14において、当該発言情報「目的地設定」に対応するタスク、すなわち、発言情報「目的地設定」を名称とするタスクT1をロードし、対話スタック操作部102は、当該タスクT1に対応する対話情報E1を生成し、スタックにプッシュする。このとき、対話情報E1より下に格納されている対話情報(対話情報E1がスタックに格納される以前にスタックに格納された対話情報)は存在しないので、当該タスクT1達成時にタスク出力情報の通知先の探索は行わない。このときのスタックの状態を図27に示す。
【0185】
前述同様にして、タスクT2からタスクT4が呼び出され(ロードされ)、タスクT4に対応する対話情報E2がスタックに格納される(ステップS10)。このとき、タスクT4は、対話情報E1に対応するタスクT2から呼び出されたので、タスクT4のタスク出力情報は、対話情報E1に対応するタスクT2に通知される。従って、対話情報E1の「被通知可能性」フィールドに、タスクT4の「場所検索」タスクが追加される。タスクT4には、バッファBF1に格納された「場所検索」が通知されるので、対話情報E2の意図情報としては、「場所検索」が書き込まれる(ステップS4)。この段階でのスタックの状態を図28に示す。その後、前述同様にして、注目条件の選択、当該注目条件に対応する動作を実行する。このときのスタックの状態を図29に示す。
【0186】
(2)スタックが図29に示した状態のときに、第2の発言:「住所で検索」が自然言語解釈装置1に入力されたとする。自然言語解釈装置1の解釈結果は「住所で場所検索」であったとする。これが対話スタック操作部102に通知されると、当該発言情報は、図29の対話情報E2の注目条件を満たしているので、現在対話目的となっているタスクT5の全条件達成時動作を実行する(ステップS6)。なお、前述同様、対話情報E2からはタスクT5に対応する対話情報は削除する。
【0187】
この全条件達成時動作で「住所で場所検索」タスクT6がロードされて、スタックには、図30に示すように、タスクT6に対応する対話情報E3がプッシュされる(対話情報E3は、対話情報E2の上に積み上げられる)。このとき、タスクT6は、対話情報E2からロードされたので、対話情報E2の「被通知可能性」フィールドに、「住所で場所検索」タスクT6が追加される。
【0188】
(3)以降、前述同様にして、第3の入力:「神奈川県」が入力がされて、スタックが図31に示すような状態になったとする。
【0189】
(4)スタックが図31の状態のときに、第4の発言:「やっぱり登録名称で」が自然言語解釈装置1に入力されたとする。すると、図32に示すように、スタックには、対話情報E4が格納され、この対話情報E4に対応する「登録名称で場所検索」タスクT7のタスク出力情報「検索済みの場所」の通知先を探索するために、図4,図5に示す通知先探索処理を行う。その結果、当該タスク出力情報は、「場所検索」タスクT4の条件を満たすので、当該タスクT4に対応する対話情報E2の「被通知可能性」フィールドに、「登録名称で場所検索」タスクT7を追加する(図32の対話情報E2参照)。
【0190】
(5)第5の発言:「みなとみらい」が自然言語解釈装置1に入力されたとする。この発言に対応する発言情報「登録名称で場所検索:みなとみらい」が対話装置100に入力すると、当該発言情報により、前述したように、対話情報E4に対応するタスクT7の課題が解決される(ステップS5)。このタスクT7の全条件達成時動作を実行し、「minatomirai」がタスク出力情報として出力される。そこで、ステップS301へ進み、このタスク出力情報の通知先をスタック中の対話情報の「被通知可能性」フィールドを参照して探索すると、「登録名称で場所検索」タスクT7が指定されている対話情報E2が見つかる。そこで、この対話情報E2に対応する「場所検索」タスクT4に、バッファBF1に格納されているタスク出力情報を「minatomirai」が通知される。
【0191】
対話情報E2に対応する「場所検索」タスクT4に、タスク出力情報「minatomirai」が通知されると、対話情報E3はクリアにより、スタックからポップされる。さらに、これにより「場所検索」タスクT4の条件を満たしているので、全条件達成時動作を実行し、「minatomirai」がタスク出力情報として出力される。ステップS301で、この通知先を探索すると、対話情報E1の「被通知可能性」フィールドに「場所検索」タスクT2が追加されているので、対話情報E1のタスクT2に、当該タスク出力情報が通知される。すると、タスクT2の課題は解決されて、タスクT2の全条件達成時動作を実行する。また、このようにして課題の解決されたタスクT2に対応する対話情報は、前述同様にして、スタックから削除される。このときのスタックの状態を図33に示す。
【0192】
全条件達成時動作として、タスクT3への遷移が予め定められているので、「目的地承認」タスクT3をロードする。タスクT3のタスク出力情報は、検索された承認済みの場所である。このタスク出力情報の通知先を図4,図5に示した通知先探索処理に従って探索すると、当該タスク出力情報は、対話情報E1の「目的地設定」タスクT1の条件を満たすことわかるので、対話情報E1の「被通知可能性」フィールドに、「目的地承認」タスクT3を追加する。このときのスタックの状態を図34に示す。
【0193】
(6)第6の発言:「はい」が入力すると、前述同様にして、タスクT3の課題が解決するので、タスクT3の全条件達成時動作を実行した結果をタスク出力情報として、そのタスク出力情報の通知先として予め推定されたタスクT1に通知する。また、タスクT3に対応する対話情報も前述同様削除される。タスクT1の課題も達成されたので、タスクT1に対応する対話情報E1はポップされるが、これにより、スタックは空となる。従って、タスクT1のタスク出力情報の通知先は存在しないので、ここで入力待ちとなる。このときのスタックの状態を図35に示す。
【0194】
(7))スタックが図34に示すような状態において、「こちらを目的地に設定しますか?」が出力されたとき、上記第6の発言:「はい」ではなく、ユーザが場所を変更することを意図して、第7の発言:「山下公園で」と発言し、これが、自然言語解釈装置1に入力されたとする。
【0195】
自然言語解釈装置2の解釈結果は、例えば、プラン記憶部104に記憶されているプランの各課題の条件などを参照することにより、「登録名称で場所検索:山下公園」であったとする。これが発言情報として対話スタック操作部102に通知されると、ステップS2では通知先が探索されるが、発言情報「登録名称で場所検索:山下公園」により、課題を解決するための全ての条件あるいは複数の条件のうちの少なくとも1つを満たすようなタスク、意図情報と同じ種類の対話情報が存在しない(ステップS104〜ステップS106、ステップS109)。従って、スタック中に最終的に通知先としてのタスクは存在しない。この場合、新規フラグは「1」であるから(ステップS13)、当該発言情報に対応するタスク、すなわち、発言情報に含まれる情報「登録名称で場所検索」を名称とするタスクT7をプラン記憶部104から選択し、ロードする。このとき、対話スタック操作部102は、当該タスクT7に対応する対話情報E5を生成し、対話情報E5がプッシュされる(対話情報E5は、対話情報E1の上に積み上げられる)。
【0196】
このとき、タスクT7のタスク出力情報の通知先を探索する。図4,図5に示した処理により、通知先として、対話情報E1に対応するタスクT1に包含されるタスクT2の「目的地場所設定」が得られる。そこで、対話情報の「被通知可能性」フィールドに、タスクT7の「登録名称で場所検索」を追加する。対話情報E5の意図情報には、先ほどの発言情報が書き込まれるのは前述同様である。このときのスタックの状態を図36に示す。
【0197】
さて、対話情報E5に意図情報として書き込まれた発言情報がタスクT7の課題を解決すべき全条件を満たすので、すなわち、登録名称が取得されたので(ステップS5)、タスクT7に予め定められている全条件達成時動作を実行する(ステップS6)。この全条件達成時動作を実行すると、「山下公園」の登録名称を持つ場所(これをここでは、「yamashita−park」と表す)が検索される。当該タスクT7に予め定められたタスク出力情報は、「検索結果の場所」であるから、この全条件達成時動作の検索結果である「yamashita−park」がタスク出力情報として出力される。このタスク出力情報の通知先は、「被通知可能性」フィールドの記述から対話情報E1である。より具体的には、タスクT1に包含されるタスクT2である。
【0198】
すなわち、通知先として、タスクT2が存在するので、対話情報E1の名称は、「目的地設定−目的地場所設定」となり、バッファBF1に格納されているタスク出力情報が対話情報E1に対応するタスクT2に通知されるので、対話情報E1の意図情報には、「minatomirai」ではなく、「yamashita−park」に書き換えられる。バッファBF1に格納されている対話情報E1に対応するタスクT2にタスク出力情報が通知されると、タスクT2の全ての条件が満足することとなる(ステップS5)。従って、タスクT1に包含されているタスクT2に関する情報を対話情報E1から削除する。すなわち、この場合、対話情報E1の名称から「目的地場所」を削除する。このときのスタックの状態を図37に示す。この段階で、検索結果の場所として「yamashita−park」が得られた。
【0199】
このように、上記第2の実施形態によれば、スタックに新たなタスク(課題)に対応する対話情報を格納する際に、当該新たなタスクのタスク出力情報の通知先をスタックに対話情報として格納されているタスクの中から探索しておく。そして、実際に当該新たな課題が解決したときには、そのタスク出力情報を先に探索されたタスクへ通知して、当該タスクを対話目的とすることにより、前述の第1の実施形態と同様の効果を奏する。第1の実施形態との違いは、タスク出力情報の通知先をいつ探索するかであり、第1の実施形態の場合は、実際にタスク出力情報が出力されるときであり、第2の実施形態の場合は、タスクが呼び出されて、対話情報をスタックに格納するときである。
【0200】
尚、上記第2の実施形態では、タスク出力情報を受け取る側に、受け取るタスク出力情報の出力元のタスクを被通知先フィールドに書き込むようにしているが、この場合に限らない。例えば、各対話情報に「通知先フィールド」を設け、通知する側から通知先を管理しても,被通知側・通知側の両方にのタスクを格納してもよく,タスクをロードする際にその出力を考慮して通知先を動的に判定するものであれば如何なる手法でも構わない。
【0201】
以上説明したように、上記第1および第2の実施形態によれば、ある課題を中断して新たな課題に移行したときの復帰先を、新たな課題を対話目的として用いて対話した結果に応じて(解決された課題のタスク出力情報に関連する課題に復帰することにより)、柔軟に決定することができる。
【0202】
ユーザの意図により、ある1つの課題を対話目的として用いた対話を(課題を解決することなく)中断して、別の課題に変更した場合でも、当該別の課題が解決された後は、当該別の課題と関連する、あるいは同様の課題を対話目的として対話することがなくなるため、冗長で不自然な対話を避けることができる。
【0203】
話題変更であると判定した場合にもあらかじめ復帰先の話題を決定することなく話題の中断処理を行い、話題が元々の話題に寄与するような場合においても適切に元の話題に復帰することができる。また、ユーザの入力時の対話状況を加味した候補選択を実行することが可能となる、等の実用上多大な効果が奏せられる。
【0204】
本発明の実施の形態に記載した本発明の手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピーディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、半導体メモリなどの記録媒体に格納して頒布することもできる。
【0205】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、上記実施形態には種々の段階の発明は含まれており、開示される複数の構成用件における適宜な組み合わせにより、種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題(の少なくとも1つ)が解決でき、発明の効果の欄で述べられている効果(のなくとも1つ)が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【0206】
【発明の効果】
以上説明したように、本発明によれば、所定の目的を達成するための予め定められた複数の課題に従って対話を行う場合、ある課題を中断して新たな(別の)課題に移行したときには、その新たな課題で対話した結果に応じて、次の課題を柔軟に決定することができる。
【図面の簡単な説明】
【図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】 スタックの状態を示した図。
【図34】 スタックの状態を示した図。
【図35】 スタックの状態を示した図。
【図36】 スタックの状態を示した図。
【図37】 スタックの状態を示した図。
【符号の説明】
1…自然言語解釈装置、2…応答出力装置、100…対話装置、101…候補選択部、102…対話スタック操作部、103…対話情報記憶部、104…プラン記憶部
Claims (15)
- 所定の目的を達成するための複数の課題を解決すべくユーザとの対話を行う対話方法であって、
前記複数の課題のうち、ユーザとの対話目的に選択した未解決課題を選択順に記憶手段に記憶する第1のステップと、
前記記憶手段に最後に記憶された未解決課題を対話目的に使用して、第1の情報を得る第2のステップと、
前記第1の情報により前記記憶手段に記憶された第1の未解決課題を解決して、第2の情報を得る第3のステップと、
解決された前記第1の未解決課題を前記記憶手段から削除する第4のステップと、
前記記憶手段に記憶された、前記第2の情報に関連する第2の未解決課題を前記第2のステップで次の前記対話目的に使用するために、前記第2の未解決課題の後に対話目的に選択した未解決課題を前記記憶手段から削除する第5のステップと、
を有することを特徴とする対話方法。 - 前記第2の情報に関連する第2の未解決課題は、前記第2の情報が、前記第2の未解決課題が解決されたと判断するための条件を少なくとも1つ満足することを特徴とする請求項1記載の対話方法。
- 前記記憶手段は、ユーザとの対話目的に選択した未解決課題を選択順に記憶するスタックであることを特徴とする請求項1記載の対話方法。
- 前記記憶手段に、前記第1の情報により解決される前記第1の未解決課題が記憶されていないとき、前記第1の情報に関連する第3の未解決課題を前記第2のステップで次の前記対話目的に使用するために、前記第3の未解決課題の後に対話目的に選択した未解決課題を前記記憶手段から削除する第6のステップと、
前記記憶手段に、前記第1の情報に関連する第3の未解決課題が記憶されていないとき、前記複数の課題のうちの前記第1の情報に関連する新たな課題を前記未解決課題として、前記第2のステップで次の前記対話目的に使用するために前記記憶手段に記憶する第7のステップと、
をさらに有したことを特徴とする請求項1記載の対話方法。 - 前記第2のステップは、
ユーザの入力から推定される前記第1の情報の候補が複数与えられた場合に、当該複数の候補のうち、前記記憶手段に記憶された未解決課題のうちの前記対話目的に使用した使用順が後にある未解決課題に関連する候補を優先して、前記第1の情報として選択することを特徴とする請求項1記載の対話方法。 - 前記第3のステップで前記第2の情報を得たとき、前記第2の未解決課題を求めることを特徴とする請求項1記載の対話方法。
- 前記第1のステップで前記対話目的として選択された前記第1の未解決課題を前記記憶手段に記憶するとき、当該第1の未解決課題を解決したとき得られる前記第2の情報を推定し、これを基に予め前記第2の未解決課題を求める第8のステップをさらに有し、
前記第5のステップは予め求められた前記第2の未解決課題を前記第2のステップで次の前記対話目的に使用することを特徴とする請求項1記載の対話方法。 - 所定の目的を達成するための複数の課題を解決すべくユーザとの対話を行う対話装置であって、
前記複数の課題のうち、ユーザとの対話目的に選択した未解決課題を選択順に記憶する記憶手段と、
前記記憶手段に最後に記憶された未解決課題を対話目的に使用して、第1の情報を得る第1の手段と、
前記第1の情報により前記記憶手段に記憶された第1の未解決課題を解決して、第2の情報を得る第2の手段と、
解決された前記第1の未解決課題を前記記憶手段から削除する第3の手段と、
前記記憶手段に記憶された、前記第2の情報に関連する第2の未解決課題を前記第1の手段で次の前記対話目的に使用するために、前記第2の未解決課題の後に対話目的に選択した未解決課題を前記記憶手段から削除する第4の手段と、
を具備したことを特徴とする対話装置。 - 前記第2の情報に関連する第2の未解決課題は、前記第2の情報が、前記第2の未解決課題が解決されたと判断するための条件を少なくとも1つ満足することを特徴とする請求項8記載の対話装置。
- 前記記憶手段は、ユーザとの対話目的に選択した未解決課題を選択順に記憶するスタックであることを特徴とする請求項8記載の対話装置。
- 前記記憶手段に、前記第1の情報により解決される前記第1の未解決課題が記憶されていないとき、前記第1の情報に関連する第3の未解決課題を前記第1の手段で次の前記対話目的に使用するために、前記第3の未解決課題の後に対話目的に選択した未解決課題を前記記憶手段から削除する第5の手段と、
前記記憶手段に、前記第1の情報に関連する第3の未解決課題が記憶されていないとき、前記複数の課題のうちの前記第1の情報に関連する新たな課題を前記未解決課題として、前記第1の手段で次の前記対話目的に使用するために前記記憶手段に記憶する第6の手段と、
をさらに具備したことを特徴とする請求項8記載の対話装置。 - 前記第1の手段は、
ユーザの入力から推定される前記第1の情報の候補が複数与えられた場合に、当該複数の候補のうち、前記記憶手段に記憶された未解決課題のうちの前記対話目的に使用した使用順が後にある未解決課題に関連する候補を優先して、前記第1の情報として選択することを特徴とする請求項8記載の対話装置。 - 前記第2の手段で前記第2の情報を得たとき、前記第2の未解決課題を求めることを特徴とする請求項8記載の対話装置。
- 前記対話目的として選択された前記第1の未解決課題を前記記憶手段に記憶するとき、当該第1の未解決課題を解決したとき得られる前記第2の情報を推定し、これを基に予め前記第2の未解決課題を求める第7の手段をさらに具備し、
前記第4の手段は予め求められた前記第2の未解決課題を前記第1の手段で次の前記対話目的に使用することを特徴とする請求項8記載の対話装置。 - 所定の目的を達成するための複数の課題を解決すべくユーザとの対話を行うためのプログラムであって、
コンピュータに、
前記複数の課題のうち、ユーザとの対話目的に選択した未解決課題を選択順に記憶手段に記憶する第1のステップと、
前記記憶手段に最後に記憶された未解決課題を対話目的に使用して、第1の情報を得る第2のステップと、
前記第1の情報により前記記憶手段に記憶された第1の未解決課題を解決して、第2の情報を得る第3のステップと、
解決された前記第1の未解決課題を前記記憶手段から削除する第4のステップと、
前記記憶手段に記憶された、前記第2の情報に関連する第2の未解決課題を前記第2のステップで次の前記対話目的に使用するために、前記第2の未解決課題の後に対話目的に選択した未解決課題を前記記憶手段から削除する第5のステップと、
を実行させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002382382A JP3898640B2 (ja) | 2002-12-27 | 2002-12-27 | 対話方法、対話装置およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002382382A JP3898640B2 (ja) | 2002-12-27 | 2002-12-27 | 対話方法、対話装置およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004212664A JP2004212664A (ja) | 2004-07-29 |
JP3898640B2 true JP3898640B2 (ja) | 2007-03-28 |
Family
ID=32817957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002382382A Expired - Fee Related JP3898640B2 (ja) | 2002-12-27 | 2002-12-27 | 対話方法、対話装置およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3898640B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4322907B2 (ja) | 2006-09-29 | 2009-09-02 | 株式会社東芝 | 対話装置、対話方法及びコンピュータプログラム |
-
2002
- 2002-12-27 JP JP2002382382A patent/JP3898640B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004212664A (ja) | 2004-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6305588B2 (ja) | 拡張された会話理解アーキテクチャ | |
JP5697860B2 (ja) | 情報検索装置,情報検索方法及びナビゲーションシステム | |
US9436678B2 (en) | Architecture for multi-domain natural language processing | |
US11061550B2 (en) | Natural language task completion platform authoring for third party experiences | |
US9805722B2 (en) | Interactive speech recognition system | |
JP6272901B2 (ja) | 発話対象の識別 | |
JP7200405B2 (ja) | 音声認識のためのコンテキストバイアス | |
US20120239399A1 (en) | Voice recognition device | |
US20050075878A1 (en) | Method, system, and apparatus for natural language mixed-initiative dialogue processing | |
JP5187128B2 (ja) | 検索装置、検索方法、及び、プログラム | |
JPH11249686A (ja) | 情報解析方法および情報解析プログラムを記憶した媒体 | |
JP2018072560A (ja) | 情報処理システム、情報処理装置及び情報処理方法 | |
US20080126090A1 (en) | Method For Speech Recognition From a Partitioned Vocabulary | |
JP2001022779A (ja) | 対話型情報検索装置、コンピュータを用いた対話型情報検索方法及び対話型情報検索処理を行うプログラムを記録したコンピュータ読取り可能な媒体 | |
JP3898640B2 (ja) | 対話方法、対話装置およびプログラム | |
CN103918027A (zh) | 用于语音应用中的最优有限状态转换机(fst)的有效渐进修改 | |
JP2000181485A (ja) | 音声認識装置及び方法 | |
JP3615309B2 (ja) | データ検索装置および方法、情報記憶媒体 | |
JP2015052745A (ja) | 情報処理装置、制御方法、及びプログラム | |
KR101063159B1 (ko) | 명령횟수를 줄일 수 있는 음성 인식을 이용한 주소 검색 방법 | |
JP4486413B2 (ja) | 音声対話方法、音声対話装置、音声対話プログラム、これを記録した記録媒体 | |
JP4611823B2 (ja) | 音声認識候補文字列選択装置 | |
JP2003228394A (ja) | 音声入力を利用する名詞特定装置およびその方法 | |
JP4223841B2 (ja) | 音声対話システム及び方法 | |
KR102503586B1 (ko) | 음성을 텍스트로 변환한 음성 기록에서 유사 발음의 단어를 포함하여 검색하는 방법, 시스템, 및 컴퓨터 판독가능한 기록 매체 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040609 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060913 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060926 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061127 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20061219 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061221 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110105 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120105 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130105 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |