以下、添付図面を参照しながら、本発明の特徴分析装置を実施するための最良の実施形態を詳細に説明する。図1〜図21は、本発明の実施例を示す説明図である。これらの図において、同一の符号を付した部分は同一物を表し、基本的な構成および動作は同様であるものとする。尚、本発明の実施形態において、使用される機器、手法等は一例であり、本発明はこれらに限定されるものではないことは勿論である。
更に、本発明の実施形態は、後述されるように、汎用コンピュータ上で稼動するソフトウェアで実装しても良いし専用ハードウェア又はソフトウェアとハードウェアの組み合わせで実装しても良い。
なお、以後の説明では「テーブル」形式によって本発明の各情報について説明するが、これら情報は必ずしもテーブルによるデータ構造で表現されていなくても良く、リスト、データベース(DB)、キュー等のデータ構造やそれ以外で表現されていても良い。そのため、データ構造に依存しないことを示すために「テーブル」、「リスト」、「DB」、「キュー」等について単に「情報」と呼ぶことがある。
また、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ID」という表現を用いることが可能であり、これらについてはお互いに置換が可能である。
以下では「プログラム」を主語(動作主体)として本発明の実施形態における各処理について説明を行うが、プログラムはプロセッサによって実行されることで定められた処理をメモリおよび通信ポート(通信制御装置)を用いながら行うため、プロセッサを主語とした説明としてもよい。また、プログラムを主語として開示された処理は管理サーバ等の計算機、情報処理装置が行う処理としてもよい。プログラムの一部またはすべては専用ハードウェアで実現してもよく、また、モジュール化されていても良い。各種プログラムはプログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。
<特徴分析装置の構成例>
図1は、本発明の実施例の特徴分析装置の構成例を示すブロック図である。
特徴分析装置は、POIデータDB100と、人流データDB101と、エリアデータDB102と、個人滞在エリアデータDB103と、個人特徴データDB104と、中央処理装置105と、入力装置106と、表示装置107と、プログラムメモリ108と、中央処理装置105の処理に必要なデータを格納するデータメモリ109と、を有する。
中央処理装置105は、たとえば、汎用のプロセッサである。中央処理装置105は、本実施例のプログラムを読み込むことによって、特徴分析処理部110及び表示処理部111として機能する。すなわち、特徴分析処理部110および表示処理部111は、具体的には、たとえば、プログラムメモリ108に格納されたプログラムを中央処理装置105が実行することによって、その機能を実現する。
また、特徴分析処理部110は、POIデータ補完処理部112と、人流データ補完処理部113と、エリア作成処理部114と、エリア特徴分析処理部115と、滞在エリア識別処理部116と、個人特徴分析処理部117と、を有する。また、表示処理部111は、エリア特徴表示処理部118と、滞在エリア表示処理部119と、個人特徴表示処理部120と、を有する。
データメモリ109は、POIデータDB100から読み込まれたPOIデータ121と、人流データDB101から読み込まれた人流データ122と、特徴分析処理部110によって生成されたエリアデータ123と、個人滞在エリアデータと124と、個人特徴データ125と、を格納する。
<データ構造例>
(POIデータ121)
図2は、本発明の実施例のデータメモリ109に含まれるPOIデータ121のデータ構造例を示す説明図である。
POIデータ121は、POIデータDB100に記憶されており、中央処理装置105によって読み出されてデータメモリ109に格納される。各POIデータ121は、例えば店舗のような興味の地点(Point of interest)の位置及び特徴に関する情報を含む。具体的には、POIデータ121は、POI管理番号200と、掲載名称201と、電話番号202と、住所203と、経度204と、緯度205と、大業種番号206と、大業種名207と、中業種番号208と、中業種名209と、登録年月210と、土地利用分類211と、営業時間212と、定休日213と、親POI管理番号214と、補完状態215と、を含み、例えば配列の形式で保存される。
POI管理番号200には、POIデータ121に対して一意に振られた値が保持される。掲載名称201には、値として、該当POIデータに対して登録された名前が保持される。電話番号202には、値として、該当POIデータに対して登録された電話番号が保持される。住所203には、値として、該当POIデータに対して登録された住所情報が保持される。経度204および緯度205には、値として、該当POIデータにおいて登録された住所の座標値が保持される。
大業種番号206には、値として、業種データに対して一意に振られた値が保持される。大業種名207には、値として、該当業種データの名称が保持される。中業種番号208には、値として、業種データに対して一意に振られた値が保持される。中業種名209には、値として、該当業種データの名称が保持される。なお、大業種とは、それぞれのPOIの業種の分類であり、例えば「買い物」または「飲食店」のような比較的大まかな分類を示す。一方、中業種とは、POIの業種の分類であるが、例えば「買い物−化粧品」のような、大業種よりは細かい分類を示す。本実施例では省略されているが、POIデータはさらに細かい業種の分類を示す情報を含んでもよい。また、以下の説明では主に大業種を用いてエリアの特徴等が分析されるが、中業種又はさらに細かい分類を用いてもよい。
登録年月210には、値として、該当POIデータを登録または更新する時の年月が保持される。土地利用分類211には、値として、該当POIデータの住所203又は経度204および緯度205が示す位置が商用用地であるかを示す識別情報が保持される。なお、デフォルトの場合、土地利用分類211には「NULL」が保持される。営業時間212には、値として、土地利用分類211が「商用用地」である該当POIデータの営業時間が保持される。なお、デフォルトの場合、営業時間212には「NULL」が保持される。定休日213には、値として、該当POIデータにおいて定期的に休業する日付が保持される。なお、デフォルトの場合、定休日213には「なし」が保持される。親POI管理番号214には、値として、該当POIデータが属する上層のPOIデータのPOI管理番号200が保持される。なお、デフォルトの場合、親POI管理番号214には「NULL」が保持される。補完状態215には、値として、該当POIデータの土地利用分類211と、営業時間212と、定休日213と、親POI管理番号214と、における補完処理が完了したかを示す状態が保持される。なお、デフォルトの場合、補完状態215には「False」が保持される。
(人流データ122)
図3は、本発明の実施例のデータメモリ109に含まれる人流データ122のデータ構造例を示す説明図である。
人流データ122は、人流データDB101に記憶されており、中央処理装置105によって読み出されてデータメモリ109に格納される。図3(A)に示すように、人流データ122は、個人識別番号300と、国301と、時系列データ302と、を含み、例えば配列の形式で保存される。
個人識別番号300には、人流データ122に対して一意に振られた値が保持される。国301には、値として、人が属する国(例えば国籍又は居住国等)を示す国情報が保持される。時系列データ302には、時刻ごとの人の位置及び速度などの情報が保持される。
(時系列データ302)
図3(B)に示すように、時系列データ302は、時系列番号303と、受信時刻304と、経度305と、緯度306と、速度307と、速度補完状態308と、を含み、例えば配列の形式で保存される。時系列番号303には、値として、時系列データ302に対して一意に振られた値が保持される。図3(A)の例では、一つの人流データ122が時系列番号303の値t1、t2等で識別される複数の時系列データ302を含み、図3(B)にはそれらのうちt1で識別される時系列データ302を例示する。
受信時刻304には、値として、該当時系列データが受信された時刻が保持される。経度305および緯度306には、値として、該当時系列データが発信されたときの人の座標情報が保持される。速度307には、該当時系列データが発信されたときの人の速度情報が保持される。なお、デフォルトの場合、速度307には「False」が保持される。速度補完状態308には、値として、該当時系列データの速度307における補完処理が完了したかを示す状態が保持される。なお、デフォルトの場合、速度補完状態308には「False」が保持される。
(エリアデータ123)
図4は、本発明の実施例のデータメモリ109に含まれるエリアデータ123のデータ構造例を示す説明図である。
エリアデータ123は、エリアデータDB102に記憶されており、中央処理装置105によって読み出されて(または算出されて)データメモリ109に格納される。図4(A)に示すように、エリアデータ123は、エリア番号400と、エリア名称401と、選定大業種番号402と、選定大業種名403と、Geo範囲404と、状態405と、エリア特徴データ406と、を含み、例えば配列の形式で保存される。
エリア番号400には、値として、エリアデータ123に対して一意に振られた値が保持される。エリアデータ123を生成する際に、エリア番号400が自動的に振られる。エリア名称401には、値として、該当エリアに対して与えられた名称が保持される。選定大業種番号402には、1個以上の大業種番号206が保持される。選定大業種名403には、1個以上の大業種名207が保持される。Geo範囲404には、該当エリアデータによって特定される領域の範囲を示す図形情報が保持される。状態405には、値として、該当エリアデータとそれ以外のエリアデータにおいてGeo範囲の交差がある(すなわち複数のGeo範囲の共通範囲がある)かを示す状態が保持される。交差がない場合、状態405には「True」が保持される。なお、デフォルトの場合、状態405には「False」が保持される。エリア特徴データ406には、時間帯及び曜日ごとに該当エリアの特徴情報が保持される。なお、デフォルトの場合、エリア特徴データ406には「NULL」が保持される。
(エリア特徴データ406)
図4(B)に示すように、エリア特徴データ406は、エリア特徴番号407と、時間帯408と、曜日409と、平休日410と、POI種類411と、集計数412と、重み付け係数413と、時間帯特徴414と、分析大業種番号415と、分析大業種名416と、更新時刻417と、を含み、例えば配列の形式で保存される。エリア特徴番号407には、値として、エリア特徴データ406に対して一意に振られた値が保持される。図4(A)の例では、一つのエリアデータ123がエリア特徴番号407の値EBS00001T00001、EBS00001T00002等で識別される複数のエリア特徴データ406を含み、図4(B)にはそれらのうちEBS00001T00001で識別されるエリア特徴データ406を例示する。
時間帯408、曜日409、および平休日410には、値として、該当エリアデータにおいて特定時間帯(例えば、AM07:00〜09:00)、特定曜日(例えば、月曜日)、および特定平休日(すなわち平日・休日の区別、例えば、平日)にエリアの特徴を分析するための時間情報が保持される。POI種類411には、該当エリアデータにおいて特定時間帯、特定曜日、および特定平休日に営業する全てのPOIデータ121について、それぞれが属する業種情報が保持される。なお、業種情報は、POIデータ121の大業種番号206または大業種名207でもよいし、中業種番号208または中業種名209でもよい。集計数412には、POI411の業種ごとに集計したPOIデータの数が保持される。重み付け係数413には、POI411の業種ごとに定められた重み付け係数が保持される。時間帯特徴414には、時間帯ごとのPOIの特徴が保持される。例えばPOIが店舗であり、当該店舗で提供される商品又はサービスが時間帯によって異なる場合に、その時間帯ごとの提供内容に応じた特徴(例えば中業種名など)が保持される。分析大業種番号415には、1個以上の大業種番号206が保持される。分析大業種名416には、1個以上の大業種名207が保持される。更新時刻417には、値として、該当エリア特徴データが生成された時刻が保持される。
(個人滞在エリアデータ124)
図5は、本発明の実施例のデータメモリ109に含まれる個人滞在エリアデータ124のデータ構造例を示す説明図である。
個人滞在エリアデータ124は、個人滞在エリアデータDB103に記憶されており、中央処理装置105によって読み出されて(または算出されて)データメモリ109に格納される。個人滞在エリアデータ124は、識別番号500と、個人識別番号501と、エリア番号502と、エリア特徴番号503と、到着時刻505と、出発時刻506と、滞在期間507と、を含み、例えば配列の形式で保存される。人が一つのエリアに1回滞在するごとに当該滞在に関する一つの個人滞在エリアデータ124が生成される。
識別番号500には、値として、個人滞在エリアデータ124に対して一意に振られた値が保持される。個人滞在エリアデータ124を生成する際に、識別番号500が自動的に振られる。個人識別番号501には、該当人流データの個人識別番号300が保持される。エリア番号502には、該当エリアデータのエリア番号400が保持される。エリア特徴番号503には、値として、人が指定エリアに滞在するとき、1個の該当エリア特徴データ406のエリア特徴番号407が保持される。エリア特徴504には、人が指定エリアに滞在するとき、該当エリアデータにおける1個の該当エリア特徴データ406の分析大業種名416が保持される。到着時刻505には、値として、人が特定エリアへの滞在を開始した時に、その人の人流データにおける時系列データの受信時刻304が保持される。出発時刻506には、値として、人が特定エリアへの滞在を終了した時に、その人の人流データにおける時系列データの受信時刻304が保持される。滞在期間507には、値として、該当個人滞在エリアデータの到着時刻505と出発時刻506との時間差が保持される。
(個人特徴データ125)
図6は、本発明の実施例のデータメモリ109に含まれる個人特徴データ125のデータ構造例を示す説明図である。
個人特徴データ125は、個人特徴データDB104に記憶されており、中央処理装置105によって読み出されて(または算出されて)データメモリ109に格納される。個人特徴データ125は、識別番号600と、個人識別番号601と、対象期間602と、時間帯603と、曜日604と、平休日605と、個人特徴606と、を含み、例えば配列の形式で保存される。
識別番号600には、値として、個人特徴データ125に対して一意に振られた値が保持される。個人特徴データ125を生成する際に、識別番号600が自動的に振られる。個人識別番号601には、該当人流データの個人識別番号300が保持される。対象期間602には、特定期間に該当個人滞在エリアデータを抽出するための期間情報が保持される。
時間帯603、曜日604、および平休日605には、値として、特定時間帯(例えば、AM07:00〜09:00)、特定曜日(例えば、月曜日)、および特定平休日(例えば、平日)に該当個人滞在エリアデータを抽出および分析するための時間情報が保持される。個人特徴606には、人が最も多く滞在した個人滞在エリアデータのエリア特徴504が保持される。
<特徴分析処理例>
図7は、本発明の実施例の特徴分析装置によるエリアおよび個人の特徴分析処理例を示すフローチャートである。
このフローチャートは、特徴分析装置が、収集されたPOIデータ121および人流データ122に基づいて、自動的に生成されたエリアデータ123にエリア特徴を与え、エリア特徴から該当エリアに滞在する人に個人特徴を与え、さらにエリアに滞在する人の個人特徴から当該エリアのエリアデータ123にエリア特徴を与える処理を繰り返すことによって分析し、分析結果を表示する処理例を示す。
まず、特徴分析装置は、POIデータ121および人流データ122に不足の情報を補完し、エリアデータ123を自動的に作成する。つぎに、特徴分析装置は、POIデータのWEB知名度(例えば、インターネット検索を行った場合のヒット件数)を基にPOIデータの業種別に重み付け係数を算出し、各エリアにおいて時間帯や曜日や平休日の区別ごとにエリアの特徴を分析する。そして、特徴分析装置は、人が多く滞在したエリアの特徴を個人の特徴とし、分析結果を表示する。さらに、一定期間が経過すると、特徴分析装置は、特徴を与えた個人が新しく滞在したエリアの履歴を基にPOIデータの業種別の重み付け係数を更新し、各エリアにおいて時間帯や曜日や平休日ごとにエリアの特徴を更新し、新しく更新したエリアの特徴を基に個人の特徴を更新する。これによって、時間が経つほどより正確なエリア特徴および個人特徴を推測でき、例えば、個人にレコメンドをするとき、より個人が興味を持つ商品などを推薦できる。
図7において、まず、特徴分析装置は、POIデータDB100から読み出したPOIデータ121をデータメモリ109に格納し(ステップS700)、POIデータ補完処理部112によってPOIデータ補完処理を実行する(ステップS701)。POIデータ補完処理(ステップS701)は、役所またはWEB情報等から得られた情報によって土地利用分類211、営業時間212、定休日213、および親POI管理番号214を補完する処理である。なお、POIデータ補完処理(ステップS701)は、図8と図9を用いて詳細を後述する。そして、特徴分析装置は、ステップS701で補完されたデータメモリ109上のPOIデータ121をPOIデータDB100に書き込む(ステップS702)。
つぎに、特徴分析装置は、人流データDB101から読み出した人流データ122をデータメモリ109に格納し(ステップS703)、人流データ補完処理部113によって人流データ補完処理を実行する(ステップS704)。人流データ補完処理(ステップS704)は該当人流データの国301および時系列データが受信されたとき人の速度307の情報を補完する処理である。なお、人流データ補完処理(ステップS704)は、図10を用いて詳細を後述する。そして、特徴分析装置は、ステップS704で補完されたデータメモリ109上の人流データ122を人流データDB101に書き込む(ステップS705)。
つぎに、特徴分析装置は、エリア作成処理部114によってエリア作成処理を実行する(ステップS706)。エリア作成処理(ステップS706)は、同一業種のPOIデータにおいて既存の凸包生成アルゴリズムを用いて自動的にエリア生成し、エリア相互の共通Geo範囲があるか否かに基づいてエリア分割する処理である。なお、エリア作成処理(ステップS706)は、図11〜図14を用いて詳細を後述する。
そして、特徴分析装置は、エリア特徴分析処理部115によってエリア特徴分析処理を実行する(ステップS707)。エリア特徴分析処理(ステップS707)は、各エリアにおいて時間帯や曜日や平休日ごとにPOIデータの業種に重み付けし、エリアの特徴を分析する処理である。なお、エリア特徴分析処理(ステップS707)は、図15〜図17を用いて詳細を後述する。
つぎに、特徴分析装置は、滞在エリア識別処理部116によって滞在エリア識別処理を実行する(ステップS708)。滞在エリア識別処理(ステップS708)は、人が特定エリアに滞在するとき、該当エリアの特徴および人の滞在時刻を識別する処理である。なお、識別処理(ステップS708)は、図18〜図20を用いて詳細を後述する。
そして、特徴分析装置は、個人特徴分析処理部117によって個人特徴分析処理を実行する(ステップS709)。個人特徴分析処理(ステップS709)は、一定期間の個人滞在エリアデータ124に基づいて、各人に時間帯や曜日や平休日ごとに最も多く滞在したエリアの特徴を分析する処理である。なお、エリア特徴分析処理(ステップS709)は、図21を用いて詳細を後述する。
つぎに、特徴分析装置は、表示処理部111によって表示処理を実施する(ステップS710)。表示処理(ステップS710)はデータメモリ109に格納したデータを表示する処理である。
<POIデータ補完処理(ステップS701)>
図8は、図7に示した本発明の実施例の特徴分析装置のPOIデータ補完処理部112によるPOIデータ補完処理(ステップS701)の詳細な処理手順を示すフローチャートである。
このフローチャートは、各POIデータ121において、役所から土地利用分類211および、WEB検索結果より営業時間212と定休日213と親POI管理番号214と、の不足情報をあらかじめ補完する処理を示す。
図8において、まず、特徴分析装置は、データメモリ109から1件のPOIデータpoiを取得し(ステップS800)、poiの補完状態215が「True」であるか否かを判断する(ステップS801)。補完状態215が「True」の場合(ステップS801:Yes)、poiデータの不足情報が補完されたため、ステップS813に移行する。一方、補完状態215が「False」の場合(ステップS801:No)、poiデータの不足情報が補完されていないため、特徴分析装置は、役所の情報システムからpoiの住所の土地利用分類luTypeを取得する(ステップS802)。
つぎに、特徴分析装置は、poiの経度204および緯度205と一致する全てのPOIデータをリストpoiListに保存する(ステップS802)。そして、特徴分析装置は、poiListから1件のPOIデータnewpoiを取得し(ステップS804)、newpoiの掲載名称201を基にWEB検索し(ステップS805)、WEB検索結果からnewpoiの掲載名称201に関する営業時間および定休日の情報を抽出し、newpoiの営業時間212および定休日213を更新する(ステップS806)。なお、WEB検索結果に営業時間または定休日の情報が存在しない場合、newpoiデータの営業時間212または定休日213は「NULL」に更新される。
つぎに、特徴分析装置は、WEB検索結果にnewpoiの子POIデータがpoiListに存在するか否かを判断する(ステップS808)。newpoiの子POIデータがpoiListに存在しない場合(ステップS807:No)、例えば、newpoiがうどん店であり、その中にさらにラーメン店が存在しない場合、ステップS809に移行する。一方、newpoiの子POIデータがpoiListに存在する場合(ステップS807:Yes)、例えば、newpoiがショピングモールであり、その中にうどん店が存在する場合、特徴分析装置は、newpoiの管理番号をtempIDに保存する(ステップS808)。
つぎに、特徴分析装置は、poiListに未処理のPOIデータ121が存在するか否かを判断する(ステップS809)。poiListに未処理のPOIデータ121が有る場合(ステップS808:Yes)、特徴分析装置は、ステップS804に戻り、poiListから次の1件のPOIデータnewpoiを取得する。一方、poiListの全てのPOIデータ121を処理した場合(ステップS808:No)、特徴分析装置は、poiListにある全てのPOIデータの土地利用分類211をluType、親POI管理番号214をtempID、補完状態215を「True」に更新する(ステップS811)。
つぎに、特徴分析装置は、poiListを基にデータメモリ109のPOIデータ121を更新し(ステップS811)、poiListを削除する(ステップS812)。つぎに、特徴分析装置は、データメモリ109に未取得のPOIデータ121が存在するか否かを判断する(ステップS813)。データメモリ109に未取得のPOIデータ121が有る場合(ステップS813:Yes)、特徴分析装置は、ステップS800に戻り、データメモリ109から次の1件のPOIデータpoiを取得する。一方、データメモリ109に全てのPOIデータ121を処理した場合(ステップS813:No)、特徴分析装置は、全てのPOIデータ121を補完済みのため、POIデータ補完処理部112によるPOIデータ補完処理(ステップS701)を終了し、ステップS702に移行する。
図9は、本発明の実施例の特徴分析装置が扱う二つのPOIデータの関係のうち、実世界に存在する関係および存在しない関係の例を示す説明図である。
図9(A)および(B)は実世界に存在するPOIデータの関係を示す。図9(A)では、2件のPOIデータ(POI1およびPOI2)において、POI1の中にさらにPOI2が含まれ、POI1とPOI2は親子関係を示す。例えば、POI1はショピングモールであり、POI2はうどん店であり、ショピングモールの中にうどん店があるのは可能であるため、POIデータの親子関係が存在する。図9(B)では、2件のPOIデータ(POI3およびPOI4)において、POI3とPOI4はお互いに独立し、POI3とPOI4は兄弟関係を示す。例えば、POI3はうどん店であり、POI4はラーメン店であり、うどん店とラーメン店が独立の二つの店であるため、POIデータの兄弟関係が存在する。
図9(C)および(D)は実世界のPOIデータの間に存在しない関係を示す。図9(C)では、3件のPOIデータ(POI5、POI6、およびPOI7)において、POI5の子POIデータPOI6にさらに子POIデータPOI7が存在することを示す。図9(D)では、2件のPOIデータ(POI8およびPOI9)において、POI8とPOI9の一部の空間に交差があること(すなわちそれらの一部が重複していること)を示す。
<人流データ補完処理(ステップS704)>
図10は、図7に示した本発明の実施例の特徴分析装置の人流データ補完処理部113による人流データ補完処理(ステップS704)の詳細な処理手順を示すフローチャートである。
このフローチャートは、各人流データ122において、あらかじめ、使用端末から人の国情報を補完し、さらに、近隣の2件の時系列データ302から先に受信された時系列データ302の速度307を補完する処理を示す。
図10において、まず、特徴分析装置は、データメモリ109から1件の人流データpfを取得し(ステップS1000)、pfの使用端末がWI−FIに接続しているか否かを判断する(ステップS1001)。pfの使用端末がWI−FIに接続していない場合(ステップS1001:No)、pfの使用端末から国情報を取得できないため、ステップS1003に移行する。一方、pfの使用端末がWI−FIに接続している場合(ステップS1001:Yes)、特徴分析装置は、pfの使用端末の国情報を取得し、pfの国301を更新する(ステップS1002)。
つぎに、特徴分析装置は、pfの時系列データ302を受信時刻304の昇順でソートする(ステップS1003)。そして、pfのi件目の時系列データaを取得する(ステップS1004)。なお、インデックスiは、1から始まる正の整数である。先頭の時系列データのインデックスiはi=1である。次回ステップS1004を行う際にインデックスiはインクリメントされる。
つぎに、特徴分析装置は、時系列データaの速度補完状態308が「True」であるか否かを判断する(ステップS1005)。時系列データaの速度補完状態308が「True」である場合(ステップS1005:Yes)、時系列データaの速度情報が補完されたため、ステップS1011に移行する。一方、時系列データaの速度補完状態308が「False」である場合(ステップS1005:No)、時系列データaの次の時系列データbを取得し(ステップS1006)、時系列データaからbまでの空間距離distを算出し(ステップS1007)、時系列データaとbの受信時刻差Δt(=|b.受信時刻−a.受信時刻|)を算出する(ステップS1008)。そして、特徴分析装置は、時系列データaの速度307を(dist/Δt)に更新し(ステップS1009)、時系列データaの補完状態308を「True」に更新する(ステップS1010)。
つぎに、特徴分析装置は、pfの中に未処理の時系列データ302が2件以上存在するか否かを判断する(ステップS1011)。pfの中に未処理の時系列データ302が2件以上存在する場合(ステップS1011:Yes)、ステップS1004に戻り、特徴分析装置は、pfから(i+1)件目の時系列データaを取得する(ステップS1004)。一方、pfの中に未処理の時系列データ302が1件以下の場合(ステップS1011:No)、特徴分析装置は、データメモリ109の中に未取得の人流データ122が存在するか否かを判断する(ステップS1012)。データメモリ109の中に未取得の人流データ122が存在する場合(ステップS1012:Yes)、ステップS1000に戻り、特徴分析装置は、データメモリ109から新しい1件の人流データpfを取得する(ステップS1000)。一方、データメモリ109の中の全ての人流データ122を処理した場合(ステップS1012:No)、データメモリの全ての人流データ122を補完したため、人流データ補完処理部113による人流データ補完処理(ステップS704)を終了し、ステップS705に移行する。
<エリア作成処理(ステップS706)>
図11は、図7に示した本発明の実施例の特徴分析装置のエリア作成処理部114によるエリア作成処理(ステップS706)の詳細な処理手順を示すフローチャートである。
このフローチャートは、POIデータを基づいて、POIデータの大業種別に既存の凸包生成アルゴリズムを用いて、それぞれが一つ以上のPOIを含むエリアを自動的に作成し、更にエリア相互の間に共通のGeo範囲があるか否かに基づいてエリア分割する処理を示す。
図11において、特徴分析装置は、まず、データメモリ109上の全てのPOIデータ121において、土地利用分類211が「商業用地」ではないPOIデータ121を除外し(ステップS1100)、残りのPOIデータ121からユニークな大業種名207を抽出してBsTypeListに保存する(ステップS1101)。
つぎに、特徴分析装置は、BsTypeListから1件の大業種名bstypeを取得し(ステップS1102)、大業種名207がbstypeと一致する全ての全てのPOIデータ121をpoiListに保存する(ステップS1103)。特徴分析装置は、poiListのPOIデータに基づいて、既存の凸包生成アルゴリズムを用いて自動的に生成された複数のエリアデータ123をAreaListに追加する(ステップS1104)。
つぎに、特徴分析装置は、BsTypeListに未処理の大業種名が存在するか否かを判断する(ステップS1105)。BsTypeListに未処理の大業種名が存在する場合(ステップS1105:Yes)、ステップS1102に戻り、特徴分析装置は、BsTypeListから次の1件の大業種名bstypeを取得する(ステップS1102)。一方、BsTypeListの全ての大業種名を処理した場合(ステップS1105:No)、特徴分析装置は、AreaListからi件目のエリアデータaiを取得する(ステップS1106)。なお、インデックスiは、1から始まる正の整数である。先頭の時系列データのインデックスiはi=1である。次回ステップS1106を行う際にインデックスiはインクリメントされる。
つぎに、特徴分析装置は、AreaListからj件目のエリアデータajを取得する(ステップS1107)。なお、インデックスjは、1から始まる正の整数である。先頭の時系列データのインデックスjはj=i+1である。次回ステップS1107を行う際にインデックスjはインクリメントされる。つぎに、特徴分析装置は、aiとajのGeo範囲404に共通範囲があるか否かを判断する(ステップS1108)。aiとajのGeo範囲404に共通範囲がない場合(ステップS1108:No)、aiとajは独立な二つのエリアで、更に分割する必要がないため、ステップS1111へ移行する。一方、aiとajのGeo範囲404に共通範囲がある場合(ステップS1108:Yes)、特徴分析装置は、新しいエリアデータakを生成して、AreaListの最後に追加する(ステップS1109)。そして、aiとajのGeo範囲404を更新する(ステップS1110)。
つぎに、特徴分析装置は、AreaListにaiとの間に共通範囲があるか否かを未確認のエリアデータが存在するか否かを判断する(ステップS1111)。AreaListにaiとの間に共通範囲があるか否かを未確認のエリアデータが存在する場合(ステップS1111:Yes)、ステップS1107に戻り、AreaListから(j+1)件目のエリアデータajを取得する(ステップS1106)。一方、AreaListにaiとの間に共通範囲があるか否かを未確認のエリアデータが存在しない場合(ステップS1106:No)、更新されたaiのGeo範囲404と交差するGeo範囲404を有するエリアデータが存在しないため、特徴分析装置は、aiの状態405を「True」に更新する(ステップS1112)。
つぎに、特徴分析装置は、AreaListに状態405が「False」であるエリアデータが存在するか否かを判断する(ステップS1113)。AreaListに状態405が「False」であるエリアデータが存在する場合(ステップS1113:Yes)、ステップS1106に戻り、特徴分析装置は、AreaListから(i+1)件目のエリアデータaiを取得する(ステップS1106)。一方、AreaListに状態405が「False」のエリアデータが存在しない場合(ステップS1113:No)、生成された任意の二つのエリアデータにおいてGeo範囲404の交差がないため、特徴分析装置は、Geo範囲404が「NULL」のエリアデータ123を削除し(ステップS1114)、エリア作成処理部114によるエリア作成処理(ステップS706)を終了し、ステップS707に移行する。
図12および図13は、本発明の実施例における二つの大業種名(買い物および飲食店)におけるPOIデータを基づいたエリアデータの作成例を示す説明図である。
図12では、大業種別に既存の凸包生成アルゴリズムを用いたエリアデータの生成例を示す説明図である。図12(A)では、大業種名が「買い物」であるPOIデータ{p1,p2,…,p10}から、既存の凸包生成アルゴリズムを用いて自動的に生成されたエリアデータを示す。なお、図12(A)において、星型及び丸型の図形はそれぞれ大業種名が「買い物」および「飲食店」である一つのPOIデータ121に相当し、それぞれの図形の位置がそれぞれのPOIデータ121の経度204及び緯度205が示す座標値に対応する。図12(B)、図13(A)及び図13(B)についても同様である。図12(A)の例では、p1〜p8を含むようにエリアデータArea1が生成され、p9およびp10を含むようにエリアデータArea2が生成される。なお、p9およびp10がそれ以外のPOIデータから離れているため、Area1から独立するエリアデータArea2が生成される。
図12(B)では、大業種名が「飲食店」であるPOIデータ{q1,q2,...,q13}から、既存の凸包生成アルゴリズムを用いて自動的に生成されたエリアデータ(Area3)を示す。
図12(C)では、既存の凸包生成アルゴリズムを用いて自動的に生成されたエリアデータ(Area1、Area2およびArea3)の詳細情報を示す。エリアデータ123のエリア番号400には、エリアデータを生成する際に自動的に振られた一意の値が保持される。エリア名称401には、ユーザが事前に設定した命名規則を基に振られた名称が保持される。選定大業種番号402には、選定された1個以上の大業種名207と対応する大業種番号206が保持される。選定大業種名403には、選定された1個以上の大業種名207が保持される。Geo範囲404には、既存の凸包生成アルゴリズム用いて生成された領域の範囲を示す図形情報が保持される。状態405には、デフォルトの値(「False」)が保持される。エリア特徴データ406には、デフォルトの値(「NULL」)が保持される。エリアデータ123のレコード1200、1201および1202にはそれぞれエリアデータArea1、Area2およびArea3の詳細情報を示す。
図13では、図12に自動的に生成されたエリアデータ123の任意の二つにおいて、Geo範囲404の共通範囲があるか否かを判定し、共通範囲があるエリアを抽出し、エリアを更新することを示す。図13(A)では、Area1およびArea3のGeo範囲404に共通範囲があるため、特徴分析装置は共通範囲に相当するArea4を新しく生成する例を示す。図13(B)では、Geo範囲404の交差があるArea1およびArea3から、それぞれのGeo範囲404の交差範囲(Area4のGeo範囲404)を除き、状態405を更新した(Area1’およびArea3’)例を示す。なお、Area2は他のエリアデータとの交差範囲がないため、更新する必要がない。
図13(C)では、エリアデータ相互の交差があるかを全て判断した後に生成されたエリアデータ(Area1’、Area2、Area3’およびArea4)の詳細情報を示す。エリアデータ123のレコード1300、1301、1302および1303にはそれぞれエリアデータArea1’、Area2、Area3’およびArea4の詳細情報を示す。なお、Area1’はArea1のGeo範囲404からArea4のGeo範囲404を除き、状態405を「True」に更新したエリアデータである。Area3’はArea3のGeo範囲404からArea4のGeo範囲404を除き、状態405を「True」に更新したエリアデータである。Area4の選定大業種番号402は、Area1およびArea3の選定大業種番号402の和集合である。Area4は、選定大業種番号402、選定大業種名403、およびGeo範囲404として、それぞれArea1とArea3の選定大業種番号402の和集合、選定大業種名403の和集合、およびGeo範囲404の共通範囲を保持し、状態405が「True」であるエリアデータである。
図14は、本発明の実施例において異なる大業種名によって生成されたエリアデータの関係例を示す説明図である。
図14(A)は、ある大業種名によって生成されたAREA1の中に別の大業種名によって生成されたAREA2が含まれる例を示す。これは、例えば、観光地のエリア中にお土産を購入するエリアがある例に相当する。図14(A)の例では、エリア作成処理部114がエリア作成処理(ステップS706)を行うとき、新しいエリアデータ123を生成し、当該新しいエリアデータ123の選定大業種番号402をAREA1およびAREA2の大業種番号402の和集合に、選定大業種名403をAREA1およびAREA2の大業種名403の和集合に、Geo範囲404をAREA2のGeo範囲404に、それぞれ更新する。さらに、エリア作成処理部114は、AREA1のGeo範囲404からAREA2のGeo範囲404を除き、AREA2を削除する処理を行う。
図14(B)は、ある大業種名によって生成されたAREA3と別の大業種名によって生成されたAREA4の一部が交差している例を示す。これは、例えば、商店街ではショッピングエリアと食事エリアの交差範囲がある例に相当する。図14(B)の例では、エリア作成処理部114がエリア作成処理(ステップS706)を行うとき、新しいエリアデータ123を生成し、当該新しいエリアデータ123の選定大業種番号402をAREA3およびAREA4の大業種番号402和集合に、選定大業種名403をAREA3およびAREA4の大業種名403の和集合に、Geo範囲404をAREA3とAREA4の交差したGeo範囲404(X)に、それぞれ更新する。さらに、エリア作成処理部114は、AREA3のGeo範囲404からXを除き、AREA4のGeo範囲404からXを除く処理を行う。
図14(C)は、ある大業種名によって生成されたAREA5と別の大業種名によって生成されたAREA6が独立している例を示す。これは、例えば、ゴルフをするエリアとスキーをするエリアが独立している例に相当する。図14(C)の例では、エリア作成処理部114がエリア作成処理(ステップS706)を行うとき、上記のような新しいエリアデータ123の生成および既存のエリアデータ123の更新等は何も行わない。
<エリア特徴分析処理(ステップS707)>
図15および図16は、図7に示した本発明の実施例の特徴分析装置のエリア特徴分析処理部115によるエリア特徴分析処理(ステップS707)の詳細な処理手順を示すフローチャートである。
これらのフローチャートは、図11に示した手順で自動的に生成された各エリアにおいて、指定された時間帯、曜日および平休日にPOIデータの業種別に重み付けの係数を与え、エリアの特徴を分析する処理を示す。図15は、初回にエリア特徴を分析するとき、POIデータのWEB知名度からPOIデータの業種における重み付けの係数を与え、各エリアの特徴を分析する処理を示す。図16は、初回にエリア特徴を分析した後、定期的にエリア特徴を更新するとき、特徴を持つ人がエリアに滞在した履歴からPOIデータの業種における重み付けの係数を与え、エリアの特徴を分析する処理を示す。
図15において、まず、特徴分析装置は、データメモリ109から1件のエリアデータaを取得し(ステップS1500)、取得したaのエリア特徴データ406が「NULL」であるか否かを判断する(ステップS1501)。aのエリア特徴データ406が「NULL」ではない場合(ステップS1501:No)、特徴分析装置は、図16のステップS1600〜S1613を実行し、ステップS1515に移行する。図16のS1600〜S1613は、エリアデータ123に対して、エリアごとの特徴を更新するための分析処理である。
一方、aのエリア特徴データ406が「NULL」である場合(ステップS1501:Yes)、エリアごとの特徴を初期設定するため、特徴分析装置は図16のS1600〜S1613を実行せずに、ステップS1502に移行する。ステップS1502では、特徴分析装置は、データメモリ109からaのGeo範囲404中の全てのPOIデータ121(すなわち、経度204および緯度205によって特定される位置がaのGeo範囲404内に含まれる全てのPOIデータ121)を抽出してリストList1={poi1,poi2,…,poiN}に保存する。
つぎに、特徴分析装置は、時間帯Tzone、曜日Dweek、および平休日DHdayを指定し(ステップS1503)、List1の中から、指定したTzone、DweekおよびDHdayに営業するPOIデータ121を抽出してList2={poi1,poi2,…,poiM}に保存する(ステップS1504)。つぎに、特徴分析装置は、中間結果を保存するために新しいマップCMap、WMap、およびPMapを生成する(ステップS1505)。そして、特徴分析装置は、List2中のPOIデータ121において、業種mtiごとにPOIデータ121の数を集計し(ステップS1506)、集計した結果<mti,ci>をマップCMap={<mt1,c1>,<mt2,c2>,…,<mtn,cn>}に保存する(ステップS1507)。なお、業種mtiはPOIデータ121の大業種番号206または大業種名207でもよいし、中業種番号208または中業種名209でもよい。
つぎに、特徴分析装置は、List2中の全てのPOIデータ121におけるWEB知名度に基づいて業種mtiごとの重み付け係数αiを計算する(ステップS1508)。なお、POIデータ121のWEB知名度は、例えば掲載名称201を検索キーワードとして検索した結果の件数であってもよい。特徴分析装置は、業種mtiについて、下記の式(1)を用いて、重み付け係数αiを計算する。これによって、エリアに含まれる全POIのうち業種mtiのPOIの知名度の高さを合計した値に応じた値が、当該エリアにおける当該業種mtiの重み付け係数αiとして得られる。
つぎに、特徴分析装置は、業種mtiごとの重み付け係数αi(<mti,αi>)をマップWMap={<mt1,α1>,<mt2,α2>,…,<mtn,αn>}に保存する(ステップS1509)。そして、特徴分析装置は、下記の式(2)を用いて、i件目の業種mtiの地域重要度Piを計算し(ステップS1510)、<mti,Pi>をPMapに追加する(ステップS1511)。これによって、エリア内のPOIの数ciに重み付け係数αiを乗じた値に応じた地域重要度Piが計算される。
なお、インデックスiは、1から始まる正の整数である。先頭の時系列データのインデックスiはi=1である。次回ステップS1510を行う際にインデックスiはインクリメントされる。
また、上記の説明では例えばインターネットを利用した検索ヒット件数などのWEB知名度に基づいて重み付け係数が計算されているが、知名度を示す情報である限り、上記以外の情報を利用することができる。
つぎに、特徴分析装置は、CMap中に未処理の業種があるか否かを判断する(ステップS1512)。未処理の業種が存在する場合(ステップS1512:Yes)、ステップS1510に戻り、特徴分析装置は、CMap中の(i+1)件目の業種mtiについて地域重要度Piを算出する(ステップS1510)。一方、CMap中の全ての業種を処理した場合(ステップS1512:No)、特徴分析装置は、エリア特徴データ生成処理を行う(ステップS1513)。なお、エリア特徴データ生成処理(ステップS1513)は、図17を用いて詳細を後述する。
つぎに、特徴分析装置は、未処理の時間帯、曜日、および平休日の値があるか否かを判断する(ステップS1514)。未処理の時間帯、曜日、および平休日の値がある場合(ステップS1514:Yes)、S1503に戻り、特徴分析装置は、時間帯Tzone、曜日Dweek、平休日DHdayを指定する(ステップS1503)。一方、全ての時間帯、曜日、および平休日の値を処理した場合(ステップS1514:No)、特徴分析装置は、未取得のエリアデータ123がある可否かを判断する(ステップS1515)。データメモリ109に未取得のエリアデータ123が存在する場合(ステップS1515:Yes)、ステップS1500に戻り、特徴分析装置は、データメモリ109から1件のエリアデータaを取得する(ステップS1500)。一方、全てのエリアデータ123が取得された場合(ステップS1515:No)、特徴分析装置は、データメモリ109のエリアデータ123をエリアデータDB102に格納し(ステップS1516)、エリア特徴分析処理部115によるエリア特徴分析処理(ステップS707)を終了し、ステップS708に移行する。
つぎに、図16について説明する。図16は、図15のステップS1501で、aのエリア特徴データ406は「NULL」ではない場合(ステップS1501:No)に実行される処理を示す。
ステップS1501:Noの場合は、特徴分析装置のエリア特徴分析処理部115は、エリアデータaのエリア特徴データ406をNULLに設定し(ステップS1600)、データメモリ109からaのGeo範囲404中の全てのPOIデータ121を抽出してリストList1={poi1,poi2,…,poiN}に保存する(ステップS1601)。つぎに、特徴分析装置は、時間帯Tzone、曜日Dweek、および平休日DHdayを指定し(ステップS1602)、List1の中から、指定したTzone、DweekおよびDHdayに営業するPOIデータ121を抽出してList2={poi1,poi2,…,poiM}に保存する(ステップS1603)。つぎに、特徴分析装置は、中間結果を保存するために新しいマップCMap、WMap、およびPMapを生成する(ステップS1604)。そして、特徴分析装置は、List2中のPOIデータ121において、業種mtiごとにPOIデータ121の数を集計し(ステップS1605)、集計した結果<mti,ci>をマップCMap={<mt1,c1>,<mt2,c2>,…,<mtn,cn>}に保存する(ステップS1606)。なお、業種mtiはPOIデータ121の大業種番号206または大業種名207でもよいし、中業種番号208または中業種名209でもよい。
つぎに、特徴分析装置は、個人滞在エリアデータ124に基づいて業種mtiごとの重み付け係数αiを再計算する(ステップS1607)。具体的には、特徴分析装置は、下記の式(3)を用いて、重み付け係数αiを再計算する。これによって、業種mtiが特徴として与えられた人物がエリア内の各POIに滞在した回数の合計に応じた値が、当該エリアにおける当該業種mtiの重み付け係数αiとして得られる。
つぎに、特徴分析装置は、業種mtiごとの重み付け係数αi(<mti,αi>)をマップWMap={<mt1,α1>,<mt2,α2>,…,<mtn,αn>}に保存する(ステップS1608)。そして、特徴分析装置は、式(2)を用いてi件目の業種mtiの地域重要度Piを計算し(ステップS1609)、<mti,Pi>をPMapに追加する(ステップS1610)。なお、インデックスiは、1から始まる正の整数である。先頭の時系列データのインデックスiはi=1である。次回ステップS1609を行う際にインデックスiはインクリメントされる。
つぎに、特徴分析装置は、CMap中に未処理の業種があるか否かを判断する(ステップS1611)。未処理の業種が存在する場合(ステップS1611:Yes)、ステップS1609に戻り、特徴分析装置は、CMap中の(i+1)件目の業種mtiについて地域重要度Piを算出する(ステップS1609)。一方、CMap中の全ての業種を処理した場合(ステップS1611:No)、特徴分析装置は、エリア特徴データ生成処理を行う(ステップS1612)。なお、エリア特徴データ生成処理(ステップS1612)は、図17を用いて詳細を後述する。
つぎに、特徴分析装置は、未処理の時間帯、曜日、および平休日の値があるか否かを判断する(ステップS1613)。未処理の時間帯、曜日、および平休日の値がある場合(ステップS1613:Yes)、S1602に戻り、特徴分析装置は、時間帯Tzone、曜日Dweek、平休日DHdayを指定する(ステップS1602)。一方、全ての時間帯、曜日、および平休日の値を処理した場合(ステップS1613:No)、図15のステップS1515に移行する。
図17は、図15および図16に示した本発明の実施例の特徴分析装置のエリア特徴分析処理部115によるエリア特徴データ生成処理(ステップS1513およびステップS1612)の詳細な処理手順を示すフローチャートである。
図17において、特徴分析装置は、まずエリアデータaのエリア特徴データnewDataを1件新しく生成する(ステップS1700)。つぎに、特徴分析装置は、newDataの時間帯408をTzoneに(ステップS1701)、newDataの曜日409をDweekに(ステップS1702)、newDataの平休日410をDHdayに、それぞれ設定する(ステップS1703)。つぎに、特徴分析装置は、CMapから業種mtiを取得し、List1={mt1,mt2,…,mtn}に保存する(ステップS1704)。
つぎに、特徴分析装置は、newDataのPOI種類411をList1に設定する(ステップS1705)。つぎに、特徴分析装置は、CMapから業種mti別のPOIデータの件数ciを読み出してリストList2={c1,c2,…,cn}に保存し(ステップS1706)、newDataの集計数412をList2に設定する(ステップS1707)。つぎに、特徴分析装置は、WMapから業種mtiごとの重み付け係数αiを読み出してリストList3={α1,α2,…,αn}に保存し(ステップS1708)、newDataの重み付け係数413List3に設定する(ステップS1709)。
つぎに、特徴分析装置は、地域重要度Piの大きい順でマップPMapをソートし(ステップS1710)、newDataの時間帯特徴414をPMapの先頭k個の業種に更新する(ステップS1711)。つぎに、特徴分析装置は、先頭k個の業種が属する大業種番号206および大業種名207を抽出し(ステップS1712)、newDataの分析大業種番号415および分析大業種名416を地域重要度が最も高い大業種番号206および大業種名207に設定する(ステップS1713)。つぎに、特徴分析装置は、newDataをaのエリア特徴データ406に追加する(ステップS1714)。以上でエリア特徴データ生成処理(ステップS1512またはステップS1613)が終了し、ステップS1514またはS1613に移行する。
<滞在エリア識別処理(ステップS708)>
図18は、図7に示した本発明の実施例の特徴分析装置の滞在エリア識別処理部116による滞在エリア識別処理(ステップS708)の詳細な処理手順を示すフローチャートである。
このフローチャートは、人流データ122およびエリアデータ123に基づいて人がどのエリアに滞在したかを識別し、人がいずれかのエリアに滞在したときにそのエリアの特徴およびそのエリアへの滞在期間を記録する処理を示す。
図18において、特徴分析装置は、まず、対象期間Tを設定する(ステップS1800)。つぎに、特徴分析装置は、データメモリ109から1件の人流データpfを取得し(ステップS1801)、対象期間Tに受信されたpfの時系列データ302をList1={t1,t2,…,tN}に保存する(ステップS1802)。つぎに、特徴分析装置は、List1の時系列データに基づいて個人が滞在したエリアを識別し、リストList2={}に保存する(ステップS1803)。なお、個人が滞在したエリアの識別方法は、図19を用いて詳細を後述する。
つぎに、特徴分析装置は、List1中の時系列データ302について、個人がエリアaiに滞在したときの時系列データをグループに分割し、GROUP={g1,g2,…,gn}に保存する(ステップS1804)。なお、グループに分割する方法は、図19を用いて詳細を後述する。
つぎに、特徴分析装置は、1個のグループgiにおける時系列データ{t1,t2,…,tm}を取得し(ステップS1805)、個人滞在エリアデータ生成処理を行う(ステップS1806)。なお、個人滞在エリアデータ生成処理(ステップS1806)は、図20を用いて詳細を後述する。
つぎに、特徴分析装置は、分割されたグループにおいて未処理のグループが存在するか否かを判断する(ステップS1807)。未処理のグループがある場合(ステップS1807:Yes)、ステップS1805に戻り、特徴分析装置は、1個のグループgiにおける時系列データ{t1,t2,…,tm}を取得する(ステップS1805)。一方、全てのグループを処理した場合、特徴分析装置は、人流データpfが滞在したエリアにおいて未処理のエリアデータ123があるか否かを判断する(ステップS1808)。未処理のエリアデータがある場合(ステップS1808:Yes)、ステップS1804に戻り、特徴分析装置は、個人がエリアaiに滞在したときの時系列データをグループに分割し、それぞれのグループの時系列データをGROUP={g1,g2,…,gn}に保存する(ステップS1804)。
一方、pfが滞在した全てのエリアが処理された場合(ステップS1808:No)、特徴分析装置は、データメモリ109に未取得の人流データ122があるか否かを判断する(ステップS1809)。未取得の人流データ122がある場合(ステップS1809:Yes)、ステップS1801に戻り、特徴分析装置は、データメモリ109から1件の人流データpfを取得する(ステップS1801)。一方、全ての人流データ122が取得された場合(ステップS1809:No)、特徴分析装置は、データメモリ109の個人滞在エリアデータ124を個人滞在エリアデータDB103に格納し、滞在エリア識別処理部116による滞在エリア識別処理(ステップS708)を終了し、ステップS709に移行する。
図19は、本発明の実施例の滞在エリア識別処理(ステップS708)において、個人がエリアに滞在したか通過したかを判断し、滞在したときの時系列データを識別する処理の例を示す説明図である。
図19(A)には、人流データ122の時系列データ302の軌跡pfから人がどのエリアに滞在したかを判定する例を示す。この例では、図13(B)と同様のエリアが生成されている場合において、人がArea4内のPOIに滞在し、続いてArea1内のPOIに滞在し、その後、一旦Area1から出て再びArea1内の別のPOIに滞在している。この場合、時系列データ302が、それぞれの滞在に対応するグループg1〜g3に分割される。
図19(B)には、ある人が異なる日に同じエリアに滞在した場合、2件の時系列データ302の受信時刻304の時間差が一定期間ΔT(例えば、ΔT=1日)以上であるか否かに基づいてそれらの時系列データ302を異なる二つの時系列グループに分割する例を示す。図19(C)には、図19(B)で分割された一つのグループの時系列データ302において、対応エリアに滞在するときの開始時刻および終了時刻を探し、開始時刻から終了時刻まで受信された時系列データ302をグループに更新する例を示す。
例えば、ある人のある時刻の時系列データ302と、それより後の時刻の時系列データ302とに着目し、前者を前時系列データ、後者を後時系列データと記載する。前時系列データ(例えばt1)の速度307が指定された閾値速度minVより大きく、後時系列データ(例えばt2)の速度307がminV以下であり、かつ、t2の位置から一定範囲以内に位置するPOIデータが存在した場合、特徴分析装置は、t2の受信時刻304を対応エリアへの滞在の開始時刻とする。また、前時系列データ(例えばt5)の速度307が指定された閾値速度minV以下であり、後時系列データ(例えばt6)の速度307がminVより大きく、かつ、t5の位置から一定範囲以内に位置するPOIデータが存在した場合、特徴分析装置は、t5の受信時刻304を対応エリアへの滞在の終了時刻とする。この場合、t2〜t5は対応エリアに滞在するときに受信された時系列グループとなる。
図20は、図18に示した本発明の実施例の特徴分析装置による個人滞在エリアデータ生成処理(ステップS1806)の詳細な処理手順を示すフローチャートである。
図20において、特徴分析装置は、まず、新しい1件の個人滞在エリアデータnew1を生成し(ステップS2000)、new1の個人識別番号501をpfの個人識別番号300に設定し(ステップS2001)、new1のエリア番号502をaiのエリア番号400に設定する(ステップS2002)。つぎに、特徴分析装置は、t1の受信時刻304が属する時間帯408、曜日409、および平休日410の値に対応するaiのエリア特徴データxを取得する(ステップS2003)。そして、特徴分析装置は、new1のエリア特徴番号503をxのエリア特徴番号407(ステップS2004)に、new1のエリア特徴504をxの分析大業種名416にそれぞれ設定する(ステップS2005)。つぎに、new1の到着時刻505をt1の受信時刻304、出発時刻506をtmの受信時刻304に設定する(ステップS2006)。つぎに、特徴分析装置は、new1の滞在期間507を「tmとt1の受信時刻差」に設定し(ステップS2007)、個人滞在エリアデータ生成処理(ステップS1806)を終了し、ステップS1807に移行する。
<個人特徴分析処理(ステップS709)>
図21は、図7に示した本発明の実施例の特徴分析装置の個人特徴分析処理部117による個人特徴分析処理(ステップS709)の詳細な処理手順を示すフローチャートである。
このフローチャートは、時間帯、曜日および平日または休日の区別といった条件が指定され、その条件下における個人特徴の分析が実行される場合に、個人滞在エリアデータ124に基づいて、指定された時間帯、曜日および平休日に人が主にどんな特徴があるエリアに滞在したかを分析し、それらの特徴を当該条件下における人の特徴として与える処理を示す。
図21において、まず、特徴分析装置は、対象期間Tを指定する(ステップS2100)。つぎに、特徴分析装置は、データメモリ109から1件の人流データ122の個人識別番号idを取得し(ステップS2101)、データメモリ109から個人識別番号501がidと等しい個人滞在エリアデータ124を取得し、リストList1={pa1,pa2,…,paN}に保存する(ステップS2102)。つぎに、特徴分析装置は、List1から、到着時刻505が対象期間T以外の個人滞在エリアデータ124を除外する(ステップS2103)。つぎに、特徴分析装置は、時間帯Tzone、曜日Dweek、および平休日DHdayを指定し(ステップS2104)、List1から時間帯、曜日および平休日の値がそれぞれTzone、DweekおよびDHdayに含まれる個人滞在エリアデータ124を取得し、List2={pa1,pa2,…,pan}に保存する(ステップS2105)。
つぎに、特徴分析装置は、エリア特徴chtiごとに個人滞在エリアデータ124の数ciを集計し、Map={<cht1,c1>,<cht2,c2>,…,<chtk,ck>}に保存する(ステップS2106)。つぎに、特徴分析装置は、新しい個人特徴データdataを生成し(ステップS2107)、dataの個人識別番号601をidに設定する(ステップS2108)。つぎに、特徴分析装置は、dataの対象期間602をT(ステップS2109)、dataの時間帯603をTzone、曜日604をDweek、および平休日605をDHdayに設定する(ステップS2110)。つぎに、特徴分析装置は、dataの個人特徴606を件数ciが最も大きいエリア特徴chtiに設定する(ステップS2111)。これによって、人が対象期間に各領域へ滞在した回数が、各領域の特徴ごとに集計され、その回数が最も多い特徴が当該人物の個人特徴として設定される。
そして、特徴分析装置は、未指定の時間帯、曜日、および平休日の値があるか否かを判断する(ステップS2112)。未指定の時間帯、曜日、および平休日の値がある場合(ステップS2112:Yes)、ステップS2104に戻り、特徴分析装置は、時間帯Tzone、曜日Dweek、および平休日DHdayを指定する(ステップS2104)。一方、全ての時間帯、曜日、および平休日を指定した場合(ステップS2112:No)、特徴分析装置は、データメモリ109に未処理の人流データ122が存在する可否かを判断する(ステップS2113)。未処理の人流データ122が存在する場合(ステップS2113:Yes)、ステップS2101に戻り、特徴分析装置は、データメモリ109から1件の人流データ122の個人識別番号idを取得する(ステップS2101)。一方、全ての人流データを処理した場合(ステップS2113:No)、特徴分析装置は、データメモリ109の個人特徴データ125を個人特徴データDB104に格納し(ステップS2114)、個人特徴分析処理部117による個人特徴分析処理(ステップS709)を終了し、ステップS710に移行する。
以上の本発明の実施例によれば、POIデータに基づいてエリアが生成され、POIデータに含まれる業種等の特徴によってエリアの特徴が特定され、人流データに基づいて人物の各エリアへの滞在が判定され、エリアの特徴がそこに滞在した人物に与えられる。例えば、各人物のエリアへの滞在回数がエリアの特徴ごとに集計され、集計した滞在回数が最も多い特徴が各人物の特徴として与えられてもよい。これによって、エリアの特徴に基づいて人の特徴を分析することができる。
各エリアは、POIデータの位置情報及び特徴に基づいて、例えば凸包生成アルゴリズム等を用いて生成されてもよい。これによって、自動的に適切なエリアを生成することができる。
また、エリアの特徴は、各エリアに含まれる特徴ごとのPOIの数に、例えば検索ヒット数などの知名度に基づく重み付けをすることによって決定されてもよい。これによって、エリア内に種々の特徴を有するPOIが含まれる場合にも適切にそのエリアの特徴を特定することができる。
上記のような処理は、例えば定期的に繰り返し実行されてもよい。その場合、2回目以降の実行においては、知名度の代わりに、それぞれのエリア内のPOIへの人物の滞在回数を人物の特徴ごとに集計した値に基づく重み付けが行われてもよい。すなわち、エリアの特徴から人物の特徴が与えられ、人物の特徴からさらにエリアの特徴が与えられ、それが繰り返されてもよい。これによって、人物の特徴の分析精度が向上するとともに、例えば年月の経過等による実際のエリアの特徴の変化および人物の嗜好の変化等に応じて人物の特徴を分析することができる。
また、人流データに速度の情報が含まれていない場合には、時刻情報および位置情報に基づいて速度を計算してもよい。さらに、そのように計算された速度を用いて各POIへの滞在を判定してもよい。これによって、POIを単に通過した場合とそこに滞在した場合とを的確に区別して分析の精度を上げることができる。
また、土地利用分類に関する情報を取得して、所望の分類(例えば商業用地)に属するPOIのみを対象として分析を行ってもよい。これによって、目的に適合した分析を行うことができる。さらに、各POIの営業時間、定休日等の情報を取得して、時間帯ごとに各人物の特徴を分析してもよい。これによって、分析の精度を上げることができる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明のより良い理解のために詳細に説明したのであり、必ずしも説明の全ての構成を備えるものに限定されものではない。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によってハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによってソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
また、制御線及び情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線及び情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。