【課題を解決するための手段】
【0006】
上記の課題を解決するため、本発明に関る第1の実施形態は携帯端末の位置データを利用してIPの地理的位置を特定する方法を提供する。当該方法は、各々がユーザ識別情報(ID)、時間、及び地理的位置を含む位置データレコードを複数有する地理的位置のデータセットを生成するように、予め設定した時間帯にユーザが使用した携帯端末の位置データを獲得するステップ1と、
前記地理的位置のデータセットを前処理するステップ2と、
前記地理的位置のデータセットに基づいて前記ユーザの各々の毎日の第1の時間帯における前記位置データレコードを獲得するとともに、前記第1の時間帯における前記位置データレコードをクラスタリングし、クラスタリングされた複数の集合の重心を前記ユーザの前記第1の時間帯における第1の候補位置とし、及び前記地理的位置のデータセットに基づいて前記ユーザの各々の毎日の第2の時間帯における前記位置データレコードを獲得するとともに、前記第2の時間帯における前記位置データレコードをクラスタリングし、クラスタリングされた複数の集合の重心を前記ユーザの前記第2の時間帯における第2の候補位置とするステップ3と、
前記ユーザ識別情報、時間、及びIPアドレスを含むIPアドレスのデータレコードを複数有するIPアドレスのデータセットを生成するように、前記予め設定した時間帯に前記ユーザが使用した固定端末に対応するIPアドレスデータを獲得するステップ4と、前記IPアドレスデータレコードにおける前記IPアドレスをそれぞれIPセグメントに変換し、前記ユーザが使用する前記IPセグメントに対応する前記IPアドレスデータレコードの数が予め定められた第1の閾値より小さい場合、前記IPアドレスのデータセットから前記IPセグメントに対応する前記IPアドレスのデータレコードを削除するように、前記IPアドレスのデータセットを前処理するステップ5と、前処理された前記IPアドレスのデータセットにおけるIPセグメントに基づき、前記IPセグメントを使用するすべてのユーザを獲得し、前記すべてのユーザに対応する前記第1の候補位置と前記第2の候補位置を前記IPセグメントの候補地理的位置として獲得するとともに、一連の集合を得られるように前記候補地理的位置をクラスタリングし、前記一連の集合から前記候補地理的位置を最も多く含む集合を獲得し、前記集合に対応する重心を前記IPセグメントに対応する地理的位置とするステップ6を含む。
【0007】
本発明の一実施形態では、前記ステップ2は、前記地理的位置のデータセットから一つの未処理ユーザを獲得するステップ21と、前記地理的位置のデータセットから前記未処理ユーザのすべての位置データレコードを獲得するステップ22と、前記すべての位置データレコードの数が予め定められた第2の閾値より小さいか又は予め定められた第3の閾値より大きいかを判断するステップ23と、予め定められた第2の閾値より小さい又は予め定められた第3の閾値より大きい場合、前記地理的位置のデータセットから前記未処理ユーザに対応するすべての位置データレコードを削除するステップ24と、前記地理的位置のデータセットの中に未処理ユーザが存在した場合、ステップ21に戻って継続し、前記地理的位置のデータセットの中に未処理ユーザがない場合、前処理を終了し、ステップ3に移行するステップ25とを含む。
【0008】
本発明の一実施形態では、ステップ3は、前記地理的位置のデータセットから一つの未処理ユーザを獲得するステップ31と、前記地理的位置のデータセットから前記未処理ユーザの毎日の第1の時間帯における前記位置データレコードを獲得し、2つごとに前記位置データレコード間の地理的位置の距離を獲得するとともに、一連の集合を得られるように、前記地理的位置の距離に基づいて前記位置データにおける前記地理的位置をクラスタリングするとともに、前記一連の集合における一つ又は複数の前記集合の重心を前記未処理ユーザの前記第1の候補位置とするステップ32と、前記地理的位置のデータセットから前記未処理ユーザの毎日の第2の時間帯における前記位置データレコードを獲得し、2つごとに前記位置データレコード間の地理的位置の距離を獲得するとともに、一連の集合を得られるように、前記地理的位置の距離に基づいて前記位置データにおける前記地理的位置をクラスタリングするとともに、前記一連の集合における一つ又は複数の前記集合の重心を前記未処理ユーザの前記第2の候補位置とするステップ33と、前記地理的位置のデータセットの中に未処理ユーザが存在した場合、ステップ31に戻って継続し、前記地理的位置のデータセットの中に未処理ユーザがない場合、クラスタリングを終了し、ステップ4に移行するステップ34とを含む。
【0009】
本発明の一実施形態では、前記ステップ32において、2つごとに前記位置データレコード間の地理的位置の距離を獲得することが、具体的には、前記2つの位置データレコードにおける前記地理的位置が緯度及び経度でない場合、前記地理的位置をそれぞれ緯度及び経度「lat
1,lng
1」と「lat
2,lng
2」に変換するとともに、緯度及び経度「lat
1,lng
1」と「lat
2,lng
2」をそれぞれ弧度「α
1,β
1」と「α
2,β
2」に変換するステップと、S=arccos(sin(α
1)*sin(α
2)+cos(α
1)*cos(α
2)*cos(β
1−β
2))*Rという公式に基づいて前記地理的位置の距離Sを獲得するステップとを含み、そのうち、arccos、sin、cosはそれぞれ逆余弦、正弦、余弦記号で、Rは地球赤道の半径である。前記ステップ32において、仮に一つの集合が{[lat
1,lng
1][lat
2,lng
2]...,[lat
n,lng
n]}であれば、前記集合の重心を[(lat
1+lat
2+...+lat
n)/n,(lng
1+lng
2+...+lng
n)/n](nは正整数である)とするステップに基づいて前記集合の重心を獲得する。
【0010】
本発明の一実施形態では、前記ステップ32において、前記地理的位置の距離に基づいて前記位置データにおける前記地理的位置をクラスタリングすることが、具体的には、前記位置データの各々における前記地理的位置を一つの緯度及び経度を含む集合{「lat
i,lng
i」}(iが1以上の正整数である)に変換するステップ321と、2つの前記集合ごとに、2つの前記集合から任意に1つずつ緯度及び経度を獲得した場合の最大距離と定義される前記集合間の距離を獲得するステップ322と、距離が一番近い前記集合を2つ獲得し、前記距離が予め定められた第4の閾値より小さい場合、2つの前記集合を、元の2つの前記集合のすべての緯度及び経度を含む一つの新しい集合に合併させるとともに、ステップ322に戻って引き続き実行し、予め定められた第4の閾値より大きい又は予め定められた第4の閾値と同じである場合、クラスタリングを終了してステップ33に移行するステップ323とを含む。
【0011】
本発明の一実施形態では、前記ステップ5において、前記IPアドレスデータレコードの各々における前記IPアドレスをそれぞれIPセグメントに変換することが、具体的には、変換された前記IPアドレスに対応する前記IPセグメントに保持するのに必要なIPアドレスの長さM(Mは8以上32以下の整数である)ビットを獲得するステップと、前記IPアドレスに対応する前記IPセグメントを得るように、前記IPアドレスにおける上位Mビットの数値を変えず、下位32−Mビットの数値を0に設定するステップとを含む。
【0012】
本発明の一実施形態では、前記ステップ6は、具体的には、前処理された前記IPアドレスのデータセットから一つの未処理IPセグメントを獲得するステップ61と、前記アドレスのデータセットから前記IPセグメントを使用したすべてのユーザを獲得するとともに、前記すべてのユーザの前記第1の候補位置と前記第2の候補位置を前記IPセグメントの候補地理的位置として獲得し、2つごとに前記候補地理的位置間の距離を獲得し、一連の集合を得られるように前記距離に基づいてクラスタリングするステップ62と、前記IPセグメントの前記地理的位置として一つの前記集合の重心を選択するステップ63とを含む。
【0013】
本発明の一実施形態では、前記ステップ62において、前記距離に基づいてクラスタリングすることが、具体的には、前記候補地理的位置の各々に対応する緯度及び経度「lat
i,lng
i」を一つの緯度及び経度を含む集合{[lat
i,lng
i]}(iは1以上の正整数である)に変換するステップ621と、2つの集合ごとに、2つの前記集合から任意に一つの緯度及び経度を獲得した場合の最短距離と定義される前記集合間の距離を獲得するステップ622と、距離が一番近い前記集合を2つ獲得し、前記距離が予め定められた第5の閾値より小さい場合、2つの前記集合を、元の2つの前記集合のすべての緯度及び経度を含む一つの新しい集合に合併させるとともに、ステップ622に戻って引き続き実行し、予め定められた第5の閾値より大きい又は予め定められた第5の閾値と同じである場合、クラスタリングを終了してステップ63に移行するステップ623とを含む。
【0014】
本発明の一実施形態では、前記ステップ63において、前記IPセグメントの前記地理的位置として一つの前記集合の重心を選択することが、具体的には、すべての集合を前記候補地理的位置を含む数の多い順に整列し、それぞれC
1,C
2,…C
i…,C
n(nは集合の数である)とするステップ631と、C
1に含まれる前記候補地理的位置の数がC
2より大きい場合、C
1を選択してステップ634に移行し、そうでない場合ステップ633に移行するステップ632と、C
1に含まれる前記候補地理的位置の数がC
iと同じである場合、C
1,…C
iの中から一番多いユーザの数を有する前記集合を選択して、ステップ634に移行し、一番多いユーザの数を有する前記集合が最初に複数ある場合、前記集合からランダムに一つを選択してステップ634に移行するステップ633と、選択された前記集合の重心を前記IPセグメントの前記地理的位置として獲得するステップ634とを含む。
【0015】
本発明に係る予め設定した時間帯は一ヶ月又は一年のような任意の長さの時間であってもよい。本発明に係る閾値又は数の選択は任意の値と設定してもよく、これらの値は方法自身に影響をもたらさず、結果の精度にだけ影響を及ぼすだけである。
【0016】
本発明に係る携帯端末の位置データを利用してIPの地理的位置を特定する方法は下記の原理によるものである。大部分の人は毎日の活動に強い規則性があり、即ち普通第1の時間帯(夜)は家に、平日の第2の時間帯(昼)は職場にいる。ユーザが使う携帯端末(例えば携帯電話)の位置データ(通常はGPSによって獲得する)を集めれば、夜の位置データレコードがユーザの家の付近に集中し、平日の昼の位置データレコードが職場の付近に集中することになる。これによってあるユーザの大体の家と職場の地理的位置を推定できる。同時にユーザが使う固定端末のIP利用レコードも集められる。集められたIP利用レコードのデータからあるIPセグメントが複数のユーザの固定端末に使われることがわかれば、このIPセグメントがこれらのユーザの家と職場が集中する地理的位置にある可能性が高い。
【0017】
本発明の実施形態に係る携帯端末の位置データを利用してIPの地理的位置を特定する方法は少なくとも下記の特徴及び有益な効果がある。ユーザが使用する携帯端末(例えばGPS機能付き携帯電話)が生じた位置データを利用して当該ユーザが使用した固定端末(例えば家庭用パソコン、オフィスパソコン)、サーバなど及びそれらに使われたIPアドレスに対応する地理的位置を間接に推定する。携帯端末が提供した高精度の地理的位置データを間接に利用したため、街レベルのIPアドレス測位精度が実現され、同時に設置が簡単で応答時間が速い等の利点もある。
【0018】
上記の目的を実現するため、本発明の第2の実施形態はサーバを提供する。当該サーバは、各々が、ユーザ識別情報、時間、及び地理的位置を含む位置データレコードを複数有する地理的位置のデータセットを生成するように、予め設定した時間帯にユーザが使用した携帯端末の位置データを獲得する第1の獲得モジュールと、前記地理的位置のデータセットを前処理する第1の前処理モジュールと、前記地理的位置のデータセットに基づいて前記ユーザの各々の毎日の第1の時間帯における前記位置データレコードを獲得するとともに、前記第1の時間帯における前記位置データレコードをクラスタリングし、クラスタリングされた複数の集合の重心を前記ユーザの前記第1の時間帯における第1の候補位置とし、及び前記地理的位置のデータセットに基づいて前記ユーザの毎日の第2の時間帯における前記位置データレコードを獲得するとともに、前記第2の時間帯における前記位置データレコードをクラスタリングし、クラスタリングされた複数の集合の重心を前記ユーザの前記第2の時間帯における第2の候補位置とする第1のクラスタリングモジュールと、前記ユーザ識別情報、時間、及びIPアドレスを含むIPアドレスのデータレコードを複数有するIPアドレスのデータセットを生成するように、前記予め設定した時間帯に前記ユーザが使用した固定端末に対応するIPアドレスデータを獲得する第2の獲得モジュールと、前記IPアドレスデータレコードの各々における前記IPアドレスをそれぞれIPセグメントに変換し、前記ユーザが使用する前記IPセグメントに対応する前記IPアドレスデータレコードの数が予め定められた第1の閾値より小さい場合、前記IPアドレスのデータセットから前記IPセグメントに対応する前記IPアドレスのデータレコードを削除するように、前記IPアドレスのデータセットを前処理する第2の前処理モジュールと、前処理された前記IPアドレスのデータセットのそれぞれにおけるIPセグメントに基づき、前記IPセグメントを使用するすべてのユーザを獲得し、前記すべてのユーザに対応する前記第1の候補位置と前記第2の候補位置を前記IPセグメントの候補地理的位置として獲得するとともに、一連の集合を得られるように前記候補地理的位置をクラスタリングし、前記一連の集合から前記候補地理的位置を最も多く含む集合を獲得し、前記集合に対応する重心を前記IPセグメントに対応する地理的位置とする第2のクラスタリングモジュールとを含む。
【0019】
本発明の一実施形態では、前記第1の前処理モジュールは、前記地理的位置のデータセットから一つの未処理ユーザを獲得するステップ21と、前記地理的位置のデータセットから前記未処理ユーザのすべての位置データレコードを獲得するステップ22と、前記すべての位置データレコードの数が予め定められた第2の閾値より小さいか又は予め定められた第3の閾値より大きいかを判断するステップ23と、予め定められた第2の閾値より小さい又は予め定められた第3の閾値より大きい場合、前記地理的位置のデータセットから前記未処理ユーザに対応するすべての位置データレコードを削除するステップ24と、前記地理的位置のデータセットの中に未処理ユーザが存在した場合、ステップ21に戻って継続し、前記地理的位置のデータセットの中に未処理ユーザがない場合、前処理を終了するステップ25とを更に実行するように構成されている。
【0020】
本発明の一実施形態では、前記第1のクラスタリングモジュールは、前記地理的位置のデータセットから一つの未処理ユーザを獲得するステップ31と、前記地理的位置のデータセットから前記未処理ユーザの毎日の第1の時間帯における前記位置データレコードを獲得し、2つごとに前記位置データレコード間の地理的位置の距離を獲得するとともに、一連の集合を得られるように、前記地理的位置の距離に基づいて前記位置データにおける前記地理的位置をクラスタリングするとともに、前記一連の集合における一つ又は複数の前記集合の重心を前記未処理ユーザの前記第1の候補位置とするステップ32と、前記地理的位置のデータセットから前記未処理ユーザの毎日の第2の時間帯における前記位置データレコードを獲得し、2つごとに前記位置データレコード間の地理的位置の距離を獲得するとともに、一連の集合を得られるように、前記地理的位置の距離に基づいて前記位置データにおける前記地理的位置をクラスタリングするとともに、前記一連の集合における一つ又は複数の前記集合の重心を前記未処理ユーザの前記第2の候補位置とするステップ33と、前記地理的位置のデータセットの中に未処理ユーザが存在した場合、ステップ31に戻って継続し、前記地理的位置のデータセットの中に未処理ユーザがない場合、クラスタリングを終了するステップ34とを更に実行するように構成されている。
【0021】
本発明の一実施形態では、前記第1のクラスタリングモジュールは、2つごとに前記位置データレコードの地理的位置間の距離を獲得するように、前記2つの位置データレコードにおける前記地理的位置が緯度及び経度でない場合、前記地理的位置をそれぞれ緯度及び経度「lat
1,lng
1」と「lat
2,lng
2」に変換し、前記緯度及び経度「lat
1,lng
1」と「lat
2,lng
2」をそれぞれ弧度「α
1,β
1」と「α
2,β
2」に変換するステップと、S=arccos(sin(α
1)*sin(α
2)+cos(α1)*cos(α
2)*cos(β
1−β
2))*R(ここで、arccos、sin、cosはそれぞれ逆余弦、正弦、余弦記号を指し、Rは地球赤道の半径を表す)という公式に基づいて前記地理的位置の距離Sを獲得するステップと、前記集合の重心を獲得するように、仮に一つの集合が{[lat
1,lng
1][lat
2,lng
2]...,[lat
n,lng
n]}であれば、前記集合の重心を[(lat
1+lat
2+...+lat
n)/n,(lng
1+lng
2+...+lng
n)/n](nは正整数である)とするステップを更に実行するように構成されている。
【0022】
本発明の一実施形態では、前記第1のクラスタリングモジュールは、前記地理的位置の距離に基づいて前記位置データにおける前記地理的位置をクラスタリングするように、前記位置データの各々における前記地理的位置を一つの緯度及び経度を含む集合{「lat
i,lng
i」}(iが1以上の正整数である)に変換するステップ321と、2つの前記集合ごとに、2つの前記集合から任意に1つずつ緯度及び経度を獲得した場合の最大距離と定義される前記集合間の距離を獲得するステップ322と、距離が一番近い前記集合を2つ獲得し、前記距離が予め定められた第4の閾値より小さい場合、2つの前記集合を、元の2つの前記集合のすべての緯度及び経度を含む一つの新しい集合に合併させるとともに、ステップ322に戻って引き続き実行し、予め定められた第4の閾値より大きい又は予め定められた第4の閾値と同じである場合、クラスタリングを終了してステップ33に移行するステップ323とを更に実行するように構成されている。
【0023】
本発明の一実施形態では、前記第2の前処理モジュールは、前記IPアドレスデータレコードの各々における前記IPアドレスをそれぞれIPセグメントに変換するように、変換された前記IPアドレスに対応する前記IPセグメントに保持するのに必要なIPアドレスの長さMビットを獲得するステップと、前記IPアドレスに対応する前記IPセグメントを得るように、前記IPアドレスにおける上位Mビットの数値を変えず、下位32−Mビットの数値を0に設定するステップとを更に実行するように構成されている。Mは8以上32以下の整数である。
【0024】
本発明の一実施形態では、前記第2のクラスタリングモジュールは、前処理された前記IPアドレスのデータセットから一つの未処理IPセグメントを獲得するステップ61と、前記アドレスのデータセットから前記IPセグメントを使用したすべてのユーザを獲得するとともに、前記すべてのユーザの前記第1の候補位置と前記第2の候補位置を前記IPセグメントの候補地理的位置として獲得し、2つごとに前記候補地理的位置の距離を獲得し、一連の集合を得られるように前記距離に基づいてクラスタリングするステップ62と、前記IPセグメントの前記地理的位置として一つの前記集合の重心を選択するステップ63とを更に実行するように構成されている。
【0025】
本発明の一実施形態では、前記第2のクラスタリングモジュールは、前記距離に基づいてクラスタリングするように、前記候補地理的位置の各々に対応する緯度及び経度「lat
i,lng
i」を一つの緯度及び経度を含む集合{[lat
i,lng
i]}(iは1以上の正整数である)に変換するステップ621と、2つの集合ごとに、2つの前記集合から任意に一つの緯度及び経度を獲得した場合の最短距離と定義される前記集合間の距離を獲得するステップ622と、距離が一番近い前記集合を2つ獲得し、前記距離が予め定められた第5の閾値より小さい場合、2つの前記集合を、元の2つの前記集合のすべての緯度及び経度を含む一つの新しい集合に合併させるとともに、ステップ622に戻って引き続き実行し、予め定められた第5の閾値より大きい又は予め定められた第5の閾値と同じである場合、クラスタリングを終了してステップ63に移行するステップ623とを更に実行するように構成されている。
【0026】
本発明の一実施形態では、前記第2のクラスタリングモジュールは、前記IPセグメントの前記地理的位置として一つの前記集合の重心を選択するように、前記集合を前記候補地理的位置を含む数の多い順に整列し、それぞれC
1,C
2,…C
i…,C
n(nは集合の数である)とするステップ631と、C
1に含まれる前記候補地理的位置の数がC
2より大きい場合、C
1を選択してステップ634に移行し、そうでない場合ステップ633に移行するステップ632と、C
1に含まれる前記候補地理的位置の数がC
iと同じである場合、C
1,…C
iの中から一番多いユーザの数を有する前記集合を選択して、ステップ634に移行し、一番多いユーザの数を有する前記集合が複数ある場合、前記集合からランダムに一つを選択してステップ634に移行するステップ633と、選択された前記集合の重心を前記IPセグメントの前記地理的位置として獲得するステップ634とを更に実行するように構成されている。
【0027】
本発明の実施形態に係るサーバは少なくとも下記特徴及び有益な効果がある。ユーザが使用する携帯端末(例えばGPS機能付き携帯電話)が生じた位置データを利用して当該ユーザが使用した固定端末(例えば家庭用パソコン、オフィスパソコン)、サーバ及びそれらに使われたIPアドレスに対応する地理的位置を間接に推定する。携帯端末が提供した高精度の地理的位置データを間接に利用したため、当該サーバは街レベルのIPアドレス測位精度が実現され、同時に設置が簡単で応答時間が速い等の利点もある。
【0028】
上記目的を実現するため、本発明の第3の実施形態はコンピュータ読み取り可能な記憶媒体を提供する。コンピュータ読み取り可能な記憶媒体は、コンピュータが本発明の第1の実施形態による前記携帯端末の位置データを利用してIP地理的位置を特定する方法を実行させるためのコンピュータプログラムを記憶するように構成されている。
【0029】
本発明の追加の態様及び利点が下記の説明において部分的に表され、一部が下記の説明より明らかとなり、或は本発明の実行より了解できる。