以下に、本願に係る情報処理装置、情報処理方法、及び情報処理プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理方法、及び情報処理プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
(実施形態)
〔1.情報処理〕
まず、図1及び図2を用いて各種の情報処理の一例について説明する。図1及び図2は、実施形態に係る情報処理の一例を示す図である。まず、図1及び図2の処理の概要を説明する。図1では、情報処理装置100は、ユーザの位置(緯度経度)を示す所定範囲(「ユーザ範囲」ともいう)と、店舗が占める範囲(「店舗範囲」ともいう)とに基づいて、ユーザと地理的な関連性を有する店舗(「関連店舗」ともいう)を推定する推定処理を実行する。なお、ここでいう店舗とは、狭義の物販店に限定されるものではなく、各種のサービスや公共の施設を含め、一定の物理的範囲を占める施設を広く意味するもの(概念)である。
図1では、ユーザが利用する端末装置10のGPS(Global Positioning System)センサにより検知されたユーザの位置(緯度経度)を示すユーザ範囲と、店舗のポリゴンデータが示す店舗範囲とに基づく推定処理を一例として説明する。また、図1では、関連店舗として、ユーザが入店した店舗を推定する場合を一例として説明する。なお、ユーザ範囲の推定に用いる情報は、GPSセンサ(単に「GPS」ともいう)が検知した情報(センサ情報)に限らず、例えば、Wi-Fi(登録商標)(Wireless-Fidelity)、Bluetooth(登録商標)、ビーコン等に関する情報等、ユーザ範囲を推定に利用可能であればどのような情報が用いられてもよい。また、推定処理に用いる店舗範囲を示す情報は、ポリゴンデータに限らず、店舗範囲を推定可能であればどのような情報が用いられてもよい。
また、図2では、情報処理装置100は、所定の行動を行った際のユーザの位置(「行動時位置」ともいう)を示す位置情報を用いて、第1情報が示す地図における所定の行動と関連性を有する部分(「関連部分」ともいう)を決定し、第2情報を生成する生成処理を実行する。図2では、ユーザが店舗で商品購入の決済を行った際の位置をユーザの行動時位置として、地図における関連部分を決定し、ユーザが商品を購入した店舗のポリゴンデータを第2情報として生成する生成処理を一例として説明する。
なお、ユーザの所定の行動は、決済に限らず、商品の購入や支払いに関する様々な行動であってもよい。また、ユーザの所定の行動は、ユーザの購買に関する行動に限らず、例えば、検索、店舗のWi-Fiへのアクセス等、所望の第2情報の生成が可能であればどのような行動であってもよい。また、生成する第2情報は、店舗のポリゴンデータに限らず、現実の対象(すなわち実空間に存在する対象物)を示す情報であればどのような情報であってもよい。情報処理装置100は、ポリゴンデータに限らず様々なベクタデータを生成してもよい。例えば、第2情報の生成対象となる現実の対象が駐車場のように一部出入り口があるようなものである場合、情報処理装置100は、駐車場の出入り口部分に対応する箇所が開放したポリラインデータ等を第2情報として生成してもよい。
〔1-1.情報処理システムの構成〕
図1及び図2の説明に先立って、図3を用いて情報処理システム1の構成について説明する。図3は、実施形態に係る情報処理システムの構成例を示す図である。図3に示すように、情報処理システム1は、端末装置10と、店舗装置20と、データ提供装置50と、情報処理装置100とが含まれる。端末装置10と、店舗装置20と、データ提供装置50と、情報処理装置100とは所定のネットワークNを介して、有線または無線により通信可能に接続される。なお、図3に示した情報処理システム1には、複数台の端末装置10や、複数台の端末装置10や、複数台の店舗装置20や、複数台のデータ提供装置50や、複数台の情報処理装置100が含まれてもよい。
端末装置10は、ユーザによって利用されるコンピュータである。端末装置10は、ユーザが携帯可能なデバイス(携帯端末)である。端末装置10は、例えば、スマートフォンや、タブレット型端末や、ノート型PC(Personal Computer)や、携帯電話機や、PDA(Personal Digital Assistant)等により実現される。図1及び図2は、端末装置10がスマートフォンである場合を示す。なお、以下では、端末装置10をユーザと表記する場合がある。すなわち、以下では、ユーザを端末装置10と読み替えることもできる。
また、端末装置10は、GPSセンサ等の機能を有し、ユーザの位置(緯度経度)を検知し、緯度経度を示す情報を取得可能であるものとする。また、端末装置10は、Wi-FiやBluetooth等の所定の無線通信機能やビーコン等の機能によりユーザの位置を示す情報を取得してもよい。また、端末装置10は、位置等の種々の情報を情報処理装置100に送信する。例えば、端末装置10は、ユーザの位置を含むユーザの行動を示す行動を示す情報(行動情報)を情報処理装置100へ送信する。
店舗装置20は、各店舗の管理者よって利用されるコンピュータである。例えば、飲食店Aの管理者は、店舗装置20を用いて、情報処理装置100との間で情報の送受信を行う。例えば、店舗装置20は、スマートフォンや、タブレット型端末や、ノート型PCや、デスクトップPCや、携帯電話機や、PDA等により実現される。店舗装置20は、店舗に関する各種情報を情報処理装置100に送信する。店舗装置20は、情報処理装置100が要求する情報を、情報処理装置100に送信する。店舗装置20は、店舗の所在地等の様々な情報を含む店舗情報を情報処理装置100に送信する。
データ提供装置50は、各種のデータを情報処理装置100へ提供するサーバである。データ提供装置50は、いわゆる広く開かれた利用が許可されているデータであるオープンデータを情報処理装置100へ提供してもよい。また、データ提供装置50は、地図表示アプリケーション等で表示される地図に関する情報(地図情報)を情報処理装置100へ提供してもよい。例えば、データ提供装置50は、構造物を線や線で囲まれた領域等で示す二次元の地図を示す画像を含む地図情報を情報処理装置100へ提供する。なお、上記は一例に過ぎず、データ提供装置50は、情報処理装置100が処理に必要な様々な情報を情報処理装置100へ送信する。
情報処理装置100は、ユーザの関連店舗を推定する推定処理を実行する推定装置(コンピュータ)である。また、情報処理装置100は、ユーザの行動時の位置と第1情報とを用いて第2情報を生成する生成装置(コンピュータ)である。情報処理装置100は、推定処理で推定した情報に基づくサービスを提供してもよい。また、情報処理装置100は、生成処理で推定した情報に基づくサービスを提供してもよい。例えば、情報処理装置100は、生成処理で推定したポリゴン等の第2情報を用いて推定処理を行ってもよい。
〔1-2.推定処理の一例〕
ここから、図1を用いて、情報処理装置100が行う情報処理の一例について説明する。図1は、情報処理装置100(図3参照)が行う推定処理の一例を示す図である。なお、図1では、端末装置10を利用するユーザがユーザU1である場合を一例として説明する。
まず、情報処理装置100は、ユーザU1が利用する端末装置10からユーザ範囲を示す情報を取得する。例えば、端末装置10は、ユーザU1の位置を検知するGPSが検知したセンサ情報を情報処理装置100に送信する。例えば、情報処理装置100は、ユーザU1の位置を検知するGPSのアキュラシー(精度)が所定の閾値以上である範囲であるユーザ範囲を示す情報を取得する。例えば、情報処理装置100は、アキュラシー(精度)が所定値(例えば95%)以上の信頼区間を示す円形の範囲を示す情報(「円形範囲情報」ともいう)を、ユーザ範囲を示す情報として取得する。図1では、情報処理装置100は、円形範囲BA1をユーザU1のユーザ範囲として取得する。なお、情報処理装置100は、円形範囲BA1の情報を生成してもよいし、円形範囲BA1の情報を端末装置10等の外部装置から受信してもよい。
そして、情報処理装置100は、ユーザ範囲を示す円形範囲情報を多角形の範囲を示す情報(「多角形範囲情報」ともいう)に変換する(ステップS1)。例えば、情報処理装置100は、円形範囲の面積に応じて円形範囲を多角形の範囲(「多角形範囲」)に変換する。例えば、情報処理装置100は、円形範囲を円形範囲と面積が同じである多角形範囲に変換する。例えば、情報処理装置100は、円形範囲と中心を一致させた多角形範囲に変換する。情報処理装置100は、このような変換処理により、円形範囲から多角形範囲を生成する。
図1では、情報処理装置100は、円形範囲BA1を正方形の多角形範囲AA1に変換する。これにより、情報処理装置100は、円形範囲BA1と面積が同じであり、中心が一致する多角形範囲AA1を生成する。例えば、情報処理装置100は、多角形範囲AA1の辺が緯度(緯線)または経度(経線)のいずれかに沿うように、多角形範囲AA1の向きを合わせて多角形範囲AA1を生成する。例えば、情報処理装置100は、多角形範囲AA1の縦方向の辺が経線に平行に、多角形範囲AA1の横方向の辺が緯線に平行になるように多角形範囲AA1を生成する。なお、多角形範囲AA1の向きは任意の向きに設定されてもよい。また、正方形は一例に過ぎず、多角形範囲は、正方形に限らず、正方形以外の矩形、三角形、五角形以上の多角形であってもよい。
また、情報処理装置100は、店舗のポリゴンデータ(単に「ポリゴン」ともいう)を、店舗範囲を示す情報として取得する。情報処理装置100は、ユーザU1のユーザ範囲から所定距離内に位置する店舗のポリゴンを取得する。図1では、情報処理装置100は、店舗であるZコンビニのポリゴンPG1をZコンビニの店舗範囲を示す情報として取得する。なお、情報処理装置100は、ZコンビニのポリゴンPG1の情報を記憶部120(図4参照)から取得してもよいし、ZコンビニのポリゴンPG1の情報をデータ提供装置50等の外部装置から受信してもよい。
そして、情報処理装置100は、多角形範囲と、店舗範囲とに基づいて、ユーザと地理的な関連性を有する関連店舗を推定する推定処理を実行する。情報処理装置100は、ユーザのユーザ範囲とZコンビニの店舗範囲とが重なる領域(重畳領域)の面積(「重畳面積」ともいう)を算出する(ステップS2)。図1では、情報処理装置100は、ユーザU1の多角形範囲AA1と、ZコンビニのポリゴンPG1とが重なる重畳領域OA1の面積を算出する。
例えば、情報処理装置100は、重畳領域OA1の面積を、多角形範囲AA1の1つの頂点である第1点PT1と、ポリゴンPG1の1つの頂点である第2点PT2の位置を基に算出する。図1では、情報処理装置100は、多角形範囲AA1の頂点のうち、ポリゴンPG1内に位置する第1点PT1と、ポリゴンPG1の頂点のうち、多角形範囲AA1内に位置する第2点PT2の位置を基に重畳領域OA1の面積を算出する。なお、上記は一例に過ぎず、情報処理装置100は、重畳領域OA1の面積の算出可能であれば、どのように重畳領域OA1の面積を算出してもよい。
そして、情報処理装置100は、算出した重畳面積を用いて、ZコンビニがユーザU1の関連店舗である度合いを示すスコアを算出する(ステップS3)。図1では、情報処理装置100は、ユーザU1のユーザ範囲である多角形範囲AA1の面積に占める重畳領域OA1の面積の割合をスコアとして算出する。情報処理装置100は、図1中の算出結果SC1に示すように、重畳領域OA1の面積を多角形範囲AA1の面積で除することにより、Zコンビニのスコアを算出する。
そして、情報処理装置100は、算出したスコアを用いて、関連店舗を推定する(ステップS4)。図1では、情報処理装置100は、算出したZコンビニのスコアを用いて、ZコンビニがユーザU1の関連店舗であるか否かを推定する。
例えば、情報処理装置100は、Zコンビニのスコアが閾値以上である場合、ZコンビニをユーザU1が入店した店舗(関連店舗)であると推定する。すなわち、情報処理装置100は、Zコンビニのスコアが閾値(例えば0.5、0.7等の任意の値)以上である場合、ZコンビニにユーザU1が入店したと判定する。
また、情報処理装置100は、Zコンビニのスコアが閾値未満である場合、ZコンビニをユーザU1が入店した店舗(関連店舗)ではないと推定する。すなわち、情報処理装置100は、Zコンビニのスコアが閾値未満である場合、ZコンビニにユーザU1が入店していないと判定する。
図1では、情報処理装置100は、Zコンビニのスコアが閾値未満であるため、ZコンビニをユーザU1が入店した店舗(関連店舗)ではないと推定する。すなわち、情報処理装置100は、図1中の推定結果RS1に示すように、対象ユーザであるユーザU1が、対象店舗であるZコンビニの外にいると判定する。
このように、情報処理装置100は、ユーザ範囲である多角形範囲と、店舗範囲である店舗のポリゴンとを用いて、ユーザと地理的な関連性を有する店舗である関連店舗を推定することにより、ユーザと地理的な関連がある店舗を適切に推定することができる。これにより、情報処理装置100は、ユーザの店舗への来店計測を適切に実行可能にすることができる。
〔1-2-1.推定処理に関する限定解除等〕
なお、上記は一例に過ぎず、情報処理装置100は、様々な情報を適宜用いて推定処理を行ってもよい。例えば、情報処理装置100は、ジオハッシュ(Geohash)等の経緯度に基づくジオコーディング方法により生成された情報を用いて、推定処理を行ってもよいが、この点については図10-14を用いて後述する。
上述した例では、情報処理装置100は、ユーザ範囲としてのGPSのアキュラシーエリアと店舗のポリゴンとの重複具合から、ユーザが店舗にいる確率を算出する。例えば、情報処理装置100は、ユーザ範囲(アキュラシーエリア)のうち店舗のポリゴンと重複する領域の割合に基づいてスコア算出する。
ここで、一般的に、GPSのアキュラシーエリアは、広くなったり狭くなったりする。また、例えば、GPSのアキュラシーエリアの内側の点と、店舗ポリゴンの内側の点との一致度合を見ているので、計算量が多くなる。例えば、ユーザ範囲を円形のままで重複領域の面積を算出する場合、重複領域の形状は複雑になり重複領域の面積の算出コストが高い。
そこで、情報処理装置100は、ユーザ範囲を円形から多角形に変換した多角形範囲を用いて、重複領域の面積を算出することにより、計算量の増大を抑制しつつ、重複領域の面積の適切な値を算出(近似)することができる。
なお、上述した例では、ユーザが入店している可能性が高い店舗を関連店舗として推定する場合を示したが、関連店舗はユーザが入店した店舗に限られない。例えば、情報処理装置100は、ユーザが訪問する可能性が高い店舗を関連店舗として推定してもよい。例えば、情報処理装置100は、算出したスコアが所定の範囲の店舗を、ユーザが訪問する可能性が高い関連店舗として推定してもよい。例えば、情報処理装置100は、算出したスコアが0.1以上、0.4未満である店舗を、ユーザが近くに位置し、そのユーザが訪問する可能性が高い関連店舗として推定してもよい。この場合、情報処理装置100は、関連店舗に訪問する動機づけ(インセンティブ)となる情報をユーザに提供してもよい。例えば、情報処理装置100は、関連店舗のクーポンをユーザが利用する端末装置10に送信する。
〔1-3.生成処理の一例〕
上述した図1の推定処理では、店舗のポリゴンデータを用いているが、店舗によってはポリゴンデータが未生成の場合がある。このような店舗の場合、上述した推定処理を適切に行うことが難しい。そこで、情報処理装置100は、以下に示すような店舗のポリゴンデータを生成する生成処理を実行する。以下では、図2を用いて情報処理装置100が行う生成処理の一例を説明する。図2は、情報処理装置100が行う生成処理の一例を示す図である。なお、図1等で上述した内容と同様の点については適宜説明を省略する。
図2では、地図MP1のような地図情報を第1情報として用いる場合を示す。なお、図2中の地図MP1には説明に必要な範囲のみを示す。例えば、地図MP1には、構造物を示す領域AR1及び領域AR2等や、道路を示す線等が含まれる。
まず、情報処理装置100は、ユーザU1が端末装置10にインストールされた決済用のアプリケーション(「決済アプリ」ともいう)を用いて、店舗であるAコンビニで購入した商品の決済を行ったことを示す行動情報を取得する(ステップS11)。例えば、端末装置10は、決済アプリによる決済情報と決済時のユーザU1の位置を示す位置情報とを含む行動情報を情報処理装置100に送信する。これにより、情報処理装置100は、決済アプリによる決済情報と決済時のユーザU1の位置を示す位置情報とを含む行動情報を取得する。例えば、決済情報には、ユーザが購入した商品を示す情報、決済金額を示す情報、決済が行われた店舗を特定可能な情報(店舗識別情報)等が含まれる。図2では、情報処理装置100は、領域AR1内の位置において、ユーザU1がAコンビニで行った決済である行動AC1を示す行動情報を取得する。これにより、情報処理装置100は、Aコンビニが領域AR1にあると決定することができる。
そして、情報処理装置100は、行動AC1が行われた位置を用いて、行動AC1の対象の店舗であるAコンビニに関する第2情報を生成する生成処理を実行する。図2では、情報処理装置100は、現実の対象、すなわち実空間に存在する店舗であるAコンビニのポリゴンを生成する。
情報処理装置100は、行動AC1が行われた際のユーザの位置に対応する地図MP1上の点PT11を決定する(ステップS12)。例えば、情報処理装置100は、行動AC1が行われた際のユーザの位置を緯度経度で示す第1座標の点を、地図MP1での第2座標の点に変換することにより、点PT11を生成する。そして、情報処理装置100は、行動AC1が行われた位置を地図MP1上にマッピングした点PT11を用いて処理を行う。
情報処理装置100は、ユーザU1の行動AC1に対応する点PT11と、点PT11が位置する領域AR1とを用いて、地図MP1中で行動AC1と関連性を有する部分(「関連部分」ともいう)を決定する(ステップS13)。図2では、情報処理装置100は、点PT11から8本の線LNを放射状に延ばし、各線LNと領域AR1の外周との交点を関連部分に決定する。これにより、情報処理装置100は、線LNと領域AR1の外周とが交差する交点である点n1~n8の8個の点を行動AC1の関連部分に決定する。
そして、情報処理装置100は、決定した関連部分を用いて、現実の対象であるAコンビニを示す第2情報を生成する(ステップS14)。図2では、情報処理装置100は、決定した関連部分である8個の点n1~n8を用いて、AコンビニのポリゴンPG11を生成する。例えば、情報処理装置100は、8個の点n1~n8の隣接する点間を線で連結したAコンビニのポリゴンPG11を生成する。具体的には、情報処理装置100は、点n1と点n2とを線で連結し、点n2と点n3とを線で連結し、点n3と点n4とを線で連結し、点n4と点n5とを線で連結し、点n5と点n6とを線で連結し、点n6と点n7とを線で連結し、点n7と点n8とを線で連結し、点n8と点n1とを線で連結することにより、AコンビニのポリゴンPG11を生成する。
情報処理装置100は、地図上の点n1~n8の各々の位置を緯度経度情報に変換して、点n1~n8の緯度経度に対応するAコンビニのポリゴンPG11を生成する。例えば、情報処理装置100は、点n1~n8をポイント、点n1~n8との間を連結するポリラインを含むAコンビニのポリゴンPG11を生成する。すなわち、情報処理装置100は、点n1~n8の各々を頂点とする多角形(八角形)のAコンビニのポリゴンPG11を生成する。このように、情報処理装置100は、ポリゴンの生成に関する種々の技術を用いてAコンビニのポリゴンPG11を生成する。なお、ポリゴンの生成は従来と同様であり、詳細な説明は省略する。
上述のように、情報処理装置100は、決済を行った際のユーザU1の位置に基づいて、地図MP1における関連部分である点n1~n8を決定し、点n1~n8を連結したポリゴンを生成することにより、ユーザの行動に関する情報を利用して適切に情報を生成することができる。これにより、情報処理装置100は、店舗に入店したかどうかの判断基準となる情報を生成することができ、ユーザの店舗への来店計測を適切に実行可能にすることができる。
〔1-3-1.生成処理に関する限定解除等〕
なお、上記は一例に過ぎず、情報処理装置100は、様々な情報を適宜用いて生成処理を行ってもよい。例えば、図2ではユーザの行動に対応する点から8本の線を延ばす例を示したが、情報処理装置100は、8本に限らず、8本未満(例えば4本等)の線を延ばしてもよいし、8本よりも多い(例えば16本等)線を延ばしてもよい。
従来、店舗のポリゴンは、店舗に登録してもらったり、人手で生成したりすることが多い。一方で、情報処理装置100は、地図データ上とのマッチングで店舗の範囲を決定する。そして、情報処理装置100は、地図データ上の位置を、緯度経度情報に変換して、ポリゴンデータを生成する。上述した例では、情報処理装置100は、8方向に線を引いて、各方向の緯度経度に対応するポリゴンデータを生成する。これにより、情報処理装置100は、ポリゴンデータの生成に要するコストの増大を抑制することができる。
なお、情報処理装置100は、他の方法でポリゴンデータを生成してもよい。例えば、情報処理装置100は、位置が含まれる地図上の外周情報を自動的に緯度経度ポリゴンデータに変換してもよい。また、情報処理装置100は、各方向の距離が所定の閾値を超える場合は、所定の閾値内までに限定して生成処理を行ってもよい。情報処理装置100は、建物の種別に応じて、決済店舗種別等に応じて、距離を変化させて生成処理を行ってもよい。情報処理装置100は、道路との交点、他のビルの外側との交点等を関連部分として生成処理を行ってもよい。
例えば、情報処理装置100は、決済が行われる日時と、決済が行われない日時とに応じて、日時に応じたポリゴンデータを生成してもよい。例えば、情報処理装置100は、店舗情報、販売物品種別、価格、店舗周辺の情報、SNS(Social Networking Service)におけるユーザの投稿等の情報を用いて生成処理を行ってもよい。
また、情報処理装置100は、受信するWi-Fi、ビーコン等の通信情報を用いて生成処理を行ってもよい。例えば、情報処理装置100は、同じ構造物(ビル等)に複数の店舗の決済情報が存在する場合、受信しているWi-Fiの種別、ルータ位置からの距離等の情報を用いて、対象となる店舗を決定してもよい。
また、情報処理装置100は、決済情報の送受信頻度を受信できる場合、ポリゴンデータに付加する情報として、複数レジの有無等の情報を受信してもよい。また、生成処理により生成される第2情報は、3次元のポリゴンデータであってもよい。
また、上述したように、現実世界における対象を示すものであれば、ポリゴンのように閉じたものではなく、ポリラインのような開いたものであってもよい。また、情報処理装置100は、人数に応じた確度情報を生成した第2情報に対応付けてもよい。また、第2情報は、閉じた領域でも、開いた領域でも、境界線でも、ジオハッシュ(領域識別子)でもよい。
〔2.情報処理装置の構成〕
次に、図4を用いて、実施形態に係る情報処理装置100の構成について説明する。図4は、実施形態に係る情報処理装置100の構成例を示す図である。図4に示すように、情報処理装置100は、通信部110と、記憶部120と、制御部130とを有する。なお、情報処理装置100は、情報処理装置100の管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示するための表示部(例えば、液晶ディスプレイ等)を有してもよい。
(通信部110)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部110は、ネットワークと有線または無線で接続され、端末装置10、店舗装置20、及びデータ提供装置50との間で情報の送受信を行う。
(記憶部120)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。実施形態に係る記憶部120は、図4に示すように、ユーザ情報記憶部121と、店舗情報記憶部122と、行動履歴情報記憶部123と、地図情報記憶部124とを有する。また、記憶部120は、上記に限らず、種々の情報を記憶してもよい。
(ユーザ情報記憶部121)
実施形態に係るユーザ情報記憶部121は、ユーザに関する各種情報を記憶する。例えば、ユーザ情報記憶部121は、ユーザ属性に関する各種情報を記憶する。図5は、実施形態に係るユーザ情報記憶部の一例を示す図である。図5に示すユーザ情報記憶部121は、「ユーザID」、「年齢」、「性別」、「最新位置」、「変換前範囲(円)」、「変換後範囲(多角形)」といった項目が含まれる。
「ユーザID」は、ユーザを識別するための識別情報を示す。例えば、ユーザID「U1」により識別されるユーザは、図1の例に示したユーザU1に対応する。また、「年齢」は、ユーザの年齢を示す。なお、「年齢」は、例えば35歳など、ユーザの具体的な年齢であってもよい。また、「性別」は、ユーザの性別を示す。
また、「最新位置」は、ユーザの最新位置を示す。例えば、「最新位置」は、ユーザについて最後に取得された位置を示す。なお、図5では、「最新位置」は、「LC1」といった抽象的な符号を図示するが、緯度や経度を示す情報(緯度経度情報)等、実空間(現実の空間)における具体的なユーザの位置を示す情報である。
「変換前範囲(円)」は、推定されるユーザの位置の範囲を示す円を示す。例えば、「変換前範囲(円)」は、ユーザの最新位置を中心とする所定の確率に対応する円形の範囲を示す。「変換前範囲(円)」は、GPSアキュラシーに対応する範囲を示す。なお、図5では、「変換前範囲(円)」は、「BA1」といった抽象的な符号を図示するが、緯度経度により規定される範囲であり、実空間における具体的な円形の範囲を示す情報である。
「変換後範囲(多角形)」は、円形の範囲を多角形に変換後のユーザの位置の範囲を示す。例えば、「変換後範囲(多角形)」は、ユーザの最新位置を中心とする多角形の範囲を示す。「変換後範囲(多角形)」は、正方形の範囲を示す。なお、図5では、「変換後範囲(多角形)」は、「AA1」といった抽象的な符号を図示するが、緯度経度により規定される範囲であり、実空間における具体的な多角形の範囲を示す情報である。
例えば、ユーザID「U1」により識別されるユーザ(ユーザU1)の年齢は、「20代」であり、性別は、「男性」であることを示す。ユーザU1の最新位置は「LC1」であることを示す。また、ユーザU1の変換前範囲(円)は、「BA1」であり、ユーザU1の変換後範囲(多角形)は、「AA1」であることを示す。
なお、ユーザ情報記憶部121は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、ユーザ情報記憶部121は、ユーザのデモグラフィック属性に関する情報やサイコグラフィック属性に関する情報を記憶してもよい。例えば、ユーザ情報記憶部121は、氏名、自宅の位置、勤務先の位置、家族構成、収入、興味、ライフスタイル等の情報を記憶してもよい。ユーザ情報記憶部121は、最後に位置情報が取得された日時、すなわち最新位置が取得された日時を記憶してもよい。
(店舗情報記憶部122)
実施形態に係る店舗情報記憶部122は、店舗(ストア)に関する各種情報を記憶する。図6は、実施形態に係る店舗情報記憶部の一例を示す図である。例えば、店舗情報記憶部122は、種々の店舗に関する情報を記憶する。図6に示す店舗情報記憶部122には、「店舗ID」、「名称」、「店舗情報」、「ポリゴンデータ」といった項目が含まれる。
「店舗ID」は、店舗を識別するための識別情報を示す。「名称」は、店舗の具体的な名称を示す。例えば、「名称」は、「○○飲食店X町店」のような屋号と店舗の場所を示す情報との組合せであってもよい。
「店舗情報」は、対応する店舗の所在地、入居するビル名等の様々な情報が記憶される。各店舗の店舗情報として記憶される情報は、上記に限られない。なお、図6では、「店舗情報」は、「店舗情報#11」、「店舗情報#12」といった抽象的な符号を図示するが、店舗情報#11、店舗情報#12等は、各店舗に関する様々な情報を含む。例えば、店舗情報#11は、Aコンビニが位置する場所等等を示す情報が含まれる。
また、「ポリゴンデータ」は、対応する店舗について生成されたポリゴンデータを示す。なお、図6では、「ポリゴンデータ」は、「PD11」といった抽象的な符号を図示するが、具体的な店舗のポリゴンデータである。「ポリゴンデータ」には、ポリゴンの形状を示す情報や対応する緯度経度を示す情報等が含まれる。なお、「ポリゴンデータ」が「-」である店舗は、その店舗のポリゴンデータが未生成であることを示す。図6では、B移動屋台のポリゴンデータが未生成である場合を一例として示す。
図6では、店舗ID「SP11」により識別される店舗(店舗SP11)は、名称「Aコンビニ」であり、店舗情報が店舗情報#11であることを示す。また、Aコンビニである店舗SP11は、ポリゴンデータが「PD11」であることを示す。
なお、店舗情報記憶部122は、上記に限らず、目的に応じて種々の情報を記憶してもよい。店舗情報記憶部122は、店舗が属するカテゴリを示す情報を記憶してもよい。店舗情報記憶部122は、店舗の情報に限らず、店舗以外の施設やエリア等の各種の対象領域の情報を記憶してもよい。
(行動履歴情報記憶部123)
実施形態に係る行動履歴情報記憶部123は、ユーザの行動に関する各種情報を記憶する。図7は、実施形態に係る行動履歴情報記憶部の一例を示す図である。図7に示す行動履歴情報記憶部123は、「ユーザID」、「行動ID」、「日時」、「位置」、「種別」、「内容」といった項目が含まれる。
「ユーザID」は、ユーザを識別するための識別情報を示す。「行動ID」は、ユーザの行動を識別する情報を示す。「日時」は、対応するユーザの行動が行われた日時を示す。なお、図7では、「dt11」等で図示するが、「日時」には、「2021年9月14日13時07分48秒」等の具体的な日時が記憶されてもよい。
「位置」は、ユーザの行動時の位置情報を示す。なお、図7では、「位置」は、「LC11」といった抽象的な符号を図示するが、緯度や経度を示す情報(緯度経度情報)等、実空間における具体的なユーザの位置を示す情報である。「種別」は、対応するユーザの行動の種別に関する情報を示す。「内容」は、対応するユーザの行動において対象となった内容を示す。
図7では、ユーザID「U1」により識別されるユーザ(ユーザU1)は、行動ID「AC11」により識別される行動(行動AC11)を行ったことを示す。例えば、図7ではユーザU1は、日時dt11において、Yコンビニに対応する位置LC11でX飲料の購入(行動AC11)を行ったことを示す。例えば、Yコンビニで決済を行った際のユーザU1が位置LC11であることを示す。
また、ユーザID「U3」により識別されるユーザ(ユーザU3)は、行動ID「AC21」により識別される行動(行動AC21)を行ったことを示す。例えば、図7ではユーザU3は、日時dt21において、B移動屋台に対応する位置LC21でYカレーの購入(行動AC21)を行ったことを示す。例えば、B移動屋台で決済を行った際のユーザU3が位置LC21であることを示す。
なお、行動履歴情報記憶部123は、上記に限らず、目的に応じて種々の情報を記憶してもよい。また、図7では、ユーザIDごとに行動情報が行動履歴情報記憶部123に記憶される場合を示したが、行動情報は、ユーザIDごとに限らず、例えば時刻順に記憶されてもよい。
(地図情報記憶部124)
実施形態に係る地図情報記憶部124は、地図に関する各種情報を記憶する。地図情報記憶部124は、図示を省略するが、例えば、地図表示アプリケーション等で表示される地図の情報を記憶する。例えば、地図情報記憶部124は、地図表示アプリケーション等で表示される地図の画像情報を記憶する。なお、地図情報記憶部124は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、地図情報記憶部124は、情報処理装置100が行う推定処理や生成処理に必要な地図に関する様々な情報を記憶する。
(制御部130)
図4の説明に戻って、制御部130は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、情報処理装置100内部の記憶装置に記憶されている各種プログラム(情報処理プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部130は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
図4に示すように、制御部130は、取得部131と、決定部132と、生成部133と、変換部134と、推定部135と、提供部136とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、図4に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
(取得部131)
取得部131は、種々の情報を取得する。取得部131は、端末装置10等の外部装置から各種情報を取得する。また、取得部131は、記憶部120から各種情報を取得する。また、取得部131は、ユーザ情報記憶部121や、店舗情報記憶部122や、行動履歴情報記憶部123、や地図情報記憶部124等から各種情報を取得する。
取得部131は、通信部110を介して、外部の情報処理装置から各種情報を受信する。取得部131は、受信した情報を記憶部120に格納する。取得部131は、端末装置10、店舗装置20またはデータ提供装置50から各種情報を受信する。取得部131は、ユーザが利用する端末装置10から情報を取得する。取得部131は、ユーザが利用する端末装置10からユーザの位置情報を取得する。例えば、取得部131は、店舗装置20から各種情報を取得する。例えば、取得部131は、データ提供装置50から各種情報を取得する。
取得部131は、所定の行動を行った際のユーザの位置を示す位置情報を取得する。取得部131は、地図を示す第1情報を取得する。取得部131は、ユーザが購買行動を行った際のユーザの位置を示す位置情報を取得する。取得部131は、ユーザが支払いを行った際のユーザの位置を示す位置情報を取得する。取得部131は、ユーザが端末装置10を用いた決済を行った際のユーザの位置を示す位置情報を取得する。取得部131は、地図の画像情報を含む第1情報を取得する。
取得部131は、推定されるユーザの位置の範囲を示す円形の円形範囲情報を取得する。取得部131は、現実の空間(実空間)におけるユーザの位置の範囲を示す円形の円形範囲情報を取得する。取得部131は、ユーザの位置の範囲を示す円形の円形範囲情報を取得する。取得部131は、店舗が占める範囲を示す店舗範囲情報を取得する。取得部131は、現実の空間(実空間)における店舗が占める範囲を示す店舗範囲情報を取得する。
取得部131は、ユーザの位置を検知するセンサにより検知されたセンサ情報に基づく円形範囲情報を取得する。取得部131は、GPSセンサにより検知されたセンサ情報に基づく円形範囲情報を取得する。取得部131は、店舗のポリゴンデータである店舗範囲情報を取得する。
(決定部132)
決定部132は、種々の情報を決定する決定処理を実行する。決定部132は、決定した情報を記憶部120に格納する。例えば、決定部132は、取得部131により取得された各種情報に基づいて、決定処理を実行する。決定部132は、記憶部120に記憶された各種情報に基づいて、決定処理を実行する。例えば、決定部132は、外部の情報処理装置から受信された各種情報に基づいて、決定処理を実行する。
例えば、決定部132は、生成部133により生成された情報に基づいて、決定処理を実行する。例えば、決定部132は、変換部134により変換された情報に基づいて、決定処理を実行する。例えば、決定部132は、推定部135により推定された情報に基づいて、決定処理を実行する。
決定部132は、取得部131により取得された位置情報が示すユーザの位置に基づいて、地図における所定の行動と関連性を有する部分である関連部分を決定する決定する。決定部132は、所定の行動と関連性を有する関連部分である点を複数決定する。
決定部132は、ユーザの位置に対応する地図上の点と、地図における構造物を示す線とに基づいて、複数の点を決定する。決定部132は、ユーザの位置に対応する地図上の点から延びる第1線と、地図における構造物を示す第2線との交点に基づいて、複数の点を決定する。決定部132は、交点である複数の点を決定する。
(生成部133)
生成部133は、種々の情報を推定する生成処理を実行する。生成部133は、生成した情報を記憶部120に格納する。例えば、生成部133は、取得部131により取得された各種情報に基づいて、生成処理を実行する。生成部133は、記憶部120に記憶された各種情報に基づいて、生成処理を実行する。生成部133は、外部の情報処理装置から受信された各種情報に基づいて、生成処理を実行する。
例えば、生成部133は、決定部132により決定された情報に基づいて、生成処理を実行する。例えば、生成部133は、生成部133により生成された情報に基づいて、生成処理を実行する。例えば、生成部133は、変換部134により変換された情報に基づいて、生成処理を実行する。例えば、生成部133は、推定部135により推定された情報に基づいて、生成処理を実行する。
生成部133は、決定部132により決定された関連部分を用いて、現実の対象を示す第2情報を生成する。生成部133は、関連部分に基づく地図における領域に対応する現実の領域を示す第2情報を生成する。生成部133は、現実の店舗を示す第2情報を生成する。生成部133は、第1情報とは異なる種別の第2情報を生成する。
生成部133は、ベクタデータである第2情報を生成する。生成部133は、複数の点を線で連結することにより、第2情報を生成する。生成部133は、複数の点を所定の基準に基づいて線で連結することにより、第2情報を生成する。生成部133は、複数の点の隣接する点間を線で連結することにより、第2情報を生成する。生成部133は、ポリラインデータである第2情報を生成する。生成部133は、ポリゴンデータである第2情報を生成する。
生成部133は、コンテンツを生成する。生成部133は、例えば、生成部133は、Java(登録商標)等の種々の技術を適宜用いて、端末装置10へ提供する画面(コンテンツ)を生成する。なお、生成部133は、CSSやJavaScript(登録商標)やHTMLの形式に基づいて、端末装置10へ提供する画面(コンテンツ)を生成してもよい。また、例えば、生成部133は、JPEG(Joint Photographic Experts Group)やGIF(Graphics Interchange Format)やPNG(Portable Network Graphics)など様々な形式で画面(コンテンツ)を生成してもよい。
(変換部134)
変換部134は、種々の情報を変換する変換処理を実行する。変換部134は、変換処理により変換した情報を記憶部120に格納する。例えば、変換部134は、取得部131により取得された各種情報に基づいて、変換処理を実行する。変換部134は、記憶部120に記憶された各種情報に基づいて、変換処理を実行する。変換部134は、外部の情報処理装置から受信された各種情報に基づいて、変換処理を実行する。
例えば、変換部134は、決定部132により決定された情報に基づいて、変換処理を実行する。例えば、変換部134は、生成部133により生成された情報に基づいて、変換処理を実行する。例えば、変換部134は、推定部135により推定された情報に基づいて、変換処理を実行する。
変換部134は、取得部131により取得されたユーザの円形範囲情報を多角形の多角形範囲情報に変換する。変換部134は、ユーザの円形範囲情報を矩形の多角形範囲情報に変換する。変換部134は、ユーザの円形範囲情報を正方形の多角形範囲情報に変換する。変換部134は、ユーザの円形範囲情報の面積に対応する多角形範囲情報に変換する。変換部134は、ユーザの円形範囲情報と面積が同じ多角形範囲情報に変換する。
(推定部135)
推定部135は、種々の情報を推定する推定処理を実行する。推定部135は、推定処理により推定した情報を記憶部120に格納する。例えば、推定部135は、取得部131により取得された各種情報に基づいて、推定処理を実行する。推定部135は、記憶部120に記憶された各種情報に基づいて、推定処理を実行する。推定部135は、外部の情報処理装置から受信された各種情報に基づいて、推定処理を実行する。
例えば、推定部135は、決定部132により決定された情報に基づいて、推定処理を実行する。例えば、推定部135は、生成部133により生成された情報に基づいて、推定処理を実行する。例えば、推定部135は、変換部134により変換された情報に基づいて、推定処理を実行する。
例えば、推定部135は、決定部132により決定された情報に基づいて、各種情報を算出する。例えば、推定部135は、生成部133により生成された情報に基づいて、各種情報を算出する。例えば、推定部135は、変換部134により変換された情報に基づいて、各種情報を算出する。例えば、推定部135は、決定部132により決定された情報に基づいて、各種の判定処理を行う。例えば、推定部135は、生成部133により生成された情報に基づいて、各種の判定処理を行う。例えば、推定部135は、変換部134により変換された情報に基づいて、各種の判定処理を行う。例えば、推定部135は、多角形範囲情報と店舗範囲情報とが重なる重畳面積を算出する。例えば、推定部135は、多角形範囲の面積と重畳面積とを用いてスコアを算出する。例えば、推定部135は、算出したスコアを用いて、店舗が関連店舗であるか否かを推定する。
推定部135は、変換部134により変換された多角形範囲情報と、店舗範囲情報とに基づいて、ユーザと地理的な関連性を有する店舗である関連店舗を推定する。推定部135は、ユーザと所定の位置関係を有する関連店舗を推定する。推定部135は、ユーザが入店した関連店舗を推定する。推定部135は、ユーザが訪問する可能性が高い関連店舗を推定する。推定部135は、ユーザからの距離が所定値以内である近傍の店舗を関連店舗として推定する。
推定部135は、多角形範囲情報と店舗範囲情報とが重なる範囲に基づいて、関連店舗を推定する。推定部135は、多角形範囲情報と店舗範囲情報とが重なる面積である重畳面積を用いて、関連店舗を推定する。推定部135は、多角形範囲情報に対応する面積であるユーザ範囲面積に占める重畳面積の割合を用いて、関連店舗を推定する。推定部135は、ユーザ範囲面積に占める重畳面積の割合が閾値以上である店舗を関連店舗であると推定する。
推定部135は、所定の基準に基づいて地図が分割された複数の区画のうち、多角形範囲情報に基づいてユーザに対応付けられる区画を示す第1区画リストと、店舗範囲情報に基づいて店舗に対応付けられる区画を示す第2区画リストとの比較に基づいて、関連店舗を推定する。推定部135は、ジオハッシュの手法により分割された複数の区画のうち、ユーザに対応付けられる区画を示す第1区画リストと、店舗に対応付けられる区画を示す第2区画リストとの比較に基づいて、関連店舗を推定する。推定部135は、第1区画リストと第2区画リストとの重複が閾値以上である店舗を関連店舗であると推定する。
(提供部136)
提供部136は、各種情報を提供する。提供部136は、通信部110を介して、外部の情報処理装へ各種情報を送信する。提供部136は、端末装置10や店舗装置20やデータ提供装置50へ各種情報を送信する。提供部136は、コンテンツを端末装置10へ送信する。
提供部136は、決定部132により決定された情報を提供する。提供部136は、生成部133により生成された情報を提供する。提供部136は、変換部134により変換された情報を提供する。提供部136は、推定部135により推定された情報を提供する。
提供部136は、生成部133により生成された第2情報を提供する。提供部136は、推定部135により推定された関連店舗に関する情報をユーザが利用する端末装置10に提供する。提供部136は、ユーザの位置から所定の範囲内にある関連店舗のクーポンをユーザが利用する端末装置10に提供する。提供部136は、ユーザが訪問する可能性が高い関連店舗のクーポンをユーザが利用する端末装置10に提供する。
〔3.情報処理のフロー〕
次に、図8及び図9を用いて、実施形態に係る情報処理システム1による情報処理の手順について説明する。図8及び図9は、実施形態に係る情報処理の一例を示すフローチャートである。
まず、図8に示す処理を説明する。例えば、図8は、情報処理装置100が実行する生成処理の一例を示すフローチャートである。
図8に示すように、情報処理装置100は、所定の行動を行った際のユーザの位置を示す位置情報を取得する(ステップS101)。また、情報処理装置100は、地図を示す第1情報を取得する(ステップS102)。
そして、情報処理装置100は、位置情報が示すユーザの位置に基づいて、地図における所定の行動と関連性を有する部分である関連部分を決定する(ステップS103)。情報処理装置100は、関連部分を用いて、現実の対象を示す第2情報を生成する(ステップS104)。
次に、図9に示す処理を説明する。例えば、図9は、情報処理装置100が実行する推定処理の一例を示すフローチャートである。
図9に示すように、情報処理装置100は、推定されるユーザの位置の範囲を示す円形の円形範囲情報を取得する(ステップS201)。また、情報処理装置100は、店舗が占める範囲を示す店舗範囲情報を取得する(ステップS202)。
そして、情報処理装置100は、ユーザの円形範囲情報を多角形の多角形範囲情報に変換する(ステップS203)。情報処理装置100は、多角形範囲情報と、店舗範囲情報とに基づいて、ユーザと地理的な関連性を有する店舗である関連店舗を推定する(ステップS204)。
〔4.推定処理の他の手法(ジオハッシュ等の利用)〕
上述したように、情報処理装置100は、ジオハッシュ等の経緯度に基づくジオコーディング方法により生成された情報を用いて、推定処理を行ってもよい。この点については図10-14を用いて説明する。図10は、推定処理の他の手法に関する概念を示す図である。図11~図14は、推定処理の他の手法の一例を示す図である。なお、ジオハッシュは一例に過ぎず、情報処理装置100は、ジオハッシュに限らず、例えばQuadKey等の任意の手法が採用可能であり、推定処理が可能であればどのような手法を用いてもよい。
まず、図10~図14で示す推定処理で用いるジオハッシュの技術は、上述したようにジオコーディング方法の一つである。例えば、ジオハッシュは、地図(実空間の土地)を格子状に分割し、各区画(「領域」ともいう)を短い文字列で表現する。図10中の左側の地図MP2に重畳させた領域HR1は、「xn76」という4桁のコードCD1で識別される矩形の領域である。また、図10中の右側の地図MP2に重畳させた領域HR11は、「xn76u」という5桁のコードCD11で識別される矩形の領域である。
ここで、領域HR11は、領域HR1に包含され、領域HR1の一部に対応する領域である。また、コードCD11は、上位4桁がコードCD1の4桁と一致し、コードCD1の4桁に1桁「u」が追加されたコード(文字列)である。このように、ジオハッシュは、階層的なデータ構造を有し、任意の桁数で区画の範囲を表現できる。例えば、ジオハッシュは、桁数を大きくするとより狭域を表現でき、桁数を小さくするとより広域を表現できる。なお、ジオハッシュ自体は公知の技術であるため、その詳細な説明は省略する。
ここから、図11~図14は、情報処理装置100によるジオハッシュの技術を用いた推定処理の一例を説明する。例えば、図11~図14では、ジオハッシュの階層的なデータのうち最下層のデータ、すなわち最も細かい区画(領域)に分割したデータを用いる場合を一例として説明する。なお、図1等で説明した内容と同様の点については適宜説明を省略する。図11~図14では、端末装置10を利用するユーザがユーザU2である場合を一例として説明する。また、図11~図14では説明のために、各領域が正方形である例を示すが、各領域の形状は正方形に限らず、他の矩形など任意の形状であってもよい。
まず、図11にはジオハッシュで所定のエリアの土地が複数の領域H11~H46等に分割されたジオデータGH1を示す。なお、図11~図14では説明に必要な範囲の領域を示すために、24個の領域H11~H46のみを図示する。
また、図12は、店舗であるE薬局のポリゴンPG2をジオデータGH1に重ねた状態を示す。図12中のハッチングが付された領域が、領域H11~H46等の複数の領域のうち、ポリゴンPG2が重なる領域を示す。具体的には、領域H12~H15、H22~H25、H32~H35の12個の領域が、ポリゴンPG2が重なる領域であることを示す。
例えば、情報処理装置100は、E薬局のポリゴンPG2をE薬局の店舗範囲を示す情報として取得する。なお、情報処理装置100は、E薬局のポリゴンPG2の情報を記憶部120(図4参照)から取得してもよいし、E薬局のポリゴンPG2の情報をデータ提供装置50等の外部装置から受信してもよい。
情報処理装置100は、E薬局のポリゴンPG2とジオデータGH1とを用いて、領域H11~H46等の複数の領域のうち、E薬局が位置する領域を決定する(ステップS21)。図12では、情報処理装置100は、領域H12~H15、H22~H25、H32~H35の12個の領域が、E薬局が位置する領域であると決定する。
そして、情報処理装置100は、領域H12~H15、H22~H25、H32~H35を含むリストLT1をE薬局が位置する領域を示す情報として、E薬局に対応付ける。例えば、情報処理装置100は、リストLT1をE薬局に対応付けて店舗情報記憶部122(図6参照)に格納する。
また、図13は、ユーザU2のユーザ範囲である円形範囲BA2をジオデータGH1に重ねた状態を示す。図13中のハッチングが付された領域が、領域H11~H46等の複数の領域のうち、円形範囲BA2が重なる領域を示す。具体的には、領域H12、H13、H21~H23、H31~H33、H42、H43の10個の領域が、円形範囲BA2が重なる領域であることを示す。
例えば、情報処理装置100は、円形範囲BA2をユーザU2のユーザ範囲として取得する。なお、情報処理装置100は、円形範囲BA2の情報を生成してもよいし、円形範囲BA2の情報を端末装置10等の外部装置から受信してもよい。
情報処理装置100は、ユーザU2の円形範囲BA2とジオデータGH1とを用いて、領域H11~H46等の複数の領域のうち、推定されるユーザU2の位置(推定位置)の範囲に対応する領域を決定する(ステップS22)。図13では、情報処理装置100は、領域H12、H13、H21~H23、H31~H33、H42、H43の10個の領域が、ユーザU2の位置(推定位置)の範囲に対応する領域であると決定する。これにより、情報処理装置100は、ユーザU2の円形範囲BA2を多角形範囲AA2に変換する。図13では、情報処理装置100は、ユーザU2の円形範囲BA2を、領域H12、H13、H21~H23、H31~H33、H42、H43の10個の領域で構成される多角形(例えば八角形)である多角形範囲AA2に変換する。
そして、情報処理装置100は、領域H12、H13、H21~H23、H31~H33、H42、H43を含むリストLT2を、ユーザU2の推定位置の範囲に対応する領域を示す情報として、ユーザU2に対応付ける。例えば、情報処理装置100は、リストLT2をユーザU2に対応付けてユーザ情報記憶部121(図5参照)に格納する。
図14は、ジオデータGH1のうち、ユーザU2の多角形範囲AA2が重なる領域と、E薬局のポリゴンPG2が重なる領域とに基づく推定処理を示す。図14中のハッチングが付された領域が、領域H11~H46等の複数の領域のうち、ユーザU2の多角形範囲AA2が重なる領域及びE薬局のポリゴンPG2が重なる領域の両方に該当する領域(重複領域)を示す。具体的には、領域H12、H13、H22、H23、H32、H33の6個の領域が、ユーザU2の多角形範囲AA2が重なる領域及びE薬局のポリゴンPG2が重なる領域の両方に該当する領域(重複領域OH1)であることを示す。
そして、情報処理装置100は、E薬局に対応付けられたリストLT1と、ユーザU2に対応付けられたリストLT2とを用いて処理を行う。情報処理装置100は、E薬局及びユーザU2の各対象に対応付けられたリストを用いて、E薬局がユーザU2の関連店舗である度合いを示すスコアを算出する(ステップS23)。
図14では、情報処理装置100は、ユーザU2に対応付けられたリストLT2中の領域に占めるE薬局のリストLT1にも含まれる領域の割合をスコアとして算出する。情報処理装置100は、図14中の算出結果SC2に示すように、リストLT1及びリストLT2の両方に含まれる領域H12、H13、H22、H23、H32、H33の個数「6」を、リストLT2中の全領域の個数「10」で除することにより、E薬局のスコアを算出する。具体的には、情報処理装置100は、E薬局のスコアを「0.6(=6/10)」と算出する。
そして、情報処理装置100は、算出したスコアを用いて、関連店舗を推定する(ステップS24)。図14では、情報処理装置100は、算出したE薬局のスコアを用いて、E薬局がユーザU2の関連店舗であるか否かを推定する。
例えば、情報処理装置100は、E薬局のスコアが閾値以上である場合、E薬局をユーザU2が入店した店舗(関連店舗)であると推定する。すなわち、情報処理装置100は、E薬局のスコアが閾値(例えば0.45、0.6等の任意の値)以上である場合、E薬局にユーザU2が入店したと判定する。
また、情報処理装置100は、E薬局のスコアが閾値未満である場合、E薬局をユーザU2が入店した店舗(関連店舗)ではないと推定する。すなわち、情報処理装置100は、E薬局のスコアが閾値未満である場合、E薬局にユーザU2が入店していないと判定する。
図14では、閾値が「0.5」であるものとして、以下説明する。図14では、情報処理装置100は、E薬局のスコア「0.6」が閾値「0.5」以上であるため、E薬局をユーザU2が入店した店舗(関連店舗)であると推定する。すなわち、情報処理装置100は、図14中の推定結果RS2に示すように、対象ユーザであるユーザU2が、対象店舗であるE薬局の中にいると判定する。
このように、情報処理装置100は、ジオハッシュに関する技術を用いて、ユーザと地理的な関連性を有する店舗である関連店舗を推定することにより、ユーザと地理的な関連がある店舗を適切に推定することができる。これにより、情報処理装置100は、ユーザの店舗への来店計測を適切に実行可能にすることができる。
上述のように、情報処理装置100は、GPSとポリゴンで来店計測を行う際の計算高速化のために、ジオハッシュの技術を用いることにより、GPSのアキュラシーを用いて来店判断をする処理の高速化を実現することができる。
例えば、情報処理装置100は、予め各地域を識別子(ハッシュデータ)として、GPSアキュラシー円と店舗ポリゴンとを識別子に変換して比較してもよい。また、例えば、情報処理装置100は、GPSのアキュラシー円と、店舗ポリゴンとを含むジオハッシュを特定して、ジオハッシュの面積から算出する。
上述のように、ジオハッシュは階層構造を有しているので、情報処理装置100は、段階的に詳細化することができる。例えば、情報処理装置100は、ユーザ(GPS)側のジオハッシュデータから、上位ハッシュを特定して、特定した上位ハッシュを含む店舗のジオハッシュデータを特定して、突合してもよい。例えば、情報処理装置100は、ジオハッシュのデータを用いて、ユーザ範囲に対応する領域を含む上位階層の領域を決定し、決定した上位階層の領域内に位置する店舗を対象店舗として上述した処理を行ってもよい。これにより、情報処理装置100は、対象とする店舗を絞り込んだ上で推定処理を行うことができるため、推定処理に要する計算コストの増大を抑制することができる。
〔5.効果〕
上述してきたように、実施形態に係る情報処理装置100は、取得部131と、変換部134と、推定部135とを有する。取得部131は、推定されるユーザの位置の範囲を示す円形の円形範囲情報と、店舗が占める範囲を示す店舗範囲情報とを取得する。変換部134は、取得部131により取得されたユーザの円形範囲情報を多角形の多角形範囲情報に変換する。推定部135は、変換部134により変換された多角形範囲情報と、店舗範囲情報とに基づいて、ユーザと地理的な関連性を有する店舗である関連店舗を推定する。
このように、実施形態に係る情報処理装置100は、ユーザの位置の範囲を円形から多角形に変形した多角形範囲情報と、店舗が占める範囲を示す店舗範囲情報とに基づいて、ユーザと地理的な関連性を有する店舗である関連店舗を推定することにより、ユーザと地理的な関連がある店舗を適切に推定することができる。
また、実施形態に係る情報処理装置100において、取得部131は、ユーザの位置を検知するセンサにより検知されたセンサ情報に基づく円形範囲情報を取得する。
このように、実施形態に係る情報処理装置100は、ユーザの位置を検知するセンサにより検知されたセンサ情報に基づく円形範囲情報を変形した多角形範囲情報を用いることにより、ユーザと地理的な関連がある店舗を適切に推定することができる。
また、実施形態に係る情報処理装置100において、取得部131は、GPS(Global Positioning System)センサにより検知されたセンサ情報に基づく円形範囲情報を取得する。
このように、実施形態に係る情報処理装置100は、GPS(Global Positioning System)センサによりにより検知されたセンサ情報に基づく円形範囲情報を変形した多角形範囲情報を用いることにより、ユーザと地理的な関連がある店舗を適切に推定することができる。
また、実施形態に係る情報処理装置100において、取得部131は、店舗のポリゴンデータである店舗範囲情報を取得する。
このように、実施形態に係る情報処理装置100は、店舗のポリゴンデータである店舗範囲情報を用いることにより、ユーザと地理的な関連がある店舗を適切に推定することができる。
また、実施形態に係る情報処理装置100において、推定部135は、ユーザと所定の位置関係を有する関連店舗を推定する。
このように、実施形態に係る情報処理装置100は、ユーザと所定の位置関係を有する関連店舗を推定することにより、ユーザと地理的な関連がある店舗を適切に推定することができる。
また、実施形態に係る情報処理装置100において、推定部135は、ユーザが入店した関連店舗を推定する。
このように、実施形態に係る情報処理装置100は、ユーザが入店した関連店舗を推定することにより、ユーザと地理的な関連がある店舗を適切に推定することができる。
また、実施形態に係る情報処理装置100において、変換部134は、ユーザの円形範囲情報を矩形の多角形範囲情報に変換する。
このように、実施形態に係る情報処理装置100は、ユーザの円形範囲情報を変換した矩形の多角形範囲情報を用いることにより、ユーザと地理的な関連がある店舗を適切に推定することができる。
また、実施形態に係る情報処理装置100において、変換部134は、ユーザの円形範囲情報を正方形の多角形範囲情報に変換する。
このように、実施形態に係る情報処理装置100は、ユーザの円形範囲情報を変換した正方形の多角形範囲情報を用いることにより、ユーザと地理的な関連がある店舗を適切に推定することができる。
また、実施形態に係る情報処理装置100において、変換部134は、ユーザの円形範囲情報の面積に対応する多角形範囲情報に変換する。
このように、実施形態に係る情報処理装置100は、ユーザの円形範囲情報の面積に対応する多角形範囲情報を用いることにより、ユーザと地理的な関連がある店舗を適切に推定することができる。
また、実施形態に係る情報処理装置100において、変換部134は、ユーザの円形範囲情報と面積が同じ多角形範囲情報に変換する。
このように、実施形態に係る情報処理装置100は、ユーザの円形範囲情報と面積が同じ多角形範囲情報を用いることにより、ユーザと地理的な関連がある店舗を適切に推定することができる。
また、実施形態に係る情報処理装置100において、推定部135は、多角形範囲情報と店舗範囲情報とが重なる範囲に基づいて、関連店舗を推定する。
このように、実施形態に係る情報処理装置100は、多角形範囲情報と店舗範囲情報とが重なる範囲に基づいて、関連店舗を推定することにより、ユーザと地理的な関連がある店舗を適切に推定することができる。
また、実施形態に係る情報処理装置100において、推定部135は、多角形範囲情報と店舗範囲情報とが重なる面積である重畳面積を用いて、関連店舗を推定する。
このように、実施形態に係る情報処理装置100は、多角形範囲情報と店舗範囲情報とが重なる面積である重畳面積を用いて、関連店舗を推定することにより、ユーザと地理的な関連がある店舗を適切に推定することができる。
また、実施形態に係る情報処理装置100において、推定部135は、多角形範囲情報に対応する面積であるユーザ範囲面積に占める重畳面積の割合を用いて、関連店舗を推定する。
このように、実施形態に係る情報処理装置100は、多角形範囲情報に対応する面積であるユーザ範囲面積に占める重畳面積の割合を用いて、関連店舗を推定することにより、ユーザと地理的な関連がある店舗を適切に推定することができる。
また、実施形態に係る情報処理装置100において、推定部135は、ユーザ範囲面積に占める重畳面積の割合が閾値以上である店舗を関連店舗であると推定する。
このように、実施形態に係る情報処理装置100は、ユーザ範囲面積に占める重畳面積の割合が閾値以上である店舗を関連店舗であると推定することにより、ユーザと地理的な関連がある店舗を適切に推定することができる。
また、実施形態に係る情報処理装置100において、推定部135は、所定の基準に基づいて地図が分割された複数の区画のうち、多角形範囲情報に基づいてユーザに対応付けられる区画を示す第1区画リストと、店舗範囲情報に基づいて店舗に対応付けられる区画を示す第2区画リストとの比較に基づいて、関連店舗を推定する。
このように、実施形態に係る情報処理装置100は、多角形範囲情報に基づいてユーザに対応付けられる区画を示す第1区画リストと、店舗範囲情報に基づいて店舗に対応付けられる区画を示す第2区画リストとの比較に基づいて、関連店舗を推定することにより、ユーザと地理的な関連がある店舗を適切に推定することができる。
また、実施形態に係る情報処理装置100において、推定部135は、ジオハッシュの手法により分割された複数の区画のうち、ユーザに対応付けられる区画を示す第1区画リストと、店舗に対応付けられる区画を示す第2区画リストとの比較に基づいて、関連店舗を推定する。
このように、実施形態に係る情報処理装置100は、オハッシュの手法により分割された複数の区画を用いて、関連店舗を推定することにより、ユーザと地理的な関連がある店舗を適切に推定することができる。
また、実施形態に係る情報処理装置100において、推定部135は、第1区画リストと第2区画リストとの重複が閾値以上である店舗を関連店舗であると推定する。
このように、実施形態に係る情報処理装置100は、第1区画リストと第2区画リストとの重複が閾値以上である店舗を関連店舗であると推定することにより、ユーザと地理的な関連がある店舗を適切に推定することができる。
また、実施形態に係る情報処理装置100は、提供部136を有する。提供部136は、推定部135により推定された関連店舗に関する情報をユーザが利用する端末装置に提供する。
このように、実施形態に係る情報処理装置100は、関連店舗に関する情報をユーザが利用する端末装置に提供することで、適切な情報提供を行うことができる。
〔6.ハードウェア構成〕
上述してきた実施形態に係る情報処理装置100は、例えば図15に示すような構成のコンピュータ1000によって実現される。図15は、情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM1300、HDD(Hard Disk Drive)1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を有する。
CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス1500は、ネットワークNを介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータをネットワークNを介して他の機器へ送信する。
CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、生成したデータを入出力インターフェイス1600を介して出力装置へ出力する。
メディアインターフェイス1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
例えば、コンピュータ1000が実施形態に係る情報処理装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部130の機能を実現する。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置からネットワークNを介してこれらのプログラムを取得してもよい。
以上、本願の実施形態及び変形例のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の行に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
〔7.その他〕
また、上記実施形態及び変形例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、上述してきた実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。