以下,本実施の形態について,図を用いて説明する。
図1は,本実施の形態によるコンピュータシステムの例を示す図である。
図1に示すコンピュータシステムは,ユーザが実際に利用した交通要所の登録,ユーザの移動先となる交通要所の予測,ユーザへの予測された交通要所についての情報提供等を行うコンピュータシステムの例である。交通要所は,交通上の特徴的な場所を示す。図1に示すコンピュータシステムでは,サーバ10と複数の端末20とが,ネットワークで接続されている。
サーバ10は,本実施の形態によるコンピュータシステムに登録されたユーザに対して,サービスを提供するコンピュータである。サーバ10は,交通要所登録機能,移動先予測機能,交通要所情報提供機能などの機能を有する。サーバ10による交通要所登録機能は,端末20を持つユーザが実際に利用した交通要所を登録する機能である。サーバ10による移動先予測機能は,端末20を持つユーザが通過した交通要所から,そのユーザの移動先となる交通要所を予測する機能である。サーバ10による交通要所情報提供機能は,端末20を持つユーザに,予測された移動先の交通要所に関する情報を提供する機能である。
端末20は,本実施の形態によるコンピュータシステムに登録されたユーザが使用する,携帯型のコンピュータである。端末20は,移動形態推定機能,変化点検知機能,情報提示機能などの機能を有する。端末20による移動形態推定機能は,該端末20を持つユーザの移動形態を推定する機能である。端末20による変化点検知機能は,該端末20を持つユーザの移動形態の変化を検知する機能である。端末20による情報提示機能は,サーバ10から提供された,該端末20を持つユーザの移動先として予測された交通要所に関する情報を提示する機能である。
図2は,本実施の形態によるサーバの構成例を示す図である。
図2に示すように,本実施の形態によるサーバ10は,記憶部100,取得部110,判定部120,予測部140,情報提供部150,ユーザ入力情報登録部160を備える。記憶部100は,交通要所の情報が登録される記憶部である。
取得部110は,端末20で検知された変化点の情報を取得する。変化点は,ユーザの移動形態が変化した地点である。変化点の情報には,変化点の位置情報が含まれている。なお,変化点の情報に,さらに,変化点における移動形態の変化パターンの情報が含まれていてもよい。移動形態の変化パターンは,ユーザの移動形態がどのように変化したかを示す。また,変化点における移動形態の変化パターンが特定の変化パターンである場合に,変化点の情報に,さらに,変化点におけるユーザの移動方向の情報が含まれていてもよい。変化点におけるユーザの移動方向は,変化点の前,後または前後において,ユーザが移動した方向を示す。
判定部120は,記憶部100の情報を参照して,取得部110が取得した変化点が,記憶部100に登録されたいずれかの交通要所に対応するか否かを判定する。このとき,判定部120は,取得部110が取得した変化点の位置と,過去に交通要所に対応付けられて記憶部100に登録された変化点の位置との関係に基づいて,判定を行う。
判定部120は,領域計算部121,検出部122を備える。領域計算部121は,記憶部100に登録された交通要所について,該交通要所に対応付けられた1または複数の変化点の位置から該交通要所の領域を求める。このとき,検出部122は,取得部110が取得した変化点の位置を領域に含む交通要所を,取得部110が取得した変化点に対応する交通要所の候補として検出する。
なお,領域計算部121によって,さらに,取得部110が取得した変化点の位置から,該変化点の領域を求めるようにしてもよい。このとき,検出部122は,例えば取得部110が取得した変化点の領域と,領域が重なる交通要所を,取得部110が取得した変化点に対応する交通要所の候補として検出する。このように,取得部110が取得した変化点の位置と,過去に交通要所に対応付けられて記憶部100に登録された変化点の位置との関係に基づいて,取得部110が取得した変化点に対応する交通要所の候補を検出する処理については,任意の設計が可能である。
また,1つの交通要所には,移動形態の変化パターンが同じ変化点のみを対応付けるようにしてもよい。すなわち,同じ位置の変化点であっても,移動形態の変化パターンが異なる変化点は,それぞれ異なる交通要所として扱われる。このとき,検出部122によって検出される取得部110が取得した変化点に対応する交通要所の候補は,取得部110が取得した変化点と同じ変化パターンの変化点に対応付けられた交通要所となる。
例えば,駅のような場所では,駐車上や駐輪場などが隣接されているケースも多く,徒歩←→電車,徒歩←→車,徒歩←→自転車といった,移動形態の変化パターンが異なる変化点が,近い位置で検知される。例えば,電車に乗るときには駅に自転車で来るが,駅ビルで買い物をするときには車で駅に来るなど,同じ場所に来る場合でも,目的によって異なる移動形態を利用して移動するケースもある。同じ場所の交通要所を移動形態の変化パターンごとに別々に登録することで,よりきめ細かい移動先の予測が可能となる。
さらに,移動形態の変化パターンが特定の変化パターンである場合に,1つの交通要所には,ユーザの移動方向が同じ変化点のみを対応付けるようにしてもよい。すなわち,同じ位置の変化点であっても,ユーザの移動方向が異なる変化点は,それぞれ異なる交通要所として扱われる。このとき,検出部122によって検出される取得部110が取得した変化点に対応する交通要所の候補は,取得部110が取得した変化点とユーザの移動方向が同じである変化点に対応付けられた交通要所となる。
例えば,電車やバスなどの移動形態では,駅やバス停などの交通要所で,上り,下りなど反対方向に移動するユーザの変化点が検知されるケースがある。例えば,同じ駅から電車に乗る場合でも,上り方面の電車に乗る場合と,下り方面の電車に乗る場合とでは,ユーザが目的とする移動先は異なってくる。同じ場所の交通要所をユーザの移動方向ごとに別々に登録することで,よりきめ細かい移動先の予測が可能となる。
判定部120は,検出された交通要所の候補を検出結果として,変化点を検知した端末20に送る。交通要所の候補が検出されなかった場合には,判定部120は,その旨を検出結果として,変化点を検知した端末20に送る。
判定部120は,検出結果を送った端末20から,検出結果に対する登録/選択結果を取得する。登録/選択結果には,端末20のユーザによる交通要所の候補からの交通要所の選択結果や,新規の交通要所の登録結果の情報が含まれている。
端末20からの登録/選択結果で,交通要所が選択された場合,判定部120は,取得部110が取得した変化点が記憶部100に登録された交通要所に対応すると判定する。また,端末20からの登録/選択結果で新規の交通要所の登録が要求された場合,判定部120は,取得部110が取得した変化点が記憶部100に登録された交通要所に対応しないと判定する。
なお,検出部122が変化点の位置関係に基づいて交通要所を検出した際に,端末20のユーザの確認を取らずに,判定部120が判定を行う実施も可能である。このとき,判定部120は,例えば,検出部122により交通要所が検出されたか否かで,それぞれ取得部110が取得した変化点が記憶部100に登録された交通要所に対応するか否かを判定する。しかし,同じ場所で複数の交通要所が検出されるケースもあるため,端末20からの登録/選択結果を受けて判定を行う方が,より正確で細やかな移動先の予測が可能となる。
登録部130は,記憶部100に交通要所や変化点を登録する。登録部130は,取得部110が取得した変化点が記憶部100に登録された交通要所に対応すると判定された場合には,取得した変化点に対応するとされた交通要所に対応付けて,記憶部100に登録する。また,登録部130は,取得部110が取得した変化点が記憶部100に登録された交通要所に対応しないと判定された場合には,取得した変化点を新規の交通要所に対応付けて,記憶部100に登録する。
判定部120により,取得部110が取得した変化点が記憶部100に登録された交通要所に対応すると判定された場合には,取得部110が取得した変化点に対応する交通要所が特定される。
予測部140は,変化点を検知した端末20のユーザの過去に検知された変化点に対応する交通要所の履歴を用いて,そのユーザが,判定部120により特定された交通要所の後に移動する交通要所を予測する。以下では,移動先の交通要所を予測する対象のユーザを予測対象ユーザとも呼ぶ。予測部140は,移動履歴生成部141を備える。移動履歴生成部141は,記憶部100に登録された,変化点を検知した端末20の変化点の過去の記録から,予測対象ユーザの過去に検知された変化点に対応する交通要所の履歴を生成する。予測部140は,予測対象ユーザの過去に検知された変化点に対応する交通要所の履歴から得られる移動実績から,予測対象ユーザが特定された交通要所の後に移動する交通要所を予測する。
なお,予測部140が,予測対象ユーザの過去に検知された変化点に対応する交通要所の履歴に加えて,さらに予測対象ユーザ以外の他のユーザの過去に検知された変化点に対応する交通要所の履歴も用いて予測を行うようにしてもよい。このとき,予測部140は,予測対象のユーザの履歴から得られる移動実績と,他のユーザの履歴から得られる移動実績とを重み付け合成し,予測対象ユーザが特定された交通要所の後に移動する交通要所を予測する。
情報提供部150は,予測部140により予測された交通要所に関連する情報を取得し,取得した情報を予測対象ユーザに提供する。予測された交通要所に関連する情報は,例えば,記憶部100において,交通要所に対応付けて登録された情報などである。
ユーザ入力情報登録部160は,変化点を検知した端末20のユーザの,該端末20への入力情報を取得し,その取得した入力情報を,取得部110が取得した変化点に対応付けられた交通要所に対応付けて,記憶部100に登録する。
図3は,本実施の形態による端末の構成例を示す図である。
図3に示すように,本実施の形態による端末20は,センサ類200,移動形態推定部210,変化点検知部220,移動方向算出部230,登録/選択処理部240,情報提示部250,ユーザ入力情報処理部260を備える。
センサ類200は,端末20の位置,速度,振動,音など,端末20に関する様々な情報を計測/収集する。センサ類200は,例えば,GPS(Global Positioning System ),加速度センサ,ジャイロセンサ,マイクなどである。
移動形態推定部210は,センサ類200により計測/収集された情報から,端末20を持つユーザの移動形態を推定する。移動形態は,ユーザが身につける携帯電話機等の端末20が備えるGPS,加速度計,マイク等のセンサ類200によって,高精度に推定できることが,すでに幾つかの研究によって実証されている。ユーザの移動形態を推定する技術が記載された文献として,例えば,参考文献1がある。
〔参考文献1〕
小林亜令,岩本健嗣,西山智,携帯電話を用いたユーザ移動状態推定・共有方式,電子情報通信学会技術研究報告,MoMuC ,モバイルマルチメディア通信 108(44),P115-120,2008-05-15
移動形態推定部210が推定するユーザの移動形態としては,例えば,電車,バス(一般道,高速道路),自動車(一般道,高速道路),徒歩,自転車,バイクなどが挙げられる。
変化点検知部220は,移動形態推定部210によるユーザの移動形態の推定結果を監視し,ユーザの移動形態の変化を検知する。移動形態の変化パターンとしては,例えば,次のような変化パターンがある。なお,括弧書きは,その変化パターンが発生する場所の例を示す。
・徒歩 ←→ 電車 (駅のホーム)
・徒歩 ←→ バス (バス停)
・徒歩 ←→ 自転車 (駐輪場)
・徒歩 ←→ 自動車〔一般道〕 (駐車場)
・徒歩 ←→ 自動車〔高速道路〕 (高速パーキングエリア)
・自動車[一般道] ←→ 自動車〔高速道路〕 (高速インターチェンジ)
このように,移動形態が変化する場所は,ナビゲーション等へのサービスを行う際に,重要な交通要所となる場所が多い。
移動方向算出部230は,変化点におけるユーザの移動方向を算出する。上述したように,電車やバスなどの移動形態の場合,近い場所で,上り下りなどの移動方向が異なる変化点が得られる。高速道路のインターチェンジなども同様である。移動方向算出部230は,変化点前後のユーザの移動軌跡から,変化点におけるユーザの移動方向を求める。
例えば,移動方向算出部230は,変化点の前後において,電車やバスなどの特定の方向性がある移動形態で移動している時間帯の数十秒間のユーザの移動軌跡から,該変化点におけるユーザの移動方向を求める。また,変化点前後の移動形態に関係なく,変化点の前後の数十秒間のユーザの移動軌跡から,ユーザの移動方向を求めるようにしてもよい。電車やバスは徒歩に対して十分に移動速度が速いので,変化点前後の数十秒間のユーザの移動軌跡から求めた移動方向は,ほぼ電車やバスの移動方向となる。
変化点検知部220は,検知された変化点の情報をサーバ10に送信する。サーバ10に送信される変化点の情報には,検知された変化点の位置情報や,その変化点における移動形態の変化パターン,移動方向算出部230で求められた変化点におけるユーザの移動方向などの情報が含まれる。
登録/選択処理部240は,ユーザによる新規に交通要所を登録する処理や,サーバ10により検出された変化点に対応する交通要所の候補から交通要所を選択する処理などの支援を行う。例えば,登録/選択処理部240は,サーバ10から受けた交通要所の検出結果を端末20の表示装置に表示する。ユーザがサーバ10から受けた交通要所の候補から交通要所を選択した場合には,登録/選択処理部240は,ユーザによる交通要所の登録/選択結果として,ユーザにより選択された交通要所をサーバに通知する。ユーザが新規の交通要所の登録を行った場合には,登録/選択処理部240は,ユーザによる交通要所の登録/選択結果として,ユーザが新規に登録する交通要所をサーバに通知する。
情報提示部250は,サーバ10から提供された,ユーザの移動先として予測された交通要所に関する情報を,端末20の表示装置に表示して,ユーザに提示する。
ユーザ入力情報処理部260は,端末20が検知した変化点に対応する交通要所に関連してユーザが入力した情報を,サーバ10に送る。
図4は,本実施の形態によるサーバ,端末を実現するコンピュータのハードウェア構成例を示す図である。
図2,図3に示す本実施の形態のサーバ10,端末20を実現するコンピュータ1は,例えば,CPU(Central Processing Unit )2,主記憶となるメモリ3,記憶装置4,通信装置5,媒体読取・書込装置6,入力装置7,出力装置8等を備える。記憶装置4は,例えばHDD(Hard Disk Drive )などの外部記憶装置や,補助記憶装置などである。媒体読取・書込装置6は,例えばCD−R(Compact Disc Recordable )ドライブやDVD−R(Digital Versatile Disc Recordable )ドライブなどである。入力装置7は,例えばキーボード・マウスなどである。出力装置8は,例えばディスプレイ等の表示装置などである。
例えば,図2に示すサーバ10や,図3に示す端末20が備える各機能部は,コンピュータ1が備えるCPU2,メモリ3等のハードウェアと,ソフトウェアプログラムとによって実現することが可能である。コンピュータ1が実行可能なプログラムは,記憶装置4に記憶され,その実行時にメモリ3に読み出され,CPU2により実行される。
コンピュータ1は,可搬型記録媒体から直接プログラムを読み取り,そのプログラムに従った処理を実行することもできる。また,コンピュータ1は,サーバコンピュータからプログラムが転送されるごとに,逐次,受け取ったプログラムに従った処理を実行することもできる。さらに,このプログラムは,コンピュータ1で読み取り可能な記録媒体に記録しておくことができる。
図5は,本実施の形態によるサーバの記憶部が記憶するデータの例を示す図である。
図2に示すサーバ10の記憶部100は,図5に示すように,例えば,変化点ログデータ101,スポットマスタデータ102,ユーザマスタデータ103,領域設定データ104,提供情報データ105を記憶する。
図6は,本実施の形態によるサーバの記憶部が記憶する変化点ログデータの例を示す図である。
図6に示す変化点ログデータ101は,記憶部100に登録された変化点についてのログデータの一例を示す。変化点ログデータ101は,変化点ID,スポットID,ユーザID,移動形態(変化前),移動形態(変化後),緯度,経度,移動方向,検知時刻等の情報を持つ。
変化点IDは,記憶部100に登録された変化点を一意に識別する識別情報である。スポットIDは,記憶部100に登録された交通要所を一意に識別する識別情報である。ユーザIDは,記憶部100に登録されたユーザを一意に識別する識別情報である。移動形態(変化前),移動形態(変化後)は,それぞれ変化点前後のユーザの移動形態を示す。移動形態(変化前),移動形態(変化後)の組み合わせが,移動形態の変化パターンとなる。緯度,経度は,それぞれ変化点の緯度,経度を示す。緯度,経度が変化点の位置情報となる。移動方向は,変化点におけるユーザの移動方向を示す。ここでは,水平右方向を基準とした左回りの角度の値が,ユーザの移動方向として記録される。本実施の形態では,移動形態の変化パターンに電車やバスなどの特定の移動形態が含まれる場合にのみ,移動方向の情報を取得して管理するものとする。検知時刻は,変化点が検知された時刻を示す。検知時刻については,端末20が変化点を検知した時刻を記録してもよいし,サーバ10が端末20から変化点の情報を取得した時刻を記録してもよい。
図7は,本実施の形態によるサーバの記憶部が記憶するスポットマスタデータの例を示す図である。
図7に示すスポットマスタデータ102は,記憶部100に登録された交通要所についてのデータの一例を示す。スポットマスタデータ102は,スポットID,スポット名等の情報を持つ。スポットIDは,記憶部100に登録された交通要所を一意に識別する識別情報である。スポット名は,記憶部100に登録された交通要所に付けられた名称を示す。サーバ10に登録済み交通要所については,端末20のユーザに対して,スポット名で交通要所が提示される。
図8は,本実施の形態によるサーバの記憶部が記憶するユーザマスタデータの例を示す図である。
図8に示すユーザマスタデータ103は,記憶部100に登録されたユーザについてのデータの一例を示す。ユーザマスタデータ103は,ユーザID,ユーザ名等の情報を持つ。ユーザIDは,記憶部100に登録されたユーザを一意に識別する識別情報である。ユーザ名は,記憶部100に登録されたユーザの名称を示す。
図9は,本実施の形態によるサーバの記憶部が記憶する領域設定データの例を示す図である。
図9に示す領域設定データ104は,交通要所の領域を求める際に用いる,変化点を中心とした領域の半径が設定されたデータの一例を示す。領域設定データ104は,変化パターン,領域半径等の情報を持つ。変化パターンは,変化点における移動形態の変化パターンを示す。領域半径は,変化点を中心とした領域の半径を示す。
図10は,本実施の形態によるサーバの記憶部が記憶する提供情報データの例を示す図である。
図10に示す提供情報データ105は,端末20のユーザに提供する情報が記録されたデータの一例を示す。図10に示す提供情報データ105では,提供する情報が,各ユーザにより入力された口コミ情報である場合の例が示されている。提供情報データ105は,口コミID,スポットID,ユーザID,投稿内容,検知時刻の情報を持つ。
口コミIDは,記憶部100に登録された口コミ情報を一意に識別する識別情報である。スポットIDは,記憶部100に登録された交通要所を一意に識別する識別情報である。ユーザIDは,記憶部100に登録されたユーザを一意に識別する識別情報である。投稿内容は,ユーザにより入力された口コミ情報の内容を示す。検知時刻は,口コミ情報を登録するきっかけとなった変化点が検知された時刻を示す。なお,口コミ情報の時刻管理については,検知時刻ではなく,口コミ情報を端末20から取得した時刻で管理するようにしてもよい。
以下,本実施の形態によるコンピュータシステムにおけるサーバ10,端末20の一連の動作について,より具体的な例を用いて説明する。なお,以下の例では,交通要所をスポットとも呼ぶものとする。
端末20において,移動形態推定部210は,センサ類200により得られる情報を監視し,例えば1秒ごとに,自端末20を持つユーザの移動形態を推定する。変化点検知部220は,移動形態推定部210により推定された移動形態を監視し,自端末20を持つユーザの移動形態の変化を検知する。
ユーザの移動形態の変化が検知されると,変化点検知部220は,その変化点の位置情報,移動形態の変化パターンなど,検知された変化点に関する情報を収集する。移動形態の変化パターンが電車やバスなどの移動形態を含む特定の変化パターンである場合には,移動方向算出部230によって,変化点前後のユーザの移動方向が求められる。なお,変化点における移動形態の変化パターンが特定の変化パターンでない場合にも,ユーザの移動方向を求めてもよい。変化点検知部220は,変化点の位置情報,移動形態の変化パターン,ユーザの移動方向の情報を含む変化点の情報を,サーバ10に送信する。
サーバ10において,取得部110は,端末20で検知された変化点の情報を取得する。判定部120は,取得部110が取得した変化点の位置情報から,該変化点に位置が近い登録済みの変化点を,記憶部100に記憶された変化点ログデータ101から抽出する。取得した変化点に位置が近い登録済みの変化点は,例えば,取得した変化点の位置を中心とした所定半径の領域内に存在する登録済みの変化点である。
なお,本実施の形態では,スポットが移動形態の変化パターンが同じ変化点ごとに登録されているものとする。すなわち,変化点ログデータから抽出される変化点は,取得部110が取得した変化点と同じ移動形態の変化パターンの変化点である。移動形態の変化パターンが異なる変化点を同じスポットに対応付ける実施も可能である。例えば,電車のホーム,構内駐輪場,タクシー乗り場,駅前バス停などを,まとめて駅というスポットで管理したい場合には,駅というスポットに移動形態の変化パターンが異なる複数の変化点を対応付けて登録できるように設計すればよい。同じ駅内でも,電車のホーム,構内駐輪場,タクシー乗り場,駅前バス停などを,それぞれ別々のスポットとして管理したい場合には,移動形態の変化パターンごとにスポットを対応付けて登録するように設計すればよい。
また,移動形態の変化パターンについては,移動形態の変化の方向性ごとに別々の変化パターンとして扱うようにしてもよいし,移動形態の組み合わせが同じであれば変化の方向性に関係なく同じ変化パターンとして扱うようにしてもよい。例えば,徒歩→自動車と,自動車→徒歩とを,別々の変化パターンとして扱うようにしてもよいし,徒歩←→自動車で同じ変化パターンとして扱うようにしてもよい。本実施の形態では,移動形態の組み合わせが同じであれば変化の方向性に関係なく同じ変化パターンとして扱うものとする。
領域計算部121は,抽出された登録済みの変化点に対応するスポットごとに,スポットの領域を求める。変化点とスポットとの対応関係については,例えば,変化点ログデータ101における変化点IDとスポットIDとの対応から得られる。検出部122は,取得部110が取得した変化点の位置を領域に含むスポットを,該変化点に対応するスポットの候補として検出する。
図11は,本実施の形態によるスポットの検出の例を説明する図である。
例えば,取得部110が取得した変化点が,図11(A)に示す道路沿いの駐車上における変化点aであったものとする。また,変化点aにおける移動形態の変化パターンは,自動車→徒歩であったものとする。
判定部120によって,変化点aに位置が近い登録済みの変化点として,図11(B)に示す変化点bが変化点ログデータ101から抽出されたものとする。変化点bにおける移動形態の変化パターンは,変化点aにおける移動形態の変化パターンと同様に,自動車→徒歩であったものとする。なお,ここでは,変化点aの位置近傍の登録済みの変化点として,変化点b以外の変化点が抽出されなかったものとする。
領域計算部121は,登録済みの変化点bに対応するスポットの領域を算出する。このとき,領域計算部121は,記憶部100に記憶された領域設定データ104を参照し,変化点bにおける移動形態の変化パターンに対応して設定された領域半径を取得する。ここでは,変化点bにおける移動形態の変化パターン“自動車→徒歩”に対応する領域半径“30m”が取得される。領域計算部121は,変化点bに対応するスポットの領域として,変化点bの位置から半径30m内の領域を求める。
図11(B)において,破線で示す変化点bの領域が,登録済みの変化点bに対応するスポットの領域である。図11(B)に示すように,変化点aの位置は,登録済みの変化点bの位置から求められたスポットの領域に含まれる。検出部122は,変化点aに対応するスポットの候補として,変化点bに対応付けられたスポットを検出する。
このように,取得部110が取得した変化点aの位置と,記憶部100の変化点ログデータ101に登録された変化点bとの位置関係から,変化点aに対応するスポットを検出することができる。なお,図11に示す例において,例えば変化点bが存在しない場合には,変化点aに対応するスポットは記憶部100から検出されない。このとき,変化点aに対応するスポットは,記憶部100に登録されていない新規のスポットとなる。
図12は,本実施の形態による同じスポットに対応付けられた変化点の共通化の例を説明する図である。
例えば,図11に示す変化点aが,変化点bと同じスポットに対応付けられて,記憶部100に記憶された変化点ログデータ101に登録されたものとする。このとき,それらの変化点に対応するスポットの領域は,変化点aと変化点bとを共通化して得られる領域とすることができる。
例えば,図12(A)に示すように,変化点aの領域と変化点bの領域とを単純に足し合わせた領域を,変化点aと変化点bとに共通に対応するスポットの領域とすることができる。この例の場合には,取得部110が取得した変化点近傍の登録済みの変化点から,スポットの領域を求めることができる。
また,図12(B)に示すように,変化点aと変化点bとの重心を中心とし,変化点aの領域と変化点bの領域とが内接する円の領域を,変化点aと変化点bとに共通に対応するスポットの領域とすることもできる。同じスポットに対応する変化点が,広い領域で複数抽出されるような場合には,個々の変化点の領域からさらに少し離れた場所にも,同じスポットに対応する変化点が存在する可能性が高くなる。例えば,図12(B)に示すようにスポットの領域を求めることで,領域が広いスポットの対処も可能となる。なお,この例の場合には,取得部110が取得した変化点近傍の登録済みの変化点だけではなく,取得部110が取得した変化点近傍の登録済みの変化点に対応するスポットに対応付けられたすべての登録済みの変化点を抽出して,スポットの領域を求める必要がある。
このように,同じスポットに対応する変化点を共通化してスポットの領域を求めることにより,記憶部100に登録されたスポットを点ではなく面として管理することが可能となる。これによって,例えば,広い駐車場のようなスポットにも,対応可能となる。
なお,図9の領域設定データ104に示すように,本実施の形態では,移動形態の変化パターンごとに,変化点の領域半径が設定されている。例えば,駐車場の面積に対して駐輪場の面積は小さい場合が多いため,図9の領域設定データ104では,徒歩←→自動車の領域半径(30m)に対して,徒歩←→自転車の領域半径(20m)が小さく設定されている。
図13は,本実施の形態による変化点におけるユーザの移動方向ごとのスポット領域の例を説明する図である。
図13において,黒点は変化点を示し,黒点から引かれた矢印はその変化点におけるユーザの移動方向を示す。駅やバス停などの特定の移動形態を含む変化点の場合,図13の上図に示すように,ユーザの移動方向が異なる変化点が互いに近い領域から多数検知される。これらの変化点におけるユーザの移動方向は,ランダムな移動方向ではなく,電車やバスの進行方向に従ったものとなる。駅やバス停では,電車やバスが上り方面と下り方面とでそれぞれ反対方向に進むので,乗車/降車した電車やバスの進行方向で,変化点におけるユーザの移動方向が異なる。本実施の形態では,移動形態の変化パターンが電車やバスなどの移動形態を含む特定の変化パターンである場合に,ユーザの移動方向が同じ変化点ごとに,スポットが登録されているものとする。
例えば,図13の上図に示す変化点について,所定の角度の誤差範囲で同じ移動方向の変化点をまとめると,図13左下図に示す変化点と,図13右下図に示す変化点とに分けられる。図13左下図,右下図に示すように,移動方向ごとに変化点を同じスポットに対応付け登録すると,それぞれの変化点から生成されるスポットの領域は,ユーザの移動方向が同じ場所のスポットとなる。例えば,駅において,図13左下図,右下図の一方が上り方面ホームのスポットであれば,他方が下り方面ホームのスポットとなる。
このように,ユーザの移動方向ごとに別々にスポットを登録することで,電車やバスの進行方向に応じたスポットの管理が可能となる。このように,登録するスポットに移動方向の概念を持たせることで,より正確できめが細かいユーザの移動先の予測が可能となる。
なお,電車のホームやバス停留所のスポットについて,上り,下りの運行方位をあらかじめデータとして保持しておき,鉄道会社やバス会社が提供する時刻表データと,変化点が検知された場所,時刻とを付き合わせることで,ユーザがどの方面に乗車したのかを判定する実施も可能である。ただし,この場合には,新たな場所の変化点の検知から新規のスポットを登録するのではなく,電車のホームやバス停留所をあらかじめスポットとして登録しておく必要がある。
図14は,本実施の形態による移動方向があるスポットの領域を求める例を説明する図である。
例えば,図13の左下図,右下図に示すように,対応する変化点の領域を足し合わせることで,移動方向があるスポットの領域を求めることもできる。また,スポットに対応する各変化点の位置と移動方向とから,図14に示すような方向と幅を持つ楕円のスポット領域を求めるようにしてもよい。
図14のスポット領域を示す楕円は,例えば,次の式で表される。
x=L cos(t) cos(a)−S sin(t) sin(a)+Px
y=L sin(t) sin(a)+S sin(t) cos(a)+Py
この式において,tは媒介変数(0〜2π)である。
図14に示す楕円のスポット領域において,領域の中心を示すスポットの位置(Px ,Py )は,このスポットに対応する各変化点の位置の平均である。また,スポットの方向Vは,このスポットに対応する各変化点におけるユーザの移動方向を示す速度ベクトルを平均したものである。速度ベクトルVは,変化点前後の所定の単位時間におけるユーザの移動距離と移動方向から簡単に得ることができる。
また,楕円の短径Sは,スポットの方向Vに直交し,スポットの位置(Px ,Py )を通る直線,
Vx (x−Px )+Vy (y−Py )=0
と,このスポットに対応する各変化点の位置との距離の平均である。なお,Vx は,スポットの方向Vのx軸方向成分であり,Vy は,スポットの方向Vのy軸方向成分である。また,楕円の長径Lは,スポットの方向Vと平行で,スポットの位置(Px ,Py )を通る直線,
Vx (y−Py )−Vy (x−Px )=0
と,このスポットに対応する各変化点の位置との距離の平均である。
判定部120は,検出部122により検出された,取得部110が取得した変化点に対応するスポットの候補を,検出結果として,該変化点の情報を送ってきた端末20に送信する。このとき,判定部120は,記憶部100に記憶されたスポットマスタデータ102から,取得部110が取得した変化点に対応するスポットの候補のスポット名を取得する。なお,判定部120は,取得部110が取得した変化点に対応するスポットの候補が検出できなかった場合には,その旨を検出結果として端末20に送信する。
端末20において,登録/選択処理部240は,サーバ10から,検出結果を受信する。登録/選択処理部240は,検出結果をユーザに提示する画面を,ディスプレイなどの表示装置に表示する。
図15は,本実施の形態による検出結果に応じた表示画面の例を示す図である。
図15(A)は,サーバ10からの検出結果として,スポットが検出されなかった旨の通知を受けた際の端末20の表示画面の例を示す。この場合,端末20で検知された変化点に対応するスポットは新規登録となるため,図15(A)に示すように,端末20のディスプレイには,新規に登録するスポットのスポット名を入力する画面が表示される。
ユーザは,スポット名の入力欄に新規に登録するスポットのスポット名を入力して,画面の送信ボタンを押下する。登録/選択処理部240は,ユーザにより入力された新規に登録するスポットのスポット名を,登録/選択結果としてサーバ10に送信する。
図15(B)は,サーバ10から送られてきた検出結果で,検知された変化点に対応するスポットの候補が1つである場合の端末20の表示画面の例を示す。図15(B)に示すように,端末20のディスプレイには,検出されたスポットのスポット名のボタンが表示される。
ユーザは,画面に提示されたスポットが,検知された変化点に対応するスポットとして正しいと判断すれば,そのスポットのスポット名のボタンを選択して押下する。このとき,登録/選択処理部240は,ユーザが選択したスポットの情報を,登録/選択結果としてサーバ10に送信する。また,ユーザは,画面に提示されたスポットが,検知された変化点に対応するスポットと異なると判断すれば,新規登録のボタンを選択して押下する。このとき,登録/選択処理部240は,図15(A)に示す,新規に登録するスポットのスポット名を入力する画面を,端末20のディスプレイに表示する。
図15(C)は,サーバ10から送られてきた検出結果で,検知された変化点に対応するスポットの候補が2つである場合の端末20の表示画面の例を示す。図15(C)に示すように,端末20のディスプレイには,検出されたスポットのスポット名のボタンが2つ表示されている。
ユーザは,画面に提示されたいずれかのスポットが,検知された変化点に対応するスポットとして正しいと判断すれば,そのスポットのスポット名のボタンを選択して押下する。このとき,登録/選択処理部240は,ユーザが選択したスポットの情報を,登録/選択結果としてサーバ10に送信する。また,ユーザは,画面に提示されたスポットのいずれもが,検知された変化点に対応するスポットと異なると判断すれば,新規登録のボタンを選択して押下する。このとき,登録/選択処理部240は,図15(A)に示す,新規に登録するスポットのスポット名を入力する画面を,端末20のディスプレイに表示する。
例えば,駐車場がある小さな店が隣接しているような場所では,異なるスポットとなる駐車場であるのに,変化点の位置から求められるスポットの領域が大きく重なってしまうことも考えられる。このような場所では,検知された変化点に対して複数のスポットが検出される。このとき,端末20の画面には,図15(C)に示すように,複数の検出されたスポットが提示される。
図16は,本実施の形態による行き先の情報を持つスポットの登録/選択画面の例を示す図である。
例えば,移動形態が電車やバスの場合には,同じホームや同じバス停,さらには同じ移動方向であっても,行き先が異なる場合がある。電車やバスの行き先ごとにスポットを分けて登録したい場合には,それらのスポットを変化点の位置やユーザの移動方向から自動で判別することはできない。このようなケースでは,ユーザに行き先などの情報を入力させ,その情報をスポットに対応付けて管理する。
図16(A)は,サーバ10から送られてきた検出結果で,検知された変化点に対応するスポットの候補のスポット名に行き先の情報が含まれている場合の端末20の表示画面の例を示す。図16(A)に示すように,端末20のディスプレイには,行き先の情報を含むスポット名のボタンが表示される。
ユーザは,画面に提示されたスポットの行き先が,検知された変化点に対応するスポットの行き先として正しいと判断すれば,そのスポットのスポット名のボタンを選択して押下する。このとき,登録/選択処理部240は,ユーザが選択した行き先の情報を含むスポットの情報を,登録/選択結果としてサーバ10に送信する。また,ユーザは,画面に提示されたスポットの行き先が,検知された変化点に対応するスポットの行き先と異なると判断すれば,新規登録のボタンを選択して押下する。このとき,登録/選択処理部240は,図16(B)に示す,新規に登録するスポットのスポット名を入力する画面を,端末20のディスプレイに表示する。
図16(B)は,新規に登録するスポットに行き先の情報を付与する場合の端末20の表示画面の例を示す。図16(B)に示すように,ユーザが入力した新規に登録するスポットのスポット名には,行き先の情報が含まれている。ユーザは,新規に登録するスポットのスポット名に行き先の情報も入力して,画面の送信ボタンを押下する。登録/選択処理部240は,ユーザにより入力された新規に登録するスポットの行き先の情報を含むスポット名を,登録/選択結果としてサーバ10に送信する。
なお,図16(B)に示す例では,ユーザに,行き先の情報を含むスポット名を入力させる例を示したが,スポット名の入力欄とは別に行き先の情報を入力する欄を設けて,ユーザにスポット名と行き先とを別々に入力させるようにしてもよい。また,上り方面,下り方面などの方面の情報についても,スポット名とは別の入力欄でユーザに入力させるようにしてもよい。
図16(C)は,検知された変化点に対応するスポットの候補として,同じ場所で行き先が異なる2つのスポットが検出された場合の端末20の表示画面の例を示す。図16(C)に示すように,端末20のディスプレイには,行き先のみが異なる2つのスポットのスポット名のボタンが表示されている。ユーザは,検知された変化点に対応する正しい行き先のスポットのスポット名のボタンを選択して押下する。このとき,登録/選択処理部240は,ユーザが選択したスポットの情報を,登録/選択結果としてサーバ10に送信する。また,ユーザは,画面に提示されたスポットのいずれもが,検知された変化点に対応するスポットと異なると判断すれば,新規登録のボタンを選択して押下する。
このように,変化点の位置やユーザの移動方向からは自動判別できない電車やバスなどの行き先を,ユーザがスポットに定義する仕組みを設けることにより,より正確にきめ細かなユーザの移動先の予測が可能となる。なお,ユーザは,例えば乗った電車が各駅停車であるか快速であるかの情報など,行き先以外の情報も定義可能である。
判定部120は,端末20から登録/選択結果を取得する。判定部120は,端末20からの登録/選択結果が,ユーザが選択したスポットの情報であれば,取得部110が取得した変化点に対応するスポットが,取得部110のスポットマスタデータ102に登録済みのスポットであると判定する。このとき,判定部120は,登録/選択結果に含まれるユーザが選択したスポットを,取得部110が取得した変化点に対応するスポットとして特定する。判定部120は,端末20からの登録/選択結果が,新規に登録するスポットのスポット名であれば,取得部110が取得した変化点に対応するスポットが,取得部110のスポットマスタデータ102に登録済みのスポットではないと判定する。
登録部130は,取得部110が取得した変化点に対応するスポットが登録済みのスポットであれば,ユーザが選択したスポットのスポットIDに対応付けて,取得部110が取得した変化点の情報を,記憶部100に記憶された変化点ログデータ101に登録する。
また,登録部130は,取得部110が取得した変化点に対応するスポットが登録済みのスポットでなければ,新規に登録するスポットのスポットIDを生成する。登録部130は,新規に生成されたスポットIDを,登録/選択結果に含まれる,ユーザにより入力されたスポット名とを対応付けて,記憶部100に記憶されたスポットマスタデータ102に登録する。このとき,登録部130は,新規に生成したスポットIDに対応付けて,取得部110が取得した変化点の情報を,記憶部100に記憶された変化点ログデータ101に登録する。
なお,図7に示すスポットマスタデータ102の例では,スポット名に行き先や方面などの情報が含まれる例を示している。行き先や方面などの情報を,スポット名とは別の情報としてユーザに入力させる仕組みを設けた場合には,スポットマスタデータ102において,それらの情報を記録する項目をスポット名とは別に設けて管理するようにしてもよい。
このように,本実施の形態によるコンピュータシステムでは,端末20を持つユーザの移動形態が変化した地点に基づいて,交通要所の登録が行われる。これにより,コンピュータシステムの管理者が,交通要所をあらかじめ登録しておかなくても,実際にユーザが利用した有用な交通要所を,簡易な手順で登録することが可能となる。
また,例えば,空き地を利用した個人経営の駐車場や,地元のコンビニエンスストアなど,その地域のユーザがよく利用するローカルな交通要所も,ユーザの移動形態の変化から簡単に検出されるので,地域のユーザにとって有用な交通要所を,容易に登録することが可能となる。
また,同じ場所でも,ユーザが利用する移動形態の種類や,ユーザの移動形態が変化した場所,ユーザの移動方向などで,交通要所を分けて管理することが可能となる。例えば,同じ駅の交通要所であっても,駅前ロータリー,タクシー乗り場,地下駐車場,各出口の駐輪場,様々な行き先のバス停,電車の上り線ホーム,下り線ホーム,さらには電車の行き先別などで,交通要所を分けることが可能となる。
これにより,例えば,ユーザへの経路ナビゲーションや,ユーザの移動先の予測などを行う場合に,より正確できめ細かいナビゲーションサービスや移動経路の予測を行うことが可能となる。
判定部120によって,取得部110が取得した変化点に対応するスポットが特定された場合に,予測部140は,変化点が検知された端末20のユーザ,すなわち予測対象ユーザの過去の交通要所の移動履歴を用いて,予測対象ユーザの移動先の交通要所を予測する。判定部120によって,取得部110が取得した変化点に対応するスポットが特定されたということは,変化点が検知されたときに,特定されたスポットに予測対象ユーザがいたということである。
図17は,本実施の形態による予測対象ユーザの移動履歴の例を示す図である。
予測部140において,移動履歴生成部141は,記憶部100に記憶された変化点ログデータ101から,予測対象ユーザについて過去に検知された変化点の履歴を抽出して,例えば図17に示すような移動履歴145を生成する。
図17に示す各移動履歴145a,b,... は,ユーザIDが“4332”の予測対象ユーザについて生成された移動履歴の一例を示す。図17に示す移動履歴145は,ユーザID,スポットID,検知時刻の情報を持つ。
ユーザIDは,予測対象ユーザを一意に識別する識別情報である。スポットIDは,予測対象ユーザが移動したスポットを一意に識別する識別情報である。検知時刻は,予測対象ユーザが該当スポットに移動した時刻を示す。それぞれの情報は,記憶部100に記憶された変化点ログデータ101におけるユーザID,スポットID,検知時刻に対応する。
図17に示す各移動履歴145a,b,... において,最後のレコードは,予測対象ユーザによる一連の移動における終点と推定されるスポットを示す。例えば,変化点ログデータ101から抽出した予測対象ユーザについての変化点の履歴において,検知時刻が長く空いている場合,その時間帯は,予測対象ユーザが移動の目的地に滞在している時間帯であると推定できる。移動履歴生成部141は,検知時刻が所定時間以上空いた部分について,その直前のスポットを一連の移動における終点のスポットと推定して,生成する移動履歴145を分ける。なお,検知時刻が所定時間以上空いていても,例えばその時間帯のユーザの移動形態がバスである場合などには,長時間の移動中であると判断して移動履歴145を分けないなどの設計は,任意である。
本実施の形態では,ユーザごとにデータを分けずに変化点の情報を記録している変化点ログデータ101から,予測対象ユーザの移動履歴145を自動生成する例を示したが,検知された変化点の情報を記憶部100に登録する際に,ユーザごとにデータを分けて登録しておいてもよい。ユーザごとにデータを分けて検知された変化点の情報を登録しておけば,予測対象ユーザの移動先の予測時に,変化点ログデータ101から該当予測ユーザのデータを抽出する処理が省ける。
また,変化点ログデータ101における,移動履歴145を生成する対象の変化点の情報を,3ヶ月以内の情報にする,最新の情報から200件以内にするなどの設計は,任意である。
図18は,本実施の形態による移動履歴から得られた予測対象ユーザの移動実績の例を示す図である。
図18に示す例は,判定部120によって,予測対象ユーザがスポット名“○○橋前バス停○○○駅行き”のスポットにいたと判定された際に,予測対象ユーザの移動先のスポットを予測する例を示す。
予測部140は,予測対象ユーザの移動履歴から,予測対象ユーザの移動実績を求める。図18に示す例において,スポットを示すノードを始点とする矢印の横の数字は,予測対象ユーザの移動履歴から求められた予測対象ユーザの過去の移動実績を示す。例えば,移動実績が1.0 の場合は,過去の実績で,矢印の始点となるノードが示すスポットから,100%の割合で,矢印の終点となるノードが示すスポットに移動していることを示す。また,例えば,移動実績が0.8 の場合は,過去の実績で,矢印の始点となるノードが示すスポットから,80%の割合で,矢印の終点となるノードが示すスポットに移動していることを示す。例えば,図18に示す例において,“○○○駅バス停”のスポットの次に移動するスポットの過去の移動実績は,“○○○駅△△△方面”が20%,“○○○駅×××方面”が80%となる。
予測部140は,例えば,次の移動先のスポットを予測する対象のスポットからの移動実績が最も高いスポットを,予測対象ユーザの次の移動先のスポットと予測する。予測部140は,予測された移動先のスポットについて,同様の処理を繰り返し,過去の移動履歴145において終点となった実績が最も高くなるスポットを,目的地のスポットとして予測する。
例えば,図18に示す例において,過去の移動実績が最も高いスポットを辿ると,予測される予測対象ユーザの移動経路は,太線矢印に示す経路となる。図18に示す例において,過去の移動実績から,“○○橋前バス停○○○駅行き”のスポットから各終点までの移動確率を求めると,
“自宅駐輪場”:1.0 ×0.8 ×1.0 ×0.9 ×1.0 =0.72(72%),
“◎◎神社入口前バス停”:1.0 ×0.8 ×1.0 ×0.1 ×1.0 =0.08(8%),
・・・・・
となる。このような過去の移動実績から,最も可能性が高い“自宅駐輪場”が,予測対象ユーザの目的地として予測される。
なお,予測対象ユーザの移動履歴を,朝夕などの時間帯ごとや,平日/休日などの日付ごとに分けて,予想対象ユーザの移動実績を求めるなどの設計は,任意である。朝夕などの時間帯ごとや,平日/休日などの日付ごとに分けて,予想対象ユーザの移動実績を求めることで,日付ごと時間帯ごとに,より精度が高い予測が可能となる。
また,図18に示す例では,最終的な目的地までのスポットの通過経路を予測しているが,検知された変化点に対応するスポットの次の移動先のスポットのみを予測する,3つ先の移動先のスポットまでを予測するなどの設計は,任意である。また,例えば,予測部140が,最新の移動履歴145を優先するように重み付けして,移動先のスポットを予測するなどの設計は,任意である。
図18に示すように,本実施の形態の移動先スポットの予測では,例えば“○○○駅”について,“○○○駅△△△方面”と“○○○駅×××方面”とを別のスポットに分けて予測を行うことができる。そのため,単純に“○○○駅”をスポットとして予測を行う場合に比べて,予測精度が高くなる。
予測部140が,予測対象ユーザの過去のスポットの移動履歴に加えて,さらに他のユーザの過去の移動履歴を用いて,予測対象ユーザの移動先のスポットを予測するようにしてもよい。例えば,予測部140が,予測対象ユーザの過去のスポットの移動履歴に加えて,システムに登録された全ユーザの過去の移動履歴を用いて,予測対象ユーザの移動先のスポットを予測するようにしてもよい。このとき,全ユーザの過去の移動実績を,移動先の予測を行うごとに求めることは難しいので,例えば,1週間に1度などの間隔で,全ユーザの過去の移動実績を求めておくようにしてもよい。
図19は,本実施の形態による予測対象ユーザの移動実績と全ユーザの移動実績の例を示す図である。
図19(A)は,予測対象ユーザの過去の移動実績において,“○○○駅バス停”の次に移動したスポットの実績を示す。図19(B)は,予測対象ユーザの過去の移動実績において,“○○○駅バス停”の次に移動したスポットの実績を示す。
予測部140は,これらの予測対象ユーザの過去の移動実績と,全ユーザの過去の移動実績とを合成して得られる移動実績から,予測対象ユーザが次に移動するスポットを予測する。このとき,予測部140は,例えば,どちらの移動実績を優先するかを,パラメータで重み付けする。重み付けパラメータαについては,例えばシステム側で適切と考えられる値を設定してもよいし,各ユーザに自分で設定させるようにしてもよい。また,例えば,次の移動先を予測する対象のスポットに予測対象ユーザが訪れる頻度に応じて,重み付けパラメータαを動的に決定するようにしてもよい。
重み付けのパラメータを用いて,予測対象ユーザの移動実績と全ユーザの移動実績とを合成する式は,例えば次に示す式となる。
αP(A,i)+(1−α)P(B,i)
この式において,P(A,i)とP(B,i)は,それぞれ同じスポットに対する予測対象ユーザの移動実績と全ユーザの移動実績とを示す。αは,重み付けのパラメータである。
図20は,本実施の形態による予測対象ユーザの移動実績と全ユーザの移動実績とを合成した例を示す図である。
図20(A)は,上式における重み付けパラメータαの値を0.5に設定して,図19(A)に示す予測対象ユーザの移動実績と,図19(B)に示す全ユーザの実績とを合成した例を示す。図20(A)に示す例では,“○○○駅バス停”の次に移動するスポットの実績として,“○○○駅△△△方面”の実績が最も高い。
図20(B)は,上式における重み付けパラメータαの値を0.9に設定して,図19(A)に示す予測対象ユーザの移動実績と,図19(B)に示す全ユーザの実績とを合成した例を示す。図20(B)に示す例では,“○○○駅バス停”の次に移動するスポットの実績として,“○○○駅×××方面”の実績が最も高い。
なお,ここでは,他のユーザの過去の移動履歴として,全ユーザの移動履歴を用いた例について説明した。例えば,ユーザの個人情報が登録されている場合に,他のユーザの過去の移動履歴として,予測対象ユーザと居住地域が同じ他のユーザの過去の移動履歴を利用する,予測対象ユーザと同じ嗜好を持つ他のユーザの過去の移動履歴を利用するなどの設計は,任意である。
他のユーザの過去の移動履歴も用いることにより,予測対象ユーザが初めて訪れたスポットについても,他のユーザの移動傾向から,予測対象ユーザの移動先のスポットを予測することが可能となる。このような予測は,他のユーザの移動実績から得られるお勧めスポットを予測対象ユーザに対して提示するサービスなどに,応用可能である。
このように,本実施の形態によるコンピュータシステムでは,端末20を持つユーザの移動形態の変化した地点に基づいて登録された交通要所を用いて,ユーザの移動先の予測が行われる。これにより,ユーザが実際に利用した有用な交通要所を用いて,正確できめ細かいユーザの移動先の予測が可能となる。
情報提供部150は,予測された移動先のスポットに関する情報を取得し,取得した情報をユーザに対する提供情報として,予測対象ユーザの端末20に送信する。本実施の形態では,例えば,移動先のスポットの予測結果と併せて,記憶部100に記憶された提供情報データ105の口コミ情報を,ユーザに提供する。情報提供部150は,例えば,予測部140により予測された目的地や経路上のスポットに関する最新の口コミ情報を,記憶部100に記憶された提供情報データ105から取得し,取得された口コミ情報を提供情報として,予測対象ユーザの端末20に送信する。
端末20において,情報提示部250は,サーバ10から提供情報を受信する。情報提示部250は,サーバ10から受けた提供情報を端末20の表示装置に表示することで,ユーザに提供情報を提示する。
図21は,本実施の形態による提供情報の表示画面の例を示す図である。
図21(A)は,サーバ10からの提供情報を受けた際の端末20の表示画面の例を示す。図21(A)に示すように,端末20のディスプレイには,サーバ10によって予測された,端末20のユーザの移動先のスポットが提示されている。
図21(A)に示す画面において,ユーザは,サーバ10により提供された情報を見たい場合に,情報表示のボタンを押下する。このとき,情報提示部250は,図21(B)に示すように,予測された目的地までの経路上のスポットに関する最新の口コミ情報の提示画面を端末20のディスプレイに表示する。
図21(A)に示す画面において,ユーザは,自身がいるスポットの口コミ情報を投稿したい場合に,情報投稿のボタンを押下する。このとき,ユーザ入力情報処理部260は,図21(C)に示すように,口コミ情報の入力画面を端末20のディスプレイに表示する。図20(C)の画面において,ユーザが口コミ情報を入力して送信ボタンを押下すると,ユーザ入力情報処理部260は,ユーザにより入力された口コミ情報を,検知された自身の変化点に対応するスポットに関する口コミ情報として,サーバ10に送信する。
サーバ10において,ユーザ入力情報登録部160は,端末20からユーザにより入力された口コミ情報を取得する。ユーザ入力情報登録部160は,該当ユーザがいるスポットのスポットIDと対応付けて,取得した口コミ情報を,記憶部100に記憶された提供情報データ105に登録する。
このように,本実施の形態によるコンピュータシステムでは,各ユーザから各スポットにおけるリアルタイムの口コミ情報を収集し,各ユーザに対して予測される移動先に関する口コミ情報を提供する。これにより,ユーザは,目的地に向かって移動する早い段階で,途中で経由するスポットにおいて電車が運行停止している等のリアルタイムの情報を受けることができる。
なお,スポットに対応付けてユーザに提供する情報は,各ユーザから収集した口コミ情報に限らない。例えば,交通会社が提供する電車やバスの公式運行情報を,スポットに対応付けてユーザに提供するようにしてもよい。
また,本実施の形態のコンピュータシステムによるユーザへのサービスとして,例えば,予測されたユーザの移動先スポットに応じた広告の提供や,ユーザが普段利用するコンビニエンスストアの広告の提供なども考えられる。本実施の形態では,地域に限定されるローカルなスポットも容易に登録可能となるため,地域に応じたきめ細かな広告の提供が可能となる。また,本実施の形態によるユーザの移動先スポットの予測を利用して,例えば,予測される移動先が同じスポットであるユーザの端末20同士をグループ化したコミュニティサービスを提供することも可能である。
以下では,本実施の形態のコンピュータシステムによる変化点の検知からユーザの入力情報の登録までの一連の処理の例について,図22のシーケンス図と,図23〜図29に示すフローチャートとを用いて説明する。
図22は,本実施の形態のコンピュータシステムによる変化点の検知からユーザの入力情報の登録までの一連の処理の流れを示すシーケンス図である。
端末20は,変化点検知処理を実行する(ステップS10)。変化点検知処理は,端末20を持つユーザの移動形態の変化を検知する処理である。変化点検知処理の詳細については,後述する。端末20は,ユーザの移動形態の変化を検知すると,移動形態が変化した地点の位置情報を含む変化点の情報をサーバ10に送る(ステップS11)。
サーバ10は,端末20から変化点の情報を受けると,検出処理を実行する(ステップS12)。検出処理は,端末20から取得した変化点に対応するスポットの候補を,記憶部100に登録されたスポットから検出する処理である。検出処理の詳細については,後述する。サーバ10は,スポットの検出結果を端末20に送る(ステップS13)。
端末20は,サーバ10から検出結果を受けると,登録/選択処理を実行する(ステップS14)。登録/選択処理は,ユーザによる検知された変化点に対応する登録済みのスポットの選択や,ユーザによる新規スポットの登録指示などを受け付ける処理である。登録/選択処理の詳細については,後述する。端末20は,登録/選択結果をサーバ10に送信する(ステップS15)。
サーバ10は,端末20からの登録/選択結果を受けると,登録処理を実行する(ステップS16)。登録処理は,端末20から取得した変化点と該変化点に対応するスポットとを対応付けて,記憶部100に登録する処理である。登録処理の詳細については,後述する。
サーバ10は,端末20から取得した変化点に対応する登録済みのスポットが特定された場合に,予測処理を実行する(ステップS17)。予測処理は,ユーザが特定されたスポットの後に移動するスポットを予測する処理である。予測処理の詳細については,後述する。サーバ10は,予測された移動先のスポットに関する提供情報を端末20に送信する(ステップS18)。
端末20は,サーバ10から提供情報を受けると,情報提示処理を実行する(ステップS19)。情報提示処理は,サーバ10からの提供情報を,ユーザに提示する処理である。情報提示処理の詳細については,後述する。端末20は,ユーザによる情報の入力があった場合に,そのユーザ入力情報をサーバ10に送る(ステップS20)。
サーバ10は,端末20からユーザ入力情報を受けると,ユーザ入力情報登録処理を行う(ステップS21)。ユーザ入力情報登録処理は,端末20においてユーザが入力した情報を記憶部100に登録する処理である。ユーザ入力情報登録処理の詳細については,後述する。
図23は,本実施の形態の端末による変化点検知処理フローチャートである。
端末20において,移動形態推定部210は,センサ類200から得られた情報から,ユーザの移動形態を推定する(ステップS100)。変化点検知部220は,ユーザの移動形態が変化したかを判定する(ステップS101)。ユーザの移動形態が変化していない場合には(ステップS101のNO),端末20は,ステップS100の処理に戻って,次のタイミングでのユーザの移動形態の推定に備える。
ユーザの移動形態が変化した場合には(ステップS101のYES),変化点検知部220は,移動形態の変化パターンに電車またはバスが含まれているか,すなわち変化前後の移動形態のいずれかが電車またはバスであるかを判定する(ステップS102)。変化前後の移動形態のいずれかが電車またはバスである場合には(ステップS102のYES),移動方向算出部230は,変化点前後のユーザの位置情報から,ユーザの移動方向を算出する(ステップS103)。
変化点検知部220は,位置情報を含む変化点の情報をサーバ10に送信する(ステップS104)。このとき,変化点の情報に,移動形態の変化パターンの情報や,ユーザの移動方向の情報を含ませてもよい。端末20は,ステップS100の処理に戻って,次のタイミングでのユーザの移動形態の推定に備える。
図24は,本実施の形態のサーバによる検出処理フローチャートである。
サーバ10において,取得部110は,端末20から変化点の情報を取得する(ステップS110)。判定部120は,取得した変化点に位置が近い登録済みの変化点を,記憶部100に記憶された変化点ログデータ101から抽出する(ステップS111)。領域計算部121は,抽出した登録済みの変化点の位置から,その変化点に対応付けられたスポットの領域を求める(ステップS112)。なお,同じスポットに複数の変化点が対応付けられている場合には,それら複数の変化点を共通化したスポットの領域を求める。
検出部122は,端末20から取得した変化点が,求められたスポットの領域内にあるかを判定する(ステップS113)。端末20から取得した変化点がスポットの領域内にあれば(ステップS113のYES),検出部122は,端末20から取得した変化点を領域内に含むスポットを,端末20から取得した変化点に対応するスポットの候補とする。このとき,判定部120は,検出結果として,検出されたスポットの候補を端末20に送信する(ステップS114)。端末20から取得した変化点がスポットの領域内になければ(ステップS113のNO),判定部120は,検出結果として,検知された変化点に対応する登録済みのスポットがない旨を端末20に送信する(ステップS115)。
図25は,本実施の形態の端末による登録/選択処理フローチャートである。
端末20において,登録/選択処理部240は,サーバ10から検出結果を受信する(ステップS120)。登録/選択処理部240は,検出結果に検知した変化点に対応するスポットの候補があるかを判定する(ステップS121)。
検出結果に検知した変化点に対応するスポットの候補がなければ(ステップS121のNO),登録/選択処理部240は,ユーザによる新規に登録するスポットのスポット名の入力を受け付ける(ステップS122)。登録/選択処理部240は,ユーザにより入力された新規に登録するスポットのスポット名を,登録/選択結果としてサーバ10に送信する(ステップS123)。
検出結果に検知した変化点に対応するスポットの候補があれば(ステップS121のYES),登録/選択処理部240は,検出結果に含まれるスポットの候補を,端末20の画面に表示して,ユーザに提示する(ステップS124)。登録/選択処理部240は,ユーザによる操作を受け付ける(ステップS125)。登録/選択処理部240は,ユーザの操作が新規のスポットの登録であるかを判定する(ステップS126)。
ユーザの操作が新規のスポットの登録であれば(ステップS126のYES),登録/選択処理部240は,ユーザによる新規に登録するスポットのスポット名の入力を受け付ける(ステップS122)。登録/選択処理部240は,ユーザにより入力された新規に登録するスポットのスポット名を,登録/選択結果としてサーバ10に送信する(ステップS123)。
ユーザの操作が新規のスポットの登録ではなく(ステップS126のNO),スポットの選択であれば,登録/選択処理部240は,ユーザが選択したスポットのスポットIDを,登録/選択結果としてサーバ10に送信する(ステップS127)。
図26は,本実施の形態のサーバによる登録処理フローチャートである。
サーバ10において,判定部120は,端末20から登録/選択結果を受け付ける(ステップS130)。判定部120は,登録/選択結果が新規のスポットの登録であるかを判定する(ステップS131)。
登録/選択結果が新規のスポットの登録であれば(ステップS131のYES),登録部130は,新規のスポットIDを生成する(ステップS132)。登録部130は,生成された新規のスポットIDを,記憶部100に記憶されたスポットマスタデータ102に登録する(ステップS133)。このとき,登録部130は,新規のスポットIDを,登録/選択結果に含まれるスポット名に対応付けて登録する。登録部130は,端末20から取得した変化点に,新規のスポットIDを割り当てる(ステップS134)。登録部130は,割り当てられた新規のスポットIDに対応付けて,端末20から取得した変化点の情報を,記憶部100に記憶された変化点ログデータ101に登録する(ステップS135)。この場合,端末20から取得した変化点に対応するスポットが,登録済みのスポットではないので,予測部140による予測処理は行われない。
登録/選択結果が新規のスポットの登録でなければ(ステップS131のNO),すなわち登録/選択結果がユーザによるスポットの選択結果であれば,登録部130は,端末20から取得した変化点に,登録/選択結果に含まれる選択結果のスポットIDを割り当てる(ステップS136)。登録部130は,割り当てられた登録済みのスポットIDに対応付けて,端末20から取得した変化点の情報を,記憶部100に記憶された変化点ログデータ101に登録する(ステップS135)。この場合,端末20から取得した変化点に対応するスポットが,登録済みのスポットであるので,予測部140による予測処理が行われる。
図27は,本実施の形態のサーバによる予測処理フローチャートである。
サーバ10において,移動履歴生成部141は,記憶部100に記憶された変化点ログデータ101から予測対象ユーザのレコードを抽出して,予測対象ユーザの移動履歴を生成する(ステップS140)。予測部140は,予測対象スポットを,判定部120で特定されたスポット,すなわち端末20から取得された変化点に対応するスポットに設定する(ステップS141)。ここでは,予測対象スポットは,次の移動先のスポットを予測する対象のスポットを示す。
予測部140は,予測対象ユーザの移動履歴から,予想対象スポットの次にユーザが訪れたスポットを抽出する(ステップS142)。予測部140は,全ユーザの移動実績の統計情報から,予測対象スポットの次のスポットを抽出する(ステップS143)。予測部140は,予測対象ユーザについて抽出されたスポットの移動実績と,全ユーザについて抽出されたスポットの移動実績とを,パラメータで重み付けして合成する(ステップS144)。予測部140は,最も移動実績が高いスポットを,予測対象ユーザが予測対象スポットの次の移動先のスポットとして予測する(ステップS145)。予測部140は,予測されたスポットを,予測経路に追加する(ステップS146)。
予測部140は,移動履歴において,予測されたスポットが終点となる実績が最も高いかを判定する(ステップS147)。予測されたスポットが終点となる実績が最高でない場合には(ステップS147のNO),予測部140は,予測されたスポットを次の予測対象スポットに設定し(ステップS148),ステップS142の処理に戻って,次の移動先のスポットの予測に移る。
予測されたスポットが終点となる実績が最も高い場合には(ステップS147のYES),予測部140は,予測されたスポットを目的地と予測する(ステップS149)。情報提供部150は,記憶部100に記憶された提供情報データ105から,予測経路の各スポットにおける提供情報を取得する(ステップS150)。情報提供部150は,取得した予測経路の各スポットにおける提供情報を,端末20に送信する(ステップS151)。
図28は,本実施の形態の端末による情報提示処理フローチャートである。
端末20において,情報提示部250は,サーバ10から提供情報を受信する(ステップS160)。情報提示部250は,提供情報を端末20の画面に表示する(ステップS161)。
ユーザ入力情報処理部260は,ユーザによる口コミ情報の入力があるかを判定する(ステップS162)。ユーザによる口コミ情報の入力があれば(ステップS162のYES),ユーザ入力情報処理部260は,ユーザに入力された口コミ情報を,ユーザ入力情報としてサーバ10に送信する(ステップS163)。
図29は,本実施の形態のサーバによるユーザ入力情報登録処理フローチャートである。
サーバ10において,ユーザ入力情報登録部160は,端末20からユーザ入力情報を受信する(ステップS170)。ユーザ入力情報登録部160は,端末20のユーザがいるスポットのスポットIDに対応付けて,記憶部100に記憶された提供情報データ105に,ユーザ入力情報を登録する(ステップS171)。
以上,本実施の形態について説明したが,本発明はその主旨の範囲において種々の変形が可能であることは当然である。
例えば,本実施の形態では,サーバの処理を1台のコンピュータで実現する例を説明したが,複数のコンピュータで実現するようにしてもよい。例えば,データ管理を専用のコンピュータで行い,その他の処理については複数のコンピュータで分散処理するなどの実現も可能である。