"プロセッサと、前記プロセッサに接続される主記憶装置と、前記プロセッサに接続され、データを入出力する入出力装置とを備え、入力された前記データを分析し、類似するデータ毎に分類するデータ分析装置であって、前記入出力装置は、処理対象のデータを要素とする集合である複数のオブジェクトの入力を受け付け、前記データ分析装置は、所定のハッシュ関数を用いて前記各オブジェクトのハッシュ値を算出するハッシュ値算出部と、前記算出されたハッシュ値に基づいて、前記算出されたハッシュ値が同一である前記オブジェクトから構成される初期クラスタを生成するクラスタリング部と、前記算出されたハッシュ値に基づいて、前記各初期クラスタが取り得る前記ハッシュ値の範囲を特定し、前記特定されたハッシュ値の範囲に基づいて類似する前記初期クラスタを検索し、前記検索された初期クラスタから構成される最終クラスタを生成するクラスタマージ部と、を備え、前記ハッシュ値算出部は、集合に含まれる要素が所定数以上一致する類似関係を満たすオブジェクトのハッシュ値の種類が限定され、かつ、前記類似関係を満たさないオブジェクトに対しては異なるハッシュ値を算出する前記ハッシュ関数を用いることを特徴とするデータ分析装置。前記データ分析装置は、さらに、異なる二つの集合に含まれる要素を比較することによって前記異なる二つの集合が前記類似関係を満たすか否かを判定する類似性判定部を備え、前記算出されたハッシュ値が同一であるオブジェクトを収集して集合を生成し、前記生成された集合の中から二つの前記オブジェクトを選択し、前記選択された二つのオブジェクトが前記類似関係を満たすか否かを判定し、前記選択された二つのオブジェクトが前記類似関係を満たす場合には、前記選択された二つのオブジェクトに含まれる前記要素をマージすることによって前記初期クラスタを生成し、処理対象となる第1の初期クラスタを選択し、前記選択された第1の初期クラスタに含まれる前記オブジェクトと前記類似関係を満たす他の前記オブジェクトが取り得る前記ハッシュ値の範囲を特定し、前記特定されたハッシュ値の範囲に含まれるハッシュ値と一致する前記オブジェクトを含む第2の初期クラスタを特定し、前記第1の初期クラスタ及び前記第2の初期クラスタが前記類似関係を満たすか否かを判定し、前記第1の初期クラスタ及び前記第2の初期クラスタが前記類似関係を満たす場合には、前記第1の初期クラスタに含まれる前記要素と、前記第2の初期クラスタに含まれる前記要素とをマージすることによって前記最終クラスタを生成することを特徴とする請求項1に記載のデータ分析装置。前記オブジェクトをSと定義し、前記オブジェクトに含まれる前記要素の識別番号をS[i]と定義し、0より大きく1以下のパラメータとして与えられる実数をqと定義し、実数x以上の最小の整数値を算出する関数をceilxと定義した場合に、前記ハッシュ値算出部は、式1のように定義されるハッシュ関数hSを用いることを特徴とする請求項2に記載のデータ分析装置。前記入出力装置は、特定の事柄を表すノードと、二つの前記ノード間を接続するエッジとを含むRDFResourceDescriptionFrameworkの入力を受け付け、前記要素は、前記ノード及び前記エッジのそれぞれに付与されたURIUniformResourceIdentifierであり、前記最終クラスタは、類似する事柄を表す前記ノードがグループ化された集合であることを特徴とする請求項3に記載のデータ分析装置。前記データ分析装置は、前記最終クラスタが生成された後に、新規オブジェクトの入力を受け付けた場合に、前記入力された新規オブジェクトのハッシュ値を算出し、前記新規オブジェクトと前記類似関係を満たす他の前記オブジェクトが取り得る前記ハッシュ値の範囲を特定し、前記特定されたハッシュ値の範囲に含まれるハッシュ値と一致する前記オブジェクトを含む第3の初期クラスタを特定し、前記新規オブジェクトと前記第3の初期クラスタとが前記類似関係を満たすか否かを判定し、前記新規オブジェクトと前記第3の初期クラスタとが前記類似関係を満たす場合には、前記第3の初期クラスタに対して、前記新規オブジェクトに含まれる前記要素をマージすることによって前記最終クラスタを生成することを特徴とする請求項3に記載のデータ分析装置。プロセッサと、前記プロセッサに接続される主記憶装置と、前記プロセッサに接続され、データを入出力する入出力装置とを備え、入力された前記データを分析し、類似するデータ毎に分類するデータ分析装置におけるデータ分析方法であって、前記方法は、前記データ分析装置が、所定のハッシュ関数を用いて、前記入力装置が受け付け、処理対象のデータを要素とする集合である複数のオブジェクトのそれぞれのハッシュ値を算出する第1のステップと、前記データ分析装置が、前記算出されたハッシュ値に基づいて、前記算出されたハッシュ値が同一である前記オブジェクトから構成される初期クラスタを生成する第2のステップと、前記データ分析装置が、前記算出されたハッシュ値に基づいて、前記各初期クラスタが取り得る前記ハッシュ値の範囲を特定し、前記特定されたハッシュ値の範囲に基づいて類似する前記初期クラスタを検索し、前記検索された初期クラスタから構成される最終クラスタを生成する第3のステップと、を含み、前記第1のステップでは、集合に含まれる要素が所定数以上一致する類似関係を満たすオブジェクトのハッシュ値の種類が限定され、かつ、前記類似関係を満たさないオブジェクトに対しては異なるハッシュ値を算出する前記ハッシュ関数を用いることを特徴とするデータ分析方法。前記第2のステップは、前記算出されたハッシュ値が同一であるオブジェクトを収集して集合を生成するステップと、前記生成された集合の中から二つの前記オブジェクトを選択し、前記選択された二つのオブジェクトに含まれる前記要素を比較することによって、前記選択された二つのオブジェクトが前記類似関係を満たす否かを判定するステップと、前記選択された二つのオブジェクトが前記類似関係を満たす場合には、前記選択された二つのオブジェクトに含まれる前記要素をマージすることによって前記初期クラスタを生成するステップと、を含み、前記第3のステップは、処理対象となる第1の初期クラスタを選択するステップと、前記選択された第1の初期クラスタに含まれる前記オブジェクトと前記類似関係を満たす他の前記オブジェクトが取り得る前記ハッシュ値の範囲を特定するステップと、前記特定されたハッシュ値の範囲に含まれるハッシュ値と一致する前記オブジェクトを含む第2の初期クラスタを特定するステップと、前記第1の初期クラスタ及び前記第2の初期クラスタが前記類似関係を満たすか否かを判定するステップと、前記第1の初期クラスタ及び前記第2の初期クラスタが前記類似関係を満たす場合には、前記第1の初期クラスタに含まれる前記要素と、前記第2の初期クラスタに含まれる前記要素とをマージすることによって前記最終クラスタを生成するステップと、を含むことを特徴とする請求項6に記載のデータ分析方法。前記オブジェクトをSと定義し、前記オブジェクトに含まれる前記要素の識別番号をS[i]と定義し、0より大きく1以下のパラメータとして与えられる実数をqと定義し、実数x以上の最小の整数値を算出する関数をceilxと定義した場合に、前記第1のステップでは、式2のように定義されるハッシュ関数hSを用いることを特徴とする請求項7に記載のデータ分析方法。前記入出力装置は、特定の事柄を表すノードと、二つの前記ノード間を接続するエッジとを含むRDFResourceDescriptionFrameworkの入力を受け付け、前記要素は、前記ノード及び前記エッジのそれぞれに付与されたURIUniformResourceIdentifierであり、前記最終クラスタは、類似する事柄を表す前記ノードがグループ化された集合であることを特徴とする請求項8に記載のデータ分析方法。前記方法は、さらに、前記最終クラスタが生成された後に、新規オブジェクトの入力を受け付けた場合に、前記入力された新規オブジェクトのハッシュ値を算出するステップと、前記新規オブジェクトと前記類似関係を満たす他の前記オブジェクトが取り得る前記ハッシュ値の範囲を特定するステップと、前記特定されたハッシュ値の範囲に含まれるハッシュ値と一致する前記オブジェクトを含む第3の初期クラスタを特定するステップと、前記新規オブジェクトと前記第3の初期クラスタとが前記類似関係を満たすか否かを判定するステップと、前記新規オブジェクトと前記第3の初期クラスタとが前記類似関係を満たす場合には、前記第3の初期クラスタに対して、前記新規オブジェクトに含まれる前記要素をマージすることによって前記最終クラスタを生成するステップと、を含むことを特徴とする請求項8に記載のデータ分析方法。プロセッサと、前記プロセッサに接続される主記憶装置と、前記プロセッサに接続され、データを入出力する入出力装置とを備え、入力された前記データを分析し、類似するデータ毎に分類するデータ分析装置が実行するプログラムであって、前記プログラムは、所定のハッシュ関数を用いて、前記入力装置が受け付け、処理対象のデータを要素とする集合である複数のオブジェクトのそれぞれのハッシュ値を算出する第1の手順と、前記算出されたハッシュ値に基づいて、前記算出されたハッシュ値が同一である前記オブジェクトから構成される初期クラスタを生成する第2の手順と、前記算出されたハッシュ値に基づいて、前記各初期クラスタが取り得る前記ハッシュ値の範囲を特定し、前記特定されたハッシュ値の範囲に基づいて類似する前記初期クラスタを検索し、前記検索された初期クラスタから構成される最終クラスタを生成する第3の手順と、を前記プロセッサに実行させるためのプログラムであって、前記第1の手順では、集合に含まれる要素が所定数以上一致する類似関係を満たすオブジェクトのハッシュ値の種類が限定され、かつ、前記類似関係を満たさないオブジェクトに対しては異なるハッシュ値を算出する前記ハッシュ関数を用いて前記ハッシュ値を前記プロセッサに算出させることを特徴とするプログラム。前記第2の手順は、前記算出されたハッシュ値が同一であるオブジェクトを収集して集合を生成する手順と、前記生成された集合の中から二つの前記オブジェクトを選択し、前記選択された二つのオブジェクトに含まれる前記要素を比較することによって、前記選択された二つのオブジェクトが前記類似関係を満たす否かを判定する手順と、前記選択された二つのオブジェクトが前記類似関係を満たす場合には、前記選択された二つのオブジェクトに含まれる前記要素をマージすることによって前記初期クラスタを生成する手順と、を含み、前記第3の手順は、処理対象となる第1の初期クラスタを選択する手順と、前記選択された第1の初期クラスタに含まれる前記オブジェクトと前記類似関係を満たす他の前記オブジェクトが取り得る前記ハッシュ値の範囲を特定する手順と、前記特定されたハッシュ値の範囲に含まれるハッシュ値と一致する前記オブジェクトを含む第2の初期クラスタを特定する手順と、前記第1の初期クラスタ及び前記第2の初期クラスタが前記類似関係を満たすか否かを判定する手順と、前記第1の初期クラスタ及び前記第2の初期クラスタが前記類似関係を満たす場合には、前記第1の初期クラスタに含まれる前記要素と、前記第2の初期クラスタに含まれる前記要素とをマージすることによって前記最終クラスタを生成する手順と、を含むことを特徴とする請求項11に記載のプログラム。前記オブジェクトをSと定義し、前記オブジェクトに含まれる前記要素の識別番号をS[i]と定義し、0より大きく1以下のパラメータとして与えられる実数をqと定義し、実数x以上の最小の整数値を算出する関数をceilxと定義した場合に、前記第1の手順では、式3のように定義されるハッシュ関数hSを用いることを特徴とする請求項12に記載のプログラム。前記入出力装置は、特定の事柄を表すノードと、二つの前記ノード間を接続するエッジとを含むRDFResourceDescriptionFrameworkの入力を受け付け、前記要素は、前記ノード及び前記エッジのそれぞれに付与されたURIUniformResourceIdentifierであり、前記最終クラスタは、類似する事柄を表す前記ノードがグループ化された集合であることを特徴とする請求項13に記載のプログラム。前記プログラムは、さらに、前記最終クラスタが生成された後に、新規オブジェクトの入力を受け付けた場合に、前記入力された新規オブジェクトのハッシュ値を算出する手順と、前記新規オブジェクトと前記類似関係を満たす他の前記オブジェクトが取り得る前記ハッシュ値の範囲を特定する手順と、前記特定されたハッシュ値の範囲に含まれるハッシュ値と一致する前記オブジェクトを含む第3の初期クラスタを特定する手順と、前記新規オブジェクトと前記第3の初期クラスタとが前記類似関係を満たすか否かを判定する手順と、前記新規オブジェクトと前記第3の初期クラスタとが前記類似関係を満たす場合には、前記第3の初期クラスタに対して、前記新規オブジェクトに含まれる前記要素をマージすることによって前記最終クラスタを生成する手順と、を前記プロセッサに実行させることを特徴とする請求項13に記載のプログラム。類似するオブジェクトを網羅的に分析するためには、式1に示すような集合Sに含まれるオブジェクトSiを相互に比較し、類似するものを探し出す必要がある。このとき、集合Sの要素間のペアの数は下式2で与えられる。式2から分かるように、nが大きいとき、全ペアの比較を行うことは非現実的である。このため、前述の分析処理を実用化するためには高速な計算手法が必要である。前述したデータの分析方法に関する技術として、データマイニングにおけるバスケット分析が知られている例えば、非特許文献1参照。以下では、集合Xの大きさ、すなわち、集合Xの要素数を|X|、空集合をφと記載する。式1に示す集合Sを入力とした場合に、バスケット分析によって、相関ルールと呼ばれる情報が得られる。ここで、相関ルールとは、下式3~5を満たす集合Uの部分集合X及び部分集合Yに対して、下式6を満たすならば、下式7を満たすような関係をいう。言い換えると、集合Sの要素である部分集合Siが部分集合Xを含むならば部分集合Yを含む関係をいう。バスケット分析は、産業上広い応用分野を持ち、例えば特許文献1のようなユーザが関心を持つ可能性のある事物を推薦するシステムに応用される。しかし、バスケット分析は、データに含まれる顕著な特徴を探索する技術であって、データをカテゴリに分類する技術ではない。特に、低頻度のカテゴリを認識するには不向きな分析方法である。顕著な特徴を抽出するだけでなく、データをカテゴリごとに分類するためには、オブジェクト間の類似度を算出し、類似するオブジェクトをまとめる技術が必要である。しかし、要素数n、すなわち、データ数が非常に大きい場合、前述したように、全オブジェクト間を相互に比較する処理は、現実的な処理時間では実現が困難となる。そこで、類似する可能性があるオブジェクトを事前に集め、比較範囲を限定する方法が知られている。具体的には、以下の手順に従って処理が実行される。1関数hを定義する。当該関数hは、オブジェクトSiを変数とする関数であって、類似するオブジェクトSiに対しては同一の値を与え、類似しないオブジェクトSiに対しては異なる値を与えるように定義される。ここでは、集合Sの要素である各オブジェクトSiに対して、値hSiを算出する。以下、関数hをハッシュ関数と呼び、値hSiをハッシュ値と呼ぶ。2ハッシュ値hSiが等しいオブジェクトを収集する。3収集されたオブジェクトを相互比較する。前述した手順で処理を実行することによって、類似度の算出対象となるオブジェクトを限定できる図10参照。図10は、従来のオブジェクトの分類方法を示す説明図である。図10のaは、全てのオブジェクト間を比較する場合の概念図を表し、図10のbは、前述したハッシュ値を用いてオブジェクト間を比較する場合の概念図を表す。前述した方法に用いられるハッシュ関数hの算出方法として、localitysensitivehashingと呼ばれる手法が知られている例えば、非特許文献2参照。しかし、非特許文献2に記載の手法は、ハッシュ値が等しい類似オブジェクトを高速に探索できるが、ハッシュ値が異なる場合には類似度を比較する対象から除かれるため、精度のよい解析には対応できない。本発明では、オブジェクトの類似度の算出処理を高速化するために、類似する可能性のあるオブジェクトを高速に特定する手段を提供することによって、類似オブジェクトを網羅的に探索可能とする手段を提供する。本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、プロセッサと、前記プロセッサに接続される主記憶装置と、前記プロセッサに接続され、データを入出力する入出力装置とを備え、入力された前記データを分析し、類似するデータ毎に分類するデータ分析装置であって、前記入出力装置は、処理対象のデータを要素とする集合である複数のオブジェクトの入力を受け付け、前記データ分析装置は、所定のハッシュ関数を用いて前記各オブジェクトのハッシュ値を算出するハッシュ値算出部と、二つの前記オブジェクトが類似するか否かを判定する類似判定部と、前記算出されたハッシュ値に基づいて、前記算出されたハッシュ値が同一である前記オブジェクトから構成される初期クラスタを生成する初期クラスタリング部と、前記算出されたハッシュ値に基づいて、前記各初期クラスタが取り得る前記ハッシュ値の範囲を特定し、前記特定されたハッシュ値の範囲に基づいて類似する前記初期クラスタを検索し、前記検索された初期クラスタから構成される最終クラスタを生成するクラスタマージ部と、を備え、前記ハッシュ値算出部は、集合に含まれる要素が所定数以上一致する類似関係を満たすオブジェクトのハッシュ値の種類が限定され、かつ、前記類似関係を満たさないオブジェクトに対しては異なるハッシュ値を算出する前記ハッシュ関数を用いることを特徴とする。本発明によれば、複数のオブジェクトを含むデータから、類似するオブジェクトから構成されるクラスタを高精度かつ高速に生成できる。以下、本発明の実施の形態について図面を参照しつつ説明する。第1の実施形態図1は、本発明の第1の実施形態のデータ分析装置100の構成例を示すブロック図である。データ分析装置100は、CPUCentralProcessingUnit101、主記憶装置102、補助記憶装置103、リムーバブルドライブ104、ユーザインタフェース106及びネットワークインタフェース107を備える。各構成は、内部バス等によって互いに接続される。また、データ分析装置100は、LANLocalAreaNetwork等のネットワーク140を介して外部記憶装置130と接続される。なお、本発明は、ネットワーク140の種別に限定されず、有線及び無線いずれの接続方法を用いてもよい。CPU101は、主記憶装置102に格納されたプログラムを実行する演算装置である。CPU101が、主記憶装置102に格納されるプログラムを実行することによって、データ分析装置100が有する機能を実現することができる。以下では、プログラムを主語にして処理を説明するときには、CPU101によって当該プログラムが実行されていることを表す。主記憶装置102は、CPU101によって実行されるプログラム及び当該プログラムの実行に必要な情報を格納する。主記憶装置102は、例えば、RAMRandomアクセスMemory等のメモリが考えられる。主記憶装置102には、プログラムとして、ハッシュ値算出部110、類似性判定部111、初期クラスタリング部112及びクラスタマージ部113を格納し、また、情報としてオブジェクト集合120、初期クラスタ121及び最終クラスタ122を格納する。ハッシュ値算出部110は、ハッシュ関数を用いて入力されたオブジェクトのハッシュ値を算出する。本実施形態では、ハッシュ値算出部110は、予め所定の条件を満たすハッシュ関数を保持しているものとする。なお、ハッシュ関数については後述する。類似性判定部111は、オブジェクト間の類似性を判定する。初期クラスタリング部112は、ハッシュ値算出部110及び類似性判定部111の処理結果に基づいて、ハッシュ値が同一、かつ、類似性のあるオブジェクトから構成される初期クラスタ121を生成する。クラスタマージ部113は、ハッシュ値算出部110及び類似性判定部111の処理結果に基づいて、ハッシュ値が類似する2以上の初期クラスタをマージして、最終クラスタ122を生成する。オブジェクト集合120は、各プログラムに対する入力データである。初期クラスタ121は、初期クラスタリング部112によって生成されるクラスタの情報である。また、最終クラスタ122は、クラスタマージ部113によって生成されるクラスタの情報である。なお、オブジェクト集合120は、主記憶装置102に格納される必要はなく、例えば、補助記憶装置103、リムーバブルメディア又は外部記憶装置130に格納されていてもよい。この場合、CPU101が、補助記憶装置103、リムーバブルメディア又は外部記憶装置130からオブジェクト集合120を読み出し、読み出されたオブジェクト集合120を主記憶装置102に格納する。また、初期クラスタ121及び最終クラスタ122は、主記憶装置102に格納される必要はなく、例えば、補助記憶装置103及びリムーバブルメディアに格納されてもよい。この場合、CPU101は、必要に応じて、補助記憶装置103及びリムーバブルメディアから初期クラスタ121及び最終クラスタ122を読み出すことができる。また、本実施形態では、ハッシュ値算出部110、類似性判定部111、初期クラスタリング部112及びクラスタマージ部113をプログラムによって実現していたが、本発明はこれに限定されない。例えば、ハッシュ値算出部110、類似性判定部111、初期クラスタリング部112及びクラスタマージ部113が備える機能を専用のハードウェアとして実現してもよい。すなわち、データ分析装置100が、ハッシュ値関数算出装置、類似性判定装置、初期クラスタリング装置及びクラスタマージ装置を備える構成であってもよい。補助記憶装置103は、情報を永続的に保持することが可能な装置であり、例えば、HDDHardDiskDrive等が考えられる。リムーバブルドライブ104は、リムーバブルメディアへのデータの書込処理及び読出処理を実行する装置である。ここで、リムーバブルメディアには、CD-ROM、DVDなどの光学ディスク、及びフロッピーディスクフロッピーは登録商標、以下同じなどの磁気ディスクが含まれる。なお、リムーバブルメディアには、オブジェクト集合120、初期クラスタ121及び最終クラスタ122を記録することができる。ユーザインタフェース106は、データ分析装置100の利用者がデータを入力し、また、処理の結果を出力するためのインタフェースである。ユーザインタフェース106は、ディスプレイ、キーボード及びマウスなどが含まれる。ネットワークインタフェース107は、ネットワーク140を介して外部の装置と接続するためのインタフェースである。次に、データ分析装置100の具体的な処理の内容について説明する。ただし、以下では、オブジェクト集合120は、補助記憶装置103に格納されているものとする。図2は、本発明の第1の実施形態におけるデータ分析装置100の各構成の連携を説明するシーケンス図である。データ分析装置100の利用者が、ユーザインタフェース106を用いて、処理の開始を指示するステップS200。処理の開始指示を受け付けたCPU101は、補助記憶装置103からオブジェクト集合120を読み出すステップS201。読み出されたオブジェクト集合120は、主記憶装置102に格納される。次に、CPU101は、初期クラスタ121を生成しステップS202、生成された初期クラスタ121を補助記憶装置103に出力するステップS203。これによって、補助記憶装置103に初期クラスタ121が格納される。次に、CPU101は、初期クラスタ121を補助記憶装置103から読み出しステップS204、読み出された初期クラスタ121を用いて最終クラスタ122を生成するステップS205。さらに、CPU101は、生成された最終クラスタ122を補助記憶装置103に出力するステップS206。これによって、補助記憶装置103に最終クラスタ122が格納される。最後に、CPU101は、ユーザインタフェース106を介して利用者に処理の終了を通知するステップS207。なお、ステップS200では、直接利用者がオブジェクト集合120を入力してもよい。この場合、ステップS201の処理を省略してもよい。また、オブジェクト集合120は、外部記憶装置130から読み出されてもよい。図3は、本発明の第1の実施形態におけるデータ分析装置100の処理の流れを示すフローチャートである。CPU101は、オブジェクト集合120が入力されると、初期クラスタリング部112を実行する。初期クラスタリング部112は、ハッシュ値算出部110及び類似性判定部111を呼び出す。呼び出されたハッシュ値算出部110及び類似性判定部111は、それぞれ所定の処理を実行し、処理の結果を初期クラスタリング部112に出力する。なお、ハッシュ値算出部110及び類似性判定部111が実行する処理については後述する。初期クラスタリング部112は、出力された結果に基づいて、初期クラスタ121を生成する。なお、初期クラスタリング部112が実行する処理の詳細については後述する。CPU101は、初期クラスタリング部112の処理が完了すると、次に、クラスタマージ部113を実行する。クラスタマージ部113は、類似性判定部111を呼び出す。呼び出された類似性判定部111は、所定の処理を実行し、処理の結果をクラスタマージ部113に出力する。クラスタマージ部113は、出力された結果と初期クラスタとを用いて、最終クラスタ122を生成する。なお、クラスタマージ部113が実行する処理については後述する。ここで、ハッシュ値算出部110が用いるハッシュ値関数hについて説明する。本実施形態では、ハッシュ関数は、入力されるオブジェクト集合120の特性に合わせて予めデータ分析装置100に登録されている。本実施形態におけるハッシュ関数hは、互いに類似するオブジェクトを検索するために使用される。したがって、ハッシュ関数hは、以下の条件を満たすものが望ましい。条件1:類似しないオブジェクトS1、S2に対し、高い確率で下式8を満たす。条件2:下式9を満たすオブジェクトS1、S2に対し、必ず下式10を満たす。条件3:類似するオブジェクトSiは、ハッシュ値hSiが異なっても値の種類が限られる。あらゆるデータに対し、前述した全ての条件を満たすハッシュ関数hを設計するのは難しいが、本発明では一例として、以下に述べるデータが与えられたとき、前述の条件1~3を満たすハッシュ関数を示す。まず、任意の集合Uから無作為に選択されたm個の要素から成る集合Gがg個あるものとする。以下では当該集合をグループと呼ぶ。また、各オブジェクトSiは、いずれか一つのグループGから、最大R個の要素を無作為に除去して得られる集合とする。ただし、整数m及びRは下式11及び下式12を満たすものとする。このとき、同一グループの要素であるオブジェクトSiが、類似オブジェクトとなる。また、入力されたオブジェクト集合Sに含まれる属性にはID番号が割り当てられ、割り当てられたID番号の昇順にオブジェクトSiに含まれる属性がソートされているものとする。図7に示す例では、下記のようなものになる。S1:[1,2,3]S2:[1,2,3]S3:[5,6,7]S4:[1,2,3,4]以下では、オブジェクトSiに含まれる属性がID番号の順にソートされた後のSiにおけるj番目の属性のID番号をSi[j]と記載する。すなわち、Si[1]はオブジェクトSiに含まれる属性のうちID番号が最小の属性を示し、Si[|Si|]はオブジェクトSiに含まれる属性のうちID番号が最大の属性を表す。また、以下では、変数qを0より大きく1以下の実数とする。さらに、ceilxは実数x以上の最小の整数とする関数であり、天井関数とも呼ばれる。このとき、本発明のハッシュ関数hを下式13に示すように定義する。ここで、例えば、変数qが0.5のとき、図7に示すオブジェクトS1~S4のハッシュ値は、下式14~17に示すように算出される。なお、変数qの値は一例であって、0より大きく1以下の実数であればどのような値でもよく、本発明のデータ分析装置100の利用者がパラメータとして与える値である。このとき、式13にように定義したハッシュ関数hSiが、前述のようなオブジェクトSiを要素とするオブジェクト集合Sに対し、条件1~3を満足する。以下、具体的に理由を述べる。条件1について二つのオブジェクトS1、S2が、異なるグループから得られたオブジェクトであるとする。このとき、ハッシュ値hS1は、オブジェクトS1に含まれる属性のID番号であり、下式18を満たす。したがって、ハッシュ値hS1がS2に含まれる確率、すなわち、下式19を満たす確率は高々m/|U|である。前述のように、式11を満たすため当該確率は低い。よって、高い確率で式8を満たす。条件2について式9を満たす二つのオブジェクトS1、S2において、下式20及び下式21を満たすことはない。なぜなら、ハッシュ値hは式13に示すようにID番号であり、属性が異なればID番号も異なるためである。したがって、式10を満たす。条件3について前述のようにオブジェクトSiは、グループGからR個の要素属性をランダムに除去して得られたオブジェクトである。このとき、ハッシュ値hSiは、グループGの限られた要素のいずれかであることを説明する。以下では、ハッシュ値hSiの、Gにおける順位をaとする。まず、順位aが最大値をとるのは、オブジェクトSiがグループGの下位R個の要素を削除した集合である場合である。この場合、順位aの値は、下式22から下式23のように算出できる。一方、順位aが最小値をとるのは、オブジェクトSiがグループGの上位R個の要素を削除した集合である場合である。この場合、順位aの値は、式22から、下式24のように算出できる。すなわち、順位aの値は、下式25を満たす。したがって、順位aの取り得る値の種類は高々R1個である。以上がハッシュ関数の説明である。次に、オブジェクトの類似性の判定方法について説明する。オブジェクトの類似性は、類似性判定部111によって判定される。具体的には、類似性判定部111は、二つのオブジェクトS1、S2が与えられたとき、二つのオブジェクトの類似性を示す数値を算出する。二つのオブジェクト集合の類似性を数値化する方法は、さまざまな公知の方法を用いることができる。例えば、オブジェクトS1、S2の異なる要素の数D1を用いる方法が知られている。なお、D1は、下式26のように与えられる。この場合、類似性判定部111は、D1が閾値例えば、2R以下のとき、オブジェクトS1とオブジェクトS2とが類似すると判定する。しかし、前述したD1を用いた場合、要素数が小さいオブジェクトS1、S2に対して、要素の違いが大きくても類似性があると判定されてしまうことがある。例えば、要素数が100のオブジェクトS1、S2に対して、閾値が60と設定された場合に、D1が50ならばオブジェクトS1、S2は類似オブジェクトと判定される。しかし、両オブジェクトは半分の要素が異なり類似するオブジェクトとして扱うのは誤りがある可能性がある。すなわち、要素数に対して、D1が十分小さくないと誤った判定結果が出力される可能性がある。そこで、前述したような判定を防ぐために、下式27を用いる方法が考えられる。式27は、オブジェクトS1、S2の和集合の要素数に対する、異なる要素の数D1の相対的な割合を算出するための数式である。この場合、類似性判定部111は、D2と新たな閾値pとを比較し、D1及びD2の両方が条件を満たす場合にのみ、オブジェクトが類似すると判定する。ここで、閾値pは、0以上1以下の実数値である。また、D1及びD2を算出するときに、オブジェクトS1、オブジェクトS2、オブジェクトS1とS2との共通部分、及び、オブジェクトS1とS2との和集合のそれぞれの要素数を単に数えるだけでなく、各集合の要素uuは集合Uの要素に実数値の重みwuを定義し、個数を数える代わりに、重みwuの和を算出してもよい。なお、任意の要素uに対して重みwuを1とした場合は、D1及びD2は、個数を数えた場合の値と一致する。次に、初期クラスタ121を生成処理について説明する。図4は、本発明の第1の実施形態における初期クラスタ121の生成処理を説明するフローチャートである。当該処理では、初期クラスタリング部112が、ハッシュ値が同一のオブジェクトを集めて、相互にオブジェクトを比較し、類似性のある複数のオブジェクトをマージする。なお、オブジェクトの類似性は、類似性判定部111によって判定される。ここで、複数のオブジェクトをマージするとは、各オブジェクトの和集合を生成することを示す。以下では、初期クラスタリング部112が、算出されたハッシュ値を取得した後の処理について説明する。なお、ハッシュ値算出部110は、以下のような処理を実行するものとする。すなわち、ハッシュ値算出部110は、入力されたオブジェクト集合120に含まれる属性のID番号を算出し、算出されたID番号の昇順に属性をソートする。さらに、ハッシュ値算出部110は、登録されたハッシュ関数hを用いて、オブジェクト集合120に含まれる各オブジェクトSiのハッシュ値hSiを算出する。本発明におけるハッシュ関数hSiの定義は、前述した通りである。本実施形態における初期クラスタ121は、ハッシュ値が同一であり、かつ、類似性のあるオブジェクトをマージすることによって生成されるオブジェクトである。したがって、ハッシュ値が同一であるが、類似性のないオブジェクトは異なる初期クラスタ121となる。そのため、同一のハッシュ値である初期クラスタ121が複数存在することとなる。以下では、ハッシュ値がxである初期クラスタ121の集合をC0xと記載する。初期クラスタリング部112は、変数iを1を設定し、ステップS402に進むステップS401。すなわち、まず、オブジェクトS1が処理対象として選択される。最初にオブジェクトS1がどの初期クラスタに所属するかが判定され、以下、変数iを1ずつ加算して、全てのオブジェクトSiについて同様の処理が実行される。次に、初期クラスタリング部112は、変数iがオブジェクト集合Sの要素数より大きいか否か、すなわち、すべてのオブジェクトに対して処理が終了したか否かを判定するステップS402。変数iがオブジェクト集合Sの要素数より大きいと判定された場合、初期クラスタリング部112は、処理を終了する。変数iがオブジェクト集合Sの要素数以下と判定された場合、初期クラスタリング部112は、集合C0hSiが存在するか否かを判定するステップS403。ここで、ハッシュ値hSiは、処理対象であるオブジェクトSiのハッシュ値である。すなわち、集合C0hSiは、ハッシュ値がhSiである初期クラスタの集合である。したがって、ステップS403では、処理対象のオブジェクトSiのハッシュ値hSiが、初めて処理されるハッシュ値であるか否かが判定される。集合C0hSiが存在すると判定された場合、初期クラスタリング部112は、ステップS405に進む。集合C0hSiが存在しない、すなわち、初めて処理されるハッシュ値であると判定された場合、初期クラスタリング部112は、集合C0hSiを空集合として設定して、ステップS405に進むステップS404。初期クラスタリング部112は、集合C0hSiを集合Cとして設定し、さらに、変数jを1に設定するステップS405。ステップS405の処理は、処理対象のオブジェクトSiを追加する初期クラスタとして、ハッシュ値が同一である初期クラスタを選択したことを意味する。なお、変数jは、1から|C|までの実数を表す。次に、初期クラスタリング部112は、変数jが集合Cの要素数より大きいか否かを判定するステップS406。すなわち、集合Cに含まれるすべての初期クラスタに対して処理が終了したか否かが判定される。変数jが集合Cの要素数以下と判定された場合、初期クラスタリング部112は、集合Cに含まれる初期クラスタの中から、比較対象の初期クラスタS’を選択し、また、変数jを1加算するステップS407。ここで、初期クラスタS’は、オブジェクトをマージした集合、すなわち、複数のオブジェクトの和集合であり、当該初期クラスタS’は属性の集合である。したがって、初期クラスタS’もオブジェクトと同様に扱うことができる。次に、初期クラスタリング部112は、処理対象のオブジェクトSiと選択された初期クラスタS’とが類似するか否かを判定するステップS408。具体的には、以下のような処理が実行される。まず、初期クラスタリング部112は、オブジェクトSiと選択された初期クラスタS’とを入力として類似性判定部111を呼び出す。呼び出された類似性判定部111は、前述した判定方法に基づいて、オブジェクトSiと選択された初期クラスタS’とが類似するか否かを判定する。さらに、類似性判定部111は、判定の結果を初期クラスタリング部112に出力する。初期クラスタリング部112は、入力された判定の結果に基づいて、オブジェクトSiと選択された初期クラスタS’とが類似するか否かを判定する。オブジェクトSiと選択された初期クラスタS’とが類似しないと判定された場合、初期クラスタリング部112は、ステップS406に戻り同様の処理を実行する。オブジェクトSiと選択された初期クラスタS’と類似すると判定された場合、初期クラスタリング部112は、初期クラスタS’にオブジェクトSiをマージしステップS409、変数iを1加算しステップS411、ステップS402に戻り同様の処理を実行する。具体的には、初期クラスタリング部112は、初期クラスタS’とオブジェクトSiとの和集合を新たな初期クラスタS’として生成する。ステップS406において、変数jが集合Cの要素数より大きいと判定された場合、初期クラスタリング部112は、オブジェクトSiを新たな初期クラスタとして集合Cに追加しステップS410、変数iを1加算しステップS411、ステップS402に戻り同様の処理を実行する。具体的には、集合CとオブジェクトSとを加えた集合を新たな集合Cとする。ステップS410の処理は、オブジェクトSiに追加するクラスタがないため、当該オブジェクトSiを新たなクラスタとして設定するための処理である。なお、集合Cが大きくなり処理に時間を要する場合は、qの値を変更した別のハッシュ関数hを用いて、オブジェクトSiに類似する可能性のある初期クラスタを絞り込んでもよい。前述した処理によって、互いに類似するオブジェクトのうち、ハッシュ値hSiが同一のオブジェクトがマージされた初期クラスタ121が生成される。次に、最終クラスタ122の生成処理について説明する。図5は、本発明の第1の実施形態における最終クラスタ122の生成処理を説明するフローチャートである。当該処理では、クラスタマージ部113が、類似するハッシュ値hSiを取り得るオブジェクトを含む、複数の初期クラスタ121をマージすることによって、最終クラスタ122を生成する。ここで、複数の初期クラスタ121をマージするとは、各初期クラスタ121の和集合を生成することを表す。クラスタマージ部113は、初期クラスタ121の中から、処理対象とする初期クラスタS0を選択し、選択された初期クラスタS0に対して、以下で説明する処理を実行する。クラスタマージ部113は、初期クラスタS0を選択した後、変数iを1に設定し、さらに、当該初期クラスタS0が取り得るハッシュ値の集合HS0を変数Hに設定するステップS501。ステップS501の処理は、クラスタS0のハッシュ値と類似する範囲を特定することに対応する。集合Hは、初期クラスタS0において、順位aが下式28を満たす属性のID番号を要素とする集合である。このとき、初期クラスタS0とは別の初期クラスタS’が、初期クラスタS0と共通のグループGから生成され、かつ、ハッシュ値hS’が初期クラスタS0に含まれる場合、ハッシュ値hS’は集合Hに含まれる。その理由を以下で説明する。任意の二つの初期クラスタS0、S’が、共通のグループGから高々R個の要素を削除して得られた集合である場合、前述のようにハッシュ値hS0とハッシュ値hS’とは、グループGの高々R個の要素のいずれかの値となる。ハッシュ値hS0、hS’の、グループGにおける順位をそれぞれa1、a2とした場合、順位a1、a2は、下式29を満たす。一方、グループGのa1-R番目からa1R番目までの値は、クラスタS0においてceilq×|S0|-R番目からceilq×|S0|R番目の値のいずれかとなる。したがって、ハッシュ値hS’がクラスタS0の要素である場合、ハッシュ値hS’は初期クラスタS0においてceilq×|S0|-R番目からceilq×|S0|R番目の値のいずれかであり、これらの値の集合HS0を集合Hとすればよい。ただし、ハッシュ値hS0が初期クラスタS’の要素でなく、かつ、ハッシュ値hS’が初期クラスタS0の要素でない場合、初期クラスタS0と初期クラスタS’は共通のグループGに由来することが見落とされてしまう。しかし、ハッシュ値hS0が初期クラスタS’の要素でない確率、及び、ハッシュ値hS’が初期クラスタS0の要素でない確率は、共に下式30に示すようになる。そのため、前述した両方の条件が成立する確率は、下式31のようになる。したがって、Rが下式32を満たすならば、前述の両方の条件が成立する確率を小さい。また、データ量が多いとき、初期クラスタS0、S’はいずれも多くのオブジェクトがマージされたものであるため、グループGの多くの要素を含むことが期待される。したがって、前述の両方の条件が成立しない確率は、式31よりはるかに小さいことが期待される。図5の説明に戻る。クラスタマージ部113は、変数iが集合Hの要素数より大きいか否か、すなわち、すべてのハッシュ値について処理が完了したか否かを判定するステップS502。変数iが集合Hの要素数より大きいと判定された場合、クラスタマージ部113は、処理を終了する。変数iが集合Hの要素数以下と判定された場合、クラスタマージ部113は、集合Hの要素Hiを一つ選択して、集合C0Hiを集合Cとして設定し、変数iを1加算し、さらに、変数jを1に設定するステップS503。次に、クラスタマージ部113は、変数jが集合Cの要素数より大きいか否かを判定するステップS504。すなわち、集合C0Hiに含まれるすべての初期クラスタに対して処理が終了したか否かが判定される。変数jが集合Cの要素数より大きいと判定された場合、クラスタマージ部113は、ステップS502に戻り同様の処理を実行する。変数jが集合Cの要素数以下と判定された場合、クラスタマージ部113は、集合CHiに含まれる要素である初期クラスタC[j]を選択して、処理対象となるクラスタS’として設定し、さらに、変数jを1加算するステップS505。次に、クラスタマージ部113は、初期クラスタS0と初期クラスタS’とが類似するか否かを判定するステップS506。なお、ステップS506の処理は、ステップS408と同一の方法を用いる。初期クラスタS0と初期クラスタS’とが類似しないと判定された場合、クラスタマージ部113は、ステップS504に戻り同様の処理を実行する。初期クラスタS0と初期クラスタS’とが類似すると判定された場合、クラスタマージ部113は、初期クラスタS0と初期クラスタS’とが類似することを示す集合Lを生成するステップS507。すべての初期クラスタに対して処理が実行された後、集合Lにはすべての類似する初期クラスタが記録される。クラスタマージ部113は、集合Lに基づいて、例えば、公知の単連結法singlelinkageclusteringを適用することによって、互いに類似する初期クラスタをまとめて最終クラスタ122を生成できる。なお、集合Lに含まれる初期クラスタの類似関係を示す情報の探索方法には、公知の2分探索、及び前記ハッシュ関数等を用いることができる。なお、図4及び図5の示す処理は一例であって、本発明はこれに限定されない。例えば、データ分析装置100は、算出されたハッシュ値に基づいて、ハッシュ値が同一のオブジェクトを収集して集合を生成する処理と、生成された集合に含まれるオブジェクトを比較し、類似するオブジェクトをマージする処理とを実行すれば初期クラスタ121を生成できる。また、データ分析装置100は、ハッシュ値が所定の範囲内にある初期クラスタ121を収集して集合を生成する処理と、生成された集合に含まれる初期クラスタ121を比較し、類似する初期クラスタ121をマージする処理とを実行すれば最終クラスタ122を生成できる。本実施形態では、ハッシュ値が同一であり、かつ、類似するオブジェクトの和集合を初期クラスタ121としたが、本発明はこれに限定されない。例えば、ハッシュ値が同一のオブジェクトを初期クラスタ121として定義してもよい。これによって、処理の高速化を実現できる。この場合、ステップS405の処理が実行された後、ステップS410の処理を実行すればよい。なお、本実施形態で例示した種々のソフトウェアは、電磁的、電子的及び光学式等の種々の記録媒体に格納可能であり、インターネット等の通信網を通じて、コンピュータにダウンロード可能である。以上のように、第1の実施形態では、ハッシュ値が同一のものに限らず、ハッシュ値が類似するクラスタをさらにまとめることによって、類似する可能性のあるオブジェクトを高速に特定できる。第2の実施形態第2の実施形態では、RDFに対してデータ分析装置100を適用した場合について説明する。以下、第1の実施形態との差異を中心に説明する。前述したように、RDFグラフの各ノードNは、エッジのURI集合によって特徴づけられるオブジェクトとみなすことができる。このとき、図8Aに示すように、エッジのURIが属性に対応し、集合UはすべてのエッジのURIの集合に対応する。図6は、本発明の第2の実施形態におけるデータ分析装置100の構成例を示すブロック図である。データ分析装置100のハードウェア構成は、第1の実施形態と同一であるため説明を省略する。第2の実施形態ではソフトウェア構成が異なる。具体的には、データ分析装置100は、新たにRDF変換部600を備える。その他のソフトウェア構成は第1の実施形態と同一であるため説明を省略する。RDF変換部600は、RDFにおける各ノードNをオブジェクトに変換する。各オブジェクトの要素は、ノードNから伸びるエッジのURIとする。したがって、第2の実施形態では、RDF変換部600によって変換されたオブジェクト集合を入力とし、最終クラスタ122が生成される。なお、最終クラスタ122を生成するための方法は、第1の実施形態と同一であるため説明を省略する。第3の実施形態処理対象とするデータは永続的なものとは限らず、応用によっては、新規データが次々に出現することも考えられる。そこで、第3の実施形態では、初期クラスタ121及び最終クラスタ122が生成された後に、新たなオブジェクトが入力された場合に、当該オブジェクトと類似するオブジェクトを含む初期クラスタ121及び最終クラスタ122を高速に特定する。なお、データ分析装置100の構成は、第1の実施形態と同一であるため説明を省略する。第3の実施形態では、新たに初期クラスタ121を生成する必要は無いため図4に示す処理を省略できる。新規オブジェクトsが入力されると、まず図4のステップS403~S409においてSiをsに置き換えた処理によって、sに類似する初期クラスタを特定し、sをマージする。この初期クラスタをS0とみなして図5に示す処理が実行される。これによって、新規オブジェクトsに類似するオブジェクトを含む初期クラスタ121を特定でき、また集合Lによって、最終クラスタも特定できる。以上、本発明の各実施形態について説明したが、前述した実施形態は本発明の適用例を示したものであり、本発明の技術的範囲を前述した各実施形態の具体的構成に限定する趣旨ではない。本発明の要旨を逸脱しない範囲において種々変更可能である。"