(57)【要約】      （修正有）【課題】発信位置を特定するための位置情報が付されていない情報の発信位置を推定する位置推定方法を提供する。【解決手段】発信位置が特定されていない第１の情報が発信された位置を推定する位置推定方法であって、コンピュータが、前記第１の情報が、第２の発信位置から発信された第２の情報に関連する関連情報を含み、前記第１の情報が、前記第２の情報が発信された第２の時間帯に関連していれば、前記第２の発信位置から前記第１の情報が発信されたと推定する。【選択図】図２
2015022614.tif 000002
【特許請求の範囲】
【請求項１】
発信位置が特定されていない第１の情報が発信された位置を推定する位置推定方法であって、コンピュータが、
前記第１の情報が、第２の発信位置から発信された第２の情報に関連する関連情報を含み、前記第１の情報が、前記第２の情報が発信された第２の時間帯に関連していれば、前記第２の発信位置から前記第１の情報が発信されたと推定する
ことを特徴とする位置推定方法。
【請求項２】
前記コンピュータは、
前記第２の時間帯とは異なる時間帯に、前記第１の情報を発信した第１のユーザによって発信されたと推定される他の発信位置がある場合に、前記第２の発信位置及び前記他の発信位置に基づいて、前記第１のユーザが情報を発信する場合の発信範囲を推定する
ことを特徴とする請求項１に記載の位置推定方法。
【請求項３】
前記コンピュータは、
前記第１のユーザが情報を発信したと推定される発信位置の候補が複数ある場合に、情報が発信される領域毎の情報発信の数の偏りを減少させるように前記発信位置の候補の数に応じた重み付けを前記領域毎に施して、前記発信範囲を推定する
ことを特徴とする請求項２に記載の位置推定方法。
【請求項４】
前記コンピュータは、
前記関連情報を、特定の領域において前記関連情報を含む情報が発信される確率と、前記特定の領域以外において前記関連情報を含む情報が発信される確率との割合に基づいて決定する
ことを特徴とする請求項１〜３の何れか１項に記載の位置推定方法。
【請求項５】
前記関連情報が、前記第２の情報に含まれるキーワード、又は、前記第２の情報に含まれる前記キーワードに関連する他のキーワード
であることを特徴とする請求項１〜４の何れか１項に記載の位置推定方法。
【請求項６】
前記コンピュータは、
前記第２の時間帯に前記第１の情報が発信された場合、又は、前記第２の時間帯に前記第１の情報が発信されたと推定させる情報を第１の情報が含んでいる場合に、前記第１の情報が、前記第２の時間帯に関連していると判定する
ことを特徴とする請求項１〜５の何れか１項に記載の位置推定方法。
【請求項７】
発信位置が特定されていない第１の情報が発信された位置を推定する位置推定プログラムであって、コンピュータに、
前記第１の情報が、第２の発信位置から発信された第２の情報に関連する関連情報を含み、前記第１の情報が、前記第２の情報が発信された第２の時間帯に関連していれば、前記第２の発信位置から前記第１の情報が発信されたと推定させる
ことを特徴とする位置推定プログラム。
【請求項８】
発信位置が特定されていない第１の情報が発信された位置を推定する位置推定装置であって、
前記第１の情報が、第２の発信位置から発信された第２の情報に関連する関連情報を含み、前記第１の情報が、前記第２の情報が発信された第２の時間帯に関連していれば、前記第２の発信位置から前記第１の情報が発信されたと推定する手段を
有することを特徴とする位置推定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、位置推定方法、位置推定プログラム、及び、位置推定装置に関する。
【背景技術】
【０００２】
近年、ソーシャルメディアサービスが盛んに使われており、このサービスを通じた情報の投稿は、モバイル端末を使用して行われることが多い。このモバイル端末から投稿された情報のうちのごく一部の情報に限り、モバイル端末のＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）機能等によって取得された、投稿の発信位置に関する情報が付されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−０１６５５９号公報
【特許文献２】特開２０１１−１９７７８３号公報
【特許文献３】特開２０１０−０８６３０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば、ソーシャルメディアサービス等を利用して発信された情報から、マーケティング等に利用するほど十分な情報を抽出できず、利用できていなかった。
【０００５】
本願は、発信位置を特定するための位置情報が付されていない情報の発信位置を推定する位置推定方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
開示の位置推定方法は、発信位置が特定されていない第１の情報が発信された位置を推定する位置推定方法であって、コンピュータが、前記第１の情報が、第２の発信位置から発信された第２の情報に関連する関連情報を含み、前記第１の情報が、前記第２の情報が発信された第２の時間帯に関連していれば、前記第２の発信位置から前記第１の情報が発信されたと推定する。
【発明の効果】
【０００７】
本開示の一側面によれば、発信位置を特定するための位置情報が付されていない情報の発信位置を推定することができるため、例えば、ソーシャルメディアサービス等を利用して発信された情報から、マーケティング等に必要な情報を収集することができる。
【図面の簡単な説明】
【０００８】
【図１】実施例のコンテンツテーブルの例。
【図２】実施例よって推定された位置の例。
【図３】実施例の位置推定装置のハードウェア構成の例。
【図４】実施例の位置推定装置の機能ブロックの例。
【図５】実施例のイベントテーブルを作成するための処理の例。
【図６】実施例のイベントテーブルの例。
【図７】実施例のイベント発言テーブル、既知ユーザ位置テーブル、及び、ユーザ位置候補テーブルを作成するための処理の例。
【図８】実施例のイベント発言テーブルの例。
【図９】実施例の既知ユーザ位置テーブルの例。
【図１０】実施例のユーザ位置候補テーブルの例。
【図１１】実施例のユーザ位置候補テーブルを更新するための処理の例。
【図１２】実施例のユーザ位置候補テーブルを更新するための処理における詳細の例。
【図１３】実施例の位置情報既知ユーザ及び位置情報未知ユーザの例。
【図１４】実施例のユーザ推定位置テーブルを登録するための処理の例。
【図１５】実施例のイベント発言の集計数の例。
【図１６】実施例のユーザ推定位置テーブルの例。
【発明を実施するための形態】
【０００９】
はじめに、発明者による検討内容を説明する。ソーシャルメディアサービスを通じた情報の投稿に発信位置に関する情報が付されていると、ユーザの位置情報と投稿された内容とを組み合わせることによって、価値の高いサービスを提供できる。
【００１０】
例えば、投稿された情報に、洪水やゲリラ豪雨といった気象に関する内容や、花粉や風邪といった健康に関する内容や、個人の嗜好等に関する内容が含まれていた場合、これらの事象がどの地域で特有に起きているのかが分かれば、地理的な可視化や分析を行なうことで、ここから有用な情報をリアルタイムに把握することが可能となる。
【００１１】
そして、ソーシャルメディアサービスを通じた情報の投稿を、地理的な可視化や分析に利用することは、ユーザによる情報の発信を一種のセンサー情報として扱っているともいえる。例えば、花粉の飛散状況を把握するために、花粉の量を測定する装置を設置しなくても、ユーザの投稿をセンサー情報として扱うことで、花粉の飛散状況を間接的に知ることができる。
【００１２】
また、花粉であれば、花粉の量を測定する装置を設置することで、飛散状況を測定できるともいえるが、これに対して、風邪といった健康に関する情報や、個人の嗜好に関する情報を直接測定する装置はない。
【００１３】
例えば、病気になって病院にかかったのであれば、当該病気に関してどの地域での発症が多いかどうかを調べることができるが、病気になったとして必ずしも病院に行くとは限らない。病院に行くほどでもないと判断して治してしまうこともある。このような場合であっても、病気の症状等に関する投稿をセンサー情報として利用すれば、ある地域での健康に関する傾向を間接的に得ることができ、各地域での健康管理や保険等の分析のために利用できる。
【００１４】
また、個人の嗜好に関する投稿をセンサー情報として利用すれば、ある地域での嗜好等に関する傾向が間接的に得ることができ、この傾向を各地域のマーケティングに利用することが期待される。
【００１５】
図１に、実施例のコンテンツテーブルの例が示される。図１に示されるコンテンツテーブル１００は、ユーザによって投稿された情報を管理するために、図３に示されるメモリ３３０又は記憶装置３８０に格納される情報である。
【００１６】
図１には、例えば、ユーザＩＤが“ｕｓｅｒ００１”のユーザが、タイムスタンプ“２０１２０７０２：０１時”で表わされる２０１２年７月２日の０１時に、“雨が降ってきた。”という内容の情報を投稿したことが管理されている。そして、情報が投稿された位置を区別するために、メッシュに区切られた地域毎を識別するための位置情報“ｌｏｃ０５２”が関連付けられており、この位置情報“ｌｏｃ０５２”によって、ｕｓｅｒ００１が情報を投稿した位置が示されている。この位置情報“ｌｏｃ０５２”は、例えば、ｕｓｅｒ００１が情報を発信する際に、ＧＰＳ機能等によって特定された位置情報を付した情報を投稿したことにより、関連付けがされている。
【００１７】
ところで、ｕｓｅｒ００８には、情報が投稿された位置が関連付けられていない。これは、ｕｓｅｒ００８が情報を発信する際に、ＧＰＳ機能等を有効にしておらず、位置を特定する情報を付さなかったことによる。実際、位置情報を付して情報を投稿するユーザは、ソーシャルメディアサービスを利用するユーザの１％にも満たない。そのため、ソーシャルメディアサービスの利用者や情報の投稿の全体数は多いものの、位置を特定できる情報が極めて少なく、その中において特定のキーワードを含む情報を絞り込むと、地理的な可視化や分析において、偶然起きた事象ではないと判定できるほどの情報量を集めることが難しい。このように、ソーシャルメディアサービス等を利用して発信された情報に、嗜好等に関する内容が含まれていたとしても、発信位置が特定されている情報の数が十分でないため、どの地域で特徴的に発生している嗜好なのか、どの程度の範囲で発生している傾向なのか、等を判断できておらず、マーケティング等に十分に利用できていなかった。      
【００１８】
また、ｕｓｅｒＹＹＹによって投稿された情報のように、情報に地名が含まれている場合、その地名から、位置を特定するための情報として、例えば、“ｌｏｃ２０４”が付されていてもよい。ただし、投稿される情報に位置を特定するためのキーワードが必ずしも含まれているとは限らず、位置情報が特定された情報の数を確保するには十分とはいえない。
【００１９】
また、ソーシャルメディアサービスに登録する際には、任意ではあるが、ユーザ情報として、居住地を公開している場合がある。しかし、多くのサービスでは、この居住地に任意の文字列を入力できるため、「神奈川県」と「新宿区」といったように粒度が揃っていなかったり、実在しない地名が登録されていたり、虚偽の地名が登録されている場合があり、このユーザ情報に従って情報の発信位置を推定したとしても、確度が高いとはいいきれない。
【００２０】
ところで、図１に示されるコンテンツテーブルは、ソーシャルメディアサービスを運営していなくても、ソーシャルメディアサービスを運営する運営会社から取得できる情報である。そのため、ユーザが情報を発信する際にアクセスした基地局の位置や、無線ＬＡＮのアクセスポイントの位置などに従い、情報の発信位置を特定できたとしても、基地局を管理するキャリアはその位置情報を入手できるが、コンテンツテーブルがソーシャルメディアサービスを運営する運営会社から提供された時点では、ユーザが情報を発信した際にすでに付与されている位置情報以外が失われていることがあるため、ユーザが発信した情報をセンサー情報として分析する際には、基地局等による位置情報を利用できない。
【００２１】
以上に述べたように、ソーシャルメディアサービスが盛んに利用されているものの、位置を特定できる情報は極めて少なく、投稿された情報から地理的な傾向が、偶然起きたものではないと判定できるほどの情報量を集めることが難しい。
【００２２】
そこで、実施例によれば、発信位置が未知の第１情報であっても、発信位置が既知の第２情報に含まれていたキーワードを含み、第２情報と同じ時間帯に発信されていれば、該既知の発信位置から発信されたと推定して、発信位置を付与する。これによって、発信位置を特定するための位置情報が付されていない情報の発信位置を推定して、例えば、地理的な傾向を分析する際の情報量を増やすことができる。
【００２３】
また、第１情報を発信したユーザの発信位置を推定することを、複数の時間帯で行い、これらの結果をまとめることで、情報に当該キーワードが含まれていなくても、このユーザが情報を発信する可能性の高い発信位置や発信範囲を推定することができる。
【００２４】
さらに例示すると、雨や雷、花火等、局所的に発生し得るイベントに関する情報の投稿を手掛かりにして、位置情報が付されている少数のユーザの位置に従い、位置を特定できないユーザの位置を推定する。これは、ソーシャルメディアサービスのユーザの多くが、上記のようなイベントを観測したときに、そのイベントに関した投稿を行なっており、局所的な地域で観測されるイベントに対する内容が、複数のユーザによって同じ時刻帯に投稿された場合には、それらの情報を投稿したユーザどうしが近くにいる可能性が高いからである。
【００２５】
そこで、実施例によれば、ソーシャルメディアサービス等を利用して発信された情報のうち、発信位置が特定されている情報の数が少なくても、位置が特定されている情報と、されていない情報との相関性が高い場合には、特定されている位置から情報が発信されたとして取り扱う。これによって、位置が特定された需要のサンプルを多く抽出することができるようになり、マーケティング等に利用することができるようになる。
【００２６】
なお、実施例では、局所的なキーワード又はそれに類似したキーワ―ドを含む情報の発信を、同じ時間帯又は同じ時間帯の事象について投稿していると予測されることを、「イベント発言同期」と呼ぶことがある。
【００２７】
もちろん、異なる地域で同じイベント（例えば、降雨）が発生している可能性がある。そのため、実施例では、必ずしも一度のイベント発言同期だけで発信位置を判定するのではなく、複数回のイベント発言同期から得られる発信位置の候補を総合的に考慮して、位置情報を付さないユーザであっても、情報を発信する際の位置や範囲を推定する。なお、発信位置の候補を総合的に考慮すると、ユーザの生活圏外に比べ、生活圏内の位置が推定される確率が高いことが見込まれ、推定される位置や範囲が生活圏内に集まることが期待できる。そのため、健康に関する情報や、嗜好等に関する情報の投稿があった場合に、これらをセンサー情報として利用し、地域的な傾向の分析に利用することが可能となる。
【００２８】
図２に、実施例よって推定された位置の例が示される。図２には、実施例の説明のために、“雨”に関して投稿された情報に基づいて、位置が特定されていないユーザの位置を推定する例が示される。なお、図２（Ａ）〜（Ｄ）において、点線によりメッシュに区切られた領域によって、情報が発信された地域が定義されている。また、図２（Ａ）〜（Ｃ）において、一点鎖線で囲まれ、ドットで塗りつぶされた領域２００、２１０、及び２２０が、雨が実際に降っていたイベント発生領域である。また、図２（Ｂ）が、図２（Ａ）に対して、同じ領域の１か月後の天候を表し、図２（Ｃ）が、図２（Ａ）に対して、同じ領域の２か月後の天候を表している。つまり、図２（Ａ）〜（Ｃ）は異なる時間帯の天候の様子を表している。なお、実施例は、“雨”というキーワードに限定されず、異なる時間帯が１か月毎の差であることにも限定されない。地理的な分析対象に併せて適宜選べばよい。
【００２９】
図２（Ａ）に示される×印は、位置が特定されていないユーザとイベント発言同期した、位置が特定されているユーザの情報の発信位置を示している。この×印の位置は、雨が降っているイベント発生領域２００内はもとより、イベント発生領域２００以外の地域でも“雨”に関する情報が発信されている場合があるため、イベント発生領域２００以外にも存在し得る。
【００３０】
なお、図２（Ａ）には、当然ではあるが、位置が特定されていないユーザの発信位置を含めることはできない。実施例では、イベント発言同期が起きたことを手掛かりとして、×印を、このユーザが情報を発信した際の位置の候補としている。ただし、位置が特定されていないユーザの実際の発信位置が、×印に一致するとは限らない。あくまでも、局所的な地域で観測されるイベントに関する情報が同じ時刻帯に投稿された場合に、それらの投稿をしたユーザどうしが近くにいる可能性が高いということを利用して、×印の位置を発信位置の候補としている。
【００３１】
図２（Ｂ）には、上述したように、図２（Ａ）に対して、同じ領域の１か月後の天候が表されており、図２（Ｂ）に示される○印は、この１カ月後の時点で、位置が特定されていないユーザとイベント発言同期した、位置が特定されているユーザの情報の発信位置を示している。すなわち、○印は、この１カ月後の時点における、ユーザが情報を発信した際の位置の候補である。
【００３２】
図２（Ｃ）には、上述したように、図２（Ａ）に対して、同じ領域の２か月後の天候が表されており、図２（Ｃ）に示される△印は、この２カ月後の時点で、位置が特定されていないユーザとイベント発言同期した、位置が特定されているユーザの情報の発信位置を示している。すなわち、△印は、この２カ月後の時点における、ユーザが情報を発信した際の位置の候補である。
【００３３】
図２（Ｄ）には、図２（Ａ）〜（Ｃ）に示された×印、○印、及び△印が示されている。つまり、異なる時間帯全てにおける、位置が特定されていないユーザの発信位置の候補が示されている。そして、図２（Ｄ）に示されるように、推定領域２３０で示される範囲内に発信位置の候補が集中している。これは、特定の時間帯のイベント発言同期では、発信位置の候補となる位置が複数存在するが故に、どの位置を発信位置とするか決定するのが難しい場合があるが、異なる時間帯に跨って位置の候補を取得することにより、あるユーザとイベント発言同期する位置の傾向が重畳され、位置が特定されていないユーザが情報を発信する可能性の高い発信位置や発信範囲を推定することができる。
【００３４】
このように、イベント発言同期が発生する事象を異なる時間に跨って観測し、これらを重畳することで、単独の時間帯で偶然発生したイベント発言同期の影響が抑えられ、より確度の高い発信位置を推定できることとなる。なお、発信位置の候補が集中する領域が複数ある場合には、それらの領域を含む範囲を発信範囲としてもよい。
【００３５】
図３に、実施例の位置推定装置のハードウェア構成の例が示される。実施例の相関抽出装置の一例であるサーバ３００は、ＣＰＵ３１０、メモリコントローラ３２０、メモリ３３０、メモリバス３４０、ＩＯバスコントローラ３５０、ＮＩＣ３６０、及びＩＯバス３７０を含み、ＩＯバス３７０には記憶装置３８０が接続される。
【００３６】
メモリバス３４０に接続されたメモリ３３０には、サーバ３００の各種処理を実行するためのプログラムが格納されている。ＣＰＵ３１０は、メモリコントローラ３２０を介して、メモリ３３０からプログラムを読み出し、各種処理を実行する。ＣＰＵ３１０によって実行される各種処理の実行に伴い、メモリ３３０に対するデータの書き込み及び読み出しがメモリコントローラ３２０を介して実行される。
【００３７】
ＣＰＵ３１０は、ＩＯバスコントローラ３５０を介して、ＩＯバス３７０に接続されたＮＩＣ３６０にデータを転送し、また、ＮＩＣ３６０からデータやパケットを受け取る。ＣＰＵ３１０は、ＩＯバスコントローラ３５０を介して、ＩＯバス３７０に接続された記憶装置３８０からデータを読み出し、また記憶装置３８０にデータを書き込む。
【００３８】
ＣＰＵ３１０は、各種処理を実行するための１以上のＣＰＵコアを含んでいてもよい。また、各ＣＰＵコアは１以上のプロセッサを含んでいてもよい。なお、ＣＰＵ３１０が複数のＣＰＵコアを含む場合には、当該各種処理を、複数のＣＰＵコアに協業させて実行させてもよく、又はそのうちの１つのＣＰＵコアに実行させてもよい。また、各ＣＰＵコアが複数のプロセッサを含む場合には、当該各種処理を、複数のプロセッサに協業させて実行させてもよく、又はそのうちの１つのプロセッサに実行させてもよい。
【００３９】
メモリ３３０は、例えばＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのＲＡＭである。記憶装置３８０は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリなどの不揮発性メモリ、又はＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の磁気ディスク装置である。
【００４０】
なお、ＣＰＵ３１０、メモリコントローラ３２０、メモリ３３０、ＮＩＣ３６０、及び、記憶装置３８０が同じバスに接続された構成をサーバ３００に適用してもよい。図３に示されるハードウェア構成によって、図４に示される機能ブロックが実現され、図５、７、１１、１２及び１４に示される処理が実行される。
【００４１】
図４に、実施例の位置推定装置の機能ブロックの例が示される。図３に示された、位置推定装置の一例であるサーバ３００は、ワーキングメモリとして使用されるメモリ３３０にロードされたプログラムが、ＣＰＵ３１０によって実行されることにより、設定部４００、取得部４１０、分割部４２０、選択部４３０、判定部４４０、登録部４５０、集計部４６０、及び、算出部４７０として機能する。なお、図４に示される各機能ブロックにより実行される位置情報推定方法における処理が、図５、７、１１、１２及び１４に示される処理と対応させて後述される。
【００４２】
図５に、実施例のイベントテーブルを作成するための処理の例が示される。図５に示される処理は、図６に示されるイベントテーブル６００を作成するために、図３に示されるメモリ３３０にロードされたプログラムをＣＰＵ３１０が実行することによって実行される。図５に示される処理によって、イベント発言同期が起きやすいイベントを表すキーワードが抽出され、このキーワードがイベントテーブル６００に登録されることとなる。
【００４３】
なお、図５に示される処理が実行される理由は、図２に沿って説明したイベント発言同期が起きたかどうかを判定する際のキーワードとして、どのキーワード（単語）が効果的であるかを決める必要があるからである。図５に示される処理によって、既に位置が特定されているユーザによって発信された情報に含まれるキーワード（単語）が、局所的に使用されたキーワード（単語）であるかどうかを判定して、イベント発言同期を判定する際に効果的なキーワード（単語）が抽出されることとなる。
【００４４】
図５に示される処理が処理５００により開始されると、タイムスタンプを時刻の最小値で初期化する処理５０１が、設定部４００によって実行される。処理５０１では、コンテンツテーブル１００を読み出し、タイムスタンプの時刻の最小値を基準にして、各コンテンツのタイムスタンプを規格化することで、各コンテンツのタイムスタンプの時刻を初期化する。そして、処理５０１では、初期化されたタイムスタンプを、タイムスタンプｔ５５０として、メモリ３３０又は記憶装置３８０に格納する。
【００４５】
タイムスタンプが［ｔ、ｔ＋ｒ）の範囲のコンテンツを取得する処理５０２が、取得部４１０によって実行される。処理５０２では、処理５０１により初期化されたタイムスタンプに従い、コンテンツテーブル１００で管理されているコンテンツのうち、［ｔ、ｔ＋ｒ）の時間範囲に含まれるコンテンツを取得する。すなわち、処理５０２によって、時刻ｔから単位時間ｒの期間に含まれるコンテンツが取得される。そして、処理５０２では、時刻ｔから単位時間ｒの期間に含まれるコンテンツを、コンテンツテーブル１００の部分データ（時刻ｔ）５６０として、メモリ３３０又は記憶装置３８０に格納する。
【００４６】
コンテンツテーブルの部分データ（時刻ｔ）５６０に含まれる、全てのコンテンツをキーワード（単語）に分割する処理５０３が、分割部４２０によって実行される。処理５０３では、例えば、時刻ｔから単位時間ｒの期間に含まれていたコンテンツが“雨降り”であれば、このコンテンツを、“雨”及び“降り”の２つのキーワード（単語）に分割する。そして、処理５０３では、分割されたキーワード（単語）を、キーワード（単語）（時刻ｔ）５７０として、メモリ３３０又は記憶装置３８０に格納する。
【００４７】
地域毎にキーワード（単語）を選択する処理５０４が、選択部４３０によって実行される。処理５０４では、位置を識別する座標に従って分割された地域毎に、キーワード（単語）（時刻ｔ）５７０を選択する。そして、処理５０４では、地域毎に選択されたキーワード（単語）を、選択されたキーワード（単語）（時刻：ｔ、地域：ａ）５８０として、その地域と時刻が識別可能なように、メモリ３３０又は記憶装置３８０に格納する。なお、処理５０４における地域の分割単位の大きさは、推定したいユーザ位置の粗密に合わせて、適宜設定すればよい。
【００４８】
全ての地域のスコアを計算したかどうかを判定する処理５０５が、判定部４４０によって実行される。全ての地域のスコアを計算したと判定された場合に処理５１２に移り、全ての地域のスコアを計算していないと判定された場合に処理５０６に移る。
【００４９】
未選択の地域を選択する処理５０６が、選択部４３０によって実行される。処理５０６では、処理５０４によってまだ選択されていない地域について、キーワード（単語）毎のスコアを計算するために、未選択の地域を選択する。
【００５０】
キーワード（単語）を１つ選択する処理５０７が、選択部４３０によって実行される。処理５０７では、処理５０６により選択された地域について、キーワード（単語）毎のスコアを計算するために、そのうちの１つのキーワード（単語）を選択する。
【００５１】
全てのキーワード（単語）のスコアを計算したかどうかを判定する処理５０８が、判定部４４０によって実行される。処理５０８では、処理５０６により選択された地域について、全てのキーワード（単語）のスコアが計算されているかを判定するために実行される処理である。全てのキーワード（単語）のスコアを計算したと判定された場合には、他の地域についてのスコアを計算するために処理５０５に移る。全てのキーワード（単語）のスコアを計算していないと判定された場合には、処理５０９に移る。
【００５２】
スコアＳ（ａ、ｔ、ｒ、ｗ）を計算する処理５０９が、算出部４７０によって実行される。処理５０９では、処理５０６により選択された地域をａとし、処理５０２により取得された時刻［ｔ、ｔ＋ｒ）の範囲を処理の対象としていることをｔ及びｒで表わし、処理５０７により選択されたキーワード（単語）をｗとした場合の、スコアＳ（ａ、ｔ、ｒ、ｗ）を計算する。
【００５３】
このスコアＳ（ａ、ｔ、ｒ、ｗ）は、Ｓ（ａ、ｔ、ｒ、ｗ）＝Ｒ（ａ、ｔ、ｒ、ｗ）／Ｒ（！ａ、ｔ、ｒ、ｗ）により定義される。ここで、Ｒ（ａ、ｔ、ｒ、ｗ）＝Ｆ（ａ、ｔ、ｒ、ｗ）／Ｎ（ａ、ｔ、ｒ）であり、Ｒ（！ａ、ｔ、ｒ、ｗ）＝Ｆ（！ａ、ｔ、ｒ、ｗ）／Ｎ（！ａ、ｔ、ｒ）である。
【００５４】
次に、各関数の定義を説明する。Ｆ（ａ、ｔ、ｒ、ｗ）は、地域ａにおいて時刻ｔから時刻ｔ＋ｒの間にキーワード（単語）ｗを含む情報が発信された数である。Ｆ（！ａ、ｔ、ｒ、ｗ）は、地域ａ以外の地域において時刻ｔから時刻ｔ＋ｒの間にキーワード（単語）ｗを含む情報が発信された数である。Ｎ（ａ、ｔ、ｒ）は、地域ａにおいて時刻ｔから時刻ｔ＋ｒの間に情報が発信された数である。Ｎ（！ａ、ｔ、ｒ）は、地域ａ以外の地域において時刻ｔから時刻ｔ＋ｒの間に情報が発信された数である。なお、ｒはコンテンツを選択する際の時間を区切る単位時間であり、推定したいユーザ位置の特性を考慮して、適宜設定すればよい。
【００５５】
言い換えると、スコアＳ（ａ、ｔ、ｒ、ｗ）は、地域ａにおいて時刻ｔから時刻ｔ＋ｒの間にキーワード（単語）ｗを含む情報が発信された確率Ｒ（ａ、ｔ、ｒ、ｗ）と、地域ａ以外の地域において時刻ｔから時刻ｔ＋ｒの間にキーワード（単語）ｗを含む情報が発信された確率Ｒ（！ａ、ｔ、ｒ、ｗ）との比であるといえる。
【００５６】
なお、実施例では、スコアＳ（ａ、ｔ、ｒ、ｗ）＝Ｆ（ａ、ｔ、ｒ、ｗ）／Ｆ（！ａ、ｔ、ｒ、ｗ）として、局所的に使用されうるキーワード（単語）であるかどうかを判定してもよい。ただし、情報が発信される地域毎に情報の発信数自体に差があり、この情報の発信数の母数が違うにも拘らず、キーワード（単語）ｗを含む情報の数どうしを単純に比較すると、地域に特有なキーワード（単語）が母数の差によって埋もれてしまう可能性がある。
【００５７】
そのため、実施例の説明では、Ｓ（ａ、ｔ、ｒ、ｗ）＝Ｒ（ａ、ｔ、ｒ、ｗ）／Ｒ（！ａ、ｔ、ｒ、ｗ）のように、まず、ある地域で発信された情報にキーワード（単語）が含まれる確率を算出したうえで、その地域とそれ以外の地域との確率の比をとり、イベント発言同期の起こりやすいイベントに含まれるキーワード（単語）が、地域毎の情報の発信数の差に埋もれないようにする例を説明した。
【００５８】
スコアＳ（ａ、ｔ、ｒ、ｗ）が閾値よりも大きいかどうかを判定する処理５１０が、判定部４４０によって実行される。処理５１０では、処理５０９により算出されたスコアＳ（ａ、ｔ、ｒ、ｗ）が、推定したいユーザ位置の特性を考慮して適宜設定された閾値Ｔよりも大きいかどうかを判定する。算出されたスコアＳ（ａ、ｔ、ｒ、ｗ）が閾値Ｔよりも大きいと判定された場合には処理５１１に移り、算出されたスコアＳ（ａ、ｔ、ｒ、ｗ）が閾値Ｔよりも大きくないと判定された場合には、スコアＳ（ａ、ｔ、ｒ、ｗ）がまだ算出されていない単語を選択するために、処理５０７に移る。
【００５９】
キーワード（単語）を登録する処理５１１が、登録部４５０によって実行される。処理５１１では、処理５１０によって閾値ＴよりもスコアＳ（ａ、ｔ、ｒ、ｗ）が大きいと判定されたキーワード（単語）を、イベントテーブル６００に登録する。処理５１１を終えると、スコアＳ（ａ、ｔ、ｒ、ｗ）がまだ算出されていない単語を選択するために、処理５０７に移る。
【００６０】
単位時間ｒだけ進める処理５１２が、設定部４００によって実行される。処理５１２では、処理５０２により取得された時間範囲に対して、単位時間ｒだけ進んだ時間範囲に含まれるコンテンツが取得されるように、時間範囲の基準を単位時間ｒだけ進める。処理５１２によって、キーワード（単語）のスコアＳ（ａ、ｔ、ｒ、ｗ）を算出する際の対象となるコンテンツの時間範囲が、単位時間ｒだけ進められることとなる。
【００６１】
コンテンツ内の時刻の最大値を超えたかどうかを判定する処理５１３が、判定部４４０によって実行される。処理５１３では、処理５１２により単位時間ｒだけ時間が進められた結果、スコアＳ（ａ、ｔ、ｒ、ｗ）が算出されていない時間範囲があるかどうかを判定している。そして、コンテンツ内の時刻の最大値を超えていないと判定された場合には処理５０１に移り、他の時間範囲に含まれるコンテンツに関してスコアＳ（ａ、ｔ、ｒ、ｗ）を計算することとなる。他方で、コンテンツ内の時刻の最大値を超えたと判定された場合には処理５１４に移り、図５に示された処理を終える。
【００６２】
図６に、実施例のイベントテーブルの例が示される。図６に示されるイベントテーブル６００は、図５に示される処理において作成される情報であって、イベント発言同期が起きやすいイベントを表すキーワード（単語）を管理するために、図３に示されるメモリ３３０又は記憶装置３８０に格納される情報である。
【００６３】
例えば、図６に例示されるように、“雨”や“花火”等が、局所的に使用されうるキーワード（単語）であって、イベント発言同期が起きやすいイベントを表すキーワード（単語）であるとして、イベントテーブル６００で管理されている。
【００６４】
なお、イベント発言同期が起きやすいイベントを表すキーワード（単語）として、そのキーワード（単語）と相関の高いキーワード（単語）を、イベントテーブル６００で管理してもよい。例えば、“雨”に対して“豪雨”という単語は、同じ事象を表している可能性が高く、それらの単語の相関が高いといえる。このような関係にある単語については、厳密に単語が一致しなくてもイベント発言同期が起きたと判定してもよく、そのために、互いに関連付けられて、イベントテーブル６００で管理される。
【００６５】
図７に、実施例のイベント発言テーブル、既知ユーザ位置テーブル、及び、ユーザ位置候補テーブルを作成するための処理の例が示される。図７に示される処理は、図８に示されるイベント発言テーブル８００、図９に示される既知ユーザ位置テーブル９００、及び、図１０に示されるユーザ位置候補テーブル１０００を作成するために、図３に示されるメモリ３３０にロードされたプログラムをＣＰＵ３１０が実行することによって実行される。
【００６６】
図７に示される処理が処理７００により開始されると、イベントテーブルからキーワード（単語）を選択する処理７０１が、選択部４３０によって実行される。処理７０１では、図５に示される処理により作成されたイベントテーブル６００に登録されているキーワード（単語）を選択する。そして、処理７０１では、選択されたキーワードを、選択されたキーワード（単語ｗ）７５０として、メモリ３３０又は記憶装置３８０に格納する。
【００６７】
キーワード（単語ｗ）を含むコンテンツを選択する処理７０２が、選択部４３０によって実行される。処理７０２では、コンテンツテーブル１００から、処理７０１により選択されたキーワード（単語ｗ）７５０を含むコンテンツを選択する。そして、処理７０１では、選択されたコンテンツを、選択されたコンテンツ７６０として、メモリ３３０又は記憶装置３８０に格納する。
【００６８】
キーワード（単語ｗ）を含む全てのコンテンツを選択したかどうかを判定する処理７０３が、判定部４４０によって実行される。処理７０３において、キーワード（単語ｗ）７５０を含む全てのコンテンツを選択していないと判定された場合には、処理７０４に移る。キーワード（単語ｗ）７５０を含む全てのコンテンツを選択したと判定された場合には処理７０８に移り、図７に示される処理を終える。
【００６９】
コンテンツをイベント発言テーブルに登録する処理７０４が、登録部４５０によって実行される。処理７０４では、処理７０１により選択されたキーワード（単語ｗ）７５０を含むコンテンツがあれば、そのコンテンツのタイムスタンプに基づき、その時間帯に、そのコンテンツをユーザが発信したことを示すために、図８にも示されるように、イベント発言テーブル８００において“１”のフラグを記録する。
【００７０】
例えば、処理７０１において、イベントテーブル６００から選択されたキーワード（単語ｗ）７５０が“雨”であったとする。この場合、図１に示されるコンテンツテーブル１００では、ｕｓｅｒ００１が、“２０１２０７０２：０１時”に“雨が降ってきた。”という情報を発信しているため、処理７０４では、イベント発言テーブル８００において、ｕｓｅｒ００１の“２０１２０７０２：０１時”の時間範囲に“１”のフラグを記録することとなる。
【００７１】
コンテンツに位置情報が関連付けられているかどうかを判定する処理７０５が、判定部４４０によって実行される。処理７０５では、図１に示されるコンテンツテーブル１００を読み出し、処理７０２により選択されたコンテンツ７６０に位置情報が関連付けられているかどうかを判定する。関連付けられていると判定された場合には処理７０６に移り、関連付けられていないと判定された場合には処理７０７に移る。
【００７２】
位置情報とユーザＩＤを既知ユーザ位置テーブルに登録する処理７０６が、登録部４５０によって実行される。処理７０６では、図１に示されるコンテンツテーブル１００に従い、処理７０２により選択されたコンテンツ７６０のユーザＩＤ及び位置を、図９に示されるように、既知ユーザ位置テーブル９００に登録する。例えば、処理７０２により選択されたコンテンツ７６０が、図１に示される“雨が降ってきた。”である場合には、このコンテンツに位置情報“ｌｏｃ０５２”が関連付けられているため、処理７０６により、ｕｓｅｒ００１及び位置情報“ｌｏｃ０５２”が、既知ユーザ位置テーブル９００に登録される。なお、処理７０６を終えると、処理７０１により選択されたキーワード（単語）を含む、他のコンテンツを選択するために、処理７０２に移る。
【００７３】
ユーザＩＤをユーザ位置候補テーブルに登録して、位置情報を初期化する処理７０７が、設定部４００によって実行される。処理７０７は、選択されたコンテンツ７６０に位置情報が関連付けられていない場合に実行される処理である。つまり、選択されたコンテンツ７６０が発信された位置が特定できないということである。そのため、このコンテンツは、図１１及び１２に示される、発信位置の候補を推定するための処理の対象となり、処理７０７により、ユーザ位置候補テーブル１０００に登録される。そして、後述される図１１及び１２に示される処理のために、候補となる発信位置の度合いを示す値を初期化しておく。処理７０７を終えると、処理７０１により選択されたキーワード（単語）を含む、他のコンテンツを選択するために、処理７０２に移る。
【００７４】
図８に、実施例のイベント発言テーブルの例が示される。図８に示されるイベント発言テーブル８００は、図７に示される処理において作成される情報であって、イベント発言同期が起きやすいイベントを表すキーワード（単語）を含むコンテンツを発信したかどうかを時間帯毎に管理するために、図３に示されるメモリ３３０又は記憶装置３８０に格納される情報である。
【００７５】
処理７０１により選択されたキーワード（単語）は、イベントテーブル６００に登録された、イベント発言同期が起きやすいイベントを表すキーワード（単語）であり、このキーワード（単語）を含むコンテンツを発信したユーザが、処理７０４によって、時間帯毎に、イベント発言テーブル８００に登録されている。
【００７６】
なお、例えば、図８に示されるタイムスタンプ“２０１２０４０１：００時”は、西暦２０１２年４月１日の０時００分から西暦２０１２年４月１日１時００分になるまでの期間を表しており、このタイムスタンプ“２０１２０４０１：００時”においては、イベント発言同期が起きやすいイベントを表すキーワード（単語）を含むコンテンツを、ｕｓｅｒ００１、ｕｓｅｒ０１４が発信していたことが、フラグ“１”により管理されている。
【００７７】
ところで、図８に示されるイベント発言テーブル８００では、ある時間帯に、イベント発言同期が起きやすいイベントを表すキーワード（単語）を含むコンテンツをユーザが発信したかどうかを管理するために、フラグ“０”及び“１”により管理しており、その時間帯にあるユーザによって複数回の発信があったかどうかまでは管理していない。これは、後述するが、既知ユーザ位置テーブル９００において、ユーザの発言時刻毎にコンテンツの発信位置を管理しているからであり、この発信時刻毎の発信位置を使用すれば、ユーザ位置の候補を統計的に集計できるからである。ただし、実施例はこれに限定されず、イベント発言テーブル８００において、コンテンツの発信の有無だけでなく、発信の回数を管理してもよい。
【００７８】
図９に、実施例の既知ユーザ位置テーブルの例が示される。図９に示される既知ユーザ位置テーブル９００は、図７に示される処理において作成される情報であって、コンテンツの発信位置を特定されているユーザを管理するために、図３に示されるメモリ３３０又は記憶装置３８０に格納される情報である。
【００７９】
図９に示されるように、例えば、ｕｓｅｒ００１が、タイムスタンプ“２０１２０５０２：０９時”の期間内に、位置“ｌｏｃ０５２”からコンテンツを発信したことが、コンテンツテーブル１００に管理されている情報を使用した処理７０６により登録されて、既知ユーザ位置テーブル９００に管理されている。
【００８０】
さらに、例示すると、既知ユーザ位置テーブル９００では、ｕｓｅｒ０１４がタイムスタンプ“２０１２０６０３：２３時”の期間内に位置“ｌｏｃ１１８”からコンテンツを発信したこと、及び、ｕｓｅｒ０１４がタイムスタンプ“２０１２０４０１：０１時”の期間内に位置“ｌｏｃ１１８”からコンテンツを発信したこと、が別々に管理されている。つまり、同じ発信位置だとしても、コンテンツが発信された時間帯が異なれば、それらが独立して管理されている。
【００８１】
さらに、例示すると、既知ユーザ位置テーブル９００では、ｕｓｅｒ０１４がタイムスタンプ“２０１２０４０１：０１時”の期間内に位置“ｌｏｃ１１８”からコンテンツを発信したこと、及び、ｕｓｅｒ０１４がタイムスタンプ“２０１２０４０１：０１時”の期間内に位置“ｌｏｃ１１９”からコンテンツを発信したこと、別々に管理されている。つまり、同じ時間帯でも、異なる位置からコンテンツが発信されている場合には、それらが独立して管理されている。
【００８２】
図１０に、実施例のユーザ位置候補テーブルの例が示される。図１０に示されるユーザ位置候補テーブル１０００は、図７に示される処理において作成される情報であって、コンテンツの発信位置が特定されていないユーザの発信位置の候補を管理するために、図３に示されるメモリ３３０又は記憶装置３８０に格納される情報である。
【００８３】
ユーザ位置候補テーブル１０００では、処理７０５によって、コンテンツに位置情報が関連付けられていないと判定されたユーザを管理している。例えば、図１のコンテンツテーブルに示されるように、ｕｓｅｒ００２は、コンテンツの発信位置が登録されていない。処理７０７では、ｕｓｅｒ００２が、イベント発言同期が起きやすいイベントを表すキーワード（単語）を含むコンテンツを発信していたとしても、その発信位置が関連付けられていない場合に、コンテンツの発信位置を特定できないユーザとして、ユーザ位置候補テーブル１０００に登録して管理する。
【００８４】
なお、ユーザ位置候補テーブル１０００は、図１０に示されるように、登録されたユーザ毎に、発信位置の候補となる各位置が対応付けられており、処理７０７を終えた時点では、候補となる発信位置の度合いを示す値が、全ての位置について初期化されている。例えば、ユーザ位置候補テーブル１０００に、ｕｓｅｒ００２が登録された時点では、各位置についての値が“０”で初期化されている。
【００８５】
そして、後述される図１１及び１２の処理によって、ｕｓｅｒ００２がコンテンツを発信する際の候補となる位置が推定されると、その推定された位置について、値がインクリメントされていく。その結果、図１０に示されるように、候補となる発信位置の度合いを示す値が、位置“ｌｏｃ００１”が“０”、位置“ｌｏｃ００２”が“０”、・・・、位置“ｌｏｃ１１８”が“１０”、位置“ｌｏｃ１１９”が“１”、・・・、位置“ｌｏｃ２０４”が“１”、・・・のように更新されて管理されることとなる。なお、これらの値を使用して、発信位置が特定されていないユーザの発信位置又は発信範囲を特定する処理が、図１４に示される。
【００８６】
図１１に、実施例のユーザ位置候補テーブルを更新するための処理の例が示される。図１１に示される処理は、図１０に示されるユーザ位置候補テーブル１０００を更新するために、図３に示されるメモリ３３０にロードされたプログラムをＣＰＵ３１０が実行することによって実行される。
【００８７】
図１１に示される処理が処理１１００により開始されると、タイムスタンプを時刻の最小値で初期化する処理１１０１が、設定部４００によって実行される。処理１１０１では、イベント発言テーブル８００を読み出し、タイムスタンプの時刻の最小値を基準にしてタイムスタンプを規格化することで、タイムスタンプの時刻を初期化する。そして、処理１１０１では、初期化されたタイムスタンプを、タイムスタンプｔ１１５０として、メモリ３３０又は記憶装置３８０に格納する。
【００８８】
タイムスタンプが［ｔ、ｔ＋ｒ）の範囲のデータを取得する処理１１０２が、取得部４１０によって実行される。処理１１０２では、処理１１０１により初期化されたタイムスタンプに従い、イベント発言テーブル８００で管理されているデータのうち、［ｔ、ｔ＋ｒ）の時間範囲に含まれるデータを取得する。すなわち、処理１１０２によって、時刻ｔから単位時間ｒの期間に含まれるデータが取得される。例えば、単位時間ｒが１時間と設定されている場合には、処理１１０２により取得されるデータの範囲は、図８に示されるイベント発言テーブル８００の行毎となる。そして、処理１１０２では、時刻ｔから単位時間ｒの期間に含まれるデータを、イベント発言テーブル８００の部分データ（時刻ｔ）１１６０として、メモリ３３０又は記憶装置３８０に格納する。
【００８９】
処理１１０２に次いで、位置候補を登録する処理１１０３が実行されるが、処理１１０３の詳細については、図１２に沿って後述する。
【００９０】
単位時間ｒだけ進める処理１１０４が、設定部４００によって実行される。処理１１０４では、処理１１０２により取得された時間範囲に対して、単位時間ｒだけ進んだ時間範囲に含まれるデータが取得されるように、時間範囲の基準を単位時間ｒだけ進める。処理１１０４によって、位置候補を登録する際の対象となるデータの時間範囲が、単位時間ｒだけ進められることとなる。
【００９１】
データ内の時刻の最大値を超えたかどうかを判定する処理１１０５が、判定部４４０によって実行される。処理１１０５では、処理１１０４により単位時間ｒだけ時間が進められた結果、位置候補が登録されていない時間範囲があるかどうかを判定している。そして、データ内の時刻の最大値を超えていないと判定された場合には処理１１０１に移り、他の時間範囲に含まれるデータに関して位置候補を登録することとなる。他方で、コンテンツ内の時刻の最大値を超えたと判定された場合には処理１１０６に移り、図１１に示された処理を終える。
【００９２】
図１２に、実施例のユーザ位置候補テーブルを更新するための処理における処理の詳細例が示される。図１２に示される処理は、図１１に示される処理１１０３の詳細例であって、図３に示されるメモリ３３０にロードされたプログラムをＣＰＵ３１０が実行することによって実行される。
【００９３】
図１１に示される処理１１０２に次いで、時刻［ｔ、ｔ＋ｒ）において、コンテンツを発信したユーザを選択する処理１２００が、選択部４３０によって実行される。処理１２００では、処理１１０２により取得されたイベント発言テーブルの部分データ（時刻ｔ）１１６０に基づき、時刻［ｔ、ｔ＋ｒ）において、“１”のフラグが登録されているユーザを選択する。
【００９４】
全てのユーザを選択したかどうかを判定する処理１２０１が、判定部４４０によって実行される。全てのユーザを選択したと判定された場合には処理１２０６に移り、全てのユーザを選択していないと判定された場合には処理１２０３に移る。
【００９５】
選択されたユーザの位置情報が既知かどうかを判定する処理１２０３が、判定部４４０によって実行される。処理１２０３では、コンテンツテーブル１００を参照し、処理１２００により選択されたユーザの位置が登録されているかどうかを判定する。選択されたユーザの位置情報が既知である場合には処理１２０４に移り、選択されたユーザの位置情報が既知でない場合には処理１２０５に移る。
【００９６】
ユーザ情報を登録する処理１２０４が、登録部４５０によって実行される。処理１２０４は、選択されたユーザの位置情報が既知であると判定された場合に実行される処理であって、処理１２００により選択されたユーザのうち、位置が特定されているユーザを、位置情報既知ユーザテーブル１３００に登録する。処理１２０４を終えると、未選択のユーザを選択するために処理１２００に移る。
【００９７】
ユーザ情報を登録する処理１２０５が、登録部４５０によって実行される。処理１２０５は、選択されたユーザの位置情報が既知でないと判定された場合に実行される処理であって、処理１２００により選択されたユーザのうち、位置が特定されていないユーザを、位置情報未知ユーザテーブル１３１０に登録する。処理１２０５を終えると、未選択のユーザを選択するために処理１２００に移る。
【００９８】
位置情報が既知のユーザに基づき、位置情報が未知のユーザの位置の候補を更新する処理１２０６が、設定部４００によって実行される。処理１２０６では、位置情報既知ユーザテーブル１３００に登録されているユーザの各々について、処理１１０２において設定されている［ｔ、ｔ＋ｒ）の時間範囲における位置を抽出する。この位置の抽出は、図９に示される既知ユーザ位置テーブル９００において、タイムスタンプが［ｔ、ｔ＋ｒ）の時間範囲に含まれ位置を各々集計すればよい。そして、処理１２０６では、位置情報未知ユーザテーブル１３１０に登録されているユーザの各々について、ユーザ位置候補テーブル１０００において、位置毎に、集計された数をインクリメントして更新する。このように、ある時間帯でイベント発言同期が起きたことを利用して、コンテンツの発信位置を特定できていないユーザの発信位置の候補を、発信位置が既知の位置から発信されたと推定し、推定された位置毎に、発信位置の候補を、既知の発信数の集計値を用いて評価する。処理１２０６を終えると、図１１に示される処理１１０４に移る。
【００９９】
なお、発信位置の候補を評価する場合に、コンテンツに含まれている情報に従い、どの時間帯の既知の発信位置に従って、ユーザ位置候補テーブル１０００の値をインクリメントするかを考慮してもよい。例えば、同じ時間帯に起きたイベント発言同期に従って、同じ時間帯の既知の発信位置を候補位置としてもよい。また、例えば、コンテンツが“１時間前の雨の時に外にいた。”であった場合に、発信位置の候補としては、当該コンテンツが発信された時間帯ではなく、１時間前の時間帯のコンテンツとのイベント発言同期を考慮することが好ましい。この場合、１時間前のタイムスタンプが付されている既知の位置に基づき、ユーザ位置候補テーブル１０００の値をインクリメントすることとなる。
【０１００】
このように、コンテンツに過去や未来を示唆するキーワードが含まれている場合には、必ずしも同時間帯でイベント発言同期を評価するのではなく、キーワードに応じた適切な時間帯どうしでイベント発言同期を評価し、異なる時間帯での既知の位置を利用して、発信位置の候補を評価することが好ましい。
【０１０１】
図１３に、実施例の位置情報既知ユーザ及び位置情報未知ユーザの例が示される。図１３（Ａ）に示される位置情報既知ユーザテーブル１３００及び図１３（Ｂ）に示される位置情報未知ユーザテーブル１３１０は、図１２に示される処理によって作成される情報であって、情報の発信位置が特定されているユーザと情報の発信位置が特定されていないユーザとを管理するために、図３に示されるメモリ３３０又は記憶装置３８０に格納される情報である。
【０１０２】
図１３（Ａ）に示される位置情報既知ユーザテーブル１３００には、処理１２０４により、処理１２００により選択されたユーザのうち、位置が特定されているユーザが登録されている。例えば、ｕｓｅｒ０１４の位置は特定されているとして、位置情報既知ユーザテーブル１３００に登録されている。
【０１０３】
図１３（Ｂ）に示される位置情報未知ユーザテーブル１３１０には、処理１２０５により、処理１２００により選択されたユーザのうち、位置が特定されていないユーザが登録されている。例えば、ｕｓｅｒ００２の位置は特定されていないとして、位置情報未知ユーザテーブル１３１０に登録されている。
【０１０４】
図１４に、実施例のユーザ推定位置テーブルを登録するための処理の例が示される。図１４に示される処理は、図１６に示されるユーザ推定位置テーブル１６００を作成するために、図３に示されるメモリ３３０にロードされたプログラムをＣＰＵ３１０が実行することによって実行される。
【０１０５】
図１４に示される処理が処理１４００により開始されると、全ての位置情報におけるイベント発言を集計する処理１４０１が、集計部４６０によって実行される。処理１４０１では、既知ユーザ位置テーブル９００を読み出し、位置毎のイベント発言を集計する。集計された結果、例えば、図１５の位置毎のイベント発言の集計テーブル１５００に示されるように、位置毎に、イベント発言同期が起きやすいイベントを表すキーワード（単語）を含むコンテンツが発信された数の合計が集計される。
【０１０６】
さらに、処理１４０１では、例えば、この集計数の逆数を、位置毎のコンテンツの発信数の差を考慮する際の重み係数とする。位置毎のイベント発言の位置毎の重み係数１４５０として、メモリ３３０又は記憶装置３８０に格納する。例えば、人口が密度等の違いによって、位置毎にイベント発言の行われやすさがある。後述するが、この差を吸収するために、重み係数１４５０を計算し、イベント発言数の標準化に使用する。これにより、イベント発言の多い地域の発言数は抑えられ、イベント発言の少ない地域と同等に評価することができる。
【０１０７】
一人のユーザの位置候補リストを取得する処理１４０２が、取得部４１０によって実行される。処理１４０２では、処理１２０６により値がインクリメントされたユーザ位置候補テーブル１０００において、一人のユーザを選択し、このユーザに関する位置毎の値を含むリストを、ユーザの位置候補リスト１４６０として取得する。そして、処理１４０２では、ユーザの位置候補リスト１４６０を、メモリ３３０又は記憶装置３８０に格納する。
【０１０８】
全てのユーザを選択したかどうかを判定する処理１４０３が、判定部４４０によって実行される。処理１４０３は、ユーザ位置候補テーブルに登録されたユーザについて、図１４に示される発信位置の推定を行うために実行される処理である。全てのユーザを選択したと判定された場合には処理１４０９に移り、図１４に示される処理を終える。全てのユーザを選択していないと判定された場合には、処理１４０４に移る。
【０１０９】
重み係数及びガウシアンフィルタを適用する処理１４０４が、算出部４７０によって実行される。処理１４０４では、処理１４０１により算出された位置毎の重み係数１４５０と、処理１４０２により取得された位置候補リスト１４６０に含まれる位置毎の値との積を計算する。そして、処理１４０４では、この積の値にガウシアンフィルタを適用して、隣接する地域間での集計数の影響を考慮する。そして、処理１４０４では、重み係数及びガウシアンフィルタが適用されたユーザの位置候補リストを、フィルタ適用後の位置候補リスト１４７０として、メモリ３３０又は記憶装置３８０に格納する。
【０１１０】
フィルタ適用後の位置候補リストの平均値を算出する処理１４０５が、算出部４７０によって実行される。処理１４０５ではフィルタ適用後の位置候補リスト１４７０に含まれる、位置毎の値の平均値を算出し、算出された平均値１４８０をメモリ３３０又は記憶装置３８０に格納する。
【０１１１】
各位置においてポアソン累積分布の値を求め、その値が閾値Ｐより大きい場合に登録する処理１４０６が、算出部４７０によって実行される。処理１４０６では位置候補リスト１４７０において、位置毎の値が平均値１４８０からどの程度ずれているかを考慮するために、ポアソン累積分布の値を求める。そして、その求めた値が閾値Ｐよりも大きい場合に、位置とその値とを対応付けを、各位置候補におけるポアソン累積分布リスト１４９０として、メモリ３３０又は記憶装置３８０に格納する。
【０１１２】
ポアソン累積分布リストに値があるかどうかを判定する処理１４０７が、判定部４４０によって実行される。処理１４０７では、各位置候補におけるポアソン累積分布リスト１４９０において、閾値Ｐを超える値があるかどうかを判定している。仮に閾値Ｐを超える値がない場合には、集計したイベント発言が統計的に偶然起きたものであると判定されたということである。つまり、ポアソン累積分布リストに値がないと判定された場合には、このユーザの推定位置を決められないとして、他のユーザについての評価をするために、処理１４０２に移る。ポアソン累積分布リストに値があると判定された場合には、処理１４０８に移る。
【０１１３】
最大値に対応する候補位置を推定位置として登録する処理１４０８が、登録部４５０によって実行される。処理１４０８では、各位置候補におけるポアソン累積分布リスト１４９０に含まれる、閾値Ｐを超えた値のうち、最大値と対応する候補位置を、ユーザがコンテンツを配信する場合の推定位置として、ユーザ推定位置テーブル１６００に登録する。なお、処理１４０８では、最大値に対応する候補位置だけでなく、閾値Ｐを超えた値に対応する候補位置全て、又は、それらのうちさらに別の閾値を超えた複数の地域など、複数の地域を、当該ユーザがコンテンツを発信する際の推定範囲として、ユーザ推定位置テーブル１６００に登録してもよい。
【０１１４】
図１５に、実施例のイベント発言の集計数の例が示される。図１５に示される、位置毎のイベント発言の集計テーブル１５００は、図１４に示される処理によって作成される情報であって、地域毎のイベント発言の集計数を管理するために、図３に示されるメモリ３３０又は記憶装置３８０に格納される情報である。
【０１１５】
処理１４０１により集計されたイベント発言の集計数の例が、図１５の位置毎のイベント発言の集計テーブル１５００に示されている。例えば、位置“ｌｏｃ０５２”では、“１０２３”回のイベント発言があったことが例示されている。
【０１１６】
図１６に、実施例のユーザ推定位置テーブルの例が示される。図１６に示されるユーザ推定位置テーブル１６００は、図１４に示される処理によって作成される情報であって、情報の発信位置が特定されていないユーザによる情報の発信位置として推定された発信位置や発信範囲を管理するために、図３に示されるメモリ３３０又は記憶装置３８０に格納される情報である。
【０１１７】
処理１４０８により登録された、ユーザ毎の推定位置が、図１６のユーザ推定位置テーブル１６００に示されている。例えば、ｕｓｅｒ００２については、推定位置が“ｌｏｃ１１８”であると関連付けられている。これは、ｕｓｅｒ００２が発信したコンテンツは、その発信位置が特定できない場合であっても、位置“ｌｏｃ１１８”から発信されるとみなすことを表している。さらに例示すれば、ｕｓｅｒ００８については、推定位置が“ｌｏｃ０１０”及び“ｌｏｃ０１１”であると関連付けられている。これは、ｕｓｅｒ００８が発信したコンテンツは、その発信位置が特定できない場合であっても、位置“ｌｏｃ０１０”及び“ｌｏｃ０１１”を含む範囲から発信されるとみなすことを表している。
【０１１８】
上述の実施例によれば、発信位置が未知の第１情報であっても、発信位置が既知の第２情報に含まれていたキーワードを含み、第２情報と同じ時間帯に発信されていれば、該既知の発信位置から発信されたと推定して、発信位置を付与する。これによって、発信位置を特定するための位置情報が付されていない情報の発信位置を推定して、例えば、地理的な傾向を分析する際の情報量を増やすことができる。
【０１１９】
また、第１情報を発信したユーザの発信位置を推定することを、複数の時間帯で行い、これらの結果をまとめることで、情報に当該キーワードが含まれていなくても、このユーザが情報発信する可能性の高い発信位置や発信範囲を推定することができる。
【符号の説明】
【０１２０】
１００  コンテンツテーブル
２００、２１０、２２０  イベント発生領域
２３０  推定領域
３００  サーバ
３１０  ＣＰＵ
３２０  メモリコントローラ
３３０  メモリ
３４０  メモリバス
３５０  ＩＯバスコントローラ
３６０  ＮＩＣ
３７０  ＩＯバス
３８０  記憶装置
４００  設定部
４１０  取得部
４２０  分割部
４３０  選択部
４４０  判定部
４５０  登録部
４６０  集計部
４７０  算出部
６００  イベントテーブル
８００  イベント発言テーブル
９００  既知ユーザ位置テーブル
１０００  ユーザ位置候補テーブル
１３００  位置情報既知ユーザテーブル
１３１０  位置情報未知ユーザテーブル
１５００  位置毎のイベント発言の集計テーブル
１６００  ユーザ推定位置テーブル
【図１】
2015022614.tif 000003
【図２】
2015022614.tif 000004
【図３】
2015022614.tif 000005
【図４】
2015022614.tif 000006
【図５】
2015022614.tif 000007
【図６】
2015022614.tif 000008
【図７】
2015022614.tif 000009
【図８】
2015022614.tif 000010
【図９】
2015022614.tif 000011
【図１０】
2015022614.tif 000012
【図１１】
2015022614.tif 000013
【図１２】
2015022614.tif 000014
【図１３】
2015022614.tif 000015
【図１４】
2015022614.tif 000016
【図１５】
2015022614.tif 000017
【図１６】
2015022614.tif 000018