以下、行動取得装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
本実施の形態において、地点情報生産装置について説明する。地点情報生産装置とは、特定の地点の後述する地点情報を取得する装置である。
なお、本明細書において、情報Xが情報Yに対応付いていることは、情報Xから情報Yを取得できること、または情報Yから情報Xを取得できることであり、その対応付けの方法は問わない。情報Xと情報Yとがリンク付いていても良いし、同じバッファに存在していても良いし、情報Xが情報Yに含まれていても良いし、情報Yが情報Xに含まれている等でも良い。
また、本明細書において、情報Zを選択したり、決定したりすることは、情報Zを取得すること、情報Zへのポインタを取得すること、情報ZのIDを取得すること、情報Zにフラグを立てること等であり、情報Zにアクセスできれば良い。
図1は、本実施の形態における地点情報生産装置1を含む情報システムAの概念図である。情報システムAは、地点情報生産装置1と3以上の通信装置Bとを有する。
3以上の各通信装置Bは、地点情報生産装置1等の他の装置に電波を送信する装置である。通信装置Bは、当該通信装置Bを識別する装置識別子を他の装置に送信する。通信装置Bは、例えば、Wi-fiルーター、BLE(Bluetooth Low Energy)を用いた通信装置であるが、問わない。
図2は、本実施の形態における地点情報生産装置1のブロック図である。地点情報生産装置1は、格納部11、受付部12、受信部13、および処理部14を備える。受付部12は、位置受付部121を備える。処理部14は、強度取得部141、種類判断部142、および蓄積部143を備える。
受付部12は、各種の指示や情報を受け付ける。各種の指示や情報は、例えば、後述する位置情報である。各種の指示や情報の入力手段は、タッチパネルやキーボードやマウスやメニュー画面によるもの等、何でも良い。
位置受付部121は、特定地点の位置情報を受け付ける。位置受付部121は、通常、3以上の各特定地点の位置情報を受け付ける。位置受付部121は、例えば、ユーザの入力である位置情報を受け付ける。位置受付部121は、例えば、格納部11から位置情報を読み出す。
特定地点とは、屋内の特定の地点であるが、屋外の特定の地点でも良い。位置情報は、ここでは、屋内または屋外における位置を特定する情報である。位置情報は、例えば、屋内または屋外における相対的な位置を示す三次元座標値(x、y、z)であるが二次元座標値(x,y)でも良い。なお、屋内または屋外における相対的な位置を特定するための座標値の原点は問わない。屋外の特定地点は、例えば、高層ビル群の中や森の中等の、GPS信号が届きにくい地点であることは好適であるが、問わない。位置情報は、人が場所を認識できる情報(例えば、文字列)やIDでも良い。かかる位置情報は、例えば、「リビング」「仕事部屋」「会議室」「図書館の東側」「デパートのおもちゃ売り場」等のラベルでも良い。
位置受付部121は、ユニークなIDを生成しても良い。かかるユニークなIDは、ラベルであり、位置情報であると考えても良い。
位置受付部121は、位置情報を受け付けなくても良い。かかる場合、位置受付部121は不要ある。
受信部13は、特定地点において、3以上の各通信装置Bから装置識別子を含む電波を受信する。受信部13は、通常、3以上の各通信装置Bから装置識別子を含む電波を、連続して受信する。
装置識別子とは、当該通信装置Bを識別する情報である。装置識別子は、例えば、通信装置BのID、通信装置Bの名称である。電波の受信は情報の受信である、と考えて良い。
処理部14は、各種の処理を行う。各種の処理は、例えば、強度取得部141、種類判断部142、蓄積部143が行う処理である。
強度取得部141は、3以上の各通信装置Bごとに、各通信装置Bから受信された電波の強度を取得する。強度取得部141は、通信装置Bの装置識別子と対にして、電波強度を取得する。強度取得部141は、時系列の電波強度を取得する。時系列の電波強度とは、時間的に連続する2以上の電波強度である。時間的に連続することは、時間の間隔があっても良いことは言うまでもない。
種類判断部142は、強度取得部141が取得した時系列の電波強度を用いて、3以上の各通信装置Bが固定端末であるか、移動端末であるかを判断する。固定端末とは、設置位置が固定されている通信装置である。移動端末とは、設置位置が固定されておらず、移動している通信装置である。
種類判断部142は、例えば、一の装置識別子と対になる時系列の時間的に連続する2または3以上の電波強度のばらつき度を取得し、当該ばらつき度が閾値以上または閾値より大きい場合、当該一の装置識別子で識別される通信装置Bは、移動端末であると判断する。また、種類判断部142は、例えば、一の装置識別子と対になる時系列の時間的に連続する2または3以上の電波強度のばらつき度を取得し、当該ばらつき度が閾値以下または閾値未満である場合、当該一の装置識別子で識別される通信装置Bは、固定端末であると判断する。
なお、ばらつき度とは、時系列の電波強度のばらつき、または変化に関する程度を示す情報である。ばらつき度は、例えば、分散、標準偏差、または差に基づく数(例えば、差、3以上の時間的に連続する電波強度の中の連続する2つの電波強度の差を加算した値)である。
種類判断部142は、例えば、所定時間に取得された電波強度の数であり、一の装置識別子と対になる時系列の時間的に連続する電波強度の数が閾値以下または閾値より少ない場合、当該一の装置識別子で識別される通信装置Bは、移動端末であると判断する。
蓄積部143は、種類判断部142が固定端末であると判断した通信装置Bの装置識別子と電波強度を有する地点情報を構成し、蓄積する。 蓄積部143は、3以上の各通信装置Bごとに、装置識別子と電波強度とを有する地点情報を構成し、蓄積することは好適である。
蓄積部143は、例えば、種類判断部142が固定端末であると判断した通信装置Bの装置識別子と電波強度と特定地点の位置情報とを有する地点情報を構成し、蓄積する。 蓄積部143は、3以上の各通信装置Bごとに、装置識別子と電波強度と特定地点の位置情報とを有する地点情報を構成し、蓄積することは好適である。蓄積部143は、例えば、地点情報を格納部11に蓄積するが、他の装置に蓄積しても良い。地点情報は、位置情報を有することは好適であるが、位置情報を有さなくても良い。地点情報は、装置識別子と電波強度だけで構成されていても良い。
蓄積部143が蓄積する電波強度は、通常、通信装置Bからの電波の時系列の電波強度の代表値である。代表値は、例えば、中央値、平均値、最大値、または最小値である。
格納部11は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
格納部11に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部11で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部11で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部11で記憶されるようになってもよい。
受付部12、および位置受付部121は、タッチパネルやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
受信部13は、通常、無線または有線の通信手段で実現される。
処理部14、強度取得部141、種類判断部142、および蓄積部143は、通常、プロセッサやメモリ等から実現され得る。処理部14等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。なお、プロセッサは、CPU、MPU、GPU等であり、その種類は問わない。
次に、地点情報生産装置1の動作例について、図3のフローチャートを用いて説明する。
(ステップS301)位置受付部121は、特定地点の位置情報を受け付けたか否かを判断する。位置情報を受け付けた場合はステップS302に行き、受け付けなかった場合はステップS301に戻る。
(ステップS302)蓄積部143は、ステップS301で受け付けられた位置情報を取得する。
(ステップS303)処理部14等は、時系列強度取得処理を行う。時系列強度取得処理とは、3以上の各通信装置Bからの電波の時系列の電波強度を取得する処理である。時系列強度取得処理の例について、図4のフローチャートを用いて説明する。
(ステップS304)処理部14等は、固定情報取得処理を行う。ステップS301に戻る。固定情報取得処理とは、ステップS301で受け付けられた位置情報が特定する地点における、固定端末からの電波の強度を取得する処理である。固定情報取得処理の例について、図5のフローチャートを用いて説明する。
なお、図3のフローチャートにおいて、地点情報生産装置1を保持するユーザは、3以上の各特定地点に移動し、地点情報生産装置1は、3以上の各特定地点ごとに、位置情報を受け付け、S301からS304の処理を繰り返し行うことは好適である。
また、図3のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS303の時系列強度取得処理の例について、図4のフローチャートを用いて説明する。
(ステップS401)受信部13は、いずれかの通信装置Bから電波を受信したか否かを判断する。電波を受信した場合はステップS402に行き、受信しなかった場合はステップS401に戻る。
(ステップS402)蓄積部143は、ステップS401で受信した電波に対応する装置識別子を取得する。
(ステップS403)強度取得部141は、ステップS401で受信した電波の強度を取得する。
(ステップS404)蓄積部143は、ステップS402で取得した装置識別子に対応付けて、ステップS403で取得した電波強度を、図示しないバッファに追記する。
(ステップS405)蓄積部143は、地点情報の蓄積条件に合致するか否かを判断する。蓄積条件に合致する場合は上位処理にリターンし、合致しない場合はステップS401に戻る。なお、蓄積条件は、例えば、特定地点の位置情報を受け付けから閾値時間以上を経過したこと、3以上の各装置識別子と対になる閾値以上の数の電波強度を蓄積したこと等である。
次に、ステップS304の固定情報取得処理の例について、図5のフローチャートを用いて説明する。
(ステップS501)種類判断部142は、カウンタiに1を代入する。
(ステップS502)種類判断部142は、図示しないバッファに、i番目の装置識別子が存在するか否かを判断する。i番目の装置識別子が存在する場合はステップS503に行き、i番目の装置識別子が存在しない場合は上位処理にリターンする。
(ステップS503)種類判断部142は、i番目の装置識別子で識別される通信装置Bの種類を判断する。かかる種類判断処理の例について、図6のフローチャートを用いて説明する。
(ステップS504)ステップS503における判断結果が「固定端末」であればステップS505に行き、「移動端末」であればステップS508に行く。
(ステップS505)蓄積部143は、i番目の装置識別子と対になる2以上の電波強度を図示しないバッファから取得する。
(ステップS506)蓄積部143は、2以上の電波強度の代表値を取得する。
(ステップS507)蓄積部143は、ステップS301で受け付けられた位置情報に対応付けて、i番目の装置識別子とステップS506で取得した電波強度の代表値との組を格納部11に蓄積する。
(ステップS508)種類判断部142は、カウンタiを1、インクリメントする。ステップS502に戻る。
なお、図5のフローチャートにおいて、蓄積部143は、ステップS506において、2以上の電波強度の代表値に代えて、新たに最新の電波の強度を取得しても良い。
次に、ステップS503の種類判断処理の例について、図6のフローチャートを用いて説明する。
(ステップS601)種類判断部142は、ステップS502におけるi番目の装置識別子と対になる2以上の電波強度を図示しないバッファから取得する。
(ステップS602)種類判断部142は、ステップS601で取得した2以上の電波強度のばらつき度を取得する。
(ステップS603)種類判断部142は、ステップS602で取得したばらつき度が閾値以下または閾値未満であるか否かを判断する。ばらつき度が閾値以下または閾値未満である場合はステップS604に行き、閾値以上または閾値より大きい場合はステップS605に行く。
(ステップS604)種類判断部142は、通信装置Bの種類を「固定端末」とする。上位処理にリターンする。
(ステップS605)種類判断部142は、通信装置Bの種類を「移動端末」とする。上位処理にリターンする。
以下、本実施の形態における地点情報生産装置1の具体的な動作例について説明する。ここで、蓄積条件は、特定地点の位置情報が受け付けられてから、所定時間(例えば、3分)が経過したことである、とする。
ユーザAは、例えば、 ある屋内(例えば、ユーザAの自宅やユーザAが良く訪れるデパート)に居る、とする。そして、ユーザAは、地点情報生産装置1に対して、位置情報(x1,y1)を入力した、とする。
次に、地点情報生産装置1の位置受付部121は、特定地点の位置情報(x1,y1)を受け付ける。次に、蓄積部143は、は、受け付けられた位置情報(x1,y1)を図示しないバッファに取得する。
そして、受信部13は、所定時間の間(例えば、3分)、3以上の各通信装置Bから、装置識別子を含む電波を受信する。そして、蓄積部143は、受信した電波に含まれる装置識別子を取得する。また、強度取得部141は、受信された電波の強度を取得する。次に、蓄積部143は、取得した装置識別子に対応付けて、取得された電波強度を、図示しないバッファに追記する。その結果、図示しないバッファには、図7に示す時系列電波強度管理表が構成される。図7に示す時系列電波強度管理表は、位置情報(x1,y1)が示す特定地点における表である。
時系列電波強度管理表とは、通信装置Bごとの時系列の電波強度を管理する表である。時系列電波強度管理表は、「ID」「装置識別子」「時系列電波強度」を有する2以上のレコードを管理する表である。「ID」はレコードを識別する情報である。「時系列電波強度」は、時間的に連続する電波強度である。「R11」「R12」「R21」等は、電波強度である。
図7の管理表が構成された後、位置受付部121による特定地点の位置情報(x1,y1)が受け付けられてから、所定時間(例えば、3分)が経過したので、蓄積部143は、地点情報の蓄積条件に合致する、と判断する。
次に、種類判断部142は、図6のフローチャートの動作に従って、図7の各レコードの時系列電波強度のばらつき度を取得し、各通信装置Bが固定端末であるか移動端末であるか否かを判断する。そして、種類判断部142は、装置識別子「装置1,装置3,装置4,装置6,・・・」で識別される通信装置Bを固定端末であると判断し、装置識別子「装置2,装置5,・・・」で識別される通信装置Bを移動端末であると判断した、とする。
次に、蓄積部143は、固定端末である通信装置Bの装置識別子と電波強度の代表値とを対にして電波強度情報を構成する。そして、蓄積部143は、複数の各電波強度情報を位置情報(x1,y1)に対応付けて蓄積する。かかる処理により、図8の地点情報管理表の「ID=1」のレコードが構成される。なお、蓄積部143は、装置識別子と電波強度のみを蓄積しても良い。かかる場合、図8の各レコードは位置情報を有さない。また、かかる場合、、位置受付部121は特定地点の位置情報を受け付ける必要はない。
地点情報管理表とは、地点情報を管理する表である。地点情報管理表には、位置情報に対応付くレコードであり、「ID」「装置識別子」「電波強度情報」を有する複数のレコードが格納される。「電波強度情報」は、「装置識別子」「電波強度」を有する。
以上の処理により、位置情報(x1,y1)が示す位置の特定地点1における地点情報が蓄積された。
ユーザAは、地点情報生産装置1を持って、位置情報(x2,y2)が示す位置の特定地点2に移動し、上記の同様のことを行う。その結果、地点情報生産装置1は、図8の地点情報管理表の「ID=2」のレコードを構成し、蓄積する。さらに、ユーザAは、地点情報生産装置1を持って、特定地点3を含む1以上の各特定地点に移動し、上記の同様のことを行う。その結果、地点情報生産装置1は、図8の地点情報管理表の「ID=3」移行のレコード(図示しない)を構成し、蓄積する。
以上、本実施の形態によれば、屋内における端末装置の位置を取得するための地点情報が取得できる。つまり、本実施の形態によれば、屋内における端末装置の位置を取得するための3以上の地点情報が生産できる。
なお、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD-ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における地点情報生産装置1を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、特定地点の位置情報を受け付ける位置受付部と、前記特定地点において、3以上の各通信装置から当該通信装置を識別する装置識別子を含む電波を受信する受信部と、3以上の各通信装置ごとに、時系列の電波強度を取得する強度取得部と、前記強度取得部が取得した時系列の前記電波強度を用いて、前記3以上の各通信装置が固定されている通信装置である固定端末であるか、移動している通信装置である移動端末であるかを判断する種類判断部と、前記種類判断部が固定端末であると判断した3以上の各通信装置の装置識別子と電波強度と前記特定地点の前記位置情報とを有する地点情報を構成し、蓄積する蓄積部として機能させるためのプログラムである。
(実施の形態2)
本実施の形態において、3以上の各通信装置Bから電波を受信する端末装置であって、時系列の電波の強度を用いて、各通信装置Bの種類を判断し、種類が「固定端末」の通信装置Bのみからの電波強度を用いて、屋内における端末装置の位置を示す端末位置を取得し、出力する端末装置について説明する。
また、本実施の形態において、端末装置が移動中か停止中かを判断し、判断結果を使用して、端末位置を取得し、出力する端末装置について説明する。
図9は、本実施の形態における情報システムCの概念図である。情報システムCは、1または2以上の端末装置2、および3以上の通信装置Bを具備する。
端末装置2は、屋内における位置情報を取得可能な端末である。端末装置2は、例えば、スマートフォン、タブレット端末、スマートウォッチ、いわゆるパーソナルコンピュータ等であり、その種類は問わない。
図10は、本実施の形態における端末装置2のブロック図である。端末装置2は、格納部21、受信部22、処理部23、および出力部24を備える。格納部21は、地点情報格納部211を備える。処理部23は、強度取得部231、種類判断部232、移動判断部233、および位置取得部234を備える。位置取得部234は、強度取得手段2341、地点決定手段2342、および位置取得手段2343を備える。出力部24は、位置出力部241を備える。
格納部21には、各種の情報が格納される。各種の情報は、例えば、後述する地点情報である。
地点情報格納部211には、3以上の地点情報が格納される。地点情報格納部211の3以上の地点情報は、地点情報生産装置1が蓄積した情報であることは好適である。
地点情報格納部211の3以上の各地点情報は、例えば、特定地点の位置情報と装置識別子と電波強度とを有する。3以上の各位置情報に対して、3以上の電波強度情報が対応付いていることは好適である。電波強度情報は、装置識別子と電波強度を有する。3以上の電波強度情報は、電波強度ベクトルを構成していても良い。電波強度ベクトルは、電波強度情報を用いたベクトルであり、例えば、(装置識別子1の電波強度,装置識別子2の電波強度,装置識別子3の電波強度,・・・装置識別子nの電波強度)の構造を有する。地点情報格納部211には、例えば、図8の構造を有する地点情報管理表が格納されている。
なお、端末装置2は、地点情報格納部211を有さなくても良い。かかる場合、端末装置2は、外部の図示しない装置の地点情報格納部211を参照し、後述する端末位置を取得する。
受信部22は、3以上の各通信装置Bから、通信装置Bを識別する装置識別子を含む電波を受信する。受信部22は、通常、上述した受信部13と同じ機能を行う。受信部22は、通常、3以上の各通信装置Bから装置識別子を含む電波を受信する。受信部22は、通常、連続して電波を受信する。
処理部23は、各種の処理を行う。各種の処理は、例えば、強度取得部231、種類判断部232、移動判断部233、位置取得部234が行う処理である。
強度取得部231は、3以上の各通信装置Bごとに、時系列の電波強度を取得する。強度取得部231は、受信部22が受信した電波に基づき、電波強度を取得する。なお、強度取得部231は、上述した強度取得部141と同じ機能を行う。
種類判断部232は、強度取得部231が取得した時系列の電波強度を用いて、3以上の各通信装置Bが固定端末であるか、移動端末であるかを判断する。種類判断部232は、上述した種類判断部142と同じ機能を行う。
移動判断部233は、端末装置2が移動中であるか停止中であるかを判断し、当該判断の結果である移動判断結果を取得する。移動判断結果は、例えば、「移動中」または「停止中」である。
移動判断部233は、例えば、端末装置2のセンサ情報を取得し、センサ情報を用いて、移動判断結果を取得する。センサ情報は、例えば、ジャイロによる加速度、時系列の位置情報である。
移動判断部233は、例えば、ジャイロによる加速度が「0」または閾値以下であれば、移動判断結果「停止中」を取得する。移動判断部233は、例えば、ジャイロによる加速度が閾値以上または閾値より大きい場合、移動判断結果「移動中」を取得する。
移動判断部233は、例えば、強度取得部231が取得した3以上の各通信装置Bの時系列の電波強度を用いて、1または2以上の通信装置Bの時系列の電波強度に変化が無い場合に停止中であると判断し、移動判断結果「停止中」を取得する。
位置取得部234は、種類判断部232が固定端末であると判断した3以上の通信装置Bの電波強度を取得し、固定端末の電波強度を用いて、屋内における端末装置2の位置情報である端末位置を取得する。
位置取得部234は、例えば、種類判断部232が固定端末であると判断した3以上の通信装置Bの電波強度を取得し、当該3以上の電波強度を用いて、地点情報格納部211の3以上の地点情報を参照し、フィンガープリント法により、端末位置を取得する。
位置取得部234は、移動判断結果を用いて、位置情報を取得することは好適である。例えば、位置取得部234は、移動判断結果が「停止中」である場合のみ、端末位置を取得することは好適である。
位置取得部234は、受信部22が受信した電波に対応する装置識別子が、地点情報格納部211の地点情報の中に含まれている場合のみ、当該装置識別子を含む地点情報を用いて、端末位置を取得しても良い。地点情報格納部211の地点情報は、固定端末の地点情報であるからである。
強度取得手段2341は、種類判断部232が固定端末であると判断した3以上の通信装置の電波強度を装置識別子に対応付けて取得する。
地点決定手段2342は、強度取得手段2341が取得した3以上の各装置識別子に対応付く電波強度と類似条件を満たす1または2以上の地点情報を、地点情報格納部211の地点情報から決定する。
地点決定手段2342は、例えば、地点情報が有する3以上の各装置識別子と対になる電波強度を要素とするベクトルである第一電波強度ベクトルを取得する。また、地点決定手段2342は、例えば、強度取得手段2341が取得した3以上の各装置識別子に対応付く電波強度を要素とするベクトルである第二電波強度ベクトルを取得する。地点決定手段2342は、例えば、2つの電波強度ベクトルの類似度を取得し、当該類似度が閾値以上または閾値より大きい場合に、当該第一電波強度ベクトルに対応する地点情報を取得する。
位置取得手段2343は、地点決定手段2342が決定した1以上の各地点情報が有する位置情報を取得し、1以上の位置情報を用いて、端末位置を取得する。
出力部24は、各種の情報を出力する。各種の情報は、例えば、ここでは端末位置、屋内のマップである。
ここで、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
位置出力部241は、位置取得部234が取得した端末位置を出力する。位置出力部241は、例えば、屋内のマップ上に、端末位置が特定する位置を明示する図柄を表示する。
格納部21、および地点情報格納部211は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
格納部21等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部21等で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部21等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部21等で記憶されるようになってもよい。
受信部22は、通常、無線または有線の通信手段で実現される。
処理部23、強度取得部231、種類判断部232、移動判断部233、位置取得部234、強度取得手段2341、地点決定手段2342、および位置取得手段2343は、通常、プロセッサやメモリ等から実現され得る。処理部23等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。なお、プロセッサは、CPU、MPU、GPU等であり、その種類は問わない。
出力部24、および位置出力部241は、例えば、ディスプレイやスピーカー等の出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、端末装置2の第一の動作例について、図11のフローチャートを用いて説明する。
(ステップS1101)移動判断部233は、端末装置2が移動中であるか、停止中であるかを判断する。かかる移動判断処理の例について、図12のフローチャートを用いて説明する。
(ステップS1102)ステップS1101における判断結果が「停止中」であればステップS1103に行き、「移動中」であればステップS1101に戻る。
(ステップS1103)強度取得手段2341は、時系列強度取得処理を行う。時系列強度取得処理の例について、図4のフローチャートを用いて説明した。
(ステップS1104)種類判断部232、地点決定手段2342等は、固定情報取得処理を行う。固定情報取得処理の例について、図5のフローチャートを用いて説明した。
(ステップS1105)位置取得手段2343は、端末位置を取得する位置推定処理を行う。位置推定処理の例について、図13のフローチャートを用いて説明する。
(ステップS1106)位置出力部241は、ステップS1105で取得された端末位置を出力する。ステップS1101に戻る。
なお、図11のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS1101の移動判断処理の例について、図12のフローチャートを用いて説明する。
(ステップS1201)移動判断部233は、端末装置2のセンサ値(例えば、加速度)を取得し、図示しないバッファに一時蓄積する。
(ステップS1202)移動判断部233は、図示しないバッファのセンサ値を用いて、移動判断を行うか否かを判断する。移動判断を行う場合はステップS1203に行き、移動判断を行わない場合はステップS1201に戻る。なお、移動判断部233は、常に移動判断を行っても良いし、例えば、所定数以上のセンサ値をバッファに蓄積した後、またはセンサ値の取得から所定時間経過後に移動判断を行っても良い。
(ステップS1203)移動判断部233は、図示しないバッファの1または2以上のセンサ値を用いて、端末装置2が移動中であるか、停止中であるかを判断する。停止中であればステップS1204に行き、移動中であればステップS1205に行く。
(ステップS1204)移動判断部233は、移動判断結果を「停止中」とする。ステップS1206に行く。
(ステップS1205)移動判断部233は、移動判断結果を「移動中」とする。
(ステップS1206)移動判断部233は、図示しないバッファをクリアする。上位処理にリターンする。
次に、ステップS1105の位置推定処理の例について、図13のフローチャートを用いて説明する。
(ステップS1301)位置取得手段2343は、当該端末装置2の3以上の電波強度情報(装置識別子と電波強度との組)を取得する。
(ステップS1302)位置取得手段2343は、3以上の電波強度情報をベクトル化し、電波強度ベクトルを取得する。なお、電波強度ベクトルは、例えば、(装置識別子1の電波強度,装置識別子2の電波強度,装置識別子3の電波強度,・・・装置識別子nの電波強度)である。
(ステップS1303)位置取得手段2343は、カウンタiに1を代入する。
(ステップS1304)位置取得手段2343は、地点情報格納部211に、i番目の地点情報が存在するか否かを判断する。i番目の地点情報が存在する場合はステップS1305に行き、存在しない場合はステップS1309に行く。
(ステップS1305)位置取得手段2343は、i番目の地点情報が有するi番目の電波強度ベクトルを地点情報格納部211から取得する。
(ステップS1306)位置取得手段2343は、ステップS1302で取得した電波強度ベクトルとステップS1305で取得したi番目の電波強度ベクトルとの類似度を取得する。次に、位置取得手段2343は、類似度が類似条件(例えば、類似度が閾値以上)を満たすか否かを判断する。類似度が類似条件を満たす場合はステップS1307に行き、満たさない場合はステップS1308に行く。
(ステップS1307)位置取得手段2343は、i番目の地点情報が有する位置情報と類似度とを取得し、図示しないバッファに蓄積する。
(ステップS1308)位置取得手段2343は、カウンタiを1、インクリメントする。ステップS1304に戻る。
(ステップS1309)位置取得手段2343は、図示しないバッファに蓄積された、3以上の位置情報と類似度との組を用いて、端末装置2の位置を特定する端末位置を取得する。上位処理にリターンする。
次に、端末装置2の第二の動作例について、図14のフローチャートを用いて説明する。
(ステップS1401)強度取得手段2341は、時系列強度取得処理を行う。時系列強度取得処理の例について、図4のフローチャートを用いて説明した。
(ステップS1402)地点決定手段2342は、固定情報取得処理を行う。固定情報取得処理の例について、図5のフローチャートを用いて説明した。
(ステップS1403)位置取得手段2343は、端末位置を取得する位置推定処理を行う。位置推定処理の例について、図13のフローチャートを用いて説明した。
(ステップS1404)位置出力部241は、ステップS1403で取得された端末位置を出力する。ステップS1401に戻る。
なお、図14のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、図14のフローチャートの中のステップS1402の固定情報取得処理における種類判断処理の第二の例について、図15のフローチャートを用いて説明する。なお、種類判断処理の第一の例は、図6のフローチャートを用いて説明した。
(ステップS1501)種類判断部232は、種類を判断する対象の通信装置Bの装置識別子を取得する。
(ステップS1502)種類判断部232は、ステップS1501で取得した装置識別子が、地点情報格納部211のいずれかの地点情報の中に存在するか否かを判断する。いずれかの地点情報の中に存在する場合はステップS1503に行き、存在しない場合はステップS1504に行く。
(ステップS1503)種類判断部232は、種類を「固定端末」とする。上位処理にリターンする。
(ステップS1504)種類判断部232は、種類を「移動端末」とする。上位処理にリターンする。
以下、本実施の形態における端末装置2の具体的な動作例について説明する。
ユーザBは、自分の端末装置2を保持し、場所識別子(P)で識別される屋内の場所に入った、とする。そして、端末装置2の受信部22は、場所識別子(P)を有する地点情報要求を、図示しない外部の装置に送信し、当該装置から図8に示す地点情報管理表を受信した、とする。そして、処理部23は、当該地点情報管理表を地点情報格納部211に、一時蓄積した、とする。
そして、端末装置2は、図11のステップS1103からS1106までの処理、または図14のフローチャートの処理に従って、以下のように動作する。
つまり、強度取得手段2341は、図4のフローチャートを用いて説明した時系列強度取得処理を行い、端末装置2が存在する地点Xにおける3以上の各通信装置Bの電波強度を取得し、図7に示す構造を有する時系列電波強度管理表を構成する。
次に、強度取得手段2341は、時系列強度取得処理を行い、地点Xにおいて、電波を受信できる各通信装置Bの時系列の電波強度を取得し、図7に示す構造の時系列電波強度管理表を構成する。
次に、種類判断部142は、時系列電波強度管理表を参照し、図4のフローチャートを用いて説明した種類判断処理により、各通信装置Bが「固定端末」であるか「移動端末」であるか否かを判断する。
次に、地点決定手段2342は、固定端末であると判断された「装置1」「装置3」「装置4」「装置6」・・・の電波強度を取得する。そして、地点決定手段2342は、電波強度ベクトル「(装置1の電波強度,装置3の電波強度,装置4の電波強度,装置6の電波強度,・・・)=(P1,P3,P4,P6,・・・)」を取得する。なお、ここで、地点決定手段2342が取得する通信装置Bの電波強度は、2以上の電波強度の代表値でも良いし、通信装置Bの最新の電波の強度等の一の電波強度でも良い。
次に、位置取得手段2343は、図13のフローチャートを用いて説明した位置推定処理を行い、地点Xにおける電波強度ベクトルに対して、図8の各レコードの電波強度ベクトル(電波強度情報により構成されるベクトル)との類似度を算出する。次に、位置取得手段2343は、類似条件「類似度>=閾値」を満たす電波強度ベクトル(例えば、図8の「ID=1」の電波強度ベクトル(S11,S12,S13,・・・)、「ID=2」の電波強度ベクトル(S21,S22,S23,・・・)、・・・・)を決定する。次に、位置取得手段2343は、類似条件を満たす電波強度ベクトルと対になる位置情報と類似度との組(例えば、「(x1,y1),DS1」「(x2,y2),DS2」・・・)を取得する。次に、位置取得手段2343は、地点Xの屋内における位置(x1×DS1/類似度の総和+x2×DS2/類似度の総和+・・・,y1×DS1/類似度の総和+y2×DS2/類似度の総和+・・・)を取得する。なお、類似度の総和は、「DS1+DS2+・・・」である。
次に、位置出力部241は、格納部21に格納されている当該屋内または屋外のマップを出力し、当該マップの上に、位置取得手段2343が取得した位置情報(端末位置)が示す位置に図柄を配置する。
以上、本実施の形態によれば、屋内または屋外における端末装置2の位置を容易に取得できる。
なお、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD-ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における端末装置2を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、3以上の各通信装置から当該通信装置を識別する装置識別子を含む電波を受信する受信部と、前記3以上の各通信装置ごとに、時系列の電波強度を取得する強度取得部と、前記強度取得部が取得した時系列の前記電波強度を用いて、前記3以上の各通信装置が固定されている固定端末であるか、移動している移動端末であるかを判断する種類判断部と、前記種類判断部が固定端末であると判断した3以上の前記通信装置の電波強度を用いて、前記端末装置の位置情報である端末位置を取得する位置取得部と、前記位置取得部が取得した前記端末位置を出力する位置出力部として機能させるためのプログラムである。
(実施の形態3)
本実施の形態において、時刻に対応するユーザの位置情報を用いて、ユーザの行動情報と時間帯とを取得し、当該時間帯に対応付く当該行動情報を出力する行動取得装置について説明する。なお、行動取得装置は、さらに、ユーザの活動データやバイタルデータをも用いて、ユーザの行動情報と時間帯とを取得することは好適である。また、行動情報を取得する際に使用される位置情報は、実施の形態2で述べた端末装置2が取得した屋内等の位置情報でも良い。
また、本実施の形態において、過去の記録情報を用いて、行動情報を取得する行動取得装置について説明する。なお、過去の記録情報は、1または2以上のユーザの入力に基づく情報であっても良い。
また、本実施の形態において、ユーザの感情情報も取得し、出力する行動取得装置について説明する。また、本実施の形態において、過去の記録情報を用いて、感情情報を取得することは好適である。
本実施の形態において、行動取得装置は端末である。しかし、実施の形態4で説明するように、行動取得装置はサーバでも良い。つまり、後述する行動情報を取得するや感情情報を取得する処理は、ユーザの端末が行っても、サーバが行っても良い。
また、本実施の形態において、行動情報が取得できない場合、マップを用いて、場所情報を取得し、出力する行動取得装置について説明する。
さらに、本実施の形態において、推定した行動情報と確定した行動情報とを視覚的に区別する態様で表示する行動取得装置について説明する。
図16は、本実施の形態における情報システムDの概念図である。情報システムDは、1または2以上の行動取得装置3、サーバ装置4、および3以上の通信装置Bを備える。
行動取得装置3は、端末である。行動取得装置3は、行動情報を取得し、出力する装置である。行動取得装置3は、例えば、スマートフォン、タブレット端末、スマートウォッチ、いわゆるパーソナルコンピュータ等であり、その種類は問わない。
サーバ装置4は、例えば、2以上のユーザの行動元情報と行動情報とのセットであり、各時間帯のセットを格納している装置である。サーバ装置4は、例えば、後述する学習情報を格納しており、当該学習情報を行動取得装置3に提供する装置である。サーバ装置4は、例えば、クラウドサーバ、ASPサーバであるが、その種類は問わない。
図17は、本実施の形態における情報システムDのブロック図である。図18は、行動取得装置3のブロック図である。
行動取得装置3は、格納部31、受信部32、処理部33、および出力部34を備える。格納部31は、学習管理部311、マップ管理部312、および行動管理部313を備える。なお、行動管理部313は、図示しない外部の装置に存在しても良い。処理部33は、強度取得部231、種類判断部232、時刻取得部331、位置取得部332、活動取得部333、バイタル取得部334、行動推定部335、感情推定部336、場所取得部337、蓄積部338、および構成部339を備える。出力部34は、行動出力部341、および感情出力部342を備える。
サーバ装置4は、サーバ格納部41、サーバ受信部42、サーバ処理部43、およびサーバ送信部44を備える。
行動取得装置3は、例えば、出力指示、確定指示、情報の入力を受け付ける。出力指示とは、後述する出力情報を出力する指示である。出力指示は、通常、期間情報を有する。期間情報は、行動情報等を出力する期間を特定する情報である。確定指示とは、推定された行動情報または感情情報を確定させる指示である。情報の入力は、推定された行動情報または感情情報が違っている場合に、当該行動情報または当該感情情報を変更するための情報の入力である。情報の入力は、更新後の行動情報または更新後の感情情報である。
行動取得装置3を構成する格納部31には、各種の情報が格納される。各種の情報は、例えば、後述する学習情報、後述するマップ、後述する行動情報、地点情報、カレンダーのひな形、2以上の各行動条件に対応付く行動情報、2以上の各感情条件に対応付く感情情報である。
カレンダーのひな形は、出力されるカレンダーのひな形を示す情報である。カレンダーのひな形は、例えば、ICSファイル、HTMLで記述されたファイル、XMLで記述されたファイルであるが、そのデータ構造は問わない。
行動条件とは、行動情報を取得するための条件である。行動条件は、2以上の各行動元情報を用いた条件である。行動条件は、行動情報に対応付いている。行動条件は、例えば、「位置情報=事務所 AND 8時<=時刻<=19時」であり、かかる行動条件に対応付く行動情報が「仕事」である。行動条件は、例えば、「位置情報=台所 AND 活動データ=スタンディング AND 7時<=時刻<=8時」であり、かかる行動条件に対応付く行動情報が「料理」である。行動条件は、例えば、「位置情報=公園 AND 活動データ=スタンディング AND 120<=心拍数」であり、かかる行動条件に対応付く行動情報が「ランニング」である。
感情条件とは、感情情報を取得するための条件である。感情条件は、2以上の各感情元情報を用いた条件である。感情条件は、感情情報に対応付いている。感情条件は、例えば、「位置情報=事務所 AND 8時<=時刻<=19時」であり、かかる行動条件に対応付く感情情報が「ポジティブ」である。感情条件は、例えば、「位置情報=台所 AND 活動データ=スタンディング AND 7時<=時刻<=8時」であり、かかる行動条件に対応付く感情情報が「ポジティブ」である。行動条件は、例えば、「位置情報=公園 AND 活動データ=スタンディング AND 120<=心拍数」であり、かかる行動条件に対応付く感情情報が「ネガティブ」である。
学習管理部311には、学習情報が格納されている。学習情報とは、2以上の教師データに基づく情報である。学習管理部311の学習情報は、例えば、行動学習情報、および感情学習情報である。学習管理部311の2以上の各学習情報は、各々、異なるユーザ属性値条件に対応付いていても良い。ユーザ属性値条件とは、1または2以上のユーザ属性値に関する条件である。
ユーザ属性値とは、ユーザの属性値である。ユーザ属性値は、例えば、職業、家族構成、未婚か既婚か、性別、年齢、年齢層、朝型か夜型か、居住地域であるが、問わない。
行動学習情報は、2以上の行動教師データに基づく情報である。行動学習情報は、例えば、行動学習モデル、または行動対応表である。感情学習情報は、2以上の感情教師データに基づく情報である。感情学習情報は、例えば、感情学習モデル、または感情対応表である。
行動教師データは、例えば、1または2以上の行動元情報と行動情報とを有する。感情教師データは、例えば、1または2以上の行動元情報と行動情報と感情情報とを有する。
感情教師データは、例えば、1または2以上の行動元情報または行動情報と、感情情報とを有する。感情教師データは、例えば、1または2以上の行動元情報と行動情報と、感情情報とを有する。感情教師データにおいて、1以上の行動元情報、行動情報、または1以上の行動元情報と行動情報が説明変数であり、感情情報が目的変数である。
行動情報とは、ユーザの行動を特定する情報である。行動情報は、例えば、「仕事」「テレビ鑑賞」「ウォーキング」「ランニング」「ジム」「お風呂」「睡眠」である。
感情情報とは、ユーザの感情に関する情報である。感情情報は、例えば、ポジティブ(例えば、「1」)またはネガティブ(例えば、「0」)である。感情情報は、例えば、ポジティブさ度合いまたはネガティブさの度合いである。感情情報は、例えば、喜(例えば、「1」)、怒(例えば、「2」)、哀(例えば、「3」)、楽(例えば、「4」)である。
行動元情報とは、行動情報を取得するための元になる情報である。行動元情報は、位置情報を含む。行動元情報は、活動データ、または1または2種類以上のバイタルデータを含むことは好適である。行動元情報は、感情情報を含んでも良い。行動元情報は、過去の1または2以上の行動情報を含んでも良い。過去の行動情報の中には、通常、直前の行動情報を含む。行動元情報は、ユーザの将来の1または2以上の予定情報を含んでも良い。予定情報は、例えば、図示しないカレンダーサーバ(例えば、「google calendar(登録商標)のサーバ」)に格納されている情報である。行動元情報は、同じ位置情報に居るに至ってからの経過時間を含んでも良い。行動元情報は、1または2以上のユーザ属性値を含んでも良い。
位置情報とは、行動取得装置3の位置を特定する情報である。位置情報は、例えば、(緯度,経度)、(緯度,経度,高度)、屋内における三次元の相対位置(x,y,z)、または屋内における二次元の相対位置(x,y)、場所情報である。場所情報とは、場所の意味を表現した情報である。場所情報は、例えば。屋内場所情報または屋外場所情報である。屋内場所情報とは、屋内の場所を特定する情報である。屋内場所情報は、例えば、「リビング」「台所」「仕事部屋」「オフィス」である。屋外場所情報とは、屋外の場所を特定する情報である。屋外場所情報は、例えば、「ABC駅」「図書館」「居酒屋」「A地点」である。
身体データとは、ユーザの身体に関する情報である。身体データは、例えば、活動データ、バイタルデータである。
活動データとは、ユーザの活動を特定する情報である。活動データは、例えば、「立っている」「接地している(例えば、座っている)」である。
バイタルデータとは、ユーザの生体から取得できる情報である。バイタルデータは、生体情報と言っても良い。バイタルデータは、例えば、単位時間(例えば、1分、または30秒)における心拍数、心拍変動、血圧(上または/および下)、単位時間における呼吸数、体温である。 学習情報は、例えば、学習モデル、または対応表である。学習モデルとは、2以上の教師データを用いて、機械学習の学習処理により構成された情報であり、機械学習の予測処理に使用される情報である。学習モデルは、学習器、分類器、分類モデル等と言っても良い。機械学習のアルゴリズムは、深層学習、ランダムフォレスト、決定木、SVM等、問わない。また、機械学習には、例えば、TensorFlow(登録商標)のライブラリ、R言語のrandom forestのモジュール、TinySVM等の各種の機械学習の関数や、種々の既存のライブラリを用いることができる。また、学習情報が学習モデルである場合、教師データの1または2以上の行動元情報は説明変数であり、行動情報が目的変数である。
ここでの学習モデルは、例えば、行動学習モデル、または感情学習モデルである。行動学習モデルは、行動情報を取得するための学習モデルであり、行動教師データを用いて、機械学習の学習処理により取得された情報である。行動教師データは、1または2以上の行動元情報と行動情報とを有する。
感情学習モデルは、感情情報を取得するための学習モデルであり、感情教師データを用いて、機械学習の学習処理により取得された情報である。感情教師データは、1または2以上の感情元情報と感情情報とを有する。
対応表は、行動対応表、または感情対応表である。行動対応表とは、行動情報を取得するための表である。行動対応表は、2以上の行動対応情報を有する。行動対応情報は、1または2以上の行動元情報と行動情報との対応を示す情報である。なお、1または2以上の行動元情報は、例えば、ベクトルの構造を有する。かかるベクトルを行動元ベクトルという。行動元ベクトルは、1または2以上の各行動元情報を要素として有するベクトルである。感情対応表は、2以上の感情対応情報を有する。感情対応情報は、1または2以上の感情元情報と感情情報との対応を示す情報である。1または2以上の感情元情報は、例えば、ベクトルの構造を有する。かかるベクトルを感情元ベクトルという。感情元ベクトルは、1または2以上の各感情元情報を要素として有するベクトルである。
マップ管理部312には、マップが格納される。マップは、1または2以上の各位置情報に対応する場所情報を有する。マップは、例えば、KIWIフォーマットであるが、その構造は問わない。
行動管理部313には、2以上の各時間帯に対応付く行動情報が格納される。ここでの行動情報は、例えば、行動推定部335が取得した情報である。行動情報は、行動推定部335が取得した情報を、ユーザにより変更された情報である。
ここでの行動情報は、確定した行動情報であるか否かが判別可能であることは好適である。行動情報は、例えば、確定フラグが対応付く。確定フラグとは、確定した行動情報であることは示すフラグである。確定した行動情報であるか否かが判別可能であることは、例えば、確定した行動情報と、確定していない行動情報の格納領域が異なることである。その他、確定した行動情報であるか否かが判別可能にするための方法は問わない。
受信部32は、1または2以上の各通信装置Bから、通信装置Bを識別する装置識別子を含む電波を受信する。受信部32は、通常、3以上の各通信装置Bか電波を受信する。受信部32は、受信部22と同じ機能を有する。
処理部33は、各種の処理を行う。各種の処理は、例えば、強度取得部231、種類判断部232、時刻取得部331等が行う処理である。
時刻取得部331は、時刻を取得する。時刻取得部331は、例えば、図示しない時計から時刻を取得する。時刻取得部331は、例えば、サーバ装置4または図示しない装置から時刻を受信する。時刻は、時分秒でも良いし、時分でも良い。時刻は、「年」「月」「日」のうちの1または2以上の情報を含んでも良い。時刻取得部331は、曜日を取得しても良い。曜日は、取得された時刻の中に含まれる情報である、と考えても良い。
位置取得部332は、位置情報を取得する。当該位置情報は、時刻に対応付く。位置取得部332は、通常、時刻取得部331が取得した時刻に対応付けて、位置情報を取得する。位置取得部332は、位置取得部234と同じ処理を行っても良い。特に、行動取得装置3が屋内に存在する場合等、GPS信号を受信できない時に、位置取得部332は、位置取得部234と同じ処理を行うことは好適である。位置取得部332は、GPS受信機を有することは好適である。位置取得部332は、例えば、GPS受信機により位置情報を取得する。かかる位置情報は、絶対位置情報である。位置取得部332が取得する位置情報は、屋外、屋内のいずれの位置情報でも良い。
位置取得部332は、種類判断部232が固定端末であると判断した通信装置Bの電波強度を用いて、屋内における位置情報を取得することは好適である。ここで使用される電波強度は、3以上の通信装置Bの電波強度であることは好適であるが、1または2以上の通信装置Bの電波強度でも良い。
活動取得部333は、時刻に対応付くユーザの活動データを取得する。活動取得部333は、通常、時刻取得部331が取得した時刻に対応付けて活動データを取得する。活動データを取得する処理は公知技術である。
バイタル取得部334は、時刻に対応付くユーザの1または2種類以上のバイタルデータを取得する。バイタル取得部334は、通常、時刻取得部331が取得した時刻に対応付く1種類以上のバイタルデータを取得する。バイタルデータを取得する処理は公知技術である。
行動推定部335は、時刻に対応付く位置情報を含む2以上の行動元情報を用いて、2以上の各行動元情報が有する時刻が特定する時間帯におけるユーザの行動を特定する行動情報を取得する。行動元情報は、活動データをも含むことは好適である。また、行動元情報は、1または2種類以上のバイタルデータをも含むことは好適である。
行動推定部335は、例えば、時刻に対応付く位置情報を含む2以上の行動元情報が合致する行動条件を検知し、当該行動条件と対になる行動情報を格納部31から取得する。
行動推定部335は、例えば、13時15分に、屋内である自宅の机の位置で座っている場合、行動情報「仕事」を取得する。行動推定部335は、例えば、20時17分に、屋内である自宅のリビングで座っている場合、行動情報「テレビ視聴中」を取得する。行動推定部335は、例えば、20時17分に、位置情報「居酒屋」を取得した場合、行動情報「飲み会」を取得する。
行動推定部335は、学習管理部311の行動学習情報と、時刻に対応付く位置情報を含む2以上の行動元情報とを用いて、時間帯における行動情報を取得しても良い。以下、学習情報が学習モデルである場合と、対応表である場合との行動推定部335の処理を説明する。
行動推定部335は、1以上のユーザ属性値を取得し、当該1以上のユーザ属性値が合致するユーザ属性値条件と対になる行動学習情報を学習管理部311から取得し、当該行動学習情報を用いて、行動情報を取得しても良い。
(1)行動学習情報が行動学習モデルである場合
行動推定部335は、学習管理部311の学習モデルを取得する。また、行動推定部335は、時刻と、当該時刻に対応付く1または2以上の行動元情報を取得する。次に、行動推定部335は、時刻と当該行動元情報と、学習モデルとを、機械学習の予測処理を行うモジュールに与え、当該モジュールを実行し、行動情報を取得する。
なお、当該モジュールが出力したスコアが閾値以下または閾値未満である場合、行動推定部335は、行動情報を取得しなくても良い。
(2)行動学習情報が行動対応表である場合
行動推定部335は、時刻と、当該時刻に対応付く行動元情報を取得する。次に、行動推定部335は、時刻と当該行動元情報とを要素とする行動元ベクトルを取得する。次に、行動推定部335は、当該行動元ベクトルと行動対応表が有する2以上の各行動対応情報が有する行動元ベクトルとの類似度を算出する。次に、行動推定部335は、類似度が最大の行動元ベクトルと対になる行動情報を行動対応表から取得する。なお、行動推定部335は、類似度が最大でも、当該類似度が閾値以下または閾値未満である場合、行動情報を取得しなくても良い。
感情推定部336は、行動情報または行動元情報を用いて、時間帯におけるユーザの感情に関する感情情報を取得する。
感情推定部336は、例えば、時刻に対応付く位置情報を含む2以上の感情元情報が合致する感情条件を検知し、当該感情条件と対になる感情情報を格納部31から取得する。
感情推定部336は、例えば、13時15分に、屋内である自宅の机の位置で座っている場合、感情情報「ポジティブ」を取得する。感情推定部336は、例えば、20時17分に、屋内である自宅のリビングで座っている場合、感情情報「ポジティブ」を取得する。感情推定部336は、例えば、20時17分に、位置情報「居酒屋」を取得した場合、感情情報「ポジティブ」を取得する。
感情推定部336は、学習管理部311の感情学習情報と、行動推定部335が取得した行動情報または行動情報を取得する元になった1または2以上の行動元情報を用いて、時間帯における感情情報を取得する。なお、行動情報または1または2以上の各行動元情報は、ここでは、感情情報の取得のために用いられるので、感情元情報と言う。
感情推定部336は、1以上のユーザ属性値を取得し、当該1以上のユーザ属性値が合致するユーザ属性値条件と対になる感情学習情報を学習管理部311から取得し、当該感情学習情報を用いて、感情情報を取得しても良い。
感情推定部336は、以下、感情学習情報が感情学習モデルである場合と、感情対応表である場合との行動推定部335の処理を説明する。
(1)感情学習情報が感情学習モデルである場合
感情推定部336は、学習管理部311の感情学習モデルを取得する。また、感情推定部336は、当該時刻に対応付く1または2以上の行動元情報または行動情報を取得する。次に、感情推定部336は、取得した1または2以上の行動元情報または行動情報と、感情学習モデルとを、機械学習の予測処理を行うモジュールに与え、当該モジュールを実行し、感情情報を取得する。
なお、当該モジュールが出力したスコアが閾値以下または閾値未満である場合、感情推定部336は、感情情報を取得しなくても良い。
(2)感情学習情報が感情対応表である場合
感情推定部336は、当該時刻に対応付く1または2以上の行動元情報または行動情報を取得する。次に、感情推定部336は、当該1以上の行動元情報または行動情報を要素とする感情元ベクトルを取得する。次に、感情推定部336は、当該感情元ベクトルと感情対応表が有する2以上の各対応情報が有する感情元ベクトルとの類似度を算出する。次に、感情推定部336は、類似度が最大の感情元ベクトルと対になる感情情報を感情対応表から取得する。なお、感情推定部336は、類似度が最大でも、類似度が閾値以下または閾値未満である場合、感情情報を取得しなくても良い。
場所取得部337は、マップ管理部312のマップを参照し、位置取得部332が取得した位置情報に対応する場所情報を取得する。かかる場合の位置情報は、通常、絶対位置情報(例えば、(緯度,経度))である。
場所取得部337は、行動推定部335が行動情報を取得しなかった時間帯に対してのみ、場所情報を取得することは好適である。
蓄積部338は、行動推定部335が取得した行動情報を時間帯に対応付けて、行動管理部313に蓄積する。
蓄積部338は、感情推定部336が取得した感情情報を時間帯に対応付けて、行動管理部313に蓄積しても良い。
構成部339は、行動管理部313の行動情報を用いて、出力する情報を構成する。構成部339は、例えば、行動管理部313の感情情報を用いて、出力する情報を構成する。
構成部339は、例えば、カレンダー上の2以上の各時間帯が特定する領域に、各時間帯と対になる行動情報を有する出力情報を構成する。出力情報において、確定した行動情報と未確定の行動情報とを視覚的に区別可能に、2以上の行動情報が配置されていることは好適である。構成部339は、2以上の各時間帯に対応する感情情報を、視覚的に明示している出力情報を構成することは好適である。構成部339は、例えば、感情情報が「ポジティブ」である時間帯と、「ネガティブ」である時間帯とが、視覚的に区別可能に表出している出力情報を構成することは好適である。構成部339は、例えば、感情情報が「ポジティブ」である時間帯と、「ネガティブ」である時間帯との背景色が異なるように、出力情報を構成することは好適である。
出力部34は、各種の情報を出力する。各種の情報は、例えば、行動情報、感情情報、場所情報である。
ここで出力とは、通常、ディスプレイへの表示であるが、プロジェクターを用いた投影、プリンタでの印字、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念であっても良い。
行動出力部341は、1以上の各時間帯における行動情報を出力する。
行動出力部341は、行動推定部335が行動情報を取得できない場合に、場所取得部337が取得した場所を出力することは好適である。
行動出力部341は、確定した行動情報と未確定の行動情報とを視覚的に区別可能に、2以上の行動情報を出力することは好適である。
感情出力部342は、感情情報を出力する。感情出力部342は、例えば、感情推定部336が取得した感情情報を出力する。感情出力部342は、1以上の各時間帯における感情情報を出力することは好適である。
サーバ装置4を構成するサーバ格納部41には、各種の情報が格納される。各種の情報は、例えば、上述した学習情報、2以上の各ユーザ識別子に対応付く行動元情報と時刻、2以上の行動教師データ、2以上の感情教師データである。
サーバ受信部42は、各種の指示や情報を受信する。各種の指示や情報は、例えば、情報の送信指示である。ここでの情報は、例えば、学習情報、行動元情報である。
サーバ処理部43は、各種の処理を行う。各種の処理は、例えば、学習処理である。学習処理は、例えば、行動学習処理、感情学習処理である。
行動学習処理とは、2以上の行動教師データを用いて、行動学習モデルを取得する。処理である。サーバ処理部43は、例えば、2以上の行動教師データを機械学習の学習処理モジュールに与え、当該モジュールを実行し、行動学習モデルを取得し、サーバ格納部41に蓄積する。サーバ処理部43は、例えば、2以上の各行動情報の候補ごとに、行動情報を含む教師データである2以上の正例と、行動情報を含まない教師データである2以上の負例とを機械学習の学習処理モジュールに与え、当該モジュールを実行し、行動情報の候補ごとに、行動学習モデルを取得し、行動情報に対応付けてサーバ格納部41に蓄積する。サーバ処理部43は、例えば、2以上の各行動教師データをレコードとする表である行動対応表を取得し、サーバ格納部41に蓄積する。
感情学習処理とは、2以上の感情教師データを用いて、感情学習モデルを取得する処理である。サーバ処理部43は、例えば、2以上の感情教師データを機械学習の学習処理モジュールに与え、当該モジュールを実行し、感情学習モデルを取得し、サーバ格納部41に蓄積する。サーバ処理部43は、例えば、2以上の各感情情報の候補ごとに、感情情報を含む教師データである2以上の正例と、感情情報を含まない教師データである2以上の負例とを機械学習の学習処理モジュールに与え、当該モジュールを実行し、感情情報の候補ごとに、感情学習モデルを取得し、感情情報に対応付けてサーバ格納部41に蓄積する。サーバ処理部43は、例えば、2以上の各感情教師データをレコードとする表である感情対応表を取得し、サーバ格納部41に蓄積する。
サーバ送信部44は、各種の情報を送信する。各種の情報は、例えば、行動学習モデル、感情学習モデル、行動対応表、感情対応表である。
格納部31、学習管理部311、マップ管理部312、行動管理部313、およびサーバ格納部41は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
格納部31等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部31等で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部31等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部31等で記憶されるようになってもよい。
受信部32、サーバ受信部42、およびサーバ送信部44は、通常、無線または有線の通信手段で実現される。
処理部33、時刻取得部331、位置取得部332、活動取得部333、バイタル取得部334、行動推定部335、感情推定部336、場所取得部337、蓄積部338、構成部339、およびサーバ処理部43は、通常、プロセッサやメモリ等から実現され得る。処理部33等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。なお、プロセッサは、CPU、MPU、GPU等であり、その種類は問わない。
出力部34、行動出力部341、および感情出力部342は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。出力部34は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、情報システムDを構成する行動取得装置3の動作例について、図19のフローチャートを用いて説明する。
(ステップS1901)処理部33は、情報を取得するか否かを判断する。情報を取得する場合はステップS1902に行き、情報を取得しない場合はステップS1916に行く。なお、処理部33は、常に、情報を取得すると判断しても良いし、情報を取得することを示すフラグが格納部31に格納されている場合等に、情報を取得すると判断しても良い。かかる判断の条件は問わない。
(ステップS1902)時刻取得部331は、図示しない時計から時刻を取得する。ここで、時刻取得部331は、曜日を取得しても良い。
(ステップS1903)処理部33は、1または2以上の行動元情報を取得する。かかる行動元取得処理の例について、図20のフローチャートを用いて説明する。
(ステップS1904)行動推定部335は、ステップS1903で取得された1または2以上の行動元情報を用いて、ユーザの行動を特定する行動情報を推定する。かかる行動推定処理の例について、図22から図24のフローチャートを用いて説明する。
(ステップS1905)場所取得部337は、ステップS1904で行動情報を取得できたか否かを判断する。行動情報を取得できた場合はステップS1907に行き、行動情報を取得できなかった場合はステップS1906に行く。
(ステップS1906)場所取得部337は、マップ管理部312のマップを参照し、ステップS1903で取得された位置情報に対応する場所情報を取得する。なお、ここで、場所情報を取得できない時があっても良い。
(ステップS1907)蓄積部338は、図示しないバッファに格納されている行動情報であり、直前に蓄積された行動情報と、ステップS1904で取得された行動情報とが一致するか否かを判断する。一致する場合はステップS1908に行き、一致しない場合はステップS1912に行く。
(ステップS1908)蓄積部338は、取得された行動情報等に、ステップS1902で取得された時刻を対応付けて、図示しないバッファに蓄積する。
(ステップS1909)感情推定部336は、感情情報を推定する処理を行う。かかる感情推定処理の例について、図25から図27のフローチャートを用いて説明する。
(ステップS1910)蓄積部338は、ステップS1909で感情情報を取得できたか否かを判断する。感情情報を取得できた場合はステップS1911に行き、感情情報を取得できなかった場合はステップS1901に戻る。
(ステップS1911)蓄積部338は、ステップS1909で取得された感情情報を、ステップS1902で取得された時刻に対応付けて図示しないバッファに蓄積する。ステップS1901に戻る。
(ステップS1912)蓄積部338は、ステップS1902で取得された時刻と取得された行動情報等とを対応付けて図示しないバッファに蓄積する。
(ステップS1913)蓄積部338は、直前の行動情報等を取得する。
(ステップS1914)蓄積部338は、直前の行動情報等に対応付く2以上の時刻が特定する時間帯を取得する。
(ステップS1915)蓄積部338は、ステップS1914で取得した時間帯とステップS1913で取得した直前の行動情報等とを対応付けて、行動管理部313に蓄積する。なお、ここで、蓄積部338は、ユーザ識別子にも対応付けて、時間帯と直前の行動情報等とを対応付けて蓄積しても良い。かかる場合、蓄積先は、サーバ装置4であることは好適である。
(ステップS1916)行動取得装置3は、出力指示を受け付けたか否かを判断する。出力指示を受け付けた場合はステップS1917に行き、受け付けなかった場合はステップS1919に行く。
(ステップS1917)構成部339は、行動管理部313の行動情報等を用いて、出力情報を構成する。かかる出力構成処理の例について、図28のフローチャートを用いて説明する。
(ステップS1918)出力部34は、ステップS1917で構成された出力情報を出力する。ステップS1901に戻る。
(ステップS1919)行動取得装置3は、出力されている出力情報に対して、情報の入力を受け付けたか否かを判断する。情報の入力を受け付けた場合はステップS1920に行き、受け付けなかった場合はステップS1923に行く。
(ステップS1920)処理部33は、ステップS1919で受け付けられた情報が、推定された行動情報または推定された感情情報の確定指示であるか否かを判断する。確定指示であればステップS1921に行き、確定指示でなければステップS1922に行く。
(ステップS1921)蓄積部338は、確定指示に対応する行動情報または感情情報を確定させるための処理を行う。ステップS1901に戻る。なお、かかる処理は、例えば、確定指示に対応する行動情報または確定指示に対応する感情情報に、確定フラグを対応付ける処理である。
(ステップS1922)蓄積部338は、入力された情報を蓄積する。ステップS1901に戻る。なお、入力された情報は、例えば、正しい行動情報または正しい感情情報である。そして、蓄積部338は、入力された情報に対応する推定された行動情報または感情情報を、入力された行動情報または感情情報に更新する。また、蓄積部338は、かかる行動情報または感情情報を確定させるための処理を行う。
(ステップS1923)行動取得装置3は、学習指示を受け付けたか否かを判断する。学習指示を受け付けた場合はステップS1924に行き、受け付けなかった場合はステップS1901に戻る。
(ステップS1924)行動取得装置3の図示しない学習部または図示しない学習装置は、行動情報等を含む2以上の行動教師データを用いて、行動学習情報を構成し、学習管理部311に蓄積する。かかる行動学習処理の例について、図29および図30のフローチャートを用いて説明する。
(ステップS1925)行動取得装置3の図示しない学習部または図示しない学習装置は、感情情報等を含む2以上の感情教師データを用いて、感情学習情報を構成し、学習管理部311に蓄積する。ステップS1901に戻る。かかる感情学習処理の例について、図31および図32のフローチャートを用いて説明する。
なお、図19のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS1903の行動元取得処理の例について、図20のフローチャートを用いて説明する。
(ステップS2001)処理部33は、受信部32がGPS信号を取得できているか否かを判断する。GPS信号を取得できている場合はステップS2002に行き、GPS信号を取得できていない場合はステップS2003に行く。
(ステップS2002)位置取得部332は、受信部32が受信したGPS信号に基づいて、絶対位置情報を取得する。
(ステップS2003)位置取得部332は、位置情報を取得する。かかる位置推定処理の例について、図21のフローチャートを用いて説明する。
(ステップS2004)活動取得部333は、ユーザの活動データを取得する。
(ステップS2005)バイタル取得部334は、ユーザの1または2種類以上のバイタルデータを取得する。
(ステップS2006)行動推定部335は、1以上の過去行動情報を取得する。なお、1以上の過去行動情報は、時間的に直前の行動情報を含む。
(ステップS2007)行動推定部335は、行動推定処理にために感情情報を使用するか否かを判断する。感情情報を使用する場合はステップS2008に行き、感情情報を使用しない場合はステップS2009に行く。なお、行動推定処理にために感情情報を使用するか否かは、通常、予め決まっている。
(ステップS2008)感情推定部336は、感情情報を取得する。かかる感情推定処理の例について、図25から図27のフローチャートを用いて説明する。
(ステップS2009)行動推定部335は、新たな行動情報が特定する新たな行動が始まってからの経過時間を取得する。
(ステップS2010)行動推定部335は、時刻と位置情報とを含む2種類以上の行動元情報を用いて、行動推定処理に使用する情報を構成する。上位処理にリターンする。ここで、構成される情報は、通常、行動元情報の集合であり、例えば、2以上の各行動元情報を要素とする行動元ベクトルである。2種類以上の行動元情報は、例えば、時刻、曜日、位置情報、活動データ、バイタルデータ、過去行動情報、感情情報、経過時間のうちの2種類以上の情報である。
なお、図20のフローチャートにおいて、GPS信号を取得できている場合でも、位置取得部332は、図21のフローチャートを用いて説明する位置推定処理により、位置情報を取得しても良い。
また、図20のフローチャートにおいて、行動推定部335は、1または2以上のユーザ属性値を取得し、当該1以上のユーザ属性値を含む行動元情報を取得しても良い。なお、ユーザ属性値は、格納部31に格納されている情報でも良いし、ユーザにより入力された情報等でも良い。 次に、ステップS2003の位置推定処理の例について、図21のフローチャートを用いて説明する。図21のフローチャートにおいて、図13と同一のステップについて説明を省略する。また、ステップS2003の位置推定処理は、図13のフローチャートと同一の処理でも良い。
(ステップS2101)位置取得部332は、2つの電波強度ベクトルの類似度を取得し、当該類似度をi番目の地点情報に対応付けて、図示しないバッファに一時蓄積する。ステップS1308に行く。
(ステップS2102)位置取得部332は、最大の類似度と対になる地点情報が有する位置情報を取得する。上位処理にリターンする。なお、取得された位置情報は、端末位置である。
次に、ステップS1904の第一の行動推定処理の例について、図22のフローチャートを用いて説明する。図22のフローチャートは、一つの行動学習モデルを用いて、機械学習の予測処理により、行動情報を推定する処理である。つまり、図22のフローチャートは、機械学習の多値分類の予測処理により、行動情報を推定する処理である。
(ステップS2201)行動推定部335は、ステップS1903で取得された2種類以上の行動元情報(例えば、行動元ベクトル)を取得する。
(ステップS2202)行動推定部335は、学習管理部311から行動学習モデルを取得する。
(ステップS2203)行動推定部335は、ステップS2201で取得した2種類以上の行動元情報と行動学習モデルとを機械学習の予測処理モジュールに与え、当該モジュールを実行する。
(ステップS2204)行動推定部335は、ステップS2203における実行結果である推定された行動情報とスコアとを取得する。
(ステップS2205)行動推定部335は、ステップS2204で取得されたスコアが閾値以上であるか否かを判断する。閾値以上であればステップS2206に行き、閾値未満であればステップS2207に行く。
(ステップS2206)行動推定部335は、ステップS2204で取得された行動情報を、出力される行動情報として取得する。上位処理にリターンする。
(ステップS2207)行動推定部335は、「空」の行動情報を取得する。上位処理にリターンする。
なお、図22のフローチャートにおいて、ステップS2205からステップS2207の処理は行わなくても良い。
次に、ステップS1904の第二の行動推定処理の例について、図23のフローチャートを用いて説明する。図23のフローチャートは、2以上の各行動情報の候補ごとの行動学習モデルを用いて、機械学習の予測処理により、行動情報を推定する処理である。つまり、図22のフローチャートは、機械学習の二値分類の予測処理により、行動情報を推定する処理である。
(ステップS2301)行動推定部335は、ステップS1903で取得された2種類以上の行動元情報を取得する。
(ステップS2302)行動推定部335は、カウンタiに1を代入する。
(ステップS2303)行動推定部335は、学習管理部311を参照し、i番目の行動情報の候補が存在するか否かを判断する。i番目の行動情報の候補が存在する場合はステップS2304に行き、存在しない場合はステップS2309に行く。
(ステップS2304)行動推定部335は、i番目の行動情報の候補と対になるi番目の行動学習モデルを学習管理部311から取得する。
(ステップS2305)行動推定部335は、ステップS2301で取得した2種類以上の行動元情報とステップS2304で取得したi番目の行動学習モデルとを機械学習の二値分類を行う予測処理モジュールに与え、当該モジュールを実行する。
(ステップS2306)行動推定部335は、ステップS2305における実行結果が「真」であるか否かを判断する。「真」であればステップS2307に行き、「偽」であればステップS2308に行く。
(ステップS2307)行動推定部335は、i番目の行動情報の候補に対応付けて、ステップS2305における実行結果の一部であるスコアを図示しないバッファに一時蓄積する。
(ステップS2308)行動推定部335は、カウンタiを1、インクリメントする。ステップS2303に戻る。
(ステップS2309)行動推定部335は、最大のスコアを取得し、当該スコアが閾値以上であるか否かを判断する。最大のスコアが閾値以上であればステップS2310に行き、閾値未満であればステップS2311に行く。
(ステップS2310)行動推定部335は、最大のスコアと対になる行動情報を崇徳する。上位処理にリターンする。
(ステップS2311)行動推定部335は、「空」の行動情報を取得する。上位処理にリターンする。
なお、図23のフローチャートにおいて、ステップS2308からステップS2311の処理は行わなくても良い。
次に、ステップS1904の第三の行動推定処理の例について、図24のフローチャートを用いて説明する。図24のフローチャートは、行動対応表を用いて、行動情報を推定する処理である。
(ステップS2401)行動推定部335は、ステップS1903で取得された2種類以上の行動元情報を取得する。ここでの2種類以上の行動元情報は、行動元ベクトルである。
(ステップS2402)行動推定部335は、カウンタiに1を代入する。
(ステップS2403)行動推定部335は、学習管理部311の行動対応表の中にi番目の行動対応情報が存在するか否かを判断する。i番目の行動対応情報が存在する場合はステップS2404に行き、存在しない場合はステップS2407に行く。
(ステップS2404)行動推定部335は、i番目の行動対応情報が有するi番目の行動元ベクトルを取得する。
(ステップS2405)行動推定部335は、ステップS2403で取得した行動元ベクトルと、ステップS2404で取得した行動元ベクトルとの類似度を取得し、i番目の行動対応情報に対応付ける。
(ステップS2406)行動推定部335は、カウンタiを1、インクリメントする。ステップS2403に戻る。
(ステップS2407)行動推定部335は、最大の類似度を取得する。
(ステップS2408)行動推定部335は、ステップS2407で取得した最大の類似度が閾値以上であるか否かを判断する閾値以上であればステップS2409に行き、閾値未満であればステップS2410に行く。
(ステップS2409)行動推定部335は、最大の類似度と対になるi番目の行動対応情報に対応付いている行動情報を取得する。上位処理にリターンする。
(ステップS2410)行動推定部335は、「空」の行動情報を取得する。上位処理にリターンする。
なお、図24のフローチャートにおいて、ステップS2408からステップS2411の処理は行わなくても良い。
次に、ステップS1909の第一の感情推定処理の例について、図25のフローチャートを用いて説明する。図25のフローチャートは、一つの感情学習モデルを用いて、機械学習の予測処理により、感情情報を推定する処理である。つまり、図25のフローチャートは、機械学習の多値分類の予測処理により、感情情報を推定する処理である。
(ステップS2501)感情推定部336は、ステップS1903で取得された2種類以上の行動元情報を取得する。ここでの2種類以上の各行動元情報は、感情元情報である。また、2種類以上の感情元情報は、例えば、感情元ベクトルである。
(ステップS2502)感情推定部336は、学習管理部311から感情学習モデルを取得する。
(ステップS2503)感情推定部336は、ステップS2501で取得した2種類以上の感情元情報と感情学習モデルとを機械学習の予測処理モジュールに与え、当該モジュールを実行する。
(ステップS2504)感情推定部336は、ステップS2503における実行結果である推定された感情情報とスコアとを取得する。
(ステップS2505)感情推定部336は、ステップS2504で取得されたスコアが閾値以上であるか否かを判断する。閾値以上であればステップS2506に行き、閾値未満であればステップS2507に行く。
(ステップS2506)感情推定部336は、ステップS2504で取得された感情情報を、出力される感情情報として取得する。上位処理にリターンする。
(ステップS2507)感情推定部336は、「空」の感情情報を取得する。上位処理にリターンする。
なお、図25のフローチャートにおいて、ステップS2505からステップS2507の処理は行わなくても良い。
次に、ステップS1909の第二の感情推定処理の例について、図26のフローチャートを用いて説明する。図26のフローチャートは、2以上の各感情情報の候補ごとの感情学習モデルを用いて、機械学習の予測処理により、感情情報を推定する処理である。つまり、図26のフローチャートは、機械学習の二値分類の予測処理により、感情情報を推定する処理である。
(ステップS2601)感情推定部336は、ステップS1903で取得された2種類以上の感情元情報を取得する。
(ステップS2602)感情推定部336は、カウンタiに1を代入する。
(ステップS2603)感情推定部336は、学習管理部311を参照し、i番目の感情情報の候補が存在するか否かを判断する。i番目の感情情報の候補が存在する場合はステップS2604に行き、存在しない場合はステップS2609に行く。
(ステップS2604)感情推定部336は、i番目の感情情報の候補と対になるi番目の感情学習モデルを学習管理部311から取得する。
(ステップS2605)感情推定部336は、ステップS2601で取得した2種類以上の感情元情報とステップS2604で取得したi番目の感情学習モデルとを機械学習の二値分類を行う予測処理モジュールに与え、当該モジュールを実行する。
(ステップS2606)感情推定部336は、ステップS2605における実行結果が「真」であるか否かを判断する。「真」であればステップS2607に行き、「偽」であればステップS2608に行く。
(ステップS2607)感情推定部336は、i番目の感情情報の候補に対応付けて、ステップS2605における実行結果の一部であるスコアを図示しないバッファに一時蓄積する。
(ステップS2608)感情推定部336は、カウンタiを1、インクリメントする。ステップS2603に戻る。
(ステップS2609)感情推定部336は、最大のスコアを取得し、当該スコアが閾値以上であるか否かを判断する。最大のスコアが閾値以上であればステップS2610に行き、閾値未満であればステップS2611に行く。
(ステップS2610)感情推定部336は、最大のスコアと対になる感情情報を崇徳する。上位処理にリターンする。
(ステップS2611)感情推定部336は、「空」の感情情報を取得する。上位処理にリターンする。
なお、図26のフローチャートにおいて、ステップS2608からステップS2611の処理は行わなくても良い。
次に、ステップS1909の第三の感情推定処理の例について、図27のフローチャートを用いて説明する。図27のフローチャートは、感情対応表を用いて、感情情報を推定する処理である。
(ステップS2701)感情推定部336は、ステップS1903で取得された2種類以上の感情元情報を取得する。ここでの2種類以上の感情元情報は、感情元ベクトルである。
(ステップS2702)感情推定部336は、カウンタiに1を代入する。
(ステップS2703)感情推定部336は、学習管理部311の感情対応表の中にi番目の感情対応情報が存在するか否かを判断する。i番目の感情対応情報が存在する場合はステップS2704に行き、存在しない場合はステップS2707に行く。
(ステップS2704)感情推定部336は、i番目の感情対応情報が有するi番目の感情元ベクトルを取得する。
(ステップS2705)感情推定部336は、ステップS2703で取得した感情元ベクトルと、ステップS2704で取得した感情元ベクトルとの類似度を取得し、i番目の感情対応情報に対応付ける。
(ステップS2706)感情推定部336は、カウンタiを1、インクリメントする。ステップS2703に戻る。
(ステップS2707)感情推定部336は、最大の類似度を取得する。
(ステップS2708)感情推定部336は、ステップS2707で取得した最大の類似度が閾値以上であるか否かを判断する閾値以上であればステップS2709に行き、閾値未満であればステップS2710に行く。
(ステップS2709)感情推定部336は、最大の類似度と対になるi番目の感情対応情報に対応付いている感情情報を取得する。上位処理にリターンする。
(ステップS2710)感情推定部336は、「空」の感情情報を取得する。上位処理にリターンする。
なお、図27のフローチャートにおいて、ステップS2708からステップS2711の処理は行わなくても良い。
次に、ステップS1917の出力構成処理の例について、図28のフローチャートを用いて説明する。
(ステップS2801)構成部339は、カレンダーのひな形を格納部31から取得する。
(ステップS2802)構成部339は、カウンタiに1を代入する。
(ステップS2803)構成部339は、行動管理部313に格納されているi番目の時間帯が存在するか否かを判断する。i番目の時間帯が存在する場合はステップS2804に行き、存在しない場合は上位処理にリターンする。なお、行動管理部313には、1以上の各時間帯に対応付けて、行動情報や感情情報が格納されている。
(ステップS2804)構成部339は、行動管理部313に格納されているi番目の時間帯が、ステップS2801で取得したカレンダーのひな形がカバーする期間に含まれるか否かを判断する。含まれる場合はステップS2805に行き、含まれない場合はステップS2809に行く。
(ステップS2805)構成部339は、i番目の時間帯と対になる行動情報を行動管理部313から取得する。
(ステップS2806)構成部339は、i番目の時間帯と対になる感情情報を行動管理部313から取得する。なお、ここで、感情情報を取得できなくても良い。
(ステップS2807)構成部339は、カレンダーのi番目の時間帯において、配置する情報であり、ステップS2805で取得した行動情報を識別可能な情報であり、かつステップS2806で取得した感情情報を識別可能な情報である時間帯情報を構成する。
(ステップS2808)構成部339は、ステップS2807で構成した時間帯情報を、i番目の時間帯が特定するカレンダーの中の位置に配置する。
(ステップS2809)構成部339は、カウンタiを1、インクリメントする。ステップS2803に戻る。
次に、ステップS1924の第一の行動学習処理の例について、図29のフローチャートを用いて説明する。なお、行動学習処理は、例えば、図示しない学習部が行う、とする。学習部は、行動取得装置3とは異なる学習装置でも良い。第一の行動学習処理は、多値分類の行動学習モデルを取得する処理である。
(ステップS2901)学習部は、カウンタiに1を代入する。
(ステップS2902)学習部は、行動管理部313にi番目の行動情報等が存在するか否かを判断する。i番目の行動情報等が存在する場合はステップS2903に行き、存在しない場合はステップS2905に行く。
(ステップS2903)学習部は、i番目の行動情報等を用いて、行動教師データを構成し、図示しないバッファに追記する。なお、行動教師データは、通常、2種類以上の行動元情報を説明変数とし、行動情報を目的変数とする情報である。
(ステップS2904)学習部は、カウンタiを1、インクリメントする。ステップS2902に戻る。
(ステップS2905)学習部は、図示しないバッファに格納されている2以上の行動教師データを、機械学習の学習処理モジュールに与え、当該モジュールを実行し、行動学習モデルを取得する。
(ステップS2906)学習部は、ステップS2905で取得した行動学習モデルを学習管理部311に蓄積する。
なお、図29のフローチャートにおいて、学習部は、ステップS2905およびステップS2906の学習処理を行わずに、図示しないバッファに2以上の各行動教師データをレコード(行動対応情報)とする行動対応表を学習管理部311に蓄積しても良い。
次に、ステップS1924の第二の行動学習処理の例について、図30のフローチャートを用いて説明する。第二の行動学習処理は、2以上の各行動情報の候補ごとの二値分類の行動学習モデルを取得する処理である。
(ステップS3001)学習部は、カウンタiに1を代入する。
(ステップS3002)学習部は、i番目の種類の行動情報が存在するか否かを判断する。i番目の種類の行動情報が存在する場合はステップS3003に行き、存在しない場合は上位処理にリターンする。
(ステップS3003)学習部は、i番目の種類の行動情報を取得する。
(ステップS3004)学習部は、行動管理部313の中の教師データであり、i番目の種類の行動情報を含む行動教師データである2以上の正例を取得する。
(ステップS3005)学習部は、行動管理部313の中の教師データであり、i番目の種類の行動情報を含まない行動教師データである2以上の負例を取得する。
(ステップS3006)学習部は、ステップS3004で取得した2以上の正例とステップS3005で取得した2以上の負例とを、機械学習の学習処理モジュールに与え、当該モジュールを実行し、行動学習モデルを取得する。
(ステップS3007)学習部は、i番目の種類の行動情報と対にして、ステップS3006で取得した行動学習モデルを学習管理部311に蓄積する。
(ステップS3008)学習部は、カウンタiを1、インクリメントする。ステップS3002に戻る。
次に、ステップS1925の第一の感情学習処理の例について、図31のフローチャートを用いて説明する。なお、行動学習処理は、例えば、図示しない学習部が行う、とする。学習部は、行動取得装置3とは異なる学習装置でも良い。第一の感情学習処理は、多値分類の感情学習モデルを取得する処理である。
(ステップS3101)学習部は、カウンタiに1を代入する。
(ステップS3102)学習部は、行動管理部313にi番目の感情情報等が存在するか否かを判断する。i番目の感情情報等が存在する場合はステップS3103に行き、存在しない場合はステップS3105に行く。
(ステップS3103)学習部は、i番目の感情情報等を用いて、感情教師データを構成し、図示しないバッファに追記する。なお、感情教師データは、2種類以上の感情元情報を説明変数とし、感情情報を目的変数とする情報である。
(ステップS3104)学習部は、カウンタiを1、インクリメントする。ステップS3102に戻る。
(ステップS3105)学習部は、図示しないバッファに格納されている2以上の感情教師データを、機械学習の学習処理モジュールに与え、当該モジュールを実行し、感情学習モデルを取得する。
(ステップS3106)学習部は、ステップS3105で取得した感情学習モデルを学習管理部311に蓄積する。
なお、図31のフローチャートにおいて、学習部は、ステップS3105およびステップS3106の学習処理を行わずに、図示しないバッファに2以上の感情教師データをレコード(感情対応情報)とする感情対応表を学習管理部311に蓄積しても良い。
次に、ステップS1925の第二の感情学習処理の例について、図32のフローチャートを用いて説明する。第二の感情学習処理は、2以上の各感情情報の候補ごとの二値分類の感情学習モデルを取得する処理である。
(ステップS3201)学習部は、カウンタiに1を代入する。
(ステップS3202)学習部は、i番目の種類の感情情報が存在するか否かを判断する。i番目の種類の感情情報が存在する場合はステップS3203に行き、存在しない場合は上位処理にリターンする。
(ステップS3203)学習部は、i番目の種類の感情情報を取得する。
(ステップS3204)学習部は、行動管理部313の中の感情教師データであり、i番目の種類の感情情報を含む感情教師データである2以上の正例を取得する。
(ステップS3205)学習部は、行動管理部313の中の感情教師データであり、i番目の種類の感情情報を含まない感情教師データである2以上の負例を取得する。
(ステップS3206)学習部は、ステップS3204で取得した2以上の正例とステップS3205で取得した2以上の負例とを、機械学習の学習処理モジュールに与え、当該モジュールを実行し、感情学習モデルを取得する。
(ステップS3207)学習部は、i番目の種類の感情情報と対にして、ステップS3206で取得した感情学習モデルを学習管理部311に蓄積する。
(ステップS3208)学習部は、カウンタiを1、インクリメントする。ステップS3202に戻る。
以下、本実施の形態における情報システムDの具体的な動作例について説明する。今、 サーバ装置4の格納部31には、1または2以上のユーザの行動元情報を含む多数の教師データを用いて、機械学習の学習処理により取得された行動学習モデルが格納されている。また、格納部31には、1または2以上のユーザの感情元情報を含む多数の教師データを用いて、機械学習の学習処理により取得された感情学習モデルが格納されている。
また、ユーザ「U1」が保持している端末(例えば、スマートウォッチ)である行動取得装置3の格納部31には、上述した処理により、処理部33が取得した2以上の連続する各時刻における多数の行動元情報が、図33に示す行動元管理表に格納されている。
行動元管理表(図33)は、「ID」「時情報」「身体データ」「位置情報」「経過時間」を有するレコードである。「ID」はレコードを識別する情報である。「時情報」は時を特定する情報であり、ここでは「月日」「時刻」「曜日」を有する。「身体データ」は「活動データ」「バイタルデータ」を有する。「バイタルデータ」は、「心拍数」「血圧(上)」「血圧(下)」「体温」を有する。「心拍数」は単位時間(ここでは「1分」)における心拍数である。「血圧(上)」は最高血圧、「血圧(下)」は最低血圧である。「位置情報」は、例えば、実施の形態2で説明した処理により取得された位置情報である。「経過時間」は、同じ行動が始まってから経過した時間である。
そして、ユーザ「U1」は、行動取得装置3に出力指示を入力した、とする。そして、行動取得装置3は、出力指示を受け付ける。
次に、行動推定部335は、例えば、サーバ装置4にアクセスし、当該サーバ装置4から行動学習モデルと感情学習モデルとを受信し、当該行動学習モデルルと感情学習モデルとを学習管理部311に蓄積する。
次に、行動推定部335は、例えば、図22のフローチャートを用いて説明した処理により、図33の各レコードごとに、時情報、身体データ、位置情報、経過時間等を有する行動元ベクトルを構成する。次に、行動推定部335は、学習管理部311から行動学習モデルを取得する。次に、行動推定部335は、当該行動元ベクトルと行動学習モデルとを機械学習の予測処理モジュールに与え、当該モジュールを実行する。そして、行動推定部335は、「ID=1」のレコードから「ID=289」のレコードまでの行動元ベクトルに対しては行動情報「A1」を取得し、「ID=290」以降、「ID=N」までのレコードまでの行動元ベクトルに対しては行動情報「A2」を取得した、とする。そして、蓄積部338は、各レコードごとに、行動情報と行動確定フラグ「0」を行動管理部313に蓄積する。なお、行動確定フラグおよび感情確定フラグの「0」は未確定であることを示し、「1」は確定していることを示す。
また、感情推定部336は、例えば、図25のフローチャートを用いて説明した処理により、図33の各レコードごとに、時情報、身体データ、位置情報、経過時間、行動情報等を有する感情元ベクトルを構成する。次に、感情推定部336は、学習管理部311から感情学習モデルを取得する。次に、感情推定部336は、当該感情元ベクトルと感情学習モデルとを機械学習の予測処理モジュールに与え、当該モジュールを実行する。そして、感情推定部336は、「ID=1」のレコードから「ID=289」のレコードまでの行動元ベクトルに対しては感情情報「E1」を取得し、「ID=290」以降、「ID=N」までのレコードまでの行動元ベクトルに対しては感情情報「E2」を取得した、とする。そして、蓄積部338は、各レコードごとに、感情情報と感情確定フラグ「0」を行動管理部313に蓄積する。
以上の処理の結果、図34に示す行動・感情管理表が行動管理部313に蓄積される。行動・感情管理表は、「ID」「行動情報」「行動確定フラグ」「感情情報」「感情確定フラグ」を有する2以上のレコードを有する。
次に、蓄積部338は、図33、図34のレコードごとに、同じ行動情報(例えば「A1」)と対になる時刻(例えば、T001,・・・,T002,T289)の時間帯(例えば、「T001からT289」である「TZ1」)を取得し、時間帯と行動情報とを対応付けて蓄積する。
また、蓄積部338は、図33、図34のレコードごとに、同じ感情情報(例えば「E1」)と対になる時刻(例えば、T001,・・・,T002,T289)の時間帯(例えば、「T001からT289」である「TZ1」)を取得し、時間帯と感情情報とを対応付けて蓄積する。なお、この段階で、各時間帯に対応する行動確定フラグと感情確定フラグとは、共に「0」である。そして、蓄積された情報の例は、図35である。図35は、時間帯情報管理表である。時間帯情報管理表は、「ID」「時間帯」「行動情報」「行動確定フラグ」「感情情報」「感情確定フラグ」を有する1以上のレコードを有する。
そして、構成部339は、蓄積部338が蓄積した時間帯と行動情報と感情情報との1以上のセットを用いて、図28のフローチャートを用いて説明した処理を行い、行動情報ごとの時間帯情報を構成し、カレンダーのひな形に配置し、出力情報を構成する。
次に、出力部34は、出力情報を出力する。かかる出力例は、図36である。図36において、カレンダーにおける各日の各時間帯の推定された行動情報が表示されている。
そして、ユーザ「U1」は、時間帯ごとの行動情報が正しければ、表示されている当該行動情報に対して「確定指示」を入力し、推定された行動情報が誤っていれば、正しい行動情報を入力する。また、ユーザ「U1」は、時間帯ごとの感情情報が正しければ、出力されている当該感情情報に対して「確定指示」を入力し、推定された感情情報が誤っていれば、正しい感情情報を入力する。ユーザの入力により、図35の「行動情報」「行動確定フラグ」「感情情報」「感情確定フラグ」が変更されることなる。
以上、本実施の形態によれば、時刻に対応する位置情報を用いて、ユーザの行動を推定できる。
また、本実施の形態によれば、時刻に対応する位置情報と当該時刻に対応するユーザの活動データとを用いて、ユーザの行動を推定できる。
また、本実施の形態によれば、時刻に対応する位置情報と時刻に対応するユーザの活動データと時刻に対応するユーザのバイタルデータとを用いて、ユーザの行動をより精度高く推定できる。
また、本実施の形態によれば、ユーザの行動時の感情を推定できる。
また、本実施の形態によれば、過去の記録を用いて、ユーザの行動をより精度高く推定できる。
また、本実施の形態によれば、2以上のユーザの過去の記録を用いて、ユーザの行動をより精度高く推定できる。
また、本実施の形態によれば、ユーザの行動が推定できなかった場合に、ユーザが居た場所を出力できる。
さらに、本実施の形態によれば、実施の形態2で説明した位置情報の取得方法により取得された屋内等の位置情報を用いて、GPS信号が受信できない場所においても、ユーザの行動を精度高く推定できる。
なお、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD-ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における情報システムDを実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、時刻を取得する時刻取得部と、前記時刻に対応付く位置情報を取得する位置取得部と、前記時刻に対応付く前記位置情報を含む2以上の行動元情報を用いて、前記2以上の各行動元情報が有する前記時刻が特定する時間帯における前記ユーザの行動を特定する行動情報を取得する行動推定部と、前記時間帯における前記行動情報を出力する行動出力部として機能させるためのプログラムである。
(実施の形態4)
本実施の形態と実施の形態3との差異は以下である。つまり、本実施の形態において、行動取得装置がサーバであり、行動取得装置がユーザの端末装置から受信した位置情報等を用いて、ユーザの行動情報や感情情報を推定する。
図37は、本実施の形態における情報システムEの概念図である。情報システムEは、行動取得装置5、1または2以上の端末装置6、および1または2以上の通信装置Bを備える。
行動取得装置5は、サーバであり、例えば、クラウドサーバ、ASPサーバであるが、その種類は問わない。行動取得装置5は、ユーザの端末装置6から位置情報等の行動元情報を受信し、当該行動元情報を用いて、ユーザの行動情報を推定し、当該行動情報を端末装置6に送信する装置である。行動取得装置5は、ユーザの端末装置6から感情元情報を受信し、当該感情元情報を用いて、ユーザの感情情報を推定し、当該行動情報を端末装置6に送信する装置である。
端末装置6は、ユーザが使用する端末である。端末装置6は、例えば、スマートフォン、タブレット端末、スマートウォッチ、いわゆるパーソナルコンピュータ等であり、その種類は問わない。端末装置6は、位置情報等を含む行動元情報や感情元情報を行動取得装置5に送信し、行動取得装置5から行動情報や感情情報を受信し、出力する端末である。なお、行動元情報や感情元情報を行動取得装置5に送信する装置と、行動取得装置5から行動情報や感情情報を受信し、出力する装置とは異なる装置でも良い。
図38は、本実施の形態における情報システムEのブロック図である。図39は、行動取得装置5のブロック図である。
行動取得装置5は、格納部51、受信部52、処理部53、および送信部54を備える。格納部51は、学習管理部311、および行動管理部313を備える。受信部52は、位置取得部521、活動取得部522、およびバイタル取得部523を備える。処理部53は、時刻取得部331、行動推定部335、感情推定部336、蓄積部338、および構成部339を備える。送信部54は、行動出力部341、および感情出力部342を備える。
端末装置6は、端末格納部61、端末受付部62、端末受信部63、端末処理部64、端末送信部65、および端末出力部66を備える。端末格納部61は、マップ管理部312を備える。端末処理部64は、強度取得部231、種類判断部232、位置取得部332、活動取得部333、バイタル取得部334、および場所取得部337を備える。
行動取得装置5を構成する格納部51には、各種の情報が格納される。各種の情報は、例えば、上述した学習情報、上述した行動情報である。
受信部52は、各種の指示や情報を端末装置6から受信する。各種の指示や情報は、例えば、位置情報、活動データ、バイタルデータ、出力指示、確定指示、修正する行動情報、修正する感情情報である。
受信部52は、位置情報、活動データ、バイタルデータ等を、端末装置6から一度に受信することは好適である。受信部52は、ユーザ識別子に対応付いた位置情報等を一度に受信することは好適である。ユーザ識別子は、端末装置6を使用するユーザを識別する情報である。ユーザ識別子は、例えば、ユーザID、電話番号、メールアドレス、端末装置6の識別子である。端末装置6の識別子は、例えば、IPアドレスである。
位置取得部521は、端末装置6から位置情報を受信する。かかる位置情報は、時刻に対応付く。位置取得部521は、位置情報を受信した場合に、図示しない時計から時刻を取得し、当該時刻と位置情報とを対応付けることは好適である。かかる位置情報は、ユーザ識別子に対応付いていることは好適である。
活動取得部522は、端末装置6から活動データを受信する。かかる活動データは、時刻に対応付く。活動取得部522は、活動データを受信した場合に、図示しない時計から時刻を取得し、当該時刻と活動データとを対応付けることは好適である。かかる活動データは、ユーザ識別子に対応付いていることは好適である。
バイタル取得部523は、端末装置6から1または2種類以上のバイタルデータを受信する。かかるバイタルデータは、時刻に対応付く。バイタル取得部523は、バイタルデータを受信した場合に、図示しない時計から時刻を取得し、当該時刻とバイタルデータとを対応付けることは好適である。かかるバイタルデータは、ユーザ識別子に対応付いていることは好適である。
処理部53は、各種の処理を行う。各種の処理は、例えば、時刻取得部331、行動推定部335、感情推定部336、蓄積部338が行う処理である。
送信部54は、各種の情報を端末装置6に送信する。各種の情報は、例えば、推定した行動情報、推定した感情情報、構成部339が構成した出力情報である。
行動出力部341は、行動推定部335が取得した行動情報であり、時間帯に対応付けられた行動情報を端末装置6に送信する。
感情出力部342は、感情推定部336が取得した感情情報であり、時間帯に対応付けられた感情情報を端末装置6に送信する。
端末装置6を構成する端末格納部61には、各種の情報が格納される。各種の情報は、例えば、位置情報、活動データ、バイタルデータである。
端末受付部62は、各種の指示や情報を受け付ける。各種の指示や情報は、例えば、出力指示、確定指示、推定された行動情報に対してユーザが修正する行動情報、推定された感情情報に対してユーザが修正する感情情報である。
各種の指示や情報の入力手段は、タッチパネルやキーボードやマウスやメニュー画面によるもの等、何でも良い。
端末受信部63は、各種の情報を行動取得装置5から受信する。各種の情報は、例えば、出力情報、行動情報、感情情報である。
端末処理部64は、各種の処理を行う。各種の処理とは、例えば、端末受付部62が受け付けた指示や情報等を、送信する構造の指示や情報等に変更する処理、端末受信部63が受信した情報を出力する構造に変更する処理等である。
端末送信部65は、各種の指示や情報を送信する。各種の指示や情報は、例えば、出力指示、確定指示、変更する行動情報、変更する感情情報である。
端末出力部66は、各種の情報を出力する。各種の情報は、例えば、出力情報、行動情報、感情情報である。
格納部51、および端末格納部61は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
格納部51等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部51等で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部51等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部51等で記憶されるようになってもよい。
受信部52、位置取得部521、活動取得部522、バイタル取得部523、送信部54、行動出力部341、感情出力部342、端末受信部63、および端末送信部65は、例えば、無線または有線の通信手段で実現される。
処理部53、および端末処理部64は、通常、プロセッサやメモリ等から実現され得る。処理部53等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。なお、プロセッサは、CPU、MPU、GPU等であり、その種類は問わない。
端末受付部62は、タッチパネルやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
端末出力部66は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。端末出力部66は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、行動取得装置5の動作例について、図40のフローチャートを用いて説明する。図40のフローチャートにおいて、図19と同一のステップについて説明を省略する。
(ステップS4001)受信部52は、端末装置6からユーザ識別子と対になる位置情報等を受信したか否かを判断する。位置情報等を受信した場合はステップS4002に行き、受信しなかった場合はステップS4004に行く。なお、位置情報等は、例えば、ユーザ識別子と位置情報である。位置情報等は、例えば、ユーザ識別子と位置情報、および活動データとバイタルデータのうちの1種類以上の情報である。
(ステップS4002)時刻取得部331は、図示しない時計から時刻を取得する。ここで、時刻取得部331は、曜日を取得しても良い。また、時刻は、通常、時分を含む。時刻は、年、月、日のうちのいずれか1以上の情報を含んでも良い。
(ステップS4003)蓄積部338は、ユーザ識別子に対応付けて、ステップS4001で受信された位置情報等と時刻とを、行動管理部313に蓄積する。ステップS4001に戻る。
(ステップS4004)受信部52は、端末装置6から出力指示を受信したか否かを判断する。出力指示を受信した場合はステップS4005に行き、受信しなかった場合はステップS4009に行く。なお、受信される出力指示は、通常、ユーザ識別子に対応付いている。また、出力指示は、通常、行動情報を取得する期間を特定する期間情報(例えば、「2023年12月17日から2023年12月23まで」)を含む。
(ステップS4005)行動推定部335は、カウンタiに1を代入する。
(ステップS4006)行動推定部335は、ステップS4004で受信された出力指示に対応付いているユーザ識別子と対になるi番目の行動元情報が、行動管理部313に存在するか否かを判断する。i番目の行動元情報が存在する場合はステップS4007に行き、存在しない場合はステップS1917に行く。
(ステップS4007)行動推定部335は、i番目の行動元情報に対応付く行動情報が存在するか否かを判断する。行動情報が存在する場合はステップS4008に行き、存在しない場合はステップS1904に行く。なお、行動元情報に対応付く行動情報が存在する場合は、通常、当該行動元情報を用いて、既に行動情報の推定が行われている場合である。
(ステップS4008)行動推定部335は、カウンタiを1、インクリメントする。ステップS4006に戻る。
(ステップS4009)受信部52は、端末装置6から情報等を受信したか否かを判断する。情報等を受信した場合はステップS1920に行き、受信しなかった場合はステップS4010に行く。なお、情報等は、例えば、確定指示、修正する行動情報、修正する感情情報である。
(ステップS4010)受信部52は、端末装置6から学習指示を受信したか否かを判断する。学習指示を受信した場合はステップS1924に行き、受信しなかった場合はステップS4001に戻る。
(ステップS4011)送信部54は、ステップS1917で構成された出力情報を端末装置6に送信する。
ステップS4001に戻る。
なお、図40のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、端末装置6の動作例について、図41のフローチャートを用いて説明する。図41のフローチャートにおいて、図19と同一のステップについて説明を省略する。
(ステップS4101)端末送信部65は、端末格納部61のユーザ識別子を取得し、当該ユーザ識別子に対応付けて、ステップS1903で取得された位置情報等を行動取得装置5に送信する。
(ステップS4102)端末送信部65は、端末格納部61のユーザ識別子に対応付けて、ステップS1916で受け付けられた出力指示を行動取得装置5に送信する。なお、出力指示は、通常、期間情報を含む。
(ステップS4103)端末受信部63は、行動取得装置5から出力情報を受信したか否かを判断する。出力情報を受信した場合はステップS4104に行き、受信しなかった場合はステップS4103に戻る。
(ステップS4104)端末処理部64は、受信された出力情報を用いて、出力する出力情報を構成する。端末出力部66は、当該出力情報を出力する。ステップS1901に戻る。
(ステップS4105)端末送信部65は、端末格納部61のユーザ識別子に対応付けて、ステップS1919で受け付けられた情報入力から取得した情報等を行動取得装置5に送信する。ステップS1901に戻る。
なお、情報等は、例えば、確定指示、変更後の行動情報、変更後の感情情報である。なお、確定指示は、確定する行動情報または確定する感情情報を特定する情報を含む。変更後の行動情報は、修正する行動情報を特定する情報に対応付いている。変更後の感情情報は、修正する感情情報を特定する情報に対応付いている。
なお、図41のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
以上、本実施の形態によれば、時刻に対応する位置情報を用いて、ユーザの行動を推定できる。
また、本実施の形態によれば、時刻に対応する位置情報と当該時刻に対応するユーザの活動データとを用いて、ユーザの行動を推定できる。
また、本実施の形態によれば、時刻に対応する位置情報と時刻に対応するユーザの活動データと時刻に対応するユーザのバイタルデータとを用いて、ユーザの行動をより精度高く推定できる。
また、本実施の形態によれば、ユーザの行動時の感情を推定できる。
また、本実施の形態によれば、過去の記録を用いて、ユーザの行動をより精度高く推定できる。
また、本実施の形態によれば、2以上のユーザの過去の記録を用いて、ユーザの行動をより精度高く推定できる。
また、本実施の形態によれば、ユーザの行動が推定できなかった場合に、ユーザが居た場所を出力できる。
さらに、本実施の形態における行動取得装置5を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、時刻を取得する時刻取得部と、前記時刻に対応付く位置情報を取得する位置取得部と、前記時刻に対応付く前記位置情報を含む2以上の行動元情報を用いて、前記2以上の各行動元情報が有する前記時刻が特定する時間帯におけるユーザの行動を特定する行動情報を取得する行動推定部と、前記時間帯における前記行動情報を出力する行動出力部として機能させるためのプログラムである。
また、図16の符号4、および図37の符号6の各装置は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の行動取得装置等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図16の符号4、および図37の符号6の各装置は、このコンピュータシステム300の概観図であり、図42は、システム300のブロック図である。
図16の符号4、および図37の符号6の各装置において、コンピュータシステム300は、CD-ROMドライブを含むコンピュータ301と、キーボード302と、マウス303と、モニタ304とを含む。
図42において、コンピュータ301は、CD-ROMドライブ3012に加えて、MPU3013と、CD-ROMドライブ3012等に接続されたバス3014と、ブートアッププログラム等のプログラムを記憶するためのROM3015と、MPU3013に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3016と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3017とを含む。ここでは、図示しないが、コンピュータ301は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
コンピュータシステム300に、上述した実施の形態の行動取得装置等の機能を実行させるプログラムは、CD-ROM3101に記憶されて、CD-ROMドライブ3012に挿入され、さらにハードディスク3017に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ301に送信され、ハードディスク3017に記憶されても良い。プログラムは実行の際にRAM3016にロードされる。プログラムは、CD-ROM3101またはネットワークから直接、ロードされても良い。
プログラムは、コンピュータ301に、上述した実施の形態の行動取得装置等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム300がどのように動作するかは周知であり、詳細な説明は省略する。
なお、上記プログラムにおいて、情報を送信するステップや、情報を受信するステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記各実施の形態において、各処理は、単一の装置によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。