(58)【調査した分野】(Int.Cl.,DB名)
前記履歴データ収集部は、前記活動履歴データとして、前記携帯端末が取得した前記携帯端末の位置情報と、前記位置情報を取得した時刻とを対応付けて収集する、請求項1又は2に記載のデータ処理装置。
【発明を実施するための形態】
【0012】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0013】
図1は、アシストサーバ100の一例を概略的に示す。本実施形態に係るアシストサーバ100は、携帯端末200のユーザ210をアシストする。例えば、アシストサーバ100は、ユーザ210の状態に適した情報を、携帯端末200を介してユーザ210に提供する。また、例えば、アシストサーバ100は、ユーザ210の状態に適した音楽を、音楽システム500を介してユーザ210に提供する。アシストサーバ100は、データ処理装置の一例であってよい。
【0014】
アシストサーバ100は、ユーザ210の状態を管理する状態管理データを格納する。状態管理データは、例えば、ユーザ210をアシストするために用いる複数の項目を含む。項目の例としては、ユーザ210の現在位置、ユーザ210が自宅にいるか否か、ユーザ210の自宅位置、ユーザ210の現在位置の天気、ユーザ210の自宅位置の天気、ユーザ210の健康状態、及びユーザ210の疲労度等が挙げられる。これらは例示であって、任意の項目が採用されてよい。
【0015】
アシストサーバ100は、携帯端末200によって取得されたユーザ210の活動履歴データを収集する。携帯端末200は、予め定められたタイミングに従って、活動履歴データをアシストサーバ100に送信してよい。予め定められたタイミングは、定期的であっても、不定期であってもよい。活動履歴データの例としては、位置、時刻、及び携帯端末200とユーザ210との会話の内容等が挙げられる。これらは例示であって、活動履歴データは、ユーザ210の活動に関する任意の情報を含んでよい。
【0016】
アシストサーバ100は、IoT(Internet of Things)デバイス400によって取得されたユーザ210の活動履歴データを収集してもよい。アシストサーバ100は、複数のIoTデバイス400から、IoTデバイス400の種類に応じた活動履歴データを収集してよい。
【0017】
例えば、アシストサーバ100は、ユーザ210が身に付けているIoTデバイス400から、ユーザ210の体温、血圧、及び心拍数等の身体データを収集する。また、例えば、アシストサーバ100は、ユーザ210の近傍に設置されたIoTデバイス400から、気温及び湿度等の環境データを収集する。これらは例示であって、アシストサーバ100は、IoTデバイス400から、ユーザ210の活動に関する任意の情報を収集してよい。
【0018】
アシストサーバ100は、収集した活動履歴データを用いて、ユーザ210の状態管理データを更新する。また、アシストサーバ100は、収集した活動履歴データに基づいて特定されたユーザ210の状態を示すユーザ状態データを取得して、ユーザ状態データに基づいて状態管理データを更新する。
【0019】
アシストサーバ100は、例えば、収集した活動履歴データを、ネットワーク10を介して複数のサイト300に送信する。ネットワーク10は、インターネット及び電話網を含んでよい。サイト300の例としては、例えば、地図サイト、グルメサイト、スケジュール管理サイト、経路案内サイト、天気サイト、及びFAQサイト等が挙げられる。これらは例示であり、サイト300は任意の種類のサイトであってよい。
【0020】
アシストサーバ100は、サイト300が活動履歴データを用いて特定したユーザ状態データをサイト300から受信してよい。例えば、アシストサーバ100は、地図サイト及びFAQサイト等が、活動履歴データに含まれるユーザ210の位置を分析することによって特定したユーザ210の自宅位置を受信する。
【0021】
従来、ユーザ210の自宅位置等のデータはユーザ210による登録を受け付ける必要があり、ユーザ210にとって煩雑な場合があった。しかし、本実施形態に係るアシストサーバ100によれば、収集した活動履歴データを複数のサイト300に送信して、複数のサイト300のそれぞれによって特定されたユーザ状態データを受信することによって、ユーザ210による登録を受け付けることなく、ユーザ210の自宅位置等の情報を取得することができる。
【0022】
アシストサーバ100は、自らが活動履歴データを分析して、ユーザ状態データを特定してもよい。例えば、アシストサーバ100は、活動履歴データを分析してユーザ状態データを特定する少なくとも1つの履歴分析部を備えてもよい。
【0023】
アシストサーバ100は、ユーザ状態データに基づいてユーザ210の状態管理データを更新する。例えば、ユーザ状態データとしてユーザ210の自宅位置を取得した場合、アシストサーバ100は、状態管理データにユーザ210の自宅位置を登録する。
【0024】
アシストサーバ100は、状態管理データを参照して、ユーザ210に対するアクションを決定する。アシストサーバ100は、例えば、状態管理データを参照して、ユーザ210に対する会話内容を決定する。アシストサーバ100は、決定した会話内容を携帯端末200に送信してよい。携帯端末200は、受信した会話内容をユーザ210に対して出力してよい。
【0025】
また、アシストサーバ100は、例えば、状態管理データを参照して、ユーザ210に提供する音楽を決定する。アシストサーバ100は、決定した音楽のデータを音楽システム500に送信してよい。アシストサーバ100は、決定した音楽を識別する識別データを音楽システム500に送信してもよい。音楽システム500は、音楽のデータを受信した場合、受信したデータを用いてユーザ210に対して音楽を提供してよい。音楽システム500は、音楽を識別する識別データを受信した場合、識別データによって識別される音楽をユーザ210に対して提供してよい。
【0026】
図2は、アシストサーバ100の機能構成の一例を概略的に示す。アシストサーバ100は、会話制御部102、履歴データ収集部104、状態管理データ格納部106、状態管理データ更新部108、アクション決定部110、コレクタ部120、履歴分析部群130、加工部140、状態データ取得部150、及び音楽出力制御部160を備える。なお、アシストサーバ100がこれらのすべての構成を備えることは必須とは限らない。
【0027】
会話制御部102は、携帯端末200によるユーザ210との会話を制御する。携帯端末200には、例えば、ユーザ210との会話を実行する会話アプリがインストールされていてよい。携帯端末200は、文字及び音声の少なくとも一方を用いてユーザ210と会話してよい。会話制御部102は、ユーザ210の発言を携帯端末200から受信する。会話制御部102は、ユーザ210に対する発言を携帯端末200に送信する。
【0028】
履歴データ収集部104は、ユーザ210の活動履歴データを収集する。履歴データ収集部104は、携帯端末200から予め定められたタイミングで送信される活動履歴データを受信してよい。例えば、携帯端末200は、予め定められたタイミングに従って位置及び時刻をアシストサーバ100に送信する。予め定められたタイミングは、定期的であっても不定期であってもよい。また、履歴データ収集部104は、会話制御部102によって制御される会話の内容を、活動履歴データとして会話制御部102から取得してよい。
【0029】
また、履歴データ収集部104は、IoTデバイス400からユーザ210の活動履歴データを受信する。IoTデバイス400は、ネットワーク10を介してアシストサーバ100に活動履歴データを送信してよい。IoTデバイス400は、携帯端末200を介してアシストサーバ100に活動履歴データを送信してもよい。履歴データ収集部104は、例えば、ユーザ210の体温、血圧、及び心拍数等の身体データをIoTデバイス400から受信する。また、履歴データ収集部104は、例えば、ユーザ210の周囲の気温及び湿度等の環境データをIoTデバイス400から受信する。
【0030】
状態管理データ格納部106は、ユーザ210の状態管理データを格納する。状態管理データ格納部106は、複数のユーザ210のそれぞれの状態管理データを格納してよい。状態管理データ格納部106は、一人のユーザ210につき、複数種類の状態管理データを格納してよい。
【0031】
例えば、状態管理データ格納部106は、会話のシナリオ毎に状態管理データを格納する。シナリオの例としては、天気に関するシナリオ、テレビに関するシナリオ、記事に関するシナリオ、電車に関するシナリオ、買い物に関するシナリオ、飲み会に関するシナリオ、散歩に関するシナリオ、社食に関するシナリオ、アンケートに関するシナリオ、及び雑談に関するシナリオが挙げられる。これらは例示であって、状態管理データ格納部106は、任意のシナリオの状態管理データを格納してよい。
【0032】
状態管理データ更新部108は、状態管理データ格納部106が格納するユーザ210の状態管理データを更新する。状態管理データ更新部108は、履歴データ収集部104が収集した活動履歴データを用いて状態管理データを更新してよい。
【0033】
アクション決定部110は、状態管理データ格納部106に格納されている状態管理データを参照して、ユーザ210に対するアクションを決定する。アクション決定部110は、例えば、状態管理データを参照して、ユーザ210の状態に適した会話を会話制御部102に実行させる。
【0034】
コレクタ部120は、履歴データ取得部122及び履歴データ送信部124を有する。履歴データ取得部122は、履歴データ収集部104が収集した活動履歴データを、履歴データ収集部104から取得する。履歴データ送信部124は、履歴データ取得部122が取得した活動履歴データを履歴分析部群130に送信する。
【0035】
履歴分析部群130は、複数の履歴分析部132を有する。複数の履歴分析部132のそれぞれは、履歴データ送信部124によって送信された活動履歴データを受信して格納する。複数の履歴分析部132は、それぞれ異なる観点、手法、アルゴリズム等で、活動履歴データを分析して、ユーザ状態データを導出してよい。アシストサーバ100は、履歴分析部群130に代えて一の履歴分析部132を備えてもよい。
【0036】
履歴分析部132は、サイト300であってもよい。すなわち、アシストサーバ100が履歴分析部群130を備えるのではなく、アシストサーバ100が外部のサイト300に活動履歴データを送信して、分析させてもよい。また、履歴分析部群130が、アシストサーバ100が備える少なくとも1つの履歴分析部132と、少なくとも1つのサイト300とを含んでもよい。
【0037】
加工部140は、識別データ生成部141、対象選択部142、識別データ送信部143、状態データ受信部144、及び加工処理部145を有する。加工部140がこれらのすべての構成を有することは必須とは限らない。
【0038】
識別データ生成部141は、アクション決定部110の指示に従って、取得対象となるユーザ状態データを識別する識別データを生成する。アクション決定部110は、状態管理データに基づいて、取得対象となるユーザ状態データを特定してよい。例えば、アクション決定部110は、状態管理データに含まれる複数の項目のうち内容が特定されていない項目を、取得対象となるユーザ状態データとして特定する。具体例として、状態管理データにユーザ210の自宅位置の項目が含まれているが、自宅位置の内容が登録されていない場合、アクション決定部110は、自宅位置を、取得対象となるユーザ状態データとして特定する。
【0039】
対象選択部142は、識別データ生成部141によって生成された識別データの送信対象を、複数の履歴分析部132から選択する。対象選択部142は、例えば、複数の履歴分析部132のそれぞれと、識別データの種類とを対応付ける対応付けデータを予め格納しておき、当該対応付けデータを参照することによって、識別データ生成部141が生成した識別データに対応する履歴分析部132を選択してよい。
【0040】
識別データ送信部143は、識別データ生成部141によって生成された識別データを、対象選択部142によって選択された履歴分析部132に送信する。なお、識別データ送信部143は、識別データ生成部141によって生成された識別データを、履歴分析部群130に対して送信してもよい。この場合、履歴分析部群130に含まれる複数の履歴分析部132が識別データを受信し、識別データが示すユーザ状態データを提供可能な履歴分析部132が当該ユーザ状態データを加工部140に送信し、他の履歴分析部132は識別データを破棄してよい。
【0041】
状態データ受信部144は、履歴分析部132が識別データを受信したことに応じて送信したユーザ状態データを受信する。加工部140は、状態データ受信部144が受信したユーザ状態データを状態データ取得部150に送信してよい。
【0042】
識別データ送信部143が送信した識別データが示すユーザ状態データを状態データ受信部144が受信できなかった場合、アクション決定部110は、会話制御部102に、当該ユーザ状態データをユーザ210から取得するように、会話制御部102を制御してよい。例えば、状態データ受信部144がユーザ210の自宅位置を受信できなかった場合、アクション決定部110は、会話制御部102を制御して、携帯端末200に、ユーザ210の自宅位置を問い合わせる問い合わせ処理を実行させる。問い合わせ処理の結果、携帯端末200が取得した自宅位置を、会話制御部102が受信してよい。アクション決定部110は、会話制御部102が受信した自宅位置を状態データ取得部150に送信してよい。
【0043】
状態データ取得部150は、加工部140又はアクション決定部110から受信したユーザ状態データを状態管理データ更新部108に送信してよい。状態管理データ更新部108は、状態データ取得部150から受信したユーザ状態データに基づいて、状態管理データ格納部106に格納されている状態管理データを更新してよい。
【0044】
アクション決定部110は、更新された状態管理データを参照して、ユーザ210に対するアクションを決定してよい。アクション決定部110は、ユーザ210に対する会話内容を決定した場合、会話制御部102に会話内容を送信してよい。会話制御部102は、受信した会話内容を、携帯端末200に出力させてよい。
【0045】
アクション決定部110は、ユーザ210に対して提供する音楽を決定した場合、音楽出力制御部160に決定した音楽を送信してよい。アクション決定部110は、例えば、状態管理データがユーザ210の疲労度を含む場合、疲労度に応じた音楽を決定する。また、アクション決定部110は、例えば、ユーザ210が観賞した音楽の履歴を含む場合、当該履歴に基づいて音楽を決定してもよい。
【0046】
音楽出力制御部160は、アクション決定部110が決定した音楽をユーザ210に対して提供する。音楽出力制御部160は、例えば、アクション決定部110が決定した音楽のデータを音楽システム500に送信して、音楽システム500に出力させる。また、音楽出力制御部160は、アクション決定部110が決定した音楽を識別する音楽識別データを音楽システム500に送信してもよい。この場合、音楽システム500は、受信した音楽識別データによって識別される音楽のデータを自らの音楽データ格納部又はネットワーク上から取得して、出力してよい。
【0047】
アクション決定部110は、更新された状態管理データの少なくとも一部を加工処理部145に送信してもよい。加工処理部145は、受信した状態管理データの少なくとも一部に基づいて、ユーザ210に対するアクションに用いるデータを生成してよい。加工処理部145は、例えば、ユーザ210に対する会話内容を生成する。また、加工処理部145は、例えば、ユーザ210に対して提供する音楽を決定する。
【0048】
加工処理部145は、履歴分析部132と連携して、ユーザ210に対するアクションに用いるデータを生成してもよい。例えば、ユーザ210の自宅の天気についての会話内容を生成する場合に、加工処理部145は、自宅の天気の履歴を履歴分析部132から受信して、現在の自宅の天気及び天気の履歴に基づく会話内容を生成する。具体例として、現在の自宅の天気が雨であり、前日及び前々日の天気も雨であることを天気の履歴が示す場合、単に自宅の天気が雨であることを伝えるのではなく、天気の履歴のニュアンスを含む「雨ばっかりで、いやですね」等の会話内容を生成する。
【0049】
図3は、状態管理データ180の一例を概略的に示す。
図3に例示する状態管理データ180は、「今日の自宅の天気」のシナリオに対応する。状態管理データ180は、ユーザID、位置、時間、今自宅か否か、自宅位置、及び今日の自宅の天気の項目を含む。
図3は、ユーザID、現在位置、及び現在時刻が登録されており、今自宅か否か、自宅位置、及び今日の自宅の天気の内容が登録されていない状態を例示する。
【0050】
図4は、アシストサーバ100による状態管理データ180を更新する処理の流れの一例を概略的に示す。ここでは、携帯端末200からユーザ210に対して話しかけるプッシュ型の会話処理を制御するときの処理の流れを概略的に示す。
【0051】
ステップ(ステップをSと省略して記載する場合がある。)402では、履歴データ収集部104が、携帯端末200から、携帯端末200の位置及び時間を受信する。S404では、履歴データ収集部104が、S402において受信した位置及び時間を状態管理データ更新部108及びコレクタ部120に送信する。
【0052】
S406では、状態管理データ更新部108が、S404において受信した位置及び時間を用いて状態管理データ格納部106に格納されている状態管理データを更新する。状態管理データ更新部108は、位置及び時間の項目を含む状態管理データが複数ある場合、複数の状態管理データを更新してよい。S408では、コレクタ部120が、S404において受信した位置及び時間を加工部140及び履歴分析部群130に送信する。
【0053】
S410では、アクション決定部110が状態管理データを参照する。アクション決定部110は、状態管理データに基づいて、ユーザ210との会話のシナリオを決定する。ここでは、「今日の自宅の天気」のシナリオを決定した場合を例に挙げて説明を続ける。アクション決定部110は、「今日の自宅の天気」のシナリオに対応する状態管理データとして、状態管理データ180を参照する。
【0054】
図3に示す例では、今自宅か否か、自宅位置、及び今日の自宅の天気が特定されていない。アクション決定部110は、今自宅か否かを確認するプロセスとして、S414において、ユーザID及び現在位置を加工部140に送信する。状態管理データの項目の内容が特定されていない場合にアクション決定部110が実行するプロセスは、予め登録されていてよい。アクション決定部110は、状態管理データを参照して内容が特定されていない項目を特定し、当該項目に対応するプロセスを実行してよい。
【0055】
S416では、加工部140が、S414において受信したユーザID及び現在位置を履歴分析部群130に送信する。加工部140は、履歴分析部群130に含まれるすべての履歴分析部132にユーザID及び現在位置を送信してもよく、対象選択部142によって選択された履歴分析部132にのみユーザID及び現在位置を送信してもよい。
【0056】
履歴分析部132は、受信したユーザID及び現在位置に基づいて、ユーザ210が今自宅か否かと、ユーザ210の自宅位置とを特定する。履歴分析部132は、例えば、定期的に受信した複数の位置及び時間からユーザ210の自宅位置を予め導出しておき、受信したユーザIDに対応する自宅位置と、受信した現在位置との距離によって、ユーザ210が今自宅か否かを特定してよい。
【0057】
S418では、今自宅か否か及び自宅位置を特定した履歴分析部132が、これらの情報を加工部140に送信する。ここでは、ユーザ210が今自宅にいると特定した場合を例に挙げて説明を続ける。
【0058】
S420では、加工部140が、S418において受信した今自宅か否か及び自宅位置を、状態データ取得部150を介して状態管理データ更新部108に送信する。S422では、状態管理データ更新部108が、状態管理データ180を更新する。具体的には、状態管理データ更新部108は、受信した情報を、状態管理データ180の今自宅か否か及び自宅位置の項目に登録する。
【0059】
S424では、アクション決定部110が状態管理データ180を参照する。S426では、アクション決定部110が、今日の自宅の天気を確認するプロセスとして、自宅位置を加工部140に送信する。
【0060】
S428では、加工部140が、S426において受信した自宅位置を履歴分析部群130に送信する。加工部140は、履歴分析部群130に含まれるすべての履歴分析部132に自宅位置を送信してもよく、対象選択部142によって選択された履歴分析部132にのみ自宅位置を送信してもよい。
【0061】
履歴分析部132は、受信した自宅位置に基づいて、今日の自宅の天気を特定する。履歴分析部132は、例えば、天気サイトであってよい。S430では、履歴分析部132が、特定した今日の自宅の天気を加工部140に送信する。ここでは、今日の自宅の天気が雨である場合を例に挙げて説明を続ける。
【0062】
S432では、加工部140が、S430において受信した今日の自宅の天気を、状態データ取得部150を介して状態管理データ更新部108に送信する。S434では、状態管理データ更新部108が、受信した今日の自宅の天気を用いて、状態管理データ180を更新する。具体的には、状態管理データ更新部108は、受信した情報を、状態管理データ180の今日の自宅の天気の項目に登録する。
【0063】
S436では、アクション決定部110が状態管理データ180を参照する。S438では、状態管理データ180の全ての項目の内容が特定されたことに応じて、アクション決定部110が、今日の自宅の天気を加工部140に送信する。状態管理データ180の全ての項目が特定されたことに応じてアクション決定部110が実行する実行内容は予め登録されていてよい。
【0064】
加工部140の加工処理部145は、S438において受信した今日の自宅の天気に応じて、会話内容を生成する。加工処理部145は、例えば、履歴分析部132から自宅の天気の履歴を受信して、今日の自宅の天気及び天気の履歴に応じた会話内容として、「雨ばっかりで、いやですね」等の会話内容を生成する。
【0065】
S440では、加工部140が、加工処理部145が生成した会話内容をアクション決定部110に送信する。なお、加工部140は、学習用のログを目的として、生成した会話内容をコレクタ部120に対しても送信してもよい。
【0066】
S442では、アクション決定部110が、S440において受信した会話内容を会話制御部102に送信する。S444では、会話制御部102が、S442において受信した会話内容を携帯端末200に出力させるべく、携帯端末200の会話アプリを制御する。
【0067】
図5は、状態管理データ182の一例を概略的に示す。状態管理データ182は、「会社の天気」のシナリオに対応する。状態管理データ182は、ユーザID、位置、時間、意図、場所、場所の位置、及び天気の項目を含む。
図5は、ユーザID、位置、時間、及び意図が登録されており、場所、場所の位置、及び天気の内容が登録されていない状態を例示する。
【0068】
図6は、アシストサーバ100による状態管理データ182を更新する処理の流れの一例を概略的に示す。ここでは、ユーザ210から話しかけられるプル型の会話処理を制御するときの処理の流れを概略的に示す。
【0069】
S602では、携帯端末200が、ユーザ210によって入力された「天気教えて」という発言を会話制御部102に送信する。会話制御部102は、ユーザ210の発言を解釈して、発言の意図として天気質問を特定してよい。S606では、会話制御部102が、特定した意図(天気質問)を履歴データ収集部104に送信する。
【0070】
S606では、履歴データ収集部104が、S604において受信した意図(天気質問)を状態管理データ更新部108及びコレクタ部120に送信する。S608では、状態管理データ更新部108が、S606において受信した意図(天気質問)を用いて状態管理データ格納部106に格納されている状態管理データを更新する。状態管理データ更新部108は、意図の項目を含む状態管理データが複数ある場合、複数の状態管理データを更新してよい。例えば、状態管理データ182は、状態管理データ182の意図の項目に、天気質問を登録する。
【0071】
S610では、コレクタ部120が、S606において受信した意図(天気質問)を加工部140及び履歴分析部群130に送信する。
【0072】
S612では、アクション決定部110が状態管理データを参照する。アクション決定部110は、状態管理データに基づいて、ユーザ210との会話のシナリオを決定する。ここでは、意図が天気質問であり、現在時刻が朝の時間帯であることを条件に、「会社の天気」のシナリオを決定した場合を例に挙げて説明を続ける。
【0073】
図5に示す例では、場所、場所の位置、及び天気の内容が特定されていない。S616では、アクション決定部110が、場所を確認するプロセスとして、場所を確認するための質問である「会社付近の天気ですか?」を会話制御部102に送信する。
【0074】
S618では、会話制御部102が、S616において受信した質問を携帯端末200に出力させるべく、携帯端末200の会話アプリを制御する。S620では、S618において出力した質問に対してユーザ210が入力した「家」という発言を携帯端末200が会話制御部102に送信する。会話制御部102は、場所として自宅を取得する。
【0075】
S622では、会話制御部102が、場所(自宅)を履歴データ収集部104に送信する。S624では、履歴データ収集部104が、場所(自宅)を状態管理データ更新部108に送信する。S626では、状態管理データ更新部108が、S624において受信した場所(自宅)を用いて、状態管理データ182を更新する。具体的には、状態管理データ更新部108は、状態管理データ182の場所の項目に自宅を登録する。なお、状態管理データ更新部108は、学習用のログを目的として、場所(自宅)をコレクタ部120にも送信してもよい。
【0076】
S628では、アクション決定部110が状態管理データ182を参照する。S630では、アクション決定部110が、場所の位置を確認するプロセスとして、ユーザID及び場所(自宅)を加工部140に送信する。
【0077】
S632では、加工部140が、S630において受信したユーザID及び場所(自宅)を履歴分析部群130に送信する。加工部140は、履歴分析部群130に含まれるすべての履歴分析部132にこれらの情報を送信してもよく、対象選択部142によって選択された履歴分析部132にのみこれらの情報を送信してもよい。
【0078】
履歴分析部132は、受信したユーザID及び場所(自宅)に基づいて、場所(自宅)の位置を特定する。履歴分析部132は、例えば、ユーザ210の自宅の緯度経度を特定する。S634では、場所の位置を特定した履歴分析部132が、場所の位置を加工部140に送信する。
【0079】
S636では、加工部140が、S634において受信した場所の位置を状態管理データ更新部108に送信する。S638では、状態管理データ更新部108が、S636において受信した場所の位置を用いて状態管理データ182を更新する。具体的には、状態管理データ更新部108は、状態管理データ182の場所の位置の項目に、ユーザ210の自宅の緯度経度を登録する。
【0080】
S640では、アクション決定部110が状態管理データ182を参照する。S642では、天気を確認するプロセスとして、アクション決定部110が、場所の位置を加工部140に送信する。
【0081】
S644では、加工部140が、S642において受信した場所の位置を履歴分析部群130に送信する。加工部140は、履歴分析部群130に含まれるすべての履歴分析部132に場所の位置を送信してもよく、対象選択部142によって選択された履歴分析部132にのみ場所の位置を送信してもよい。履歴分析部132は、受信した場所の位置の天気を特定する。ここでは、履歴分析部132が場所の位置の天気として雨を特定した場合を例に挙げて説明を続ける。
【0082】
S646では、場所の位置の天気を特定した履歴分析部132が、特定した天気を加工部140に送信する。S648では、加工部140が、S646において受信した天気を状態管理データ更新部108に送信する。S650では、状態管理データ更新部108が、S648において受信した天気を用いて状態管理データ182を更新する。具体的には、状態管理データ更新部108は、状態管理データ182の天気の項目に雨を登録する。
【0083】
S652では、アクション決定部110が状態管理データ182を参照する。S654では、状態管理データ182の全ての項目が特定されたことに応じて、アクション決定部110が、天気(雨)を加工部140に送信する。加工部140の加工処理部145は、S654において受信した天気(雨)に応じて、会話内容を生成する。加工処理部145は、例えば、「雨が降っているようです」等の会話内容を生成する。
【0084】
S656では、加工部140が、生成した会話内容をアクション決定部110に送信する。なお、加工部140は、生成した会話内容を、学習用のログを目的として、コレクタ部120に対しても送信してもよい。
【0085】
S658では、アクション決定部110が、S656において受信した会話内容を会話制御部102に送信する。S660では、会話制御部102が、S658において受信した会話内容を携帯端末200に出力させるべく、携帯端末200の会話アプリを制御する。
【0086】
なお、ここでは、意図が天気質問であり、現在時刻が朝の時間帯であることを条件に、「会社の天気」のシナリオを選択した場合を例に挙げて説明したが、例えば、別の例として、意図が天気質問であり、現在時刻が平日の夕方の時間帯を示す場合、会社にいるユーザ210が帰り道を気にしての質問なのではないかという暗黙知のもと、自宅の天気を答えたり、自宅の天気を聞いているのかを確認する会話を含む自宅の天気シナリオを選択してもよい。
【0087】
図7は、携帯端末200による表示例202を概略的に示す。
図7は、アシストサーバ100が
図6に示す処理を実行した場合の携帯端末200による表示例202を示す。ここでは、チャットベースのインタフェースを用いた場合を例示している。
【0088】
図8は、アシストサーバ100として機能するコンピュータ1000の一例を概略的に示す。本実施形態に係るコンピュータ1000は、ホストコントローラ1092により相互に接続されるCPU1010、RAM1030、及びグラフィックコントローラ1085を有するCPU周辺部と、入出力コントローラ1094によりホストコントローラ1092に接続されるROM1020、通信I/F1040、ハードディスクドライブ1050、DVDドライブ1070及び入出力チップ1080を有する入出力部を備える。
【0089】
CPU1010は、ROM1020及びRAM1030に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ1085は、CPU1010などがRAM1030内に設けたフレーム・バッファ上に生成する画像データを取得し、ディスプレイ1090上に表示させる。これに代えて、グラフィックコントローラ1085は、CPU1010などが生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【0090】
通信I/F1040は、有線又は無線によりネットワークを介して他の装置と通信する。また、通信I/F1040は、通信を行うハードウエアとして機能する。ハードディスクドライブ1050は、CPU1010が使用するプログラム及びデータを格納する。DVDドライブ1070は、DVD−ROM1072からプログラム又はデータを読み取り、RAM1030を介してハードディスクドライブ1050に提供する。
【0091】
ROM1020は、コンピュータ1000が起動時に実行するブート・プログラム及びコンピュータ1000のハードウエアに依存するプログラムなどを格納する。入出力チップ1080は、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポートなどを介して各種の入出力装置を入出力コントローラ1094へと接続する。
【0092】
RAM1030を介してハードディスクドライブ1050に提供されるプログラムは、DVD−ROM1072、又はICカードなどの記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM1030を介してハードディスクドライブ1050にインストールされ、CPU1010において実行される。
【0093】
コンピュータ1000にインストールされ、コンピュータ1000をアシストサーバ100として機能させるプログラムは、CPU1010などに働きかけて、コンピュータ1000を、アシストサーバ100の各部としてそれぞれ機能させてよい。これらのプログラムに記述された情報処理は、コンピュータ1000に読込まれることにより、ソフトウエアと上述した各種のハードウエア資源とが協働した具体的手段である会話制御部102、履歴データ収集部104、状態管理データ格納部106、状態管理データ更新部108、アクション決定部110、コレクタ部120、履歴分析部群130、加工部140、状態データ取得部150、及び音楽出力制御部160として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ1000の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有のアシストサーバ100が構築される。
【0094】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0095】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階などの各処理の実行順序は、特段「より前に」、「先立って」などと明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」などを用いて説明したとしても、この順で実施することが必須であることを意味するものではない。