本開示の一態様に係る情報処理方法は、ユーザとの対話により前記ユーザが探索を要望する情報についての絞り込みを進行させる、コンピュータによる情報処理方法であって、出力処理部に、前記探索の対象に関する第1タイプの質問である第1質問を出力させ、前記第1タイプの質問はオープン型の質問を示し、入力処理部に、前記ユーザによって入力された前記第1質問に対する第1回答を取得させ、前記第1回答が第1条件を満たしておらず、かつ、前記探索の対象に関する情報が格納されたデータベースに基づいて、前記第1回答に含まれる語句に対応する語句が前記データベースに含まれていないと判断する場合、前記出力処理部に、前記データベースに含まれていない前記第1回答に含まれる語句についての説明内容を回答するようにリクエストする前記第1タイプの質問である第2質問を出力させ、前記第1回答が前記第1条件を満たしておらず、かつ、前記データベースに基づいて、前記第1回答に含まれる語句に対応する語句が前記データベースに含まれていると判断する場合、前記出力処理部に、前記探索の対象に関する前記第1タイプの質問である第3質問を出力させ、前記第1回答が前記第1条件を満たすと判断する場合、前記出力処理部に、前記探索の対象に関する第2タイプの質問である第4質問を出力させ、前記第2タイプの質問はクローズ型の質問である。
本態様によれば、ユーザが探索を要望する情報に関する条件を漏れなく取得できる。これにより、ユーザの所望の探索対象の候補を確実に絞り込んで提示することができる。
ここで、例えば、前記第1回答が前記第1質問に対するネガティブな表現を表す語句を含む場合に、前記第1条件を満たすと判断してもよい。
また、例えば、前記出力処理部に、前記第1タイプの質問を、音声またはテキストで出力させるとしてもよい。
また、例えば、前記データベースに含まれていない前記第1回答に含まれる語句についての説明内容は、前記探索の対象の具体例の一つであるとしてもよい。
また、例えば、前記情報処理方法は、前記入力処理部により取得された、前記ユーザによって入力された前記第2質問に対する第2回答に基づく情報を前記データベースに登録するとしてもよい。
また、例えば、前記情報処理方法は、さらに、前記入力処理部に、前記ユーザによって入力された前記第4質問に対する第3回答を取得させ、前記第3回答が前記第4質問の応答ではなく、前記第4質問に含まれる第1語句についての内容説明をリクエストする内容である場合、前記出力処理部に、前記第4質問に含まれる第1語句に関する別の語句を含めた説明文を出力させ、その後に、前記第4質問を再度出力させてもよい。
また、例えば、前記入力処理部により取得された、前記ユーザによって入力された前記第4質問に対する第3回答による前記絞り込みの進行状況が第2条件を満たすと判断する場合、前記絞り込みの進行により絞り込まれた前記探索の対象の候補を示す情報を、前記出力処理部に出力させてもよい。
また、例えば、前記第2条件は、前記探索の対象の候補の数が、予め定められた値以下であることであるとしてもよい。
また、例えば、前記探索の対象は、患者の病状であり、前記第1タイプの質問は、前記ユーザが自覚する症状を尋ねる内容を示し、前記第2タイプの質問は、前記病状を特定するための複数の症状の一があるか否かを尋ねる内容を示してもよい。
また、例えば、前記探索の対象は、複数の料理のレシピまたはメニューであり、前記第1タイプの質問は、前記複数の料理のレシピまたはメニューを絞り込む条件を尋ねる内容を示し、前記第2タイプの質問は、前記複数の料理のレシピまたはメニューを絞り込む条件の一をリクエストするか否かを尋ねる内容を示してもよい。
ここで、例えば、前記データベースには、複数の料理のレシピと、前記複数の料理のレシピ毎の分類を示す分類情報と、前記複数の料理のレシピ毎に用いられる食材を示す食材情報とが対応付けられているとしてもよい。
また、例えば、前記探索の対象は、複数の旅行プランであり、前記第1タイプの質問は、前記複数の旅行プランに対する条件を尋ねる内容を示し、前記第2タイプの質問は、前記複数の旅行プランを絞り込む条件の一をリクエストするか否かを尋ねる内容を示してもよい。
また、例えば、前記探索の対象は、複数の不動産の物件であり、前記第1タイプの質問は、前記複数の不動産の物件に対する条件を尋ねる内容を示し、前記第2タイプの質問は、前記複数の不動産の物件を絞り込む条件の一をリクエストするか否かを尋ねる内容を示としてもよい。
また、例えば、前記探索の対象は、複数の映像コンテンツであり、前記第1タイプの質問は、前記複数の映像コンテンツに対する条件を尋ねる内容を示し、前記第2タイプの質問は、前記複数の映像コンテンツを絞り込む条件の一をリクエストするか否かを尋ねる内容を示してもよい。
また、本開示の一態様に係る情報処理装置は、ユーザとの対話により前記ユーザが探索を要望する情報についての絞り込みを進行させる情報処理装置であって、出力処理部と、入力処理部と、前記出力処理部および前記入力処理部を制御する対話制御部と、を備え、前記対話制御部は、前記出力処理部に、前記探索の対象に関する第1タイプの質問である第1質問を出力させ、前記入力処理部に、前記ユーザによって入力された前記第1質問に対する第1回答を取得し、前記第1回答が第1条件を満たしておらず、かつ、前記探索の対象に関する情報が格納されたデータベースに基づいて、前記第1回答に含まれる語句に対応する語句が前記データベースに含まれていないと判断する場合、前記出力処理部に、前記データベースに含まれていない前記第1回答に含まれる語句についての説明内容を回答するようにリクエストする前記第1タイプの質問である第2質問を出力させ、前記第1回答が前記第1条件を満たしておらず、かつ、前記データベースに基づいて、前記第1回答に含まれる語句に対応する語句が前記データベースに含まれていると判断する場合、前記出力処理部に、前記探索の対象に関する前記第1タイプの質問である第3質問を出力させ、前記第1回答が前記第1条件を満たすと判断する場合、前記出力処理部に、前記探索の対象に関する第2タイプの質問である第4質問を出力させ、前記第1タイプの質問はオープン型の質問を示し、前記第2タイプの質問はクローズ型の質問を示す。
また、本開示の一態様に係るプログラムは、ユーザとの対話により前記ユーザが探索を要望する情報についての絞り込みを進行させる情報処理方法をコンピュータに実行させるプログラムであって、出力処理部に、前記探索の対象に関する第1タイプの質問である第1質問を出力させ、入力処理部に、前記ユーザによって入力された前記第1質問に対する第1回答を取得させ、前記第1回答が第1条件を満たしておらず、かつ、前記探索の対象に関する情報が格納されたデータベースに基づいて、前記第1回答に含まれる語句に対応する語句が前記データベースに含まれていないと判断する場合、前記出力処理部に、前記データベースに含まれていない前記第1回答に含まれる語句についての説明内容を回答するようにリクエストする前記第1タイプの質問である第2質問を出力させ、前記第1回答が前記第1条件を満たしておらず、かつ、前記データベースに基づいて、前記第1回答に含まれる語句に対応する語句が前記データベースに含まれていると判断する場合、前記出力処理部に、前記探索の対象に関する前記第1タイプの質問である第3質問を出力させ、前記第1回答が前記第1条件を満たすと判断する場合、前記出力処理部に、前記探索の対象に関する第2タイプの質問である第4質問を出力させ、前記第1タイプの質問はオープン型の質問を示し、前記第2タイプの質問はクローズ型の質問を示す。
なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータで読み取り可能なCD−ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
以下、本開示の実施の形態について、図面を参照しながら説明する。以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。以下の実施の形態で示される数値、形状、構成要素、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また、全ての実施の形態において、各々の内容を組み合わせることもできる。
(実施の形態1)
以下では、図面を参照しながら、実施の形態1における情報処理方法等の説明を行う。
[情報処理システム]
図1は、本開示の実施の形態1に係る情報処理システムの概略構成図である。
図1に示す情報処理システムは、情報処理装置100と、端末200および端末300の少なくとも一方を含む複数の端末とを備える。情報処理装置100と複数の端末とはネットワーク400を介して接続されている。
端末200および端末300は、複数の端末の一例であり、スマートフォン、タブレット、携帯電話等の携帯端末であってもよいし、パソコン等の端末であってもよい。端末200または端末300は、ユーザにより用いられ、情報処理装置100と対話する際の入出力を担う。図1に示す例では、2つの端末が示されているが、2つに限定されず3つ以上でもよい。
ネットワーク400は、インターネット、無線LAN等を含む汎用ネットワークであり、情報処理装置100と端末200等との間の通信を中継することでこれらを接続する。
情報処理装置100は、CPU、入出力装置、通信装置等を備えたコンピュータにより実現され、例えばサーバである。情報処理装置100は、ユーザから入力に対して、対話的な応答を出力することで、ユーザとの対話によりユーザが探索を要望する情報についての絞り込みを進行させる。
以下、情報処理装置100の構成について図を用いて説明する。
[情報処理装置100の構成]
図2は、実施の形態1に係る情報処理装置100の構成の一例を示すブロック図である。図2に示す情報処理装置100は、入力処理部11と、対話制御部12と、データベース13と、出力処理部14とを備える。
<入力処理部11>
入力処理部11は、対話制御部12に制御され、ユーザによる対話の入力を処理して理解結果を対話制御部12に出力する。本実施の形態では、入力処理部11は、出力処理部14により、ユーザが用いる例えば端末200に出力された質問に対する回答を取得する。そして、入力処理部11は、取得した回答を処理して理解結果を対話制御部12に出力する。ここで、回答に含まれる表現は、ユーザにより異なるが、一般に知られた言語理解技術により類似の入力に対して共通のキーワードを出力する。そして、入力処理部11は、取得した回答を処理して、後述するタスクデータ131内のキーワードとの整合を考慮した理解結果を出力する。例えば、「熱があります」、「熱もあります」「発熱しました」「発熱です」など回答に含まれる表現は異なるが類似の意味を示す場合には、タスクデータ131内に含まれるキーワードでもある共通のキーワード「発熱」を出力すればよい。
なお、ユーザによる対話の表示形式には、例えばテキストでなくてもよく、音声であってもよい。また、後述するクローズド質問に対する回答をユーザが行う場合には、上記に加えて、視線による回答またはジェスチャによる回答であってもよい。
<出力処理部14>
出力処理部14は、対話制御部12に制御され、出力文をユーザに提示する表示形式に変換して出力する。この表示形式には、例えば音声またはテキストによる表示形式がある。
本実施の形態では、出力処理部14は、ユーザが用いる例えば端末200に対して、探索の対象に関する第1タイプの質問または第2タイプの質問を出力する。ここで、第1タイプの質問はオープン型の質問を意味し、第2タイプの質問はクローズ型の質問を意味する。
また、出力処理部14は、絞り込みの進行により絞り込まれた探索の対象の候補を示す情報を出力する。
なお、探索の対象が例えば患者の病状の場合、第1タイプの質問は、ユーザが自覚する症状を尋ねる内容を示し、第2タイプの質問は、病状を特定するための複数の症状の一があるか否かを尋ねる内容を示す。絞り込まれた探索の対象の候補は、特定された一または複数の患者の病状などを示す。詳細例は後述する。
<対話制御部12>
対話制御部12は、入力処理部11が出力する理解結果とデータベース13とを用いてユーザに対する対話である出力文を決定する機能を有する。また、対話制御部12は、出力文を決定する機能のみならず、ユーザの欲する情報すなわちユーザが探索を要望する情報の候補の数を管理したり、決定した出力文に対するユーザの応答の例として提示すべき情報を管理情報として管理する機能も有する。
本実施の形態では、対話制御部12は、データベース13に含まれるタスクデータ131および文生成データ132を参照し、入力処理部11および出力処理部14と協調して、ユーザとの対話によりユーザが探索を要望する情報についての絞り込みを進行させる。
例えば、対話制御部12は、出力処理部14を制御して、探索の対象に関する第1タイプの質問または第2タイプの質問を出力させ、入力処理部11を制御して、出力処理部14に出力させた質問に対する回答を取得させる。
対話制御部12は、出力処理部14に、まず、第2タイプではなく第1タイプの質問を出力させる。対話制御部12は、入力処理部11により取得させた回答が第1条件を満たすと判断する場合、出力処理部14に第2タイプの質問を出力させる。一方、対話制御部12は、入力処理部11により取得させた回答が第1条件を満たしていないと判断する場合、出力処理部14に、さらに第1タイプの質問を出力させる。そして、対話制御部12は、入力処理部11により取得させた回答に、オープン質問を終了させるトリガがあるか否かを判断している。例えば、対話制御部12は、出力処理部14に出力させた質問に対するネガティブな表現を表す語句を含む場合に、オープン質問を終了させるトリガがあり、第1条件を満たすと判断すればよい。なお、第1条件は、ユーザの回答にネガティブな表現を表す語句が含まれる場合に限らない。予め定めた質問回数であってもよいし、絞り込みの進行により絞り込まれた探索の対象の候補の数であってもよい。
また、対話制御部12は、入力処理部11により取得させた第2タイプの質問に対する回答による当該絞り込みの進行状況が第2条件を満たすと判断する場合、出力処理部14に絞り込みの進行により絞り込まれた探索の対象の候補を示す情報を出力させる。ここで、第2条件は、探索の対象の候補の数が、例えば4つなど、予め定められた値以下であることである。
<データベース13>
データベース13は、例えば、ハードディスクドライブまたはソリッドステートドライブ等の書き換え可能な不揮発性のメモリーで構成され、探索の対象に関する情報を格納している。より具体的には、データベース13には、探索の対象となる複数の候補と、複数の候補の分類を示す分類情報と、複数の候補を構成する要素情報とが対応付けられて格納されている。
本実施の形態では、データベース13は、図2に示すように、タスクの達成のために参照されるタスクデータ131と、文を生成するために参照される文生成データ132とで構成されている。タスクデータ131は、例えば知識ベースの一例であり、例えば病気と自覚症状との関係など探索の対象となる複数の候補と、特徴、属性、条件等を示す要素情報(キーワード)との関係などの知識を特定の表現形式に基づいて記述したデータベースとなっている。タスクデータ131は、対話制御部12が出力文に含むキーワードまたは探索の対象の候補を示す情報を決定するために用いられる。文生成データ132は、対話制御部12が参照するオープン質問のテンプレートおよびクローズド質問のテンプレートを格納している。
[情報処理装置100の処理]
次に、以上のように構成された情報処理装置100の処理について説明する。
図3は、実施の形態1に係る情報処理装置100の処理の概要を示すフローチャートである。図4は、図3に示すオープン質問ループの詳細の一例を示すフローチャートである。図5は、図3に示すクローズド質問ループの詳細の一例を示すフローチャートである。
まず、情報処理装置100は、ステップS20において、オープン質問ループの処理を行う。より具体的には、図4に示すように、まず、情報処理装置100は、探索の対象に関するオープンタイプの質問を出力し、その質問に対するユーザの回答を取得して理解するオープン質問応答の処理を行う(S21)。例えば、「他に何か気になる症状はありますか?」というオープンタイプの質問を情報処理装置100が出力した場合、自覚症状などユーザが気になる症状についての追加情報を含む回答、または、ネガティブな表現を表す語句を含む否定的な回答がユーザから得られる。次いで、情報処理装置100は、理解したユーザの回答に、オープン質問終了トリガーがあるか否かを判定する(S22)。なお、オープン質問終了トリガーは、上述した第1条件に該当する。ステップS22において、情報処理装置100は、ユーザの回答にネガティブな表現を表す語句を含む場合に(S22でyes)、第1条件を満たす、すなわちオープン質問終了トリガーがあると判定し、本ループから抜ける。一方、ステップS22において、情報処理装置100は、追加情報を含むユーザの回答を取得するなどユーザの回答にネガティブな表現を表す語句を含まない場合に(S22でno)、第1条件を満たさない、すなわちオープン質問終了トリガーがないと判定し、ステップS21に戻る。
このように、情報処理装置100は、オープン質問応答の処理を、第1条件を満たすまで繰り返す。
次に、情報処理装置100は、ステップS30において、クローズド質問ループの処理を行う。より具体的には、図5に示すように、まず、情報処理装置100は、探索の対象に関するクローズドタイプの質問を出力し、その質問に対するユーザの回答を取得して理解するクローズド質問応答の処理を行う(S31)。例えば、「鼻水は出ますか?」というクローズドタイプの質問を情報処理装置100が出力した場合、「はい」など肯定的な回答または「いいえ」など否定的な回答のどちらかが得られる。次いで、情報処理装置100は、理解したユーザの回答による絞り込みの進行状況に、クローズド質問終了トリガーがあるか否かを判定する(S32)。なお、クローズド質問終了トリガーは、上述した第2条件に該当し、あらかじめ定められた値以下(閾値以下)であることである。ステップS32において、情報処理装置100は、肯定的な回答または否定的な回答により得た症状の一である「鼻水」があるか否かに応じてユーザが探索を要望する情報である「病状」の候補を絞り込む。そして、絞り込まれた情報の候補の数があらかじめ定められた値以下である場合(S32でyes)、クローズド質問終了トリガーがあると判定し、本ループから抜ける。一方、ステップS32において、情報処理装置100は、絞り込まれた情報の候補の数が、あらかじめ定められた値以下でない場合(つまり、あらかじめ定められた値より大きい場合)(S32でno)第2条件を満たさない、すなわちクローズド質問終了トリガーがないと判定し、ステップS31に戻る。
このように、情報処理装置100は、クローズド質問応答の処理を、第2条件を満たすまで繰り返す。
次に、情報処理装置100は、ステップS40において、結論を含む出力文をユーザに提示する。具体的には、情報処理装置100は、ステップS32において絞り込まれた探索の対象の候補を示す情報を、結論を含む出力文として出力する。
以下、ユーザとの対話によりユーザが探索を要望する情報についての絞り込みを進行させる具体的な態様について実施例として説明する。
(実施例1)
実施例1では、ユーザが探索を要望する情報についての絞り込みを進行させるタスクとして複数の自覚症状から病気を絞り込むタスク(問診)を行う場合の例について説明する。すなわち、探索の対象が患者の病状であり、第1タイプの質問であるオープン質問がユーザが自覚する症状を尋ねる内容を示し、第2タイプの質問であるクローズド質問が病状を特定するための複数の症状の一があるか否かを尋ねる内容を示す場合について説明する。
図6Aは、実施の形態1の実施例1に係るタスクデータ131の一例を示す図である。
図6Aには、タスクデータ131の一例として、病気と自覚症状(以下、単に症状とする)との関係を有向グラフの形式で表現した知識ベースが示されている。なお、図6Aは、巨大な知識ベースの一部を例示したものに該当する。
一般に、知識を表現した有向グラフにおいて、丸をノードと呼び、矢印をエッジと呼ぶ。1つのノードと別のノードとをエッジで結んだ3つ組をトリプルと呼ぶ。ノードには概念が結び付けられ、エッジ(線分)により2つの概念間の関係が結び付けられ、トリプルで表される概念と概念の関係が、知識の構成単位となっている。
図6Aに示す例では、病気(病名)が探索の対象となる複数の候補に該当し、症状が特徴、属性または条件等を示す要素情報(キーワード)に該当する。また、図6Aでは、例えばnode1の「風邪」が頭痛、発熱、咳、鼻水または下痢などのnode2の症状を引き起こすという関係が示されており、node2の「頭痛」には、急性鼻炎など発熱を伴うnode1の病気が他にもあるという関係などが示されている。
したがって、[node1 Causes node2]のnode2を検索キーワードとして、それと結び付けられているnode1を検索対象とし、複数のキーワードのAND検索のキーワードを増やしていくことで、複数条件を満たす情報を絞り込める。このようにして、複数の症状から病気を絞り込むことができる。
ここで、キーワードには、正のキーワードと負のキーワードとがあり、正のキーワードはそのキーワードを含むという条件で検索を行うことを意味し、負のキーワードは、そのキーワードを含まないという条件で検索を行うことを意味する。
また、例えば決定木のアルゴリズムなど、複数のキーワードに、どのキーワードを足したら情報を絞り込むのに有効かを調べるアルゴリズムがある。このようなアルゴリズムを用いると、例えば、現在までに絞り込まれた情報を、あるキーワードにリンクしているグループと、そのキーワードにリンクしていないグループとの2つのグループに分けたときに、2つのグループのサイズ(病気の数)が、なるべく等しくなるようなキーワードを絞込みに有効なキーワードとして選ぶことができる。本実施例では、絞り込みに有効なキーワードは、ユーザの回答を取得した都度、所定のアルゴリズムに従って算出される。
図6Bは、実施の形態1の実施例1に係る文生成データ132の一例を示す図である。図6Bには、情報処理装置100が参照するオープン質問のテンプレート、および、クローズド質問のテンプレートの一例が示されている。
すなわち、情報処理装置100が探索の対象に関するオープンタイプの質問を出力する場合、ユーザとの対話の開始時には、図6Bに示すオープン質問の1番目「今日はどうされましたか?」という質問文を生成し、その後には、図6Bに示すオープン質問の2番目以降「他に何か気になる症状はありますか?」という質問文を(繰り返し)生成する。
また、情報処理装置100が探索の対象に関するクローズドタイプの質問を出力する場合、条件による場合分けのない1つのテンプレートを用いて図6Bに示すクローズド質問「(症状X)はありますか?」を出力する。そして、(症状X)の部分は、図6Aに示すタスクデータ131のnode2に示されるキーワードの一が当てはめられる。なお、(症状X)には、情報処理装置100がタスクデータ131を参照することで得られる、node2に示されるキーワードのうち、絞込みに有効なキーワードとして都度選択した一のキーワードを当てはめるとよい。
なお、図6Bに示す例では、同じ内容の質問文にはバリエーションを持たせていないが、同じ内容の質問文にバリエーションを持たせた複数のテンプレートからランダムに選んで質問文を生成するとしてもよい。
図7は、実施の形態1の実施例1に係る表示画面の一例を示す図である。表示画面D21は、ステップS20のオープン質問ループの処理における対話の一例を示しており、表示画面D31は、ステップS30のクローズド質問ループの処理における対話の一例を示している。表示画面D41は、ステップS40により提示された結論の一例を示している。
以下、図4および図5で説明した処理に沿って説明する。
初期状態において、探索の対象となる複数の病気の候補すなわち疾病情報の候補は987件登録されているとする。
この場合、表示画面D21に示されるように、まず、情報処理装置100は、ステップS21において、図6Bを参照して、探索の対象に関するオープンタイプの質問として、1番目「今日はどうされましたか?」を出力し、ユーザは「頭痛がします」と回答している。情報処理装置100は、ユーザの回答から、キーワード「頭痛」を抽出し、抽出したキーワード「頭痛」を用いて疾病情報の候補を35件に絞っている。次いで、情報処理装置100は、ステップS22において、ステップS21で取得したユーザの回答にオープン質問終了トリガーがあるか否かを判定する。ユーザの回答「頭痛がします」には、ネガティブな表現が含まれておらず第1条件を満たさないので、ステップS21に戻る。
次に、情報処理装置100は、ステップS21において、図6Bを参照して、探索の対象に関するオープンタイプの2番目の質問として、2番目以降「他に何か気になる症状はありますか?」を出力し、ユーザは「熱もあります」と回答している。情報処理装置100は、ユーザの回答から、キーワード「発熱」を抽出し、抽出したキーワード「発熱」により疾病情報の候補を8件に絞っている。次いで、情報処理装置100は、ステップS22において、ステップS21で取得したユーザの回答がオープン質問終了トリガーがあるか否かを判定する。ユーザの回答「熱もあります」には、ネガティブな表現が含まれていないので、再度ステップS21に戻る。
次に、情報処理装置100は、ステップS21において、図6Bを参照して、探索の対象に関するオープンタイプの3番目の質問として、2番目以降「他に何か気になる症状はありますか?」を出力し、ユーザは「特にないです」と回答している。情報処理装置100は、ユーザの回答から、理解結果として、ネガティブな表現を含んでいることが得られる。次いで、情報処理装置100は、ステップS22において、ステップS21で取得したユーザの回答にネガティブな表現が含まれておりオープン質問終了トリガーがあると判定する。そして、情報処理装置100は、オープン質問ループ(ステップS20)を抜けて、クローズド質問ループの処理(ステップS30)に進む。
次に、表示画面D31に示されるように、まず、情報処理装置100は、ステップS31において、図6Bを参照して、クローズド質問「(症状X)はありますか?」を選択し、症状Xに当てはめるべきキーワードとして、図6Aに示すタスクデータ131を参照して「咳」に決定する。このようにして、情報処理装置100は、探索の対象に関するクローズドタイプの質問として、「咳はありますか?」を出力し、ユーザは「はい」と回答している。情報処理装置100は、ユーザの回答から、キーワード「咳」を抽出し、抽出したキーワード「咳」が正のキーワードであると理解している。そして、抽出したキーワード「咳」を用いて、疾病情報の候補を4件に絞っている。次いで、情報処理装置100は、ステップS32において、ステップS31で取得したユーザの回答にクローズド質問の終了トリガーがあるか否かを判定する。例えば、ユーザの回答により絞り込まれた疾病情報の候補の数は4件であり、予め定められた値である1件以下ではなく第2条件を満たさないので、ステップS31に戻る。
なお、「咳はありますか?」よりも、「咳は出ますか?」を出力する方が、自然性が高い。そのため、図6Bに示すクローズド質問のテンプレートに、「(症状X)はありますか?」と類似する意味を示す複数のテンプレートがある場合、情報処理装置100は、症状Xに当てはめるキーワードに依存して、当該複数のテンプレートから、より自然性の高いテンプレートを選んで出力するとしてもよい。
次に、情報処理装置100は、ステップS31において、上記と同様の手法により、探索の対象に関するクローズドタイプの質問として、「下痢はありますか?」を出力し、ユーザは「はい」と回答している。情報処理装置100は、ユーザの回答から、キーワード「下痢」を抽出し、抽出したキーワード「下痢」が正のキーワードであると理解している。そして、抽出したキーワード「下痢」を用いて、疾病情報の候補を2件に絞っている。次いで、情報処理装置100は、ステップS32において、ステップS31で取得したユーザの回答により絞り込まれた疾病情報の候補の数は2件であり、予め定められた値である1件以下ではないので、再度ステップS31に戻る。
次に、情報処理装置100は、ステップS31において、上記と同様の手法により、探索の対象に関するクローズドタイプの質問として、「鼻水はありますか?」を出力し、ユーザは「はい」と回答している。情報処理装置100は、ユーザの回答から、キーワード「鼻水」を抽出し、抽出したキーワード「鼻水」が正のキーワードであると理解している。そして、抽出したキーワード「鼻水」を用いて、疾病情報の候補を1件に絞っている。次いで、情報処理装置100は、ステップS32において、ユーザの回答により絞り込まれた疾病情報の候補の数は1件であり、予め定められた値である1件以下であり第2条件を満たすので、クローズド質問終了トリガーがあると判定する。このようにして、情報処理装置100は、クローズド質問ループ(ステップS30)を抜けて、ステップS40に進む。
最後に、情報処理装置100は、ステップS40において、病気は「風邪」ではないかという結論を提示する「風邪のようです」を出力し、ユーザに提示される。
以上のように、情報処理装置100は、ユーザに対して、常に質問を生成することで、対話の流れの主導権を握っている、すなわちシステム主導の対話制御を行っている。情報処理装置100は、まず、ユーザの発話による絞り込み条件の提示が終了するまでオープン質問を繰り返すことで、ユーザが探索を要望する情報に関する条件をすべて取り込むことができ、ユーザの満足度を高めることができる。そして、情報処理装置100は、その後にクローズド質問を繰り返すことで、ユーザが探索を要望する情報をさらに絞り込む。このようにして、ユーザが探索を要望する情報に関する条件を漏れなく取得できるので、ユーザの所望の探索対象の候補を確実に絞り込んで提示することができる。つまり、ユーザが探索を要望する探索の対象の候補を提供するというタスクが達成されるので、ユーザの満足度も高めることができる。
(実施例2)
実施例2では、ユーザが探索を要望する情報についての絞り込みを進行させるタスクとして、複数の条件を満たすレシピを絞り込むタスクを行う場合の例について説明する。すなわち、探索の対象が複数の料理のレシピまたはメニューであり、第1タイプの質問であるオープン質問が複数の料理のレシピまたはメニューを絞り込む条件を尋ねる内容を示し、第2タイプの質問であるクローズド質問が複数の料理のレシピまたはメニューを絞り込む条件の一をリクエストするか否かを尋ねる内容を示す場合について説明する。
図8Aは、実施の形態1の実施例2に係るタスクデータ131の一例を示す図である。
図8Aには、タスクデータ131の一例として、料理とその分類項目との関係、および、料理と食材との関係を有向グラフの形式で表現した知識ベースが示されている。換言すると、タスクデータ131には、複数の料理のレシピと、複数の料理のレシピ毎の分類を示す分類情報と、複数の料理のレシピ毎に用いられる食材を示す食材情報とが対応付けられている。なお、図8Aは、図6Aと同様に、巨大な知識ベースの一部を例示したものに該当する。
図8Aに示す例では、料理1、2が探索の対象となる複数の候補に該当し、洋風、焼き物、玉葱等が特徴、属性または条件等を示す要素情報(キーワード)に該当する。また、図8Aでは、例えばnode1の料理1および料理2がnode2の洋風料理の一種であり、かつ、node2の焼き物料理の一種であるという関係が示されている。また、node1の料理1および料理2にはnode2の玉葱と長芋とが材料として使われるという関係が示されている。また、玉葱と長芋の上位概念である土物も、料理1および料理2の材料であるとの関係が示されている。以上の関係を示すために、関係詞は、”IsA”と”HasA”の2種類が適用されている。
したがって、[node1 IsA node2]または[node1 HasA node2]におけるnode2をキーワードとして、それと結び付けられているnode1を検索対象として、複数のキーワードのAND検索のキーワードを増やしていくことで、複数条件を満たす情報を絞り込める。このようにして、複数の条件から所望の料理のレシピ情報を絞り込むことができる。
図8Bは、実施の形態1の実施例2に係る文生成データ132の一例を示す図である。図8Bには、情報処理装置100が参照するオープン質問のテンプレート、および、クローズド質問のテンプレートの一例が示されている。
すなわち、情報処理装置100が探索の対象に関するオープンタイプの質問を出力する場合、ユーザとの対話の開始時には、図8Bに示すオープン質問の1番目「どんなレシピをお探しですか?」という質問文を生成し、その後には、図8Bに示すオープン質問の2番目以降「他に何か条件はありますか?」という質問文を(繰り返し)生成する。
また、情報処理装置100が探索の対象に関するクローズドタイプの質問を出力する場合、キーワード(node2)と検索対象(node1)との関係が、IsAであるか、HasAであるかを条件として、図8Bに示すテンプレートを用いてクローズド質問を出力する。情報処理装置100は、IsAである場合には、図8Bに示すクローズド質問「(node2)にしますか?」を出力し、HasAである場合には、図8Bに示すクローズド質問「(node2)にしますか?」を出力する。
図9は、実施の形態1の実施例2に係る表示画面の一例を示す図である。
表示画面D22は、ステップS20のオープン質問ループの処理における対話の一例を示しており、表示画面D32は、ステップS30のクローズド質問ループの処理における対話の一例を示している。表示画面D42は、ステップS40により提示された結論の一例を示している。
以下、図4および図5で説明した処理に沿って説明する。
初期状態において、探索の対象となる複数のレシピまたはメニューの候補すなわちレシピ情報は1987件登録されているとする。
この場合、表示画面D22に示されるように、まず、情報処理装置100は、ステップS21において、図8Bを参照して、探索の対象に関するオープンタイプの質問として、1番目「どんなレシピをお探しですか?」を出力し、ユーザは「洋風がいいです」と回答している。情報処理装置100は、ユーザの回答から、キーワード「洋風」を抽出し、抽出したキーワード「洋風」を用いてレシピの情報の候補を158件に絞っている。次いで、情報処理装置100は、ステップS22において、ステップS21で取得したユーザの回答にオープン質問終了トリガーがあるか否かを判定する。ユーザの回答「洋風がいいです」には、ネガティブな表現が含まれておらず第1条件を満たさないので、ステップS21に戻る。
次に、情報処理装置100は、ステップS21において、図8Bを参照して、探索の対象に関するオープンタイプの質問として、2番目以降「他に何か条件はありますか?」を出力し、ユーザは、「焼き物で」と回答している。情報処理装置100は、ユーザの回答から、キーワード「焼き物」を抽出し、抽出したキーワード「焼き物」により、レシピ情報の候補を47件に絞っている。次いで、情報処理装置100は、ステップS22において、ステップS21で取得したユーザの回答がオープン質問終了トリガーがあるか否かを判定する。ユーザの回答「焼き物で」には、ネガティブな表現が含まれていないので、再度ステップS21に戻る。
次に、情報処理装置100は、ステップS21において、図8Bを参照して、探索の対象に関するオープンタイプの質問として、3番目以降「他に何か条件はありますか?」を出力し、ユーザは「特にないです」と回答している。情報処理装置100は、ユーザの回答から、理解結果として、ネガティブな表現を含んでいることが得られる。次いで、情報処理装置100は、ステップS22において、ステップS21で取得したユーザの回答にネガティブな表現が含まれておりオープン質問終了トリガーがあると判定する。そして、情報処理装置100は、オープン質問ループ(ステップS20)を抜けて、クローズド質問ループの処理(ステップS30)に進む。
次に、表示画面D32に示されるように、まず、情報処理装置100は、ステップS31において、キーワード「土物」および、適用される関係詞”HasA”が与えられているとすると、図8Bを参照して、クローズド質問「(node2)を使っていいですか?」を選択する。その結果、情報処理装置100は、「土物を使っていいですか?」を出力し、ユーザは「はい」と回答している。情報処理装置100は、ユーザの回答から、キーワード「土物」を抽出し、抽出したキーワード「土物」が正のキーワードであると理解している。そして、抽出したキーワード「土物」を用いて、レシピ情報の候補を21件に絞っている。次いで、情報処理装置100は、ステップS32において、ステップS31で取得したユーザの回答にクローズド質問の終了トリガーがあるか否かを判定する。例えば、ユーザの回答により絞り込まれたレシピ情報の候補の数は21件であり、予め定められた値である4件以下ではなく第2条件を満たさないので、ステップS31に戻る。
次に、情報処理装置100は、ステップS31において、上記と同様の手法により、探索の対象に関するクローズドタイプの質問として、「魚料理でいいですか?」を出力し、ユーザは「はい」と回答している。情報処理装置100は、ユーザの回答から、キーワード「魚料理」を抽出し、抽出したキーワード「魚料理」が正のキーワードであると理解している。そして、抽出したキーワード「魚料理」を用いて、レシピ情報の候補を8件に絞っている。次いで、情報処理装置100は、ステップS32により、ステップS31で取得したユーザの回答により絞り込まれたレシピ情報の候補の数は8件であり、予め定められた値である4件以下ではないので、再度ステップS31に戻る。
次に、情報処理装置100は、ステップS31において、上記と同様の手法により、探索の対象に関するクローズドタイプの質問として、「乳製品を使ってもいいですか?」を出力し、ユーザは「はい」と回答している。情報処理装置100は、ユーザの回答から、キーワード「乳製品」を抽出し、抽出したキーワード「乳製品」が正のキーワードであると理解している。そして、抽出したキーワード「乳製品」を用いて、レシピ情報の候補を4件に絞っている。次いで、情報処理装置100は、ステップS32において、ユーザの回答により絞り込まれたレシピ情報の候補の数は4件であり、予め定められた値である4件以下であり第2条件を満たすので、クローズド質問終了トリガーとがあると判定する。このようにして、情報処理装置100は、クローズド質問ループ(ステップS30)を抜けて、ステップS40に進む。
最後に、情報処理装置100は、ステップS40において、4つのレシピ情報が条件を満たしているという結論を提示する「4つのレシピが見つかりました。」を出力し、ユーザに提示される。
以上のように実施例1の情報処理装置100は、実施例1と同様に、ユーザが探索を要望する情報に関する条件を漏れなく取得できるので、ユーザの所望の探索対象の候補を確実に絞り込んで提示することができる。つまり、実施例1で例示したタスクデータ131と文生成データ132とを置き換えるだけで、実施例1と異なる実施例2においても同様にタスクを達成できる。
(実施例3)
実施例3では、ユーザが探索を要望する情報についての絞り込みを進行させるタスクとして複数の条件を満たす旅行プランを絞り込むタスクを行う場合の例について説明する。すなわち、探索の対象が複数の旅行のプランであり、第1タイプの質問であるオープン質問が複数の旅行プランに対する条件を尋ねる内容を示し、第2タイプの質問であるクローズド質問が複数の旅行プランを絞り込む条件の一をリクエストするか否かを尋ねる内容を示す場合について説明する。
図10Aは、実施の形態1の実施例3に係るタスクデータ131の一例を示す図である。図10Aには、タスクデータ131の一例として、旅行のプランと条件との関係を有向グラフの形式で表現した知識ベースが示されている。なお、図10Aは、巨大な知識ベースの一部を例示したものに該当する。
図10Aに示す例では、プラン1、2が探索の対象となる複数の候補に該当し、イタリア、2名等の条件が特徴、属性または条件等を示す要素情報(キーワード)に該当する。また、図10Aでは、例えばnode1の「プラン1」がイタリア、2名、5泊、10万以下などのnode2の条件を満たすという関係が示されており、node2の「イタリア」には、プラン2など10万以下であるnode1の旅行のプランが他にもあるという関係などが示されている。以上の関係を示すために、関係詞は、”HasProperty”が適用されている。
したがって、[node1 HasProperty node2]のnode2を検索キーワードとして、それと結び付けられているnode1を検索対象とし、複数のキーワードのAND検索のキーワードを増やしていくことで、複数条件を満たす情報を絞り込める。このようにして、複数の条件から旅行プランを絞り込むことができる。
図10Bは、実施の形態1の実施例3に係る文生成データ132の一例を示す図である。図10Bには、情報処理装置100が参照するオープン質問のテンプレート、および、クローズド質問のテンプレートの一例が示されている。
すなわち、情報処理装置100が探索の対象に関するオープンタイプの質問を出力する場合、ユーザとの対話の開始時には、図10Aに示すオープン質問の1番目「どんな旅行プランをお探しですか?」という質問文を生成し、その後に、図10Bに示すオープン質問の2番目以降「他に何か条件はありますか?」という質問文を(繰り返し)生成する。
また、情報処理装置100が探索の対象に関するクローズドタイプの質問を出力する場合、条件による場合分けのない1つのテンプレートからなる図10Bに示すクローズド質問「(条件X)でいいですか?」を用いる。そして、(条件X)の部分は、図10Aに示すタスクデータ131のnode2に示されるキーワードの一が当てはめられる。なお、(条件X)には、情報処理装置100がタスクデータ131を参照することで得られる、node2に示されるキーワードのうち、絞込みに有効なキーワードとして都度選択した一のキーワードを当てはめるとよい。
図11は、実施の形態1の実施例3に係る表示画面の一例を示す図である。表示画面D23は、ステップS20のオープン質問ループの処理における対話の一例を示しており、表示画面D33は、ステップS30のクローズド質問ループの処理における対話の一例を示している。表示画面D43は、ステップS40により提示された結論の一例を示している。
以下、図4および図5で説明した処理に沿って説明する。
初期状態において、探索の対象となる複数の旅行プランの候補すなわちプラン情報の候補は9870件登録されているとする。
この場合、表示画面D23に示されるように、まず、情報処理装置100は、ステップS21において、図10Bを参照して、探索の対象に関するオープンタイプの質問として、1番目「どんな旅行プランをお探しですか?」を出力し、ユーザは「イタリア行きがいいです」と回答している。情報処理装置100は、ユーザの回答から、キーワード「イタリア」を抽出し、抽出したキーワード「イタリア」を用いて、プラン情報の候補を35件に絞っている。次いで、情報処理装置100は、ステップS22において、ステップS21で取得したユーザの回答にオープン質問終了トリガーがあるか否かを判定する。ユーザの回答「イタリア行きがいいです」には、ネガティブな表現が含まれておらず第1条件を満たさないので、ステップS21に戻る。
次に、情報処理装置100は、ステップS21において、図10Bを参照して、探索の対象に関するオープンタイプの質問として2番目以降「他に何か条件はありますか?」を出力し、ユーザは「5泊で」と回答している。情報処理装置100は、ユーザの回答から、キーワード「5泊」を抽出し、抽出したキーワード「5泊」によりプラン情報の候補を8件に絞っている。次いで、情報処理装置100は、ステップS22において、ステップS21で取得したユーザの回答がオープン質問終了トリガーがあるか否かを判定する。ユーザの回答「5泊で」には、ネガティブな表現が含まれていないので、再度ステップS21に戻る。
次に、情報処理装置100は、ステップS21において、図10Bを参照して、探索の対象に関するオープンタイプの質問として2番目以降「他に何か条件はありますか?」を出力し、ユーザは「特にないです」と回答している。情報処理装置100は、ユーザの回答から、理解結果として、ネガティブな表現を含んでいることが得られる。次いで、情報処理装置100は、ステップS22において、ステップS21で取得したユーザの回答にネガティブな表現が含まれておりオープン質問終了トリガーがあると判定し、オープン質問ループ(ステップS20)を抜けて、クローズド質問ループの処理(ステップS30)に進む。
次に、表示画面D33に示されるように、まず、情報処理装置100は、ステップS31において、図10Bを参照して、クローズド質問「(条件X)でいいですか?」を選択し、条件Xに当てはめるべきキーワードとして、図10Aに示すタスクデータ131を参照して「2名」に決定する。このようにして、情報処理装置100は、探索の対象に関するクローズドタイプの質問として、「2名でいいですか?」を出力し、ユーザは「はい」と回答している。情報処理装置100は、ユーザの回答から、キーワード「2名」を抽出し、抽出したキーワード「2名」が正のキーワードであると理解している。そして、抽出したキーワード「2名」を用いて、プラン情報の候補を4件に絞っている。次いで、情報処理装置100は、ステップS32において、ステップS31で取得したユーザの回答にクローズド質問の終了トリガーがあるか否かを判定する。例えば、ユーザの回答により絞り込まれたプラン情報の候補の数は4件であり、予め定められた値である1件以下ではなく第2条件を満たさないので、ステップS31に戻る。
次に、情報処理装置100は、ステップS31において、上記と同様の手法により、探索の対象に関するクローズドタイプの質問として、「10万以下でいいですか?」を出力し、ユーザは「はい」と回答している。情報処理装置100は、ユーザの回答から、キーワード「10万以下」を抽出し、抽出したキーワード「10万以下」が正のキーワードであると理解している。そして、抽出したキーワード「10万以下」を用いて、プラン情報の候補を2件に絞っている。次いで、情報処理装置100は、ステップS32において、ステップS31で取得したユーザの回答により絞り込まれたプラン情報の候補の数は2件であり、予め定められた値である1件以下ではないので、再度ステップS31に戻る。
次に、情報処理装置100は、ステップS31において、上記と同様の手法により、探索の対象に関するクローズドタイプの質問として、「自由行動ありでいいですか?」を出力し、ユーザは「いいえ」と回答している。情報処理装置100は、ユーザの回答から、キーワード「自由行動あり」を抽出し、抽出したキーワード「自由行動あり」が負のキーワードであると理解している。そして、抽出したキーワード「自由行動あり」を用いて、プラン情報の候補を1件に絞っている。次いで、情報処理装置100は、ステップS32において、ユーザの回答により絞り込まれたプラン情報の候補の数は1件であり、予め定められた値である1件以下であり第2条件を満たすので、クローズド質問終了トリガーがあると判定する。このようにして、情報処理装置100は、クローズド質問ループ(ステップS30)を抜けて、ステップS40に進む。
最後に、情報処理装置100は、ステップS40において、結論「プラン2を紹介します」を出力し、ユーザに提示される。
(実施例4)
実施例4では、ユーザが探索を要望する情報についての絞り込みを進行させるタスクとして複数の条件を満たす不動産の物件を絞り込むタスクを行う場合の例について説明する。すなわち、探索の対象が複数の不動産の物件であり、第1タイプの質問であるオープン質問が複数の不動産の物件に対する条件を尋ねる内容を示し、第2タイプの質問であるクローズド質問が複数の不動産の物件を絞り込む条件の一をリクエストするか否かを尋ねる内容を示す場合について説明する。
図12Aは、実施の形態1の実施例4に係るタスクデータ131の一例を示す図である。図12Aには、タスクデータ131の一例として、不動産の物件と条件との関係を有向グラフの形式で表現した知識ベースが示されている。なお、図12Aは、巨大な知識ベースの一部を例示したものに該当する。
図12Aに示す例では、物件1、2が探索の対象となる複数の候補に該当し、マンション、築浅、駅近等の条件が要素情報(キーワード)に該当する。また、図12Aでは、例えばnode1の「物件1」がマンション、築浅、駅近、2階以上、床暖ありなどのnode2の条件を満たすという関係が示されており、node2の「マンション」には、物件2など駅近であるnode1の不動産の物件が他にもあるという関係などが示されている。以上の関係を示すために、関係詞は、”HasProperty”が適用されている。
したがって、[node1 HasProperty node2]のnode2を検索キーワードとして、それと結び付けられているnode1を検索対象とし、複数のキーワードのAND検索のキーワードを増やしていくことで、複数条件を満たす情報を絞り込める。このようにして、複数の条件から不動産の物件を絞り込むことができる。
図12Bは、実施の形態1の実施例4に係る文生成データ132の一例を示す図である。図12Bには、情報処理装置100が参照するオープン質問のテンプレート、および、クローズド質問のテンプレートの一例が示されている。
すなわち、情報処理装置100が探索の対象に関するオープンタイプの質問を出力する場合、ユーザとの対話の開始時には、図12Aに示すオープン質問の1番目「どんな物件をお探しですか?」という質問文を生成し、その後に、図12Bに示すオープン質問の2番目以降「他に何か条件はありますか?」という質問文を(繰り返し)生成する。
また、情報処理装置100が探索の対象に関するクローズドタイプの質問を出力する場合、条件による場合分けのない1つのテンプレートからなる図12Bに示すクローズド質問「(条件X)の方がいいですか?」を用いる。そして、(条件X)の部分は、図12Aに示すタスクデータ131のnode2に示されるキーワードの一が当てはめられる。なお、(条件X)には、情報処理装置100がタスクデータ131を参照することで得られる、node2に示されるキーワードのうち、絞込みに有効なキーワードとして都度選択した一のキーワードを当てはめるとよい。
図13は、実施の形態1の実施例4に係る表示画面の一例を示す図である。表示画面D24は、ステップS20のオープン質問ループの処理における対話の一例を示しており、表示画面D34は、ステップS30のクローズド質問ループの処理における対話の一例を示している。表示画面D44は、ステップS40により提示された結論の一例を示している。
以下、図4および図5で説明した処理に沿って説明する。
初期状態において、探索の対象となる複数の不動産の物件の候補すなわち物件情報の候補は98700件登録されているとする。
この場合、表示画面D24に示されるように、まず、情報処理装置100は、ステップS21において、図12Bを参照して、探索の対象に関するオープンタイプの質問として、1番目「どんな物件をお探しですか?」を出力し、ユーザは「門真市内がいいです」と回答している。情報処理装置100は、ユーザの回答から、キーワード「門真市内」を抽出し、抽出したキーワード「門真市内」を用いて、物件情報の候補を350件に絞っている。次いで、情報処理装置100は、ステップS22において、ステップS21で取得したユーザの回答にオープン質問終了トリガーがあるか否かを判定する。ユーザの回答「門真市内がいいです」には、ネガティブな表現が含まれておらず第1条件を満たさないので、ステップS21に戻る。
次に、情報処理装置100は、ステップS21において、図12Bを参照して、探索の対象に関するオープンタイプの質問として2番目以降「他に何か条件はありますか?」を出力し、ユーザは「駅から近いといいです」と回答している。情報処理装置100は、ユーザの回答から、キーワード「駅近」を抽出し、抽出したキーワード「駅近」により物件情報の候補を80件に絞っている。次いで、情報処理装置100は、ステップS22において、ステップS21で取得したユーザの回答にオープン質問終了トリガーがあるか否かを判定する。ユーザの回答「駅から近いといいです」には、ネガティブな表現が含まれていないので、再度ステップS21に戻る。
次に、情報処理装置100は、ステップS21において、図12Bを参照して、探索の対象に関するオープンタイプの質問として2番目以降「他に何か条件はありますか?」を出力し、ユーザは「特にないです」と回答している。情報処理装置100は、ユーザの回答から、理解結果として、ネガティブな表現を含んでいることが得られる。次いで、情報処理装置100は、ステップS22において、ステップS21で取得したユーザの回答にネガティブな表現が含まれておりオープン質問終了トリガーがあると判定し、オープン質問ループ(ステップS20)を抜けて、クローズド質問ループの処理(ステップS30)に進む。
次に、表示画面D34に示されるように、まず、情報処理装置100は、ステップS31において、図12Bを参照して、クローズド質問「(条件X)の方がいいですか?」を選択し、条件Xに当てはめるべきキーワードとして、図12Aに示すタスクデータ131を参照して「マンション」に決定する。このようにして、情報処理装置100は、探索の対象に関するクローズドタイプの質問として、「マンションの方がいいですか?」を出力し、ユーザは「はい」と回答している。情報処理装置100は、ユーザの回答から、キーワード「マンション」を抽出し、抽出したキーワード「マンション」が正のキーワードであると理解している。そして、抽出したキーワード「マンション」を用いて、物件情報の候補を40件に絞っている。次いで、情報処理装置100は、ステップS32において、ステップS31で取得したユーザの回答にクローズド質問の終了トリガーがあるか否かを判定する。例えば、ユーザの回答により絞り込まれた物件情報の候補の数は40件であり、予め定められた値である1件以下ではなく第2条件を満たさないので、ステップS31に戻る。
次に、情報処理装置100は、ステップS31において、上記と同様の手法により、探索の対象に関するクローズドタイプの質問として、「2階以上の方がいいですか?」を出力し、ユーザは「はい」と回答している。情報処理装置100は、ユーザの回答から、キーワード「2階以上」を抽出し、抽出したキーワード「2階以上」が正のキーワードであると理解している。そして、抽出したキーワード「2階以上」を用いて、物件情報の候補を2件に絞っている。次いで、情報処理装置100は、ステップS32において、ステップS31で取得したユーザの回答により絞り込まれた物件情報の候補の数は2件であり、予め定められた値である1件以下ではないので、再度ステップS31に戻る。
次に、情報処理装置100は、ステップS31において、上記と同様の手法により、探索の対象に関するクローズドタイプの質問として、「床暖ありの方がいいですか?」を出力し、ユーザは「はい」と回答している。情報処理装置100は、ユーザの回答から、キーワード「床暖あり」を抽出し、抽出したキーワード「床暖あり」が正のキーワードであると理解している。そして、抽出したキーワード「床暖あり」を用いて、物件情報の候補を1件に絞っている。次いで、情報処理装置100は、ステップS32において、ユーザの回答により絞り込まれた物件情報の候補の数は1件であり、予め定められた値である1件以下であり第2条件を満たすので、クローズド質問終了トリガーがあると判定する。このようにして、情報処理装置100は、クローズド質問ループ(ステップS30)を抜けて、ステップS40に進む。
最後に、情報処理装置100は、ステップS40において、結論「物件1を紹介します」を出力し、ユーザに提示される。
(実施例5)
実施例5では、ユーザが探索を要望する情報についての絞り込みを進行させるタスクとして複数の条件を満たす映像コンテンツを絞り込むタスクを行う場合の例について説明する。すなわち、探索の対象が複数の映像コンテンツであり、第1タイプの質問であるオープン質問が複数の映像コンテンツに対する条件を尋ねる内容を示し、第2タイプの質問であるクローズド質問が複数の映像コンテンツを絞り込む条件の一をリクエストするか否かを尋ねる内容を示す場合について説明する。
図14Aは、実施の形態1の実施例5に係るタスクデータ131の一例を示す図である。図14Aには、タスクデータ131の一例として、映像コンテンツと条件との関係を有向グラフの形式で表現した知識ベースが示されている。なお、図14Aは、巨大な知識ベースの一部を例示したものに該当する。
図14Aに示す例では、番組1、2が探索の対象となる複数の候補に該当し、ドラマ、深夜番組、テレビ関東等の条件が要素情報(キーワード)に該当する。また、図14Aでは、例えばnode1の「番組1」が俳優A出演、ドラマ、深夜番組、テレビ関東、学園ものなどのnode2の条件を満たすという関係が示されており、node2の「ドラマ」には、番組2など学園ものであるnode1の映像コンテンツが他にもあるという関係などが示されている。以上の関係を示すために、関係詞は、”HasProperty”が適用されている。
したがって、[node1 HasProperty node2]のnode2を検索キーワードとして、それと結び付けられているnode1を検索対象とし、複数のキーワードのAND検索のキーワードを増やしていくことで、複数条件を満たす情報を絞り込める。このようにして、複数の条件から映像コンテンツを絞り込むことができる。
図14Bは、実施の形態1の実施例5に係る文生成データ132の一例を示す図である。図14Bには、情報処理装置100が参照するオープン質問のテンプレート、および、クローズド質問のテンプレートの一例が示されている。
すなわち、情報処理装置100が探索の対象に関するオープンタイプの質問を出力する場合、ユーザとの対話の開始時には、図14Aに示すオープン質問の1番目「どんな番組をお探しですか?」という質問文を生成し、その後に、図14Bに示すオープン質問の2番目以降「他に何か条件はありますか?」という質問文を(繰り返し)生成する。
また、情報処理装置100が探索の対象に関するクローズドタイプの質問を出力する場合、条件による場合分けのない1つのテンプレートからなる図14Bに示すクローズド質問「(条件X)でいいですか?」を用いる。そして、(条件X)の部分は、図14Aに示すタスクデータ131のnode2に示されるキーワードの一が当てはめられる。なお、(条件X)には、情報処理装置100がタスクデータ131を参照することで得られる、node2に示されるキーワードのうち、絞込みに有効なキーワードとして都度選択した一のキーワードを当てはめるとよい。
図15は、実施の形態1の実施例5に係る表示画面の一例を示す図である。表示画面D25は、ステップS20のオープン質問ループの処理における対話の一例を示しており、表示画面D35は、ステップS30のクローズド質問ループの処理における対話の一例を示している。表示画面D45は、ステップS40により提示された結論の一例を示している。
以下、図4および図5で説明した処理に沿って説明する。
初期状態において、探索の対象となる複数の映像コンテンツの候補すなわち番組情報の候補は987件登録されているとする。
この場合、表示画面D25に示されるように、まず、情報処理装置100は、ステップS21において、図14Bを参照して、探索の対象に関するオープンタイプの質問として、1番目「どんな番組をお探しですか?」を出力し、ユーザは「ドラマがいいです」と回答している。情報処理装置100は、ユーザの回答から、キーワード「ドラマ」を抽出し、抽出したキーワード「ドラマ」を用いて、番組情報の候補を35件に絞っている。次いで、情報処理装置100は、ステップS22において、ステップS21で取得したユーザの回答にオープン質問終了トリガーがあるか否かを判定する。ユーザの回答「ドラマがいいです」には、ネガティブな表現が含まれておらず第1条件を満たさないので、ステップS21に戻る。
次に、情報処理装置100は、ステップS21において、図14Bを参照して、探索の対象に関するオープンタイプの質問として2番目以降「他に何か条件はありますか?」を出力し、ユーザは「深夜番組で」と回答している。情報処理装置100は、ユーザの回答から、キーワード「深夜番組」を抽出し、抽出したキーワード「深夜番組」により番組情報の候補を80件に絞っている。次いで、情報処理装置100は、ステップS22において、ステップS21で取得したユーザの回答がオープン質問終了トリガーがあるか否かを判定する。ユーザの回答「深夜番組で」には、ネガティブな表現が含まれていないので、再度ステップS21に戻る。
次に、情報処理装置100は、ステップS21において、図14Bを参照して、探索の対象に関するオープンタイプの質問として2番目以降「他に何か条件はありますか?」を出力し、ユーザは「特にないです」と回答している。情報処理装置100は、ユーザの回答から、理解結果として、ネガティブな表現を含んでいることが得られる。次いで、情報処理装置100は、ステップS22において、ステップS21で取得したユーザの回答にネガティブな表現が含まれておりオープン質問終了トリガーがあると判定し、オープン質問ループ(ステップS20)を抜けて、クローズド質問ループの処理(ステップS30)に進む。
次に、表示画面D35に示されるように、まず、情報処理装置100は、ステップS31において、図14Bを参照して、クローズド質問「(条件X)でいいですか?」を選択し、条件Xに当てはめるべきキーワードとして、図14Aに示すタスクデータ131を参照して「学園もの」に決定する。このようにして、情報処理装置100は、探索の対象に関するクローズドタイプの質問として、「学園ものでいいですか?」を出力し、ユーザは「はい」と回答している。情報処理装置100は、ユーザの回答から、キーワード「学園もの」を抽出し、抽出したキーワード「学園もの」が正のキーワードであると理解している。そして、抽出したキーワード「学園もの」を用いて、番組情報の候補を4件に絞っている。次いで、情報処理装置100は、ステップS32において、ステップS31で取得したユーザの回答にクローズド質問の終了トリガーがあるか否かを判定する。例えば、ユーザの回答により絞り込まれた番組情報の候補の数は4件であり、予め定められた値である1件以下ではなく第2条件を満たさないので、ステップS31に戻る。
次に、情報処理装置100は、ステップS31において、上記と同様の手法により、探索の対象に関するクローズドタイプの質問として、「俳優A出演でいいですか?」を出力し、ユーザは「いいえ」と回答している。情報処理装置100は、ユーザの回答から、キーワード「俳優A出演」を抽出し、抽出したキーワード「俳優A出演」が負のキーワードであると理解している。そして、抽出したキーワード「俳優A出演」を用いて、番組情報の候補を2件に絞っている。次いで、情報処理装置100は、ステップS32において、ステップS31で取得したユーザの回答により絞り込まれた番組情報の候補の数は2件であり、予め定められた値である1件以下ではないので、再度ステップS31に戻る。
次に、情報処理装置100は、ステップS31において、上記と同様の手法により、探索の対象に関するクローズドタイプの質問として、「テレビ関東でいいですか?」を出力し、ユーザは「はい」と回答している。情報処理装置100は、ユーザの回答から、キーワード「テレビ関東」を抽出し、抽出したキーワード「テレビ関東」が正のキーワードであると理解している。そして、抽出したキーワード「テレビ関東」を用いて、番組情報の候補を1件に絞っている。次いで、情報処理装置100は、ステップS32において、ユーザの回答により絞り込まれた番組情報の候補の数は1件であり、予め定められた値である1件以下であり第2条件を満たすので、クローズド質問終了トリガーがあると判定する。このようにして、情報処理装置100は、クローズド質問ループ(ステップS30)を抜けて、ステップS40に進む。
最後に、情報処理装置100は、ステップS40において、結論「番組2が見つかりました」を出力し、ユーザに提示される。
[効果等]
以上のように、本実施の形態における情報処理装置等は、ユーザが探索を要望する情報に関する条件を漏れなく取得できる。
より具体的には、本実施の形態における情報処理装置等は、ユーザに対して、常に質問を生成することで、対話の流れの主導権を握っている、すなわちシステム主導の対話制御を行っている。また、ユーザが探索を要望する情報の絞り込みに関しては、まず、オープン質問から始め、ユーザに委ねたユーザの発話による絞り込み条件の提示が終了するまでオープン質問を繰り返す。これによって、ユーザは自由に発言でき対話の内容に関する不満を感じないだけでなく、ユーザの発話による絞り込み条件をもれなく取得できる。また、その後のクローズド質問は、ユーザが探索を要望する情報が十分に絞り込まれるまで繰り返されるので、ユーザが探索を要望する情報に関する条件を漏れなく取得できる。これにより、ユーザの所望の探索対象の候補を確実に絞り込んで提示することができる。
なお、ステップS30において、絞込みが十分なされた場合にステップS40に移行するという条件は、同様に、ステップS20において導入されてもよい。
(実施の形態2)
実施の形態1では、オープン質問に対するユーザの回答から抽出したキーワードがデータベース13に含まれている場合を前提に説明したが、それに限らない。以下では、オープン質問に対するユーザの回答から抽出したキーワードがデータベース13に含まれていない場合があるときについて実施の形態2として説明する。なお、実施の形態1と同じ点は説明を省略し、実施の形態1と異なる点を中心に説明する。また、実施の形態1と重複する図面については、実施の形態1に適用された図面を用いる。
[情報処理装置100Aの構成]
図16は、実施の形態2に係る情報処理装置100Aの構成の一例を示すブロック図である。
実施の形態2に係る情報処理装置100Aは、実施の形態1に係る情報処理装置100に対して、対話制御部12Aとデータベース13Aとの構成が異なる。
<対話制御部12A>
対話制御部12Aは、入力処理部11が出力する理解結果とデータベース13Aとを用いてユーザに対する対話である出力文を決定する機能を有する。また、対話制御部12Aは、出力文を決定する機能のみならず、ユーザの欲する情報すなわちユーザが探索を要望する情報の候補の数を管理したり、決定した出力文に対するユーザの応答の例として提示すべき情報を、管理情報として管理する機能も有する。
本実施の形態では、対話制御部12Aは、入力処理部11が出力する理解結果であるユーザの回答に含まれるキーワードが、タスクデータ131Aに含まれていない場合には、当該キーワードに関連した知識を獲得するための質問文である出力文を決定する。
より具体的には、対話制御部12Aは、入力処理部11により取得させた第1タイプの質問に対する回答が第1条件を満たしておらず、かつ、探索の対象に関する情報が格納されたデータベース13Aに基づいて、当該回答に含まれる語句(キーワード)に対応する語句がデータベース13Aに含まれていないと判断する場合、出力処理部14に、データベース13Aに含まれていない当該回答に含まれる語句(キーワード)についての説明内容を回答するようにリクエストする第1タイプの質問を出力させる。ここで、データベース13Aに含まれていない当該回答に含まれる語句についての説明内容は、知識獲得タイプの質問であり、探索の対象の具体例の一つを含む質問である。
一方、対話制御部12Aは、入力処理部11により取得させた第1タイプの質問に対する回答が第1条件を満たしていないが、当該回答に含まれる語句(キーワード)に対応する語句がデータベース13Aに含まれていると判断する場合、出力処理部14に、探索の対象に関する第1タイプの質問である質問を出力させる。
そして、対話制御部12Aは、入力処理部11により取得された、ユーザによって入力された当該質問に対する回答に基づく情報をデータベース13Aに登録する。
このように、本実施の形態では、対話制御部12Aには、入力処理部11により取得させた第1タイプの質問に対する回答に含まれる語句(キーワード)に対応する語句がデータベース13Aに含まれているか否かを判定する判定機能が追加されている。また、対話制御部12Aには、例えばキーワード、知識を獲得するための質問文に対する回答に含まれる情報であるキーワード等をデータベース13Aに追加格納する格納機能が追加されている。なお、当該判定機能において、入力処理部11により取得させた第1タイプの質問に対する回答が第1条件を満たしているか否かの判定は必須ではない。
<データベース13A>
本実施の形態では、データベース13Aは、図16に示すように、タスクデータ131Aと、文を生成するために参照される文生成データ132Aとで構成されている。
タスクデータ131Aは、実施の形態1と同様に例えば知識ベースの一例であるが、本実施の形態では、知識を獲得するための質問文により得た知識が追加される。その他は、実施の形態1と同様であるため説明を省略する。
文生成データ132Aは、対話制御部12Aが参照するオープン質問のテンプレートおよびクローズド質問のテンプレートを格納するのに加えて、知識を獲得するための質問のテンプレートが格納されている。
[情報処理装置100Aの処理]
次に、以上のように構成された情報処理装置100Aの処理について説明する。
図17Aは、実施の形態2に係るオープン質問ループの詳細の一例を示すフローチャートである。図17Aは、図3のステップS20の詳細の一例であり、図4に示すフローチャートに知識を獲得するための質問の処理が追加されたものに該当する。なお、図4と同様の要素には同一の符号を付しており、詳細な説明は省略する。
図17Aに示すオープン質問ループ(ステップS20A)の処理において、情報処理装置100Aは、まず、探索の対象に関するオープンタイプの質問を出力し、その質問に対するユーザの回答を取得して理解するオープン質問応答の処理を行う(S21)。
ここで、ステップS21において出力した質問はオープンタイプの質問であるため、応答の内容の決定はユーザに委ねられる。そのため、情報処理装置100Aが想定しない内容が応答される可能性がある。つまり、情報処理装置100Aでは、タスクデータ131Aに予め用意されているキーワードを抽出することを期待しているが、ユーザはどういうキーワードが用意されているのか知らない。ユーザは、自身の発想により応答するため、情報処理装置100Aが抽出したキーワードは、タスクデータ131Aに予め用意されているキーワードに該当しない可能性がある。
次に、情報処理装置100Aは、ステップS211において、不足知識があるかを確認する。ステップS21におけるユーザの応答の理解結果に含まれるキーワードが、タスクデータ131Aに登録されているキーワードに該当しないときは知識が不足していると判定し(S211でyes)、ステップS212に進む。そうではない場合は(S211でno)、ステップS22に進む。
次に、情報処理装置100Aは、知識獲得質問応答の処理を行う(S212)。より具体的には、情報処理装置100Aは、タスクデータ131Aに含まれていない当該回答に含まれるキーワードについての説明内容を回答するようにリクエストするオープンタイプの質問を出力する。換言すると、情報処理装置100Aは、タスクデータ131Aに含まれていないキーワードに関連した知識を獲得する質問文を出力する。そして、情報処理装置100Aは、当該質問文に対するユーザの回答により獲得した知識をタスクデータ131Aに追加する。
このようにして、情報処理装置100Aは、オープン質問応答の処理を、第1条件を満たすまで繰り返す。
図17Bは、実施の形態2に係るオープン質問ループの詳細の別の一例を示すフローチャートである。図17Bも、図17A同様に、図3のステップS20の詳細の一例であり、図4に示すフローチャートに知識を獲得するための質問の処理が追加されたものに該当する。なお、図4と同様の要素には同一の符号を付しており、詳細な説明は省略する。
図17Bに示すオープン質問ループ(ステップS20B)の処理において、情報処理装置100Aは、ステップS21で取得したユーザの回答にオープン質問終了トリガーがあるか否かを判定する(S22)。
次に、情報処理装置100Aは、ステップS22において、ユーザの回答にネガティブな表現を表す語句を含まない場合に(S22でno)、第1条件を満たさない、すなわちオープン質問終了トリガーがないと判定し、さらに、不足知識があるかを確認する(S221)。つまり、ステップS21におけるユーザの応答の理解結果に含まれるキーワードが、タスクデータ131Aに登録されているキーワードに該当しないときは知識が不足していると判定し(S221でyes)、ステップS222に進む。そうではない場合は(S221でno)、ステップS21に進む。
次に、情報処理装置100Aは、知識獲得質問応答の処理を行う(S222)。より具体的には、情報処理装置100Aは、タスクデータ131Aに含まれていない当該回答に含まれるキーワードについての説明内容を回答するようにリクエストするオープンタイプの質問を出力する。換言すると、情報処理装置100Aは、タスクデータ131Aに含まれていないキーワードに関連した知識を獲得する質問文を出力する。そして、情報処理装置100Aは、当該質問文に対するユーザの回答により獲得した知識をタスクデータ131に追加する。
このようにして、情報処理装置100Aは、オープン質問応答の処理を、第1条件を満たすまで繰り返す。
以下、知識獲得質問応答の処理を行う場合の一例について実施例として説明する。
(実施例)
本実施例では、ユーザが探索を要望する情報についての絞り込みを進行させるタスクとして、複数の条件を満たすレシピを絞り込むタスクを行う場合の例について説明する。すなわち、探索の対象が複数の料理のレシピまたはメニューであり、第1タイプの質問であるオープン質問が複数の料理のレシピまたはメニューを絞り込む条件を尋ねる内容を示し、第2タイプの質問であるクローズド質問が複数の料理のレシピまたはメニューを絞り込む条件の一をリクエストするか否かを尋ねる内容を示す場合について説明する。なお、実施の形態1の実施例2で説明した内容と同様のところは説明を省略する。
図18Aは、実施の形態2の実施例に係るタスクデータ131Aの一例を示す図である。なお、図8Aで説明した内容と同様の点は説明を省略する。また、図18Aにおいて、点線で示した楕円の領域R1は、ステップS212またはステップS222で獲得されることとなる知識であり、初期状態では、領域R1に示される知識は含まれていない。
図18Aに示す例では、チキンカレーまたはキーマカレーが探索の対象となる複数の候補に該当し、洋風、玉葱、アジア風等が特徴、属性または条件等を示す要素情報(キーワード)に該当する。図18Aも図8Aと同様に、巨大な知識ベースの一部を例示したものに該当する。図18Aに示す例では、初期状態において、チキンカレーは洋風の料理であり、キーマカレーはアジア風の料理であり、玉葱は、チキンカレーにもキーマカレーにも使われるということを示している。
図18Bは、実施の形態2の実施例に係る文生成データ132Aの一例を示す図である。図18Bには、図8Bの例に加えて、対話制御部12Aが参照する知識獲得質問のテンプレートの一例が示されている。知識獲得質問は、ステップS212またはステップS222において参照され、この例では、「例えばどんな料理ですか?」という質問で、所望の情報の例示をユーザに求める。
図19は、実施の形態2の実施例に係る表示画面D26の一例を示す図である。表示画面D26は、ステップS20AまたはステップS20Bのオープン質問ループの処理における対話の一例を示している。以下、図17Aで説明した処理に沿って説明する。
初期状態において、探索の対象となる複数のレシピまたはメニューの候補すなわちレシピ情報は1987件登録されているとする。
まず、この場合、表示画面D26に示されるように、まず、情報処理装置100Aは、ステップS21において、図18Bを参照して、探索の対象に関するオープンタイプの質問として、1番目「どんなレシピをお探しですか?」を出力し、ユーザは「食べやすいもの」と回答している。情報処理装置100は、ユーザの回答から、キーワード「たべやすいもの」を抽出する。
次に、情報処理装置100Aは、ステップS211において、図18Aを参照して、不足知識がないか確認する(S211)。キーワード「食べやすいもの」は図18Aに示される知識ベースであるタスクデータ131Aに登録されていないので、不足知識があると確認し(S211でyes)、ステップS212に進む。
次に、情報処理装置100Aは、ステップS212において、図18Bを参照して、知識獲得タイプの質問として「例えばどんな料理ですか?」を出力し、ユーザは「カレー」と回答している。情報処理装置100Aは、ユーザの回答から、キーワード「カレー」を抽出し、知識を獲得するための質問文に対する回答に含まれる情報であるキーワード等をタスクデータ131Aに追加格納する。
ここで、図18Aの領域R1を参照しながら具体的に説明する。情報処理装置100AがステップS21で得られたキーワードは「食べやすいもの」であった。これは、「洋風」などと同様に検索キーとして位置づけられる。また、情報処理装置100AがステップS212で得られたキーワードは「カレー」であった。これは、「チキンカレー」などと同様に検索対象として位置づけられる。
しかし、このキーワード「カレー」はユーザが発想したものであり、知識ベースであるタスクデータ131A内に存在しない。そこで、タスクデータ131A内に存在する検索対象との間で部分文字列マッチングを行うことで、「チキンカレー」または「キーマカレー」が「カレー」の一種であると判断できる。一般的には、検索対象の料理名は、修飾語句がついた長いものが期待され、ユーザが例示する料理名は、一般的名詞などの短い料理名が入力されると期待されるからである。必要であれば、ユーザが例示する料理名を形態素解析することで、形態素に分割してから、部分文字列マッチングを行ってもよい。
本実施例では、ユーザが例示した「カレー」は「食べやすいもの」という特徴をもった料理の一種であると判断し、「食べやすいもの」と「カレー」を”IsA”で結んだものがタスクデータ131Aに格納されている。また、「カレー」と「チキンカレー」と、および、「カレー」と「キーマカレー」とについても、”IsA”で結んだものがタスクデータ131Aに格納されている。
なお、「カレー」を経由せずに、「食べやすいもの」と「チキンカレー」と、および、「食べやすいもの」と「キーマカレー」とを直接”IsA”で結んでタスクデータ131Aに格納してもよい。また、ユーザが、「カレー」などの料理の名称に関する直接的な情報ではなく、料理の特徴に関する間接的な情報を提供する場合には、検索キー側とのマッチングを行うことで、検索対象へ結びつきを探索し、適切な関係で結んだものをタスクデータ131Aに格納するとしてもよい。
獲得した知識の登録が終了したら、ステップS21に戻る。
次に、情報処理装置100Aは、ステップS21において、図18Bを参照して、探索の対象に関するオープンタイプの質問として、2番目以降、「他に何か条件はありますか?」を出力し、ユーザは、「特にないです」と回答している。以降は、図9の表示画面D22と同様のため説明を省略する。
なお、表示画面D26でも、システムの発話である吹き出しの上部および下部に、補足的な情報である対話情報が表示されている。表示画面D26に示される例では、吹き出しの上部には、レシピの情報の候補の数が示されており、1987件→0件→11件と変化する様子が端的に示されている。また、吹き出しの下部には、その時々の入力例が示されており、「主菜がいい/和食がいい」→空欄→「洋風がいい/魚料理がいい/いいえ」と変化する様子が端的に示されている。このように表示画面D26では、吹き出し内にシステムの台詞を口語表現で表示しているのに対して、吹き出しの上部および下部に示される対話情報に、対話の状態に関連する情報を口語表現とは異なる形式で表示している。
このように、情報処理装置100Aは、自身が管理情報として管理する補足的な情報もユーザに提示することで、ユーザの発話がなるべく想定内の発話すなわちタスクデータ131Aに格納されているキーワードが抽出できる発話に収まるように誘導している。
[効果等]
本実施の形態における情報処理装置等によれば、データベース等に予め用意された知識にはないキーワード等の語句に対しても、知識獲得質問によって、知識を新たに獲得しデータベース等に反映できる。これにより、データベース等に予め用意された知識にはないキーワード等の語句が対話でなされたとしても、ユーザとの対話を継続することができるだけでなく、獲得した知識を用いて、タスクの達成に向けてユーザとの対話を継続することができる。
それにより、本実施の形態における情報処理装置等は、ユーザが探索を要望する情報に関する条件を漏れなく取得できる。これにより、ユーザの所望の探索対象の候補を確実に絞り込んで提示することができる。
その結果、本実施の形態における情報処理装置等は、対話の制御と、タスク達成によるユーザ満足とを両立して実現できる。
(実施の形態3)
実施の形態1では、クローズド質問に対するユーザの回答には肯定または否定の語句が含まれている場合を前提に説明したが、それに限らない。以下では、クローズド質問に対するユーザの回答が、クローズド質問に含まれる語句に対する質問であるときを含む場合について実施の形態3として説明する。なお、実施の形態1と同じ点は説明を省略し、実施の形態1と異なる点を中心に説明する。
[情報処理装置100Bの構成]
図20は、実施の形態3に係る情報処理装置100Bの構成の一例を示すブロック図である。実施の形態3に係る情報処理装置100Bは、実施の形態1に係る情報処理装置100に対して、対話制御部12Bとデータベース13Bとの構成が異なる。
<対話制御部12B>
対話制御部12Bは、入力処理部11が出力する理解結果とデータベース13Bとを用いてユーザに対する対話である出力文を決定する機能を有する。また、対話制御部12Aは、出力文を決定する機能のみならず、ユーザの欲する情報すなわちユーザが探索を要望する情報の候補の数を管理したり、決定した出力文に対するユーザの応答の例として提示すべき情報を管理する機能も有する。
本実施の形態では、対話制御部12Bは、入力処理部11により取得させた第2タイプの質問に対する回答が、当該質問の応答ではなく、当該質問に含まれる語句についての内容説明をリクエストする内容である場合、出力処理部14に、当該質問に含まれる語句に関する別の語句を含めた説明文を出力させ、その後に、当該質問を再度出力させる。つまり、対話制御部12Bは、入力処理部11が取得したユーザの回答が、クローズドタイプの質問に対する肯定または否定を示す回答ではなく、当該クローズドタイプの質問に対するユーザ質問である場合、出力処理部14に、ユーザ質問に対する回答を出力させる。
<データベース13B>
本実施の形態では、データベース13Bは、図20に示すように、タスクデータ131と、文を生成するために参照される文生成データ132Bとで構成されている。
文生成データ132Bは、対話制御部12Bが参照するオープン質問のテンプレートおよびクローズド質問のテンプレートを格納するのに加えて、知識を獲得するための質問のテンプレートと、ユーザ質問に対する回答に用いるテンプレートとが格納されている。
[情報処理装置100Bの処理]
次に、以上のように構成された情報処理装置100Bの処理について説明する。
図21は、実施の形態3に係るクローズド質問ループの詳細の一例を示すフローチャートである。なお、図5と同様の要素には同一の符号を付しており、詳細な説明は省略する。
図21に示すクローズド質問ループ(ステップS30A)の処理において、情報処理装置100Bは、まず、探索の対象に関するクローズドタイプの質問を出力し、その質問に対するユーザの回答を取得して理解するクローズド質問応答の処理を行う(S31)。ステップS31において出力した質問はクローズドタイプの質問であるため、質問の中で、回答の内容が指定されている。しかし、クローズドタイプの質問であっても、当該質問に含まれる語句等の表現をユーザが知らない可能性もある。つまり、クローズドタイプの質問に対しては「はい」または「いいえ」など肯定または否定を示すユーザの回答が期待される。しかし、当該質問に含まれる語句等の表現をユーザが知らない場合、当該質問に含まれる語句等の表現に対してユーザ質問が回答として応答される可能性もある。
次に、情報処理装置100Bは、ステップS311において、ステップS31において出力した質問に対する応答がユーザ質問であるかを判定する。ユーザ質問であると判定した場合(S311でyes)、ステップS312に進み、そうでなければ(S311でno)、ステップS32に進む。
次に、情報処理装置100Bは、ステップS312において、タスクデータ131と文生成データ132Bとを参照して用意した回答を出力する。そして、情報処理装置100Bは、ステップS31において、再度クローズドタイプの質問を出力する。
なお、ステップS31で出力されたクローズドタイプの質問に対して、ユーザが質問形式で応答した場合、対話の主導権は一旦システムからユーザに移るが、ステップS312において回答した直後にステップS31に戻り、次の質問を出力することで、システムが主導権を奪い返すことができる。
このようにして、情報処理装置100Bは、一貫して、システム主導での対話制御を行うことができる。
以下、ユーザ質問を受けて回答を出力する場合の一例について実施例として説明する。
(実施例)
本実施例では、ユーザが探索を要望する情報についての絞り込みを進行させるタスクとして、複数の条件を満たすレシピを絞り込むタスクを行う場合の例について説明する。すなわち、探索の対象が複数の料理のレシピまたはメニューであり、第1タイプの質問であるオープン質問が複数の料理のレシピまたはメニューを絞り込む条件を尋ねる内容を示し、第2タイプの質問であるクローズド質問が複数の料理のレシピまたはメニューを絞り込む条件の一をリクエストするか否かを尋ねる内容を示す場合について説明する。なお、実施の形態1の実施例2で説明した内容と同様のところは説明を省略する。
図22Aは、実施の形態3の実施例に係るタスクデータ131の一例を示す図である。なお、図8Aで説明した内容と同様の点は説明を省略する。
図22Aに示す例では、図8Aに示した有向グラフに加え、点線で示した楕円の領域R2が示されている。領域R2は、ユーザが「土物」についての知識がなかったと想定した場合に、ステップS312で利用されるユーザ質問に対する回答に用いる知識の一例である。簡便のため、検索のために用いられる領域R2以外の部分とは別枠として、連結していない。
図22Bは、実施の形態3の実施例に係る文生成データ132Bの一例を示す図である。図22Bには、図17Bの例に加えて、対話制御部12Bが参照する回答のためのテンプレートの一例が示されている。ここで、図22B中の「list_up(“Y”)」は、条件にある[“Y” IsA “X”]という知識が、”X”に関して、複数見つかった場合に、それらの”Y”に当たるものをリストアップし、日本語としては、「、」を介して連結することを意味している。数が多い場合には、適当な数で打ち切ってもよい。本実施例では、回答は、ステップS312において、関連するタスクデータ131に応じて場合分けされ、「例えばY1、Y2です」や、「例えばZの一種です」などの回答が生成されて出力されることとなる。
図23は、実施の形態3の実施例に係る表示画面D36の一例を示す図である。表示画面D36は、ステップS30Aのクローズド質問ループの処理における対話の一例を示している。以下、図21で説明した処理に沿って説明する。なお、表示画面D36は、実施の形態1の実施例2で説明した図9に示す表示画面D32に対応するものであり、表示画面D32を用いて説明した内容と同様の点は説明を省略する。
表示画面D36に示されるように、まず、情報処理装置100Bは、ステップS31において、キーワード「土物」および、適用される関係詞”HasA”が与えられているとすると、図22Bを参照して、「土物を使っていいですか?」を出力し、ユーザは、「それは何ですか?」と応答している。情報処理装置100Bは、ユーザの応答を、「土物」に関するユーザからのWHAT型のオープン質問であると理解している。
次に、情報処理装置100Bは、ステップS311において、ユーザの応答がユーザ質問であると判定し(S311でyes)、ステップS312に進む。
次に、情報処理装置100Bは、ステップS312において、図22Aの領域R2の知識を参照して、回答を用意する。本実施例では、情報処理装置100Bは、[“玉葱” IsA “土物”]と[“長芋” IsA “土物”]という知識を参照し、図22Bの文生成データ132Bに示されるテンプレートを用いて、「例えば、玉葱、長芋です」という回答文を生成する。そして、情報処理装置100Bは、この回答文を出力して、ユーザからの応答を得ずに、ステップS31に戻る。
次に、情報処理装置100Bは、ステップS31において、ユーザから得られているキーワードに変更がないので、上記と同じクローズド質問「土物を使っていいですか?」を出力する。すると、ユーザは「じゃあ、OK」と肯定的な回答をしている。情報処理装置100Bは、ユーザの回答から、キーワード「土物」を抽出し、抽出したキーワード「土物」が正のキーワードであると理解している。そして、抽出したキーワード「土物」を用いて、レシピ情報の候補を21件に絞っている。
以降は、図9に示す表示画面D32と同様であるので説明を省略する。
[効果等]
本実施の形態における情報処理装置等は、クローズド質問に対するユーザの応答が想定する肯定または否定を示す語句以外の、クローズド質問に含まれる語句等の表現に対するユーザ質問であっても、対話を破綻させずに対話を継続することができる。これにより、ユーザが探索を要望する情報に関する条件を漏れなく取得できる。
さらに、本実施の形態における情報処理装置等は、クローズド質問に含まれる語句等の表現に対するユーザ質問がされ、ユーザが主導権を握りそうになったとしても、質問に対する回答を適切に行うことでシステムが主導権を奪い返することができる。これにより、ロバストなシステム主導対話の制御が行われている。
このように、本実施の形態における情報処理装置等によれば、ユーザが探索を要望する情報に関する条件を漏れなく取得できるので、ユーザの所望の探索対象の候補を確実に絞り込んで提示することができる。
その結果、本実施の形態における情報処理装置等は、対話の制御と、タスク達成によるユーザ満足とを両立して実現できる。
以上、実施の形態に係る情報処理方法および情報処理装置等について説明したが、本開示は、この実施の形態に限定されるものではない。
また、上記実施の形態に係る情報処理装置に含まれる各処理部は典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部または全てを含むように1チップ化されてもよい。
また、集積回路化はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、またはLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
また、本開示は、情報処理装置により実行される情報処理方法として実現されてもよい。
また、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェアまたはソフトウェアが並列または時分割に処理してもよい。
また、フローチャートにおける各ステップが実行される順序は、本開示を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。
以上、一つまたは複数の態様に係る情報処理装置等について、実施の形態に基づいて説明したが、本開示は、この実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。