| 【発明の名称】 |
自然言語対話システム及び自然言語処理方法 |
| 【発明者】 |
【氏名】清水 恵美
【氏名】笹島 宗彦
【氏名】屋野 武秀
【氏名】下森 大志
|
| 【要約】 |
【課題】ユーザの目的があいまいなときでも適切な情報をデータベースから取得できる自然言語対話システムを提供すること。
【解決手段】入力解析部100は、ユーザがデータベース検索を行う際にユーザの入力内容を理解し、意味表現に書き換える。情報取得部200において、意味表現に沿ったデータベース検索を実行して、ユーザに対して有効な情報を抽出する。出力部300において、ユーザに取得した情報を提示する。 |
【特許請求の範囲】
【請求項1】利用者からの自発的なまたは自システムが提示したメッセージに対する応答としての入力情報を自然言語により受け付け、該入力情報を解析して、利用者の意図を示す入力内容を求めるための手段と、前記入力内容が曖昧な内容を含み且つその曖昧な内容から必要な特定の内容を定めることができない場合に、所定のメッセージを作成して利用者に提示することとこれに対する利用者からの返答を受け付けることからなる利用者との対話を通じて、必要な特定の内容を定めるための処理手段と、検索対象となる個々の情報について少なくともその名称およびその特徴を表す説明文を含むドメイン知識を記憶するドメイン知識記憶手段と、利用者の意図を示す前記入力内容または定められた前記特定の内容の少なくとも一方に基づいて、前記ドメイン知識記憶手段を検索するための検索手段と、前記検索の結果に基づいて、利用者に提示するメッセージを作成するための手段と、作成された前記メッセージを利用者に提示するための手段とを備えたことを特徴とする自然言語対話システム。 【請求項2】前記処理手段は、利用者に特定の内容の入力を促すための所定のメッセージを作成して出力するための手段と、所定の基準に基づいて得た所定の内容を前記特定の内容の候補とし、利用者に該特定の内容の候補に対する承認または許否の入力を促すための所定のメッセージを作成して出力するための手段とを含み、これら手段を所定の基準に従って使い分けるものであることを特徴とする請求項1に記載の自然言語対話システム。 【請求項3】利用者の嗜好に関する情報を記憶する利用者嗜好情報記憶手段を更に備え、前記利用者の嗜好に関する情報に基づいて、前記特定の内容の候補を得ることを特徴とする請求項2に記載の自然言語対話システム。 【請求項4】前記自然言語対話システムは、利用者の嗜好に関する情報を記憶する利用者嗜好情報記憶手段を更に備え、前記処理手段は、前記入力内容に検索条件が含まれていない場合に、利用者に検索条件の入力を促すためのメッセージを作成して出力するための手段と、前記入力内容に検索条件が含まれていない場合に、前記嗜好情報記憶手段から所定の基準で検索条件を取得し、利用者に該取得した検索条件に対する承認または許否の入力を促すためのメッセージを作成して出力するための手段とを含み、これら手段を所定の基準に従って使い分けるものであることを特徴とする請求項1に記載の自然言語対話システム。 【請求項5】前記利用者嗜好情報記憶手段が記憶する前記利用者の嗜好に関する情報は、検索条件となるキーワードとその重み値を組とするものであり、前記処理手段は、前記重み値に基づいて、前記検索条件とするキーワードを選択するものであり、前記自然言語対話システムは、利用者からの入力情報に基づいて、前記キーワードの重み値を編集するための手段を更に備えたことを特徴とする請求項3または4に記載の自然言語対話システム。 【請求項6】前記説明文は、前記検索条件となり得るキーワードを含むものであることを特徴とする請求項1ないし5のいずれか1項に記載の自然言語対話システム。 【請求項7】前記自然言語対話システムは、前記ドメイン知識記憶手段に記憶された検索対象となる個々の情報ごとに、それが前記検索手段による検索結果として利用者に提示された頻度を示す提示頻度を記録しておくための手段を更に備え、前記検索手段は、前記ドメイン知識記憶手段を検索する際に、より低い前記提示頻度を持つ情報を優先的に選択して抽出することを特徴とする請求項1ないし6のいずれか1項に記載の自然言語対話システム。 【請求項8】前記ドメイン知識記憶手段に記憶されている前記ドメイン知識は、前記名称および説明文に対応する詳細情報をも含むものであり、検索された前記名称および説明文を含み、対応する前記詳細情報を含まないメッセージを利用者に提示した後に、利用者からの入力情報に基づいて、前記詳細情報をも提示すべきと判断された場合に、対応する前記詳細情報を含むメッセージを作成して利用者に提示することを特徴とする請求項1ないし7のいずれか1項に記載の自然言語対話システム。 【請求項9】利用者からの自発的なまたは自システムが提示したメッセージに対する応答としての入力情報を自然言語により受け付け、該入力情報を解析して、利用者の意図を示す入力内容を求めるためのステップと、前記入力内容が曖昧な内容を含み且つその曖昧な内容から必要な特定の内容を定めることができない場合に、所定のメッセージを作成して利用者に提示することとこれに対する利用者からの返答を受け付けることからなる利用者との対話を通じて、必要な特定の内容を定めるためのステップと、利用者の意図を示す前記入力内容または定められた前記特定の内容の少なくとも一方に基づいて、検索対象となる個々の情報について少なくともその名称およびその特徴を表す説明文を含むドメイン知識を記憶したデータベースを検索するためのステップと、前記検索の結果に基づいて、利用者に提示するメッセージを作成するためのステップと、作成された前記メッセージを利用者に提示するためのステップとを有することを特徴とする自然言語処理方法。 【請求項10】利用者からの自発的なまたは自システムが提示したメッセージに対する応答としての入力情報を自然言語により受け付け、該入力情報を解析して、利用者の意図を示す入力内容を求めるための機能と、前記入力内容が曖昧な内容を含み且つその曖昧な内容から必要な特定の内容を定めることができない場合に、所定のメッセージを作成して利用者に提示することとこれに対する利用者からの返答を受け付けることからなる利用者との対話を通じて、必要な特定の内容を定めるための機能と、利用者の意図を示す前記入力内容または定められた前記特定の内容の少なくとも一方に基づいて、検索対象となる個々の情報について少なくともその名称およびその特徴を表す説明文を含むドメイン知識を記憶したデータベースを検索するための機能と、前記検索の結果に基づいて、利用者に提示するメッセージを作成するための機能と、作成された前記メッセージを利用者に提示するための機能とをコンピュータに実現させるためのプログラムを記録したコンピュータ読取り可能な記録媒体。 【請求項11】利用者からの自発的なまたは自システムが提示したメッセージに対する応答としての入力情報を自然言語により受け付け、該入力情報を解析して、利用者の意図を示す入力内容を求めるための機能と、前記入力内容が曖昧な内容を含み且つその曖昧な内容から必要な特定の内容を定めることができない場合に、所定のメッセージを作成して利用者に提示することとこれに対する利用者からの返答を受け付けることからなる利用者との対話を通じて、必要な特定の内容を定めるための機能と、利用者の意図を示す前記入力内容または定められた前記特定の内容の少なくとも一方に基づいて、検索対象となる個々の情報について少なくともその名称およびその特徴を表す説明文を含むドメイン知識を記憶したデータベースを検索するための機能と、前記検索の結果に基づいて、利用者に提示するメッセージを作成するための機能と、作成された前記メッセージを利用者に提示するための機能とをコンピュータに実現させるためのプログラム製品。
|
【発明の詳細な説明】【0001】 【発明の属する技術分野】本発明は、利用者と自然言語により対話を行う自然言語対話システム及び自然言語処理方法に関する。 【0002】 【従来の技術】情報化する社会の現状において、様々な種類の情報を管理し利用していく方法は、データベースと言う形で多方面に渡って浸透し始めた。また、個人単位でのコンピュータ利用が盛んになり、インターネットの普及もあって、個人が自分の欲しい情報を各種のデータベースから取得することは、一般的な行為と認識されている。 【0003】従来の技術として、ユーザがある情報を取得するためにデータベースを検索する場合、利用可能な特定の単語(以下、キーワードと呼ぶ)を入力すると、そのキーワードと一致するフィールドを持つデータをシステムが取得しユーザに提示する、という方法が一般的であった。例えば、あるユーザがレストランの検索をする場合には、あらかじめ用意されたデータベースシステムに対して、ユーザの指定するジャンルや場所などを条件として入力し、それらのキーワードに一致するレストラン情報を取り出していた。 【0004】また、データベース検索の一例として、検索を行う際にユーザの条件指定が漠然としている場合、システムからデータベースに含まれる例を紹介して対話の主導を行う制御方式(以下、例主導方式と呼ぶ)、例えば特開平11−149482(自然言語システム)がある。この方式は、ユーザのあいまいな検索条件に該当するような例をデータベースから抽出し、その例をユーザが否定した場合にはその例とその例に関連する候補を除外していき、システム主導によって検索条件を絞り込むようにしているものである。 【0005】 【発明が解決しようとする課題】ところが、以上のようなデータベース検索方法には、以下に示すような問題がある。 【0006】第1に、従来のデータベース検索において、ユーザはシステムの許容する語彙を理解し、且つ、検索のために条件を持っていないと、所望の検索を行うことができない。つまり、ユーザは検索システムの受け付ける検索キーワードを前もって準備し、検索条件を指定しなければならない負担を強いられる、という問題があった。 【0007】第2に、一般的に例主導システムとの対話方式では、ユーザが候補を選択した理由を確認しないで、すべてをユーザの嗜好情報として学習している。例えば、あるユーザがレストランを検索していて、フランス料理のレストランを選んだとする。この店を選んだ理由は、「今日はデートだから」かもしれないし、「今日はお金があるからいつもと違うものを食べたい」かもしれない。しかし、今回このレストランを選んだことはユーザの選んだ理由に関わらず、肯定的に学習されてしまう。つまり、このユーザは普段フランス料理を選ばない可能性が高いのに、無駄な学習をしてしまったことになり得る。例主導のようなシステムでは、ユーザの選択はすべて肯定か否定かのどちらかとして理解されてしまい、実際にユーザの嗜好情報学習データとして学習するべきかどうかは確認されていない。このように、システムはユーザに学習の必要があるかどうかを確認をしなかったために、正確でない嗜好情報を学習してしまうことがあった。 【0008】第3に、例主導方式によるシステムとの対話は、一般的に、システムの主導によって例を取り上げ、ユーザが否定的な答えを返すことで次に提示する例の候補を絞っていく。しかし、この方法では、ユーザの選択範囲を絞り込むことによって様々な情報を模索して行くことを否定し、ユーザの思考範囲を狭くしてしまう、という問題があった。 【0009】本発明は、上記事情を考慮してなされたもので、ユーザが前もって用意をしなくてもシステムとの対話を可能にする自然言語対話システム及び自然言語処理方法を提供することを目的とする。 【0010】また、本発明は、ユーザの嗜好情報を反映させた学習を行うことを可能にする自然言語対話システム及び自然言語処理方法を提供することを目的とする。 【0011】また、本発明は、ユーザの思考範囲を狭くしないように、様々な情報を模索して行くことを可能にする自然言語対話システム及び自然言語処理方法を提供することを目的とする。 【0012】 【課題を解決するための手段】本発明は、利用者からの自発的なまたは自システムが提示したメッセージに対する応答としての入力情報を自然言語により受け付け、該入力情報を解析して、利用者の意図を示す入力内容を求めるための手段と、前記入力内容が曖昧な内容を含み且つその曖昧な内容から必要な特定の内容を定めることができない場合に、所定のメッセージを作成して利用者に提示することとこれに対する利用者からの返答を受け付けることからなる利用者との対話を通じて、必要な特定の内容を定めるための処理手段と、検索対象となる個々の情報について少なくともその名称およびその特徴を表す説明文を含むドメイン知識を記憶するドメイン知識記憶手段と、利用者の意図を示す前記入力内容または定められた前記特定の内容の少なくとも一方に基づいて、前記ドメイン知識記憶手段を検索するための検索手段と、前記検索の結果に基づいて、利用者に提示するメッセージを作成するための手段と、作成された前記メッセージを利用者に提示するための手段とを備えたことを特徴とする。 【0013】好ましくは、前記処理手段は、利用者に特定の内容の入力を促すための所定のメッセージを作成して出力するための手段と、所定の基準に基づいて得た所定の内容を前記特定の内容の候補とし、利用者に該特定の内容の候補に対する承認または許否の入力を促すための所定のメッセージを作成して出力するための手段とを含み、これら手段を所定の基準(例えば、ランダムに使う、前者を優先的に使う、後者を優先的に使う、それぞれ使うべき状況を決めておく、評価関数によって選択する、ユーザの入力の履歴に基づいて適宜選択するなど、種々の方法がある)に従って使い分けるものであるようにしてもよい。 【0014】好ましくは、前記自然言語対話システムは、利用者の嗜好に関する情報を記憶する利用者嗜好情報記憶手段を更に備え、前記処理手段は、前記入力内容に検索条件が含まれていない場合に、利用者に検索条件の入力を促すためのメッセージを作成して出力するための手段と、前記入力内容に検索条件が含まれていない場合に、前記嗜好情報記憶手段から所定の基準で検索条件を取得し、利用者に該取得した検索条件に対する承認または許否の入力を促すためのメッセージを作成して出力するための手段とを含み、これら手段を所定の基準(例えば、ランダムに使う、前者を優先的に使う、後者を優先的に使う、最初は後者を使い検索条件を変えるときに前者を使う、最初は前者を使い検索条件を変えるときに後者を使う、それぞれ使うべき状況を決めておく、評価関数によって選択する、ユーザの入力の履歴に基づいて適宜選択するなど、種々の方法がある)に従って使い分けるものであるようにしてもよい。 【0015】本発明では、例えば、次のような対話が形成できる。 利用者からの入力情報に、検索に用いるキーワードが含まれていない→(1) キーワードの候補を取得し、利用者に提示する→利用者が承諾する→検索を行う。 利用者からの入力情報に、検索に用いるキーワードが含まれていない→(2) キーワードの入力を促す→利用者がキーワードを入力する→検索を行う。利用者からの入力情報に、検索に用いるキーワードが含まれていない→(1)を行う→利用者が許否する→(1’)他のキーワードの候補を取得し、利用者に提示する、または(2)を行う→…利用者からの入力情報に、検索に用いるキーワードが含まれていない→(2)を行う→依然としてキーワードが含まれていない→(1)または(2)を行う…利用者から検索を続行すべき旨が入力される→所定の条件が成立した場合に、キーワードの変更の有無を確認する→キーワードを変更すべき旨が入力される→(1)または(2)を行う…また、本発明は、利用者からの自発的なまたは自システムが提示したメッセージに対する応答としての入力情報を自然言語により受け付け、該入力情報を解析して、利用者の意図を示す入力内容を求めるためのステップと、前記入力内容が曖昧な内容を含み且つその曖昧な内容から必要な特定の内容を定めることができない場合に、所定のメッセージを作成して利用者に提示することとこれに対する利用者からの返答を受け付けることからなる利用者との対話を通じて、必要な特定の内容を定めるためのステップと、利用者の意図を示す前記入力内容または定められた前記特定の内容の少なくとも一方に基づいて、検索対象となる個々の情報について少なくともその名称およびその特徴を表す説明文を含むドメイン知識を記憶したデータベースを検索するためのステップと、前記検索の結果に基づいて、利用者に提示するメッセージを作成するためのステップと、作成された前記メッセージを利用者に提示するためのステップとを有することを特徴とする。 【0016】また、本発明は、利用者からの自発的なまたは自システムが提示したメッセージに対する応答としての入力情報を自然言語により受け付け、該入力情報を解析して、利用者の意図を示す入力内容を求めるための機能と、前記入力内容が曖昧な内容を含み且つその曖昧な内容から必要な特定の内容を定めることができない場合に、所定のメッセージを作成して利用者に提示することとこれに対する利用者からの返答を受け付けることからなる利用者との対話を通じて、必要な特定の内容を定めるための機能と、利用者の意図を示す前記入力内容または定められた前記特定の内容の少なくとも一方に基づいて、検索対象となる個々の情報について少なくともその名称およびその特徴を表す説明文を含むドメイン知識を記憶したデータベースを検索するための機能と、前記検索の結果に基づいて、利用者に提示するメッセージを作成するための機能と、作成された前記メッセージを利用者に提示するための機能とをコンピュータに実現させるためのプログラムを記録したコンピュータ読取り可能な記録媒体である。 【0017】なお、装置(システム)に係る本発明は方法に係る発明としても成立し、方法に係る本発明は装置(システム)に係る発明としても成立する。また、装置(システム)または方法に係る本発明は、コンピュータに当該発明に相当する手順を実行させるための(あるいはコンピュータを当該発明に相当する手段として機能させるための、あるいはコンピュータに当該発明に相当する機能を実現させるための)プログラムを記録したコンピュータ読取り可能な記録媒体としても成立する。 【0018】本発明によれば、ユーザはあらかじめ入力の準備をする必要がないような、システム主導のやり取りの中で思い付いた自然文も受け付けられるシステムを提供することができる。例えば、システムはユーザが答えやすい限定的な質問をしたり、ユーザが利用できるキーワードを多く含むような発話をする。ユーザは限定的な質問に対して、肯定・否定・それ以外の答え(以下、これをあいまいな応答と呼ぶ)で答えることができる。また、システムの発話内容からキーワードを取り入れて答えることもできる。このように、ユーザが前もって用意をしなくてもシステムとの対話を進められるようになる。また、本発明によれば、ユーザとの対話履歴を暗黙的にすべて学習するのではなく、システムとの対話を通してユーザの意志確認を行い、ユーザの嗜好情報を反映させたデータの編集を行うシステムを提供することができる。また、本発明によれば、システムは、ユーザの目的を絞り込んでいくのではなく、ユーザの目的が定まらない場合、システムはまずユーザの好みを学習した嗜好情報から候補を決めてユーザに提案し、それでもユーザの目的が決まらない場合は、さらに対話を進めていき、具体的に決定するまでユーザに対して様々なアイデアを提案することができる。そして、ユーザからシステムに話し掛けることを前もって準備しなければならないという負担を軽減し、システムと対話をしながら様々な可能性を見出し、ユーザの意見を固めていくブレインストーミング的役割を果たすようにすることができる。 【0019】 【発明の実施の形態】以下、図面を参照しながら発明の実施の形態を説明する。 【0020】図1に、本発明の一実施形態に係る自然言語対話システムの構成例を示す。 【0021】図1に示されるように、本実施形態の自然言語対話システムは、入力された自然文を解析する入力解析部100、ユーザの意図する情報をデータベースから検索する情報取得部200、ユーザに応答を返す出力部300を備えている。 【0022】以下、入力解析部100、情報取得部200、出力部300について順番に説明する。 【0023】まず、入力解析部100について説明する。 【0024】入力解析部100は、ユーザの入力を受け付け、ユーザの入力意図を分析してユーザの肯定表現や否定表現、そして意味表現を生成する。意味表現の生成とは、具体的には、1)図4にあるような、ユーザの発話内容を意味表現に変換するために利用されるテンプレートを用意する。 2)ユーザからの入力があれば、用意したテンプレートを初期化する。 3)ユーザの入力を意味表現に変換する。とする。 【0025】例えば、ユーザがイタリアンレストランを探している場合には、図4の(1)のテンプレートが具体化され、Select(1、イタリアン、レストラン)という意味表現が生成される。 【0026】ここで、ユーザの入力文、すなわち、自然言語文を意味表現に変換する手続きとして、各種公知の方法を適用可能である。例えば、「自然言語理解」(田中、辻井 共編、知識工学講座第8巻、オーム社、1988)には、第1階述語論理を用いる方法(pp.102−104)、格文法を用いる方法(pp.104−109)などがある。 【0027】なお、ユーザの入力を受け付ける方法としては、音声入力、キーボード入力、マウス入力など、種々の方法が可能である。また、複数種類の入力方法を同時にまたは選択的に用いることも可能である。 【0028】次に、情報取得部200について説明する。 【0029】情報取得部200は、意味表現判断部201、ユーザ嗜好情報取得部202、キーワード編集部203、データベース検索部204、検索情報編集部205、キーワードデータベース1000、データベース2000から構成され、ユーザの好みを取り入れたデータ検索を行うために利用される。 【0030】意味表現判断部201は、入力解析部100において生成された意味表現をもとに、検索を行う、検索を終了するなど、次の動作を判断する。また、キーワードを使って検索を行う際には、同じ検索を何度実行したのかによって、検索を続行する・しないなど、動作を変える判断をする。 【0031】ユーザ嗜好情報取得部202は、ユーザがデータベース検索の際にキーワードを特に指定しなかった場合、後述するキーワードデータベース1000から、過去に学習された重みをもとにして適切と思われるキーワードを検索条件として追加する。 【0032】キーワード編集部203は、後述するキーワードデータベース1000において各キーワードが持つ重みの値を加算または減算して更新する。 【0033】データベース検索部204は、後述するデータベース2000からユーザが入力したキーワード、あるいはユーザ嗜好情報取得部202においてシステムが提案したキーワード、のいずれかを使ってデータ検索を行う。 【0034】検索情報編集部205は、データベース検索部204において、後述するデータベース2000から取り出した情報から、ユーザに応答するための情報として必要と思われる付加データを取得する。例えば、レストラン検索を行って抽出された結果がレストランの名前のみだった場合、そのレストランの名前をもとに、少なくともレストランの住所や電話番号など、ユーザに応答文を作成するための付加情報を取得する。 【0035】キーワードデータベース1000は、例えば図2のように構成されており、各レコードは、少なくともキーワードになる単語のフィールドとその単語に対する重みのフィールドをもつようにする。このデータベースに登録されるキーワードは、後に説明するデータベース2000に登録されている情報から単語単位で抽出される。単語の重みの値は初期段階で設定できるようにする。例えば、レストラン検索の場合、各店の一言紹介に含まれる単語をキーワードとしてできるだけ多く登録し、それらの各キーワードは初期値を0とする重みのフィールドを持つ。この重みの値は、ユーザの好みによって加算、または減算されていくものとする。以下の例では、キーワードデータベース1000に、あらかじめすべてのレストランの一言紹介から抽出されたキーワードを登録しておく。なお、状況によってキーワードデータベース1000を動的に切り替えるようにしても良い。また、ある一定の値以下の重みを持つキーワードは、自動的に削除するなどとしても良い。 【0036】データベース2000は、データベース検索部204と検索情報編集部205において利用される情報を持つリレーショナルデータベースである。例えば、レストラン検索であれば、少なくともレストランの名前、場所、電話番号、レストランの一言紹介などのデータを各フィールドとして持つデータベース、また、少なくともレストランの名前とそれらの各フィールドから検索時のキーワードとなり得る単語をキーワードのフィールドとして持つデータベース、少なくともレストランの名前とそのレストランが紹介された頻度情報を格納するデータベース、などを持つ。 【0037】次に、出力部300について説明する。 【0038】出力部300は、情報取得部200から得たデータベース検索での結果などをもとに、ユーザに対して対話を進めていきやすい出力文を生成し、出力する。 【0039】なお、ユーザへ出力文を提示する方法としては、合成音出力、表示装置への(画像による)出力など、種々の方法が可能である。また、複数種類の出力方法を同時にまたは選択的に用いることも可能である。 【0040】対話を進めていきやすい出力文とは、・ユーザーが肯定か否定で答えられるような質問文、・ユーザがデータベースから情報を引き出すために利用できるキーワードを含む、のどちらかを満たしているとする。しかし、質問文の場合は肯定か否定でない応答もあり得るので、はっきりした肯定、または否定でない場合には、3つ目のユーザの意思としてあいまいな応答と理解される。このように、ユーザはシステムから主導された質問に対して、自分が肯定的に答えるか否定的に答えるか、あるいはあいまいに答えるかするとシステムが発話内容を理解し、肯定、否定、またはあいまいな応答として分類するので、システムに対してどのように返答すれば良いかを考えなくても良い。さらに、ユーザがあいまいな答えをした場合には、学習の許可をユーザに必ず確認するので、勝手な学習を実行しない。 【0041】また、システムからの主導文に様々な種類のキーワードを含ませることによって、ユーザのアイデアを膨らますきっかけとすることができる。さらに、そのようなキーワードを基にユーザはアイデアを発展させ、新たな候補を思い付くことが可能となる。 【0042】ここでは出力した文の意味内容に応じて、さらにユーザの入力を解析し、次の動作を決定する場合もある。システムからの出力文は、応答生成時に例えばIDのような識別情報によって区別される。ユーザに質問をするような内容の出力文の場合は、この識別情報によって、「システムの動作を終了しないで、入力解析部100はユーザの入力を受け付けるように準備する」という動作を決定する。また、意味表現判断部201の判断のもとに、データベース2000から情報を取得し、ユーザに出力するなど、ユーザの入力に対して各種出力文を出力する。このような出力文例を後の対話例で示す。 【0043】以上は、図1の自然言語対話システムの構成例の概要である。 【0044】図3は、本自然言語対話システムの処理内容(以下、処理手順Aと呼ぶ)のフローチャートの一例である。 【0045】処理手順Aの各処理ステップの概要を以下に示す。 【0046】(ステップS1)入力解析部100においてユーザが入力した自然文を解析し、意味表現に書き換えて、ステップS2に進む。 【0047】(ステップS2)入力解析部100から受け取った意味表現が意味表現判断部201においてデータベース検索の実行と判断したときは、ステップS3に進む。その他の場合は、ステップS9に進む。 【0048】(ステップS3)後述するExistKeyword()を実行し、入力解析部100から受け取った意味表現の中にキーワードが含まれていなかった場合は、ステップS4に進む。含まれている場合は、ステップS5に進む。 【0049】(ステップS4)入力解析部100から受け取った意味表現を受け取り、データベース検索を実行するためにキーワードを与えた検索式に変換する。後述するように、キーワードは、キーワードデータベース1000に保存されているキーワードの中から、ユーザの嗜好情報の最上位のキーワードとして登録してあったものを取得する場合と、重みが0であるもの(重みが0のものがない場合は0以上の最小値のもの)を取得する場合とがある。どの場合も同じ重みをもつキーワードが複数ある場合は、ランダムに選んだ1つを取得する。そして、ステップS11へ進む。 【0050】(ステップS5)後述するcounter(“キーワード”)の値が指定した値以下であったならば、ステップS6へ進む。それ以外の場合は、ステップS11へ進む。 【0051】(ステップS6)検索式を使い、データベース検索部204においてデータベース2000の検索を行い、検索結果を得る。そして、ステップS7へ進む。 【0052】(ステップS7)データベース検索部204で抽出した検索結果をもとに、ユーザに提示するための更なる情報をデータベース2000から取り出す。そして、ステップS8へ進む。 【0053】(ステップS8)データベース検索部204で抽出した検索結果をもとに、データベース2000に保存されているデータの選択頻度情報編集を行う。そして、ステップS11へ進む。 【0054】(ステップS9)入力解析部100から受け取った意味表現が意味表現判断部201においてキーワードの編集を実行すると判断した場合は、ステップS10に進む。その他の場合は、ステップS11に進む。 【0055】(ステップS10)入力解析部100から受け取った意味表現に含まれているキーワードについて、キーワードデータベース1000の重みの編集を行う。そして、ステップS11へ進む。 【0056】(ステップS11)出力部400において、応答文を生成し、ユーザに出力する。そして、ステップS12へ進む。 【0057】(ステップS12)ステップS11でユーザに出力した出力文の内容がユーザに質問をしている内容であればステップS1へ戻る。その他の場合は、処理を一旦終了する。 【0058】ここで、処理手順Aにおいて意味表現判断部201が次の動作を判断する場合に利用するExistKeyword()という手続きと、Counter(“キーワード”)という変数について説明する。 【0059】ExistKeyword()は、データベース検索を実行するという意味表現が生成された場合に、その意味表現にはキーワードが含まれているかを調べる手続である。例えば、図4に例示した(1)の意味表現Select(1、“キーワード”、“データベース名”)が生成された場合に、第2引数である“キーワード”が値を持っているかどうかを調べる。 【0060】具体的には、 begin if (Select(1,“キーワート゛”,“テ゛ータヘ゛ース名”)型意味表現の 第2引数である“キーワート゛”が値を持つ) return (1) else return (0) end と、表現される。 【0061】このように、2番目の引数である“キーワード”に、システムまたはユーザから値が与えられている場合は1を返し、与えられていない場合は0を返す。 【0062】ここで、ExistKeyword()を使った処理を、値が0の場合と1の場合に分けて説明する。以下はどちらもユーザの入力が解析され(ステップS1)、データベース検索を実行すると判断された(ステップS2、Yes)後、検索条件があるか(ステップS3)を判定する場面である。 【0063】ExistKeyword()が0を返した場合は、検索条件がないという判定である(ステップS3、No)。この場合、まず、ユーザ嗜好情報取得部202において、図2にあるようなキーワードデータベース1000から、ユーザの嗜好情報の最上位のキーワードとして登録してあったキーワードを取得する(ステップS4)。次に、出力部300においてキーワードで検索を行っても良いかを出力し確認する(ステップS11)。ユーザに確認を促す質問文を出力する(ステップS12、Yes)ので、さらにユーザの入力を受け付け、解析する(ステップS1へ戻る)。 【0064】ExistKeyword()が1を返した場合は、検索条件があるという判定である(ステップS3、Yes)。この場合、データベース検索の実行(ステップS6)、付加情報の取得(ステップS7)、データベースの編集(ステップS8)の各処理が実行される。 【0065】counter(“キーワード”)は、あるキーワードを利用したデータベースの検索は何回行われたのかということを表す変数で、検索に利用されるすべてのキーワードに対して割り当てられる。また、この変数の初期値は1とし、データベース検索部204において、ユーザの入力が図4の(1)のテンプレートの意味表現Select(1、“キーワード”、“データベース名”)と変換され、データベース検索部204において同じキーワードで検索が行われた場合に1ずつ増加していく。この変数にはあらかじめ最大値を決定しておく。意味表現判断部201は、各キーワードに対して最初の検索を行うときに、値の初期化を行い、その後、1以上最大値未満の場合と最大値に等しい場合にちがう動作をする。これらの動作の違いを説明する。 【0066】counter(“キーワード”)=1以上最大値未満の場合は、データベース検索部204においてデータベース検索が実行され、検索情報編集部205において抽出されたレストランの付加情報の取得、データベースの編集として紹介頻度の値の更新が実行される。最後に出力部300において、データベースから取得したデータを使った応答文を出力する。 【0067】図5に、レストラン紹介頻度情報の例を示す。 【0068】counter(“キーワード”)=最大値の場合は、同じキーワードでのデータベース検索をシステムが自動的に続行しないと判断され、ユーザに同じキーワードでの検索を続行するかどうかを確認する質問文を出力する。続行すると判断された場合は値がリセットされる。 【0069】以下、処理手順Aに基づき、このシステムを利用してユーザが好みのレストランを見つける場面を想定した実際の対話例と、各入力文と出力文に対しての詳しい説明をする。以下で用いる具体例では、ユーザの発話を“Ur 発話番号:発話文”と表し、システムの出力を“Sm 発話番号: 出力文”と表記する。 【0070】まず、ユーザの発話の例が次のようであったとする。User(=Ur)1: レストランを探したいんだけど…すなわち、システムがユーザの入力待ちの状態で、上記のようにユーザから「レストランを探したいんだけど…」という自然言語文が入力される。 【0071】入力解析部100は、入力文を「レストランデータベースから1件検索する」ことを意味する表現1: Select(1,,レストラン) に変換して、意味表現判断部201へ出力する(ステップS1)。意味表現1の3つの引数は左から順に、データベース検索をして取得するデータの数、データベース検索をするためのキーワード、検索を実行するデータベースの名前、を意味する。上記の意味表現1の場合、検索で取得するデータの数は1、キーワードはなし、データベースはレストランである。 【0072】意味表現判断部201は、この意味表現を受け取り、データ検索を行うと判断する(ステップS2)。しかし、ここではExistKeyword()の値が0で返ってくる。意味表現判断部201は、この意味表現にはキーワードが与えられていない(ステップS3、No)ので、これまでに学習したユーザの嗜好情報をキーワードとして取得する必要があると判断する。ユーザ嗜好情報取得部202では、図2にあるようなキーワードデータベース1000から、ユーザの嗜好情報の最上位のキーワードとして登録してあった“イタリアン”をキーワードとして取得する(ステップS4)。意味表現1は1’: Select(1,イタリアン,レストラン) となり、「レストランデータベースの中から“イタリアン”というキーワードを含むデータを1件抽出する」ということを表す。 【0073】ここで、ユーザの嗜好情報の最上位にあるキーワードを用いるのは、・検索を繰り返していくとデータが編集されていくので、確実にユーザの好むものから提示できるようになる、・最初のきっかけとして、ユーザの好むものから始める、という理由からである。 【0074】また、キーワードデータベース1000にある“イタリアン”という値の重みは、ユーザから自発的に指定されたものではないので、値は編集されない。つまり、今回の検索が終了するときに特にユーザからキーワードを編集したい旨の要望がない限り、システムから提案されたキーワードの重みの値は編集されない。なお、検索終了時のキーワードの編集についての発話例は後ほど説明する。 【0075】ExistKeyword()の値が0なので、出力部300において、ユーザに“イタリアン”というキーワードで検索を行っても良いかを確認する(ステップS11)。 【0076】このときのシステムの出力1の例と、これに対するユーザの発話2の例を次に示す。 System(=Sm)1: 「イタリアン」というキーワードで検索を行います。よろしいですか? Ur2: それでいいよ。 【0077】このように、システムはユーザが次の入力をしやすいように、肯定か、否定か、あいまいな応答のいずれかで答えられるような確認文を返すようにし(ステップS12、Yes)、ユーザの答えに対応するような入力解析を行うようにする(ステップS1へ戻る)。 【0078】ここでユーザの応答が肯定だったので、先ほどの意味表現を利用して検索を行うことが許可されたとすると、システムが提案したキーワード、“イタリアン”をもとに検索を開始する。つまり、1’: Select(1,イタリアン,レストラン) という意味表現が、意味表現判断部201へ送られる(ステップS1)。 【0079】意味表現判断部201は、この意味表現を受け取り、“イタリアン”というキーワードを用いてデータ検索を行うと判断する(ステップS2、Yes)。この意味表現にはキーワードが与えられているのでExistKeyword()の値は1を返し、キーワードを取得する必要はないのでステップS5へ進む(ステップS3)。今回はデータベース検索のための必要条件をすべて含んだ意味表現を取得したので、“イタリアン”を条件としたレストランのデータベース検索を実行する(ステップS6)。データベースの検索とは、“イタリアン”というキーワードを持つ、紹介頻度の少ないもの、つまり、データベース2000に登録されているが、レストランのデータベース検索を実行した中で、一度も検索結果としてあげられていないレストランを1件取得することである。検索の開始なので、counter(“イタリアン”)=1である。なお、今回のこの変数の最大値は3とする。 【0080】ここで、店を決定する要素となる紹介回数頻度の値について説明する。データベースに登録されている情報は、紹介頻度の値が少ないものが上位にくるように設定されている。つまり、ユーザに指定されたキーワードを検索条件として検索を実行した場合には、紹介頻度の値が少ないデータが優先的に選択されるようにする。レストランのデータベースは、常に新しい店が追加されてくることを想定しているので、紹介頻度に依存させる場合には、同じ店をいつも紹介する確率は低くなる。 【0081】このようにデータベースを構成することによって、次の2つの効果が得られる。 ・選択されたことがある店は、店の名前や場所をキーワードにして検索される可能性がある。 ・ユーザに対してまだ紹介したことのない店を提示することによって、より斬新なアイデアをもたらす可能性がある。 【0082】次に、検索結果のレストランの名前とキーワードをもとにして、レストランのおすすめメニュー、レストランの住所などの付加情報をデータベース2000から取得する(ステップS7)。また、検索結果情報編集部205において、データベースから取得してきた店の紹介頻度の値は+1される(ステップS8)。 【0083】出力部300は、データベースから取得したレストランについての情報を使った応答文を生成し、合成音などで出力する(ステップS11)。データベースを検索した場合の応答文では、店名を紹介し、データベースに格納されている一言紹介の文を読み上げるなどする。このときのシステムの出力2の例を次に示す。Sm2: スパゲティハウス「ジョーパスタ」を紹介します。こちらでは、たくさんの種類のピザとパスタからハーフサイズを2つ選べるコースがあります。今月のおススメは春野菜のスパゲティ、アスパラガスとベーコンのピザです。 【0084】このようにユーザが検索した結果の情報を紹介する場合、システムはキーワードとして登録される基となった店の一言紹介の文を出力して、ユーザの入力に再利用できるような単語を含む応答文を返すようにする。今回は「イタリアン」というキーワードで検索し、抽出されたレストラン「ジョーパスタ」の一言紹介文を応答文として読み上げている。このように、一言紹介の文は、例えば「ピザ」「春野菜」「アスパラガス」「ベーコン」などのような、ほかの料理を連想させるような単語を多く含んでいる。このように、一言紹介文中の単語を利用することにより、ユーザの意思があいまいな場合に、ブレインストーミングの要領でユーザの本当に検索したいキーワードを誘導する補助的役割を務める。また、この一言紹介で使われているキーワードとなり得る単語(の全部または一部)は、ユーザがキーワードとして利用できるようにキーワードデータベース1000に登録されている。 【0085】この出力文はユーザに対して確認を行っているものではない(ステップS12、No)ので、一旦処理は終了し、次のユーザの入力を待つ(終了)。 【0086】このときのユーザの発話3の例を次に示す。 Ur3: ふうん、他にないかな。 このようなユーザの入力から、入力解析部100は、図4の(2)にある意味表現2: ShowAnother(イタリアン、[“ジョーパスタ”])を生成し(ステップS1)、この意味表現を意味表現判断部201へ送る。この意味表現は「“イタリアン”というキーワードで検索して紹介したレストラン(現在の値は=[“ジョーパスタ”])以外の“イタリアン”というキーワードを含むデータを更に抽出する」ということを表す。意味表現判断部201では、これを受け取り、データベース検索を行うと判断する(ステップS2、Yes)。同じキーワードでの二件目の検索(ステップS3、Yes)なのでcounter“イタリアン”=2となる(ステップS5、Yes)。データベース検索部204では、“イタリアン”というキーワードを用いて検索を行い(ステップS6)、一度紹介したデータである“ジョーパスタ”というデータが抽出された場合は、その候補を無視して新しい店の候補が抽出されるまで検索を実行する。検索結果が抽出されたら、そのレストランについての付加情報を取得し(ステップS7)、そのレストランの紹介頻度を+1して(ステップS8)、応答文を出力する(ステップS11)。このときのシステムの出力3の例を次に示す。 Sm3: イタリアンレストラン「マンマ・ミーヤ」を紹介します。こちらでは旬の素材に気を使い、特に魚介類をふんだんに使った家庭料理が自慢です。コース料理もリーズナブルで、リピーターも多い一軒です。また、こちらのロブスター料理はぜひおススメの一品です。 【0087】二件目の紹介(ステップS12、No)を終了(終了)するが、ユーザはまだ決定しないで次の候補を求める発言をする。 【0088】このときのユーザの発話4の例を次に示す。 Ur4: じゃあ、次の候補は何?このようなユーザの入力から、入力解析部100は、再び図4の(2)にある意味表現2: ShowAnother(イタリアン、[“ジョーパスタ”、“マンマ・ミーヤ”])という意味表現を生成し、この意味表現を意味表現判断部201へ送る(ステップS1)。この意味表現は「“イタリアン”というキーワードで検索して紹介したレストラン(現在の値は=[“ジョーパスタ”、“マンマ・ミーヤ”])以外の、“イタリアン”というキーワードを含むデータを更に抽出する」ということを表す。意味表現判断部201では、これを受け取り、データベース検索を行うと判断する(ステップS2、Yes)。ここでは、同じキーワードでの三件目の検索(ステップS3、Yes)なので、counter“イタリアン”=3となる(ステップS5、Yes)。以下は二件目の検索と同様に、データベース検索を行い(ステップS6)、レストランの付加情報を取得して(ステップS7)、レストランの紹介頻度を1加算し(ステップS8)、ユーザに出力する(ステップS11)。このときのシステムの出力4の例を次に示す。 Sm4: イタリアンレストラン「マルゲリータ」を紹介します。こちらはピザがおススメです。薄めの生地にトッピングをたっぷりのせてオーナー自慢の石窯で焼きあげます。一押しはシーフードのホワイトソースピザです。 【0089】三件目の紹介(ステップS12、No)を終了(終了)するが、ユーザは、さらに次の候補を求める発言をする。 【0090】このときのユーザの発話5の例を次に示す。 Ur5: 他にもあるの?ユーザの入力から入力解析部100は、3: ShowAnother(イタリアン、[“ジョーパスタ”、“マンマ・ミーヤ”、“マルゲリータ”])という意味表現を生成する(ステップS1)が、意味表現判断部201ではcounter“イタリアン”=4となり(ステップS5、No)、このまま検索を続行しないようにするので、ユーザは「イタリアン」での検索を続行したいかどうかを確認する(ステップS11)。このときのシステムの出力5の例を次に示す。 Sm5: 「イタリアン」での検索を続けますか?このように、システムからユーザに確認を行い(ステップS12、Yes)、ユーザの入力を待つ(ステップS1へ戻る)。このときのユーザの発話6の例を次に示す。 Ur6: 別のキーワードにして。ユーザの入力は、4: ChangeKeyWord(イタリアン) 5: Select(1,,レストラン)という、図4の(3)と(1)のテンプレートから、「キーワードを変更する」、「レストランというデータベースから1件検索する」を意味する具体的な表現を生成し(ステップS1)、意味表現判断部201は、これらの意味表現からキーワードを変えてデータベースの検索を実行すると判断する(ステップS2、Yes)。今回のユーザの入力文から、キーワードの変更を意図する意味表現が生成され、かつExistKeyword()の値が0を返したので(ステップS3、No)、ユーザ嗜好情報取得部202において、キーワードデータベース1000からキーワードを取り出す(ステップS4)。今回は二つ目のキーワードを使った検索を始めることになる。システムからの提案で、二つ目以降のキーワードを抽出する場合は、重みの値が0であるキーワードをランダムに1つ選択して、キーワードとして利用する。重みの値が0のものがない場合は、0以上の最小値を持つものの中からランダムに1つ選択する。今回は、“旬野菜”という重みの値が0のキーワードがシステムに選択されたので、意味表現は5’: Select(1,旬野菜,レストラン)となり、ユーザに“旬野菜“というキーワードで検索を行っても良いかを確認する(ステップS11)。 【0091】このときのシステムの出力6の例と、これに対するユーザの発話7の例を次に示す。 Sm6: それでは「旬野菜」をキーワードにしてレストランの検索をいたします。よろしいですか? Ur7: 「旬野菜」は嫌いだから、別のキーワードにして。 【0092】意味表現判断部201では、“旬野菜”というシステムが提案したキーワードは気に入らなかったと判断し、意味表現(4)のテンプレートが具体化され、6: RejectKeyWord(旬野菜)となる。また、ユーザ嗜好情報取得部202において、“旬野菜”に代わる他のキーワードをキーワードデータベース1000から取り出してくることを希望している、と判断する。 【0093】上記6のようなRejectKeyWord(旬野菜)という意味表現が入力解析部100で生成された場合は、データベース検索ではなく(ステップS2、No)、キーワードの編集を実行することを意味する(ステップS9、Yes)。この場合、キーワード編集部203において、“旬野菜”というキーワードがユーザに拒否されたと判断し、重みはデフォルトの値である−0.3と編集する(ステップS10)。 【0094】ここで、図4の意味表現のテンプレート(3)ChangeKeyWord(゛キーワード゛)と(4)RejectKeyWord(゛キーワード゛)の利用方法の違いは、「別なキーワードにして。」というあいまいな入力文と、「旬野菜は嫌いだから、」という否定的な入力文におけるユーザの意図の違いであり、入力解析部100が判断する。「別なキーワードにして。」というユーザの入力は、特に“イタリアン”というキーワードに対して否定しているのではないと理解できる。このように、入力解析部100では、ユーザの好みを丁寧に学習していくために、あいまいな否定とはっきりした否定の文を分割して理解する。 【0095】この場合、システムの応答文は確認文(ステップS12、Yes)となる。このときのシステムの出力7の例を次に示す。 Sm7: 「旬野菜」での検索をキャンセルしました。検索を続けますが、キーワードの指定はありますか?システムはユーザの入力を待ち(ステップS1へ戻る)、ユーザの入力から意味表現を生成する(ステップS1)。このときのユーザの発話8の例を次に示す。 Ur8: 別にない。また、このとき、7: Select(1,,レストラン)となる。 【0096】今までの検索のように、ExistKeyword()の値が0であり、ユーザからキーワードが指定されていないので(ステップS3、No)、前回「旬野菜」というキーワードを取得した場合と同様に、キーワードをランダムに1つ選択する(ステップS4)。今回は、システムが“ロブスター”というキーワードを選択したので、7’: Select(1, ロブスター, レストラン)となる。システムは、“ロブスター”というキーワードを用いてデータベースの検索を行うために、ユーザに確認する(ステップS11)(ステップS12、Yes)(ステップS1へ戻る)。 【0097】このときのシステムの出力8の例と、これに対するユーザの発話9の例を次に示す。 Sm8: それでは「ロブスター」をキーワードにしてレストランの検索をいたします。よろしいですか? Ur9: それでお願い。 【0098】ユーザの応答が肯定という意味表現を得たので(ステップS1)、“ロブスター”という、システムが提案したキーワードを利用してデータベース検索を行うと判断する(ステップS2、Yes)。Counter(“ロブスター”)の値は1であり、検索キーワードもある(ステップS3、Yes)のでデータベース検索を行い(ステップS6)、レストランの付加情報を取得して(ステップS7)、レストランの紹介頻度を編集し(ステップS8)、ユーザに出力する(ステップS11)。 【0099】ここで、例えば、最初の検索条件であった“イタリアン”というキーワードと、“ロブスター”というキーワードの両方を持つ候補があった場合、1度紹介している店の出現頻度は編集されており、検索結果として抽出される優先度は低い。 【0100】このときのシステムの出力9の例と、これに対するユーザの発話10の例を次に示す。 Sm9:「アメリカンハウス」では豪快なロブスターとステーキのコンビネーションが楽しめます。また、他にも本場アメリカのバーベキューリブ、オニオンリング、シーザーサラダなども人気です。 Ur10:それでは、そのレストランへ行く。 【0101】ユーザの意図は図4(6)のテンプレートが具体化され「“そのレストラン”に決定した」という意味の8: Decide(そのレストラン)という表現に変換される(ステップS1)。 【0102】ここで、「その」などの指示代名詞の指示対象を決定する方法として、「マルチモーダル対話システムにおけるインタラクション機構」(高橋、竹澤、インタラクション‘99、情報処理学会、pp.94‐95)などの公知の方法を適用し、システムは“そのレストラン”は“アメリカンハウス”であることを解釈する。 【0103】意味表現判断部201は、この意味表現からデータベースの検索を続けるのではなく(ステップS2、No)、「“アメリカンハウス”に決定し、検索を終了する」と解釈するので、キーワードの編集でもない(ステップS9、No)と判断する。この場合、システムは、ユーザに対して、編集するキーワードがあるかどうかを尋ねる。 【0104】このときのシステムの出力10の例と、これに対するユーザの発話11の例を次に示す。 Sm10: 今回の検索では、どのキーワードを登録しますか? Ur11: えーっと、「ステーキ」かな。 【0105】ユーザは、今回、システムから様々な情報を取得し、その中で“ステーキ”というキーワードに注目した。そこで、入力解析部100は、ユーザの入力文から図4の(5)のテンプレートが具体化され「“ステーキ”というキーワードを受け入れる」 9 : AcceptKeyWord(ステーキ) という意味表現を生成する(ステップS1)。意味表現判断部201は、この意味表現はデータベース検索ではなく(ステップS2、No)、キーワードデータベースの編集を実行すると判断し(ステップS9、Yes)、キーワード編集部203は、“ステーキ”というキーワードが次回の検索に役立つよう、ユーザの嗜好情報としてキーワードデータベースを編集(なお、ステーキがデータベースになければ、例えば、ステーキと、適当な重みを登録する)する(ステップS10)。ユーザへの出力(ステップS11)は、例えば、以下のようになる。 Sm11: それでは、レストランの付加情報を出力いたします。こちらのレストランの電話番号は、123−4567となります。週末は大変込み合いますので、予約をされることをお勧めいたします。本日の営業時間は10時までですが、ラストオーダーは9時半までとなっています。このレストランは専用の駐車場がありますので、そちらのほうに車を停めることができます。…ところで、検索を行っている途中に、ユーザのほうからキーワードを指定して検索するような要求が出された場合には、これを受け付けるようにしてもよい。 【0106】例えば、上記のシステム出力例Sm6と、これに対するユーザ発話例Ur7は、Sm6: それでは「旬野菜」をキーワードにしてレストランの検索をいたします。よろしいですか? Ur7: 「旬野菜」は嫌いだから、別のキーワードにして。であったが、Sm6にあるようなシステムからの問いに対して、ユーザがUr7’: 「旬野菜」は好きじゃないよ。「ロブスター」で検索して。という答えを返した場合は、入力解析部100は、6’: RejectKeyWord(旬野菜) 7’: Select(1,ロブスター,レストラン)という意味表現を、ユーザ嗜好情報取得部202からキーワードの取得を行わずに生成する。 【0107】また、検索の終了時に特にキーワードを登録しないことも可能である。例えば、システム出力例Sm10(今回の検索では、どのキーワードを登録しますか?)にあるようなシステムからの問いに対して、ユーザがUr11’: 別にキーワードは登録しなくていいよ。という答えを返した場合、入力解析部100は、9’: AcceptKeyWord( )という意味表現を生成する。キーワード編集部203はキーワードの指定がなかった場合はキーワードデータベースの編集を行わない。 【0108】また、今回は、システムを利用するユーザが固定されている場合として考えたが、複数のユーザに利用されるような場合は、個人適応したキーワードデータベースやレストランの選択頻度情報を保持しても良い。例えば、上記の例で、Ur1: レストランを探したいんだけど…と、ユーザがシステムに話し掛けたときに、ユーザの声の特徴を認識して話者照合をする、またはシステムを起動させたときに、あらかじめ登録したユーザとしてログインするなどして、システムを利用するユーザに適応したキーワードデータベースや、レストランのデータベースの切り替えを行うようにしてもよい。 【0109】また、ユーザがシステムとの対話の中で否定したキーワードを、キーワードデータベース1000から削除してしまい、キーワードデータベース1000の保存情報を最小限のサイズにすることも可能である。 【0110】以上のように、本実施形態によれば、種々の効果を得ることができる。例えば、コマンド入力や定型文をユーザが覚えておく必要はなく、ユーザはシステムの主導する応答文に答えればよい。さらに、システムの主導する応答文にはユーザが利用できるキーワードをできるだけ含むようにしているので、ユーザはキーワードを自分から準備する必要がなく、入力に対してのユーザの抵抗や負担を軽減する。また、ユーザに好みを確認した情報のみをデータベースに反映していくので、ユーザが間違って選択してしまった場合や見当違いだった場合にはデータは編集されず、システムの過剰学習を防ぐ。また、ユーザ自身が気に入ったキーワードだけを上位に登録するので、ユーザはシステムの保存している内容を信用してデータの検索ができる。また、ユーザはシステムから提案される情報をもとに、キーワードとなり得る様々な考えを巡らせることができ、あいまいだった目的を具体化することができる。これによって、例えば、試したこともないレストラン(料理)にチャレンジするなど、新しいアイデアを獲得する可能性を見出すなどの効果がある。 【0111】なお、以上の各機能は、ソフトウェアとしても実現可能である。また、本実施形態は、コンピュータに所定の手段を実行させるための(あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるための)プログラムを記録したコンピュータ読取り可能な記録媒体としても実施することもできる。 【0112】なお、本実施形態で例示した構成は一例であって、それ以外の構成を排除する趣旨のものではなく、例示した構成の一部を他のもので置き換えたり、例示した構成の一部を省いたり、例示した構成に別の機能を付加したり、それらを組み合わせたりすることなどによって得られる別の構成も可能である。また、例示した構成と論理的に等価な別の構成、例示した構成と論理的に等価な部分を含む別の構成、例示した構成の要部と論理的に等価な別の構成なども可能である。また、例示した構成と同一もしくは類似の目的を達成する別の構成、例示した構成と同一もしくは類似の効果を奏する別の構成なども可能である。また、各種構成部分についての各種バリエーションは、適宜組み合わせて実施することが可能である。また、本実施形態は、装置全体としての発明、装置内部の構成部分についての発明、またはそれらに対応する方法の発明等、種々の観点、段階、概念またはカテゴリに係る発明を包含・内在するものである。従って、この発明の実施の形態に開示した内容からは、例示した構成に限定されることなく発明を抽出することができるものである。 【0113】本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。 【0114】 【発明の効果】本発明によれば、ユーザが前もって用意をしなくてもシステムとの対話が可能になる。また、本発明によれば、ユーザの嗜好情報を反映させた学習を行うことが可能になる。また、本発明によれば、ユーザの思考範囲を狭くしないように、様々な情報を模索して行くことが可能になる。
|
| 【出願人】 |
【識別番号】000003078 【氏名又は名称】株式会社東芝
|
| 【出願日】 |
平成12年9月28日(2000.9.28) |
| 【代理人】 |
【識別番号】100058479 【弁理士】 【氏名又は名称】鈴江 武彦 (外6名)
|
| 【公開番号】 |
特開2002−108915(P2002−108915A) |
| 【公開日】 |
平成14年4月12日(2002.4.12) |
| 【出願番号】 |
特願2000−297674(P2000−297674) |
|