(57)【要約】【課題】  ミニブログ等のソーシャル・メディアにおいて、プロフィール欄にロケーションに関する記載のないユーザに関連するロケーションを推定する技術を提供する。【解決手段】  ソーシャル・メディアにおいてユーザとロケーションとの対応を推定する方法であり、第１のロケーションと対応付けられた第１のユーザが前記ソーシャル・メディアにポストした第１のコンテンツを入手するステップと、前記第１のロケーションに基づいて、前記第１のコンテンツの地域的な局所性を判断するステップと、ロケーションと対応付けられていない第２のユーザが前記ソーシャル・メディアにポストした第２のコンテンツを入手するステップと、前記第１のコンテンツと前記第２のコンテンツとの関連性を判断するステップと、前記局所性と前記関連性とに基づいて、前記第１のロケーションを前記第２のユーザと対応付けるステップとを備える。【選択図】  図６
2014089583.tif 000002
【特許請求の範囲】
【請求項１】
ソーシャル・メディアにおいてユーザとロケーションとの対応を推定する方法であり、
第１のロケーションと対応付けられた第１のユーザが前記ソーシャル・メディアにポストした第１のコンテンツを入手するステップと、
前記第１のロケーションに基づいて、前記第１のコンテンツの地域的な局所性を判断するステップと、
ロケーションと対応付けられていない第２のユーザが前記ソーシャル・メディアにポストした第２のコンテンツを入手するステップと、
前記第１のコンテンツと前記第２のコンテンツとの関連性を判断するステップと、
前記局所性と前記関連性とに基づいて、前記第１のロケーションを前記第２のユーザと対応付けるステップと
を備える方法。
【請求項２】
前記局所性を判断するステップは、
ランダムに抽出した前記第１のコンテンツの地域的な分布を示す基準分布を演算するステップと、
特定のイベントに関する前記第１のコンテンツの地域的な分布を示すイベント分布を演算するステップと、
前記基準分布と前記イベント分布との差に基づいて、前記第１のコンテンツの地域的な局所性を判断するステップと
を含む請求項１に記載の方法。
【請求項３】
前記特定のイベントに関する前記第１のコンテンツは、特定のキーワードを含む前記第１のコンテンツである請求項２に記載の方法。
【請求項４】
前記特定のキーワードは、一定時間当たりの出現回数が予め定められた閾値を超えたキーワードである請求項３に記載の方法。
【請求項５】
前記第１のコンテンツの地域的な局所性は、前記基準分布と前記イベント分布とのKL-divergenceにより演算される請求項２に記載の方法。
【請求項６】
前記ソーシャル・メディアは、各ユーザに対応付けられたプロフィールを備え、前記プロフィールはロケーション欄を備え、
前記基準分布を演算するステップは、
ランダムに抽出した前記第１のコンテンツをポストしたユーザに対応する前記ロケーション欄に記載された地名を取得するステップと、
地名と緯度経度との対応を示す地名辞書を参照し、前記取得された地名に基づいて、前記取得された地名に対応する緯度経度を求めるステップと、
予め対象地域を分割した複数のセルのうち、前記求められた緯度経度に対応する単一のセルを特定するステップと
を含む請求項２に記載の方法。
【請求項７】
前記ソーシャル・メディアは、各ユーザに対応付けられたプロフィールを備え、前記プロフィールはロケーション欄を備え、
前記イベント分布を演算するステップは、
特定のイベントに関する前記第１のコンテンツをポストしたユーザに対応する前記ロケーション欄に記載された地名を取得するステップと、
地名と緯度経度との対応を示す地名辞書を参照し、前記取得された地名に基づいて、前記取得された地名に対応する緯度経度を求めるステップと、
予め対象地域を分割した複数のセルのうち、前記求められた緯度経度に対応する単一のセルを特定するステップと
を含む請求項２に記載の方法。
【請求項８】
前記特定された単一のセルが前記第１のロケーションである請求項６又は７に記載の方法。
【請求項９】
前記対象地域の分割精度は、変更可能である請求項６又は７に記載の方法。
【請求項１０】
前記関連性を判断するステップは、
前記第１のコンテンツと前記第２のコンテンツとが同一の特定のイベントに関するものであるか否かを判断する請求項１に記載の方法。
【請求項１１】
前記関連性を判断するステップは、
前記第１のコンテンツと前記第２のコンテンツとが同一の特定のキーワードを含むものであるか否かを判断する請求項１に記載の方法。
【請求項１２】
前記対応付けるステップは、前記局所性が予め定められた閾値よりも高いことを条件に、前記第１のロケーションを前記第２のユーザと対応付ける請求項１に記載の方法。
【請求項１３】
前記対応付けるステップは、前記局所性がより高いことに応答して、前記第１のロケーションを前記第２のユーザとより強く対応付ける請求項１に記載の方法。
【請求項１４】
前記対応付けるステップは、前記関連性が予め定められた閾値よりも高いことを条件に、前記第１のロケーションを前記第２のユーザと対応付ける請求項１に記載の方法。
【請求項１５】
前記対応付けるステップは、前記関連性がより高いことに応答して、前記第１のロケーションを前記第２のユーザとより強く対応付ける請求項１に記載の方法。
【請求項１６】
複数の前記第１のロケーションが単一の前記第２のユーザに対応付けられることに応答して、最も多く対応付けられた前記第１のロケーションを前記第２のユーザに対応付けられる第２のロケーションと推定するステップを更に備える請求項１に記載の方法。
【請求項１７】
前記対応付けるステップは、前記関連性がより高く、かつ前記局所性がより高いことに応答して、前記第１のロケーションを前記第２のユーザとより強く対応付け、
複数の前記第１のロケーションが単一の前記第２のユーザに対応付けられることに応答して、最も強く対応付けられた前記第１のロケーションを前記第２のユーザに対応付けられる第２のロケーションと推定するステップを更に備える請求項１に記載の方法。
【請求項１８】
前記第２のユーザuが前記第１のロケーションlに対応付けられる確率P(l|u)は数１の数式で与えられ、特定のイベントeが第１のロケーションlに対応付けられている第１のユーザuの関心を特に呼ぶ確率P(l|e)は数２の数式で与えられ、第２のユーザuがイベントeに関して言及している確率P(e|u)は数３の数式で与えられる請求項１に記載の方法。
【数１】
2014089583.tif 000009
【数２】
2014089583.tif 000010
【数３】
2014089583.tif 000011
【請求項１９】
コンピュータに実行されることで前記コンピュータに請求項１乃至１８のいずれかに記載の方法を実行させるコンピュータ・プログラム。
【請求項２０】
ソーシャル・メディアにおいてユーザとロケーションとの対応を推定するコンピュータであり、
第１のロケーションと対応付けられた第１のユーザが前記ソーシャル・メディアにポストした第１のコンテンツを入手する手段と、
前記第１のロケーションに基づいて、前記第１のコンテンツの地域的な局所性を判断する手段と、
ロケーションと対応付けられていない第２のユーザが前記ソーシャル・メディアにポストした第２のコンテンツを入手する手段と、
前記第１のコンテンツと前記第２のコンテンツとの関連性を判断する手段と、
前記局所性と前記関連性とに基づいて、前記第１のロケーションを前記第２のユーザと対応付ける手段と
を備えるコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理技術に関係し、より詳しくは、ミニブログ等のソーシャル・メディアにおいてあるユーザに関連あるロケーションを推定する技術に係る。
【背景技術】
【０００２】
ソーシャル・メディアが広範に利用されるに従い、各ユーザと関連のあるロケーション（例えば、居住地、勤務地等）を知りたい、との要請が存在する。例えば、ユーザから災害情報が発信された場合に、そのロケーションをいち早く推定し、必要な対策を採ることが可能となる。また、ユーザのロケーションが推定できると、地域毎の販売促進策が可能となる。一方、ソーシャル・メディアには、一般にユーザのプロフィールを記載・公開する欄が存在するが、プロフィール欄に正確なロケーションを記載しているユーザは一部であり、例えば、あるソーシャル・メディアにおいては正確なロケーションを記載しているユーザの比率は２０数％であると報告されている。このような課題に対して、従来から、様々なアプローチが試みられてきた。例えば、モバイルデバイスのGPS（グローバル・ポジショニング・システム）機能を利用し、ユーザが発信する情報にジオタグと呼ばれる緯度・経度の情報を付加することが試みられている（非特許文献３参照）。また、発信された情報のテキストを分析し、テキストに含まれる地理的名称からロケーションを推定する技術が提案されている（特許文献１、特許文献２参照）。
【０００３】
また、ポストされた文章中に使用されている単語の地域的な偏在性（その地域に特徴的な単語や方言など）から、ユーザのロケーションを推定する技術も提案されている（非特許文献１）。さらに、ソーシャル・メディアが実装するユーザ同士の関係性（フォロー／被フォロー）に着目し、この関係性に地域的な偏在性が反映されている、という仮説の元、ユーザのロケーションを推定する技術も提案されている（非特許文献２）。
【先行技術文献】
【特許文献】
【０００４】
【非特許文献１】Cheng, et al. "You are whereyoutweet: A content-based approach to geo-locationg Twitterusers". In Proceedings of CIKM, 2010.
【非特許文献２】Clodoveu, et al. “Evaluation of the quality of anonline geocoding resource in the context of a largeBrazilian city”, Transactions in GIS, Volume 15, Issue6, pp.851-868, December 2011.
【非特許文献３】T. Sakamaki,et al. “マイクロブログのジオタグを用いたユーザの行動パターンの調査に関する研究”, IEICETechnical Report, NLC2010-37.
【特許文献１】特表２０１０−５１７１４７号公報
【特許文献２】特開２００８−１５８５６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、このような従来手法には、それぞれ次のような課題があり、その成果は限定的である。まず、ジオタグが付加された情報、発信された情報のテキスト中に地理的名称が含まれることは一般的に期待できないのが現実である。また、単語の地域的偏在性やユーザ関係の地域的偏在性による推定は十分な精度が期待できない。
【０００６】
本発明はこのような課題に鑑みてなされたものであり、関心を呼ぶ範囲に地域の局所性がある「ローカルイベント」を同定し、そのイベントに言及している居住地未確認ユーザがその地域に居住している可能性が高いと推定する、とうい知見に基づいている。そして、本発明の目的の一つは、ミニブログ等のソーシャル・メディアにおいて、プロフィール欄にロケーションに関する記載のないユーザに関連するロケーションを推定する技術を提供することにある。
【課題を解決するための手段】
【０００７】
本発明は、ソーシャル・メディアにおいてユーザとロケーションとの対応を推定する方法であり、１のロケーションと対応付けられた第１のユーザが前記ソーシャル・メディアにポストした第１のコンテンツを入手するステップと、前記第１のロケーションに基づいて、前記第１のコンテンツの地域的な局所性を判断するステップと、ロケーションと対応付けられていない第２のユーザが前記ソーシャル・メディアにポストした第２のコンテンツを入手するステップと、  前記第１のコンテンツと前記第２のコンテンツとの関連性を判断するステップと、前記局所性と前記関連性とに基づいて、前記第１のロケーションを前記第２のユーザと対応付けるステップとを備える方法である。
【０００８】
ここで、前記局所性を判断するステップは、ランダムに抽出した前記第１のコンテンツの地域的な分布を示す基準分布を演算するステップと、特定のイベントに関する前記第１のコンテンツの地域的な分布を示すイベント分布を演算するステップと、前記基準分布と前記イベント分布との差に基づいて、前記第１のコンテンツの地域的な局所性を判断するステップと  を含むように構成することができる。
【０００９】
さらに、前記ソーシャル・メディアは、各ユーザに対応付けられたプロフィールを備え、前記プロフィールはロケーション欄を備え、前記基準分布を演算するステップは、ランダムに抽出した前記第１のコンテンツをポストしたユーザに対応する前記ロケーション欄に記載された地名を取得するステップと、地名と緯度経度との対応を示す地名辞書を参照し、前記取得された地名に基づいて、前記取得された地名に対応する緯度経度を求めるステップと、予め対象地域を分割した複数のセルのうち、前記求められた緯度経度に対応する単一のセルを特定するステップとを含むように構成することができる。なお、前記特定された単一のセルが前記第１のロケーションとしてもよいし、前記対象地域の分割精度は、変更可能にすることもできる。
【００１０】
また、前記特定のイベントに関する前記第１のコンテンツは、特定のキーワードを含む前記第１のコンテンツとすることができ、前記特定のキーワードはその出現回数が予め定められた閾値を超えたキーワードとすることができる。
【００１１】
また、前記ソーシャル・メディアは、各ユーザに対応付けられたプロフィールを備え、前記プロフィールはロケーション欄を備え、前記イベント分布を演算するステップは、特定のイベントに関する前記第１のコンテンツをポストしたユーザに対応する前記ロケーション欄に記載された地名を取得するステップと、地名と緯度経度との対応を示す地名辞書を参照し、前記取得された地名に基づいて、前記取得された地名に対応する緯度経度を求めるステップと、予め対象地域を分割した複数のセルのうち、前記求められた緯度経度に対応する単一のセルを特定するステップとを含むように構成してもよい。
【００１２】
ここで、前記第１のコンテンツの地域的な局所性は、前記基準分布と前記イベント分布とのKL-divergenceにより演算されることができる。また、前記関連性を判断するステップは、前記第１のコンテンツと前記第２のコンテンツとが同一の特定のイベントに関するものであるか否かを判断することができ、記関連性を判断するステップは、
前記第１のコンテンツと前記第２のコンテンツとが同一のキーワードを含むものであるか否かを判断することができる。
【００１３】
また、前記対応付けるステップは、前記局所性が予め定められた閾値よりも高いことを条件に、前記第１のロケーションを前記第２のユーザと対応付けることができる。また、前記対応付けるステップは、前記局所性がより高いことに応答して、前記第１のロケーションを前記第２のユーザとより強く対応付けることもできる。さらに、前記対応付けるステップは、前記関連性が予め定められた閾値よりも高いことを条件に、前記第１のロケーションを前記第２のユーザと対応付けることができる。また、前記対応付けるステップは、前記関連性がより高いことに応答して、前記第１のロケーションを前記第２のユーザとより強く対応付けることができる。
【００１４】
また、複数の前記第１のロケーションが単一の前記第２のユーザに対応付けられることに応答して、最も多く対応付けられた前記第１のロケーションを前記第２のユーザに対応付けられる第２のロケーションと推定するステップを更に備えることができる。また、前記対応付けるステップは、前記関連性がより高く、かつ前記局所性がより高いことに応答して、前記第１のロケーションを前記第２のユーザとより強く対応付け、複数の前記第１のロケーションが単一の前記第２のユーザに対応付けられることに応答して、最も強く対応付けられた前記第１のロケーションを前記第２のユーザに対応付けられる第２のロケーションと推定するステップを更に備えることもできる。
【００１５】
また、前記第２のユーザuが前記第１のロケーションlに対応付けられる確率P(l|u)は数１の数式で与えられ、特定のイベントeが第１のロケーションlに対応付けられている第１のユーザuの関心を特に呼ぶ確率P(l|e)は数２の数式で与えられ、第２のユーザuがイベントeに関して言及している確率P(e|u)は数３の数式で与えられるものとすることもできる。
【００１６】
【数１】
2014089583.tif 000003
【００１７】
【数２】
2014089583.tif 000004
【００１８】
【数３】
2014089583.tif 000005
【００１９】
なお、前記コンテンツは、前記ソーシャル・メディアに投稿されたメッセージから所定の条件の下にサンプリングされたメッセージとすることができる。また、前記メッセージは、前記ソーシャル・メディアに所定の期間内に投稿されたメッセージのうち、所定のキーワードを含む条件の下にサンプリングされたメッセージとすることもできる。また、前記ソーシャル・メディアがマイクロブログであってもよい。
【００２０】
本発明コンピュータ・プログラム、コンピュータ・システムとして把握した場合にも、上述した本発明を方法として把握した場合と実質的に同一の技術的特徴を備える事ができる。
【発明の効果】
【００２１】
本発明によれば、ミニブログ等のソーシャル・メディアにおいてユーザのロケーションをより精度良く推定することができる。
【図面の簡単な説明】
【００２２】
【図１】マイクロブログのシステムを説明する概念図
【図２】ユーザ端末としてのスマートフォンとその画面表示の説明図
【図３】マイクロブログ・サーバ内のハードディスク装置内に記憶されているデータのデータ構造の説明図
【図４】コンピュータのハードウェア構成を説明するブロック図
【図５】コンピュータの機能を説明するブロック図
【図６】このコンピュータが実行する処理を説明する基本的なフローチャート
【図７】ベース分布作成の処理を説明するフローチャート
【図８】地理的な分布データ作成の処理を説明するフローチャート
【図９】ローカルイベント検出の処理を説明するフローチャート
【図１０】イベント検出の処理を説明するフローチャート
【図１１】居住地推定の処理を説明するフローチャート
【図１２】分布データの作成過程を説明する模式図
【発明を実施するための形態】
【００２３】
実施形態
以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。また、本発明は多くの異なる態様で実施することが可能であり、実施の形態の記載内容に限定して解釈されるべきものではない。また、実施の形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須とは限らないことに留意されたい。実施の形態の説明の全体を通じて（特段の断りのない限り）同じ要素には同じ番号を付している。
【００２４】
図１は、ソーシャル・メディアの一例として、マイクロブログのシステムを説明する概念図である。本システムは、マイクロブログ・サーバ２と、ユーザ端末とを含み、これらはインタネット４を介して互いに通信可能に接続されている。また、ユーザ端末としては、通信機能を備えたあらゆる形態のコンピュータを採用することができる。例えば、モバイルデバイスとして、図示するスマートフォン３１、タブレット３２、（ノート型）パーソナル・コンピュータ３３の他にも、図示しないパーソナル・データ・アシスタント（ＰＤＡ、携帯情報端末）、車載コンピュータ、ネットブック等を採用することができる。
【００２５】
図２は、一例として、ユーザ端末としてのスマートフォン３１とその画面表示を説明するものである。このスマートフォン３１のタッチスクリーンには、マイクロブログ・アプリケーションの画面が表示されており、当該アプリケーション画面は、上から順に、ホーム部分３１１、タイムライン部分３１２、操作部分３１３に分かれている。ホーム部分には、メニューボタンと、タイムライン部分３１２がユーザＡＡＡのタイムラインである旨が表示されている。タイムライン部分３１２には、上から順に、ユーザＡＡＡのメッセージ部分３１２ａ、３１２ｂ、（フォローしている）ユーザＢＢＢのメッセージ部分３１２ｃが表示されている。これらのメッセージ部分３１２ａ〜ｃは、時系列沿って表示されている。つまり、最上部の発言部分３１２ａが最新のメッセージに対応している。
【００２６】
図３は、マイクロブログ・サーバ２内のハードディスク装置２０、２２内に記憶されているデータのデータ構造を説明するものである。ハードディスク装置２０に記憶されているメッセージテーブル（図３（ａ））には、各メッセージが発信された日時を示す発信日時(created_at)、各メッセージを特定するメッセージＩＤ(id)と、そのメッセージを発信したユーザを特定するユーザＩＤ(user_id)と、メッセージの内容であるテキスト（text）を備えている。なお、テキストには文字数制限（例えば、１４０文字以内等）を設けることができる。一方、ハードディスク装置２２に記憶されているプロフィールテーブル（図３（ｂ））には、各ユーザを特定するユーザＩＤ(user_id)、ユーザの名前（name）、ユーザの住所や勤務先等の場所（location）、ユーザのプロフィールを示すプロフィール情報(profile)、関連するウェブページのアドレスであるＵＲＬ情報(url)を備えている。なお、ここでは、各ハードディスク装置２０、２２は個別のものとして描いたが、これらが一体的に構成されていても、さらに複数の装置に分散されていてもよい。
【００２７】
図４は、パーソナル・コンピュータ１のハードウェア構成を説明するブロック図である。コンピュータ１のハードウェア構成は、（低速及び高速の）バス１０、バス１０に接続されるＣＰＵ（演算制御装置）１１、ＲＡＭ（ランダム・アクセス・メモリ：記憶装置）１２、ＲＯＭ（リード・オンリ・メモリ：記憶装置）１３、ＨＤＤ（ハード・ディスク・ドライブ：記憶装置）１４、通信インタフェース１５、入出力インタフェース１６を備えている。さらに、入出力インタフェース１６に接続されるマウス１７、フラット・パネル・ディスプレイ（表示装置）１８、キーボード１９等を備えている。なお、コンピュータ１は一般的なパーソナル・コンピュータ・アーキテクチャを採用するものとして説明したが、例えば、より高いデータ処理能力や可用性を求めて、ＣＰＵ１１やＨＤＤ１４等を多重化することができる。また、デスクトップ型の他、様々なタイプのコンピュータ・システムを採用することができる。
【００２８】
このコンピュータ１のソフトウェア構成は、基本的な機能を提供するオペレーティング・システム（ＯＳ）と、OSの機能を利用するアプリケーション・ソフトウェアと、入出力装置のドライバ・ソフトウェアとを備えている。これらの各ソフトウェアは、各種データと共にRAM１２上にロードされ、CPU１１等により実行され、コンピュータ１は全体として、図５に示す機能モジュールとして機能し、図６から図１１に示す処理を実行する。
【００２９】
図５は、実施例に係るコンピュータ１の機能モジュールを説明するブロック図である。コンピュータ１は、基準分布演算モジュール１０１、イベント分布演算モジュール１０２、局所性判断モジュール１０３、居住地推定モジュール１０４として機能する。
【００３０】
図６は、実施例に係るコンピュータ１が実行する処理を示すフローチャートであり、大きく分けて、ベース分布作成ステップ（Ｓ１）と、ローカルイベント検出ステップ（Ｓ２）と、居住地推定ステップ（Ｓ３）とを備える。
【００３１】
図７及び図８は、ベース分布作成ステップ（Ｓ１）をより詳細に説明するフローチャートである。基準分布演算モジュール１０１は、マイクロブログ・サーバ２から、ＡＰＩを利用して、プロフィール情報の居住地欄に何らかの情報が入力されているユーザ（居住地確認済みユーザ）が発信したメッセージをランダムに取得する（Ｓ１１）。次に、基準分布演算モジュール１０１は、取得したメッセージに基づいて、地理的な分布データを作成する（Ｓ１２）。
【００３２】
図８は、地理的な分布データの作成手順を示すフローチャートである。また、図１２は、地理的な分布データの作成過程について説明する概念図である。地理的な分布データは、対象となるエリアをメッシュ状に分割して構成される。例えば、北緯３０度から４５度、東経１３０度から１４５度のエリア（図１２（a）参照）を南北に１００個、東西に１００個、メッシュ状に等分割することができる（図１２（ｂ）参照：但し、図面中の分割数は一致しない。）。ここで、分割して得られた各セルに対して値を付与することが可能である。また、セルの大きさ（等分割数）は、任意に設定することができる。まず、各セルの値を０（ゼロ）として初期化する（Ｓ１２１）。その後、対象となるメッセージ集合（ここでは、居住地確認済みユーザが発信したメッセージをランダムに取得した集合（Ｓ１１））のうち、各メッセージについてＳ１２３からＳ１２５の処理を行う（Ｓ１２２、Ｓ１２６）。
【００３３】
つまり、発信者のプロフィール情報の居住地欄に記入されているテキストを取得する（Ｓ１２３）。次に、地名と緯度経度との対応辞書を利用し、取得されたテキスト（地名）に対応する緯度経度を求める（Ｓ１２４）。次に、求められた緯度経度に対応するセルの値に１加算する（Ｓ１２５）。
【００３４】
ここで、各発信者がプロフィール情報の居住地欄に記入しているテキスト（地名）の詳細さは様々であることが想定されるが、例えば、次のように処理することができる。まず、各セルの大きさとの関係で、どの行政区分レベルが適切であるかを予め決定する。ここでは、例えば、市区レベルの行政区分レベルが適切であるとする。もし、ユーザが市区レベルよりも下位レベルの地名（町レベル）を入力している場合には、上位の市区レベルの地名を用いる（詳細な町レベルの地名は捨象する）。もし、ユーザが市区レベルよりも上位レベルの地名（都道府県レベル）しか入力していない場合には、下位の代表的な市区レベルの地名（例えば、県庁所在地の市区）を用いる。なお、これらの処理を後述する対応辞書の構成に予め反映させておくこともできる。
【００３５】
また、地名と緯度経度との対応辞書は、図示しないが、ＨＤＤ１４に記憶されており、基準分布演算モジュール１０１によりアクセスされる。ここでは、地名と緯度経度との関係は、一つの地名に対して、例えば、その市区庁舎所在地の緯度経度、のように１対１であることを想定しているが、これが１対Ｎ（自然数）の関係であってもよい。また、ここでは、緯度経路と加算するセルとの関係は、一つの緯度経度に対してその緯度経度を含む一つのセル、のように１対１であることを想定しているが、例えば、求められた緯度経度を含む一つのセルと、そのセルに隣接する複数のセルに対して、求められた緯度経度と各セルの中心緯度経度との距離に応じて重み付けをした数値をそれぞれ付与することもできる。さらに、ここでは、地名と緯度経度との対応辞書を用いているが、例えば、地名とセルとの対応辞書を予め用意しておくこともできる。
【００３６】
ランダムに取得したメッセージの集合を対象に、このような処理（Ｓ１２３からＳ１２５）を繰り返すことにより、その地域的な分布を示す基準分布を得ることができる（図１２（ｃ）参照）。つまり、図１２（ｃ）が示すように、グレーのメッシュ部分は、そこに関連する（そこに住んでいる、又は働いている）ユーザがメッセージを発信したことを示し、各グレー部分の濃さは、発信数の多さを示している。
【００３７】
図９及び図１０は、ローカルイベント検出ステップ（Ｓ２）をより詳細に説明するフローチャートである。イベント分布演算モジュール１０２は、まず、イベントの検出を行う（Ｓ２１）。具体的には、マイクロブログ・サーバ２から、ＡＰＩを利用して、居住地確認済みユーザが発信したメッセージを、メッセージの発信時刻を元に一定の時間間隔（例えば、３０分）毎のメッセージ集合に分割して、取得する（Ｓ２１１）。次に、イベント分布演算モジュール１０２は、各時間におけるメッセージ集合に対して、以下の処理を行う（Ｓ２１２及びＳ２１５）。つまり、メッセージ集合の各メッセージに対して、メッセージ本文に含まれるキーワードを抽出し、そのキーワード毎にその出現回数をカウントする（Ｓ２１３）。出現回数が予め定められた閾値（例えば、３０）を超えているキーワードを含むメッセージの集合を、「イベント」として特定する（Ｓ２１４）。
【００３８】
次に、イベント分布演算モジュール１０２及び局所性判断モジュール１０３は、イベントとして特定されたメッセージの集合に対して、以下の処理を行う（Ｓ２２及びＳ２７）。
【００３９】
まず、イベント分布演算モジュール１０２が、イベントとして特定されたメッセージの集合に基づいて、地理的な分布データを作成する（Ｓ２３）。これは、図８で示した処理と同様に、対象となるメッセージ集合（ここでは、イベントとして特定されたメッセージの集合）のうち、各メッセージについて、発信者のプロフィール情報の居住地欄に記入されているテキストを取得し（Ｓ１２３参照）、地名と緯度経度との対応辞書を利用し、取得されたテキスト（地名）に対応する緯度経度を求め（Ｓ１２４参照）、求められた緯度経度に対応するセルに１加算する（Ｓ１２５参照）。イベントとして特定されたメッセージの集合を対象に、このような処理（Ｓ１２３からＳ１２５）を繰り返すことにより、その地域的な分布を示す基準分布を得ることができる（図１２（ｄ）参照）。結果として、図１２（ｄ）が示すように、グレーのメッシュ部分は、そこに関連する（そこに住んでいる、又は働いている）ユーザがそのイベントとして特定されたメッセージを発信したことを示し、各グレー部分の濃さは、発信数の多さを示している。
【００４０】
次に、局所性判断モジュール１０３が、このようにして演算されたイベント分布（図１２（ｄ）参照）と先のベース分布（図１２（ｃ）参照）とを比較し、両者のKL-divergenceを演算する（Ｓ２４）。なお、KL-divergenceは、2つの確率分布の差異を計る尺度であるが、その詳細な演算方法は周知であるので、ここでは詳述しない。次に、局所性判断モジュール１０３は、KL-divergenceの値が、予め定められた閾値（例えば、１．５）以上か否かを判断し（Ｓ２５）、閾値未満であれば、次のイベントとして特定されたメッセージの集合に対して、同様の処理を施し（Ｓ２２）、閾値以上であれば、そのメッセージの集合をローカルイベントとして特定する（Ｓ２６）。なお、KL-divergenceの値に基づいて、各ローカルイベントを重み付けすることもできる。
【００４１】
図１１は、居住地推定ステップ（Ｓ３）をより詳細に説明するフローチャートである。居住地推定モジュール１０４は、各ローカルイベントに対して、以下の処理を繰り返す（Ｓ３１とＳ３３）。具体的には、マイクロブログ・サーバ２から、ＡＰＩを利用して、プロフィール情報の居住地欄に情報が入力されていないユーザ（居住地未確認ユーザ）が発信したメッセージを取得し、そのうち、ローカルイベントに言及したメッセージ（メッセージ中にローカルイベントのキーワードを含むもの）を発信したユーザに対して、ユーザ毎にそれぞれ数５のP(l|e)及び数６のP(e|u)を演算し、数４のP(l|u)に足し込む（Ｓ３２）。なお、ここでは、メッセージ中にローカルイベントのキーワードを含むか否かにより両者の関連性を判断しているが、メッセージ中に存在するローカルイベントのキーワードの数等に基づいて、その関連性を重み付けしてもよい。
【００４２】
【数４】
2014089583.tif 000006
【００４３】
【数５】
2014089583.tif 000007
【００４４】
【数６】
2014089583.tif 000008
【００４５】
居住地推定モジュール１０４は、あるユーザのP(l|u)で、最も確率の高い場所が、そのユーザの居住地であると推定する（Ｓ３４）。さらに、居住地推定モジュール１０４は、その結果をディスプレイ１８等に表示させることができる。
【００４６】
本実施例では、イベントのうち、ユーザの関心を呼ぶ範囲に地域な局所性があるローカルイベントを同定し、そのイベントに言及している居住地未確認ユーザがその地域に居住している可能性が高いとみなすものである。ここで、「イベント」とは、ある期間に出現数が急増（バースト）したキーワードを含むメッセージの集合であり、ローカルイベントとは、特定の地域で関心を呼んでいるイベントであり、このローカルイベントを複数同定する。つまり、イベントについて言及した居住地確認済みユーザーを用いて、地域の局所性があるイベントを同定する。そして、あるローカルイベントに言及している居住地未確認ユーザーはその地域に居住している可能性が高いとみなす。ある地域の複数のローカルイベントに言及しているユーザーは、その地域に居住している可能性はより高くなる。
【００４７】
本発明は、全体がハードウェアの実施形態、全体がソフトウェアの実施形態、またはハードウェアおよびソフトウェア両方のエレメントを包含する実施形態の形を取ることができる。ある好適な実施形態において、本発明は、以下に限らないが、ファームウェア、常駐ソフトウェア、マイクロコード、構文解析ピココードなどを含めた、ソフトウェアに実装される。
【００４８】
さらに、本発明は、コンピュータまたは任意の命令実行システムによってまたはこれに関連させて使用するプログラム・コードを備えるコンピュータ・プログラム、コンピュータ可読媒体の形態を採ることもできる。本説明目的の上で、コンピュータ可読媒体は、任意の命令実行システム、装置、またはデバイスによってまたはこれに関連させて使用するためのプログラムを、収容、格納、通信、伝搬、または伝送できる任意の装置であり得る。具体的には、前述の構文解析制御モジュールは、この意味で命令実行システム、または「コンピュータ」を構成する。
【００４９】
媒体は、電子的、磁気的、光学的、電磁気的、赤外的、または半導体のシステム（もしくは装置もしくはデバイス）または伝搬媒体とすることができる。コンピュータ可読媒体の例には、半導体または固体メモリ、磁気テープ、着脱可能コンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、読み取り専用メモリ（ＲＯＭ：ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、剛体磁気ディスク、および光ディスクが含まれる。光ディスクの現時点での例には、コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ：ｃｏｍｐａｃｔ  ｄｉｓｋ  ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、コンパクト・ディスク読み取り／書き込み（ＣＤ−Ｒ／Ｗ：ｃｏｍｐａｃｔ  ｄｉｓｋ  ｒｅａｄ／ｗｒｉｔｅ）メモリ、およびＤＶＤが含まれる。
【００５０】
プログラム・コードを格納もしくは実行またはその両方を行うのに適したデータ処理システムは、システム・バスを介して直接的または間接的にメモリ・エレメントに連結された少なくとも一つのプロセッサを含み得る。このメモリ・エレメントには、プログラム・コードの実際の実行の過程で使われるローカル・メモリ、バルク記憶装置、および、実行中にバルク記憶装置から読み出さねばならない回数を低減するために、少なくとも一部のプログラム・コードに一時的保管を提供するキャッシュ・メモリを含めることができる。
【符号の説明】
【００５１】
１…パーソナル・コンピュータ、
１１…ＣＰＵ（演算制御装置）
１２…ＲＡＭ（ランダム・アクセス・メモリ：記憶装置）
１３…ＲＯＭ（リード・オンリ・メモリ：記憶装置）
１４…ＨＤＤ（ハード・ディスク・ドライブ：記憶装置）
１５…通信インタフェース
１６…入出力インタフェース
１７…マウス
１８…フラット・パネル・ディスプレイ（表示装置）
１０１…基準分布演算モジュール
１０２…イベント分布演算モジュール
１０３…局所性判断モジュール
１０４…居住地推定モジュール
２…マイクロブログ・サーバ
２０、２２…ハード・ディスク・ドライブ
３１…スマートフォン
３２…タブレット
３３…（ノート型）パーソナル・コンピュータ
【図１】
2014089583.tif 000012
【図２】
2014089583.tif 000013
【図３】
2014089583.tif 000014
【図４】
2014089583.tif 000015
【図５】
2014089583.tif 000016
【図６】
2014089583.tif 000017
【図７】
2014089583.tif 000018
【図８】
2014089583.tif 000019
【図９】
2014089583.tif 000020
【図１０】
2014089583.tif 000021
【図１１】
2014089583.tif 000022
【図１２】
2014089583.tif 000023