JP2013130965A - データ分析装置、データ分析方法及びプログラム - Google Patents

データ分析装置、データ分析方法及びプログラム Download PDF

Info

Publication number
JP2013130965A
JP2013130965A JP2011278903A JP2011278903A JP2013130965A JP 2013130965 A JP2013130965 A JP 2013130965A JP 2011278903 A JP2011278903 A JP 2011278903A JP 2011278903 A JP2011278903 A JP 2011278903A JP 2013130965 A JP2013130965 A JP 2013130965A
Authority
JP
Japan
Prior art keywords
objects
cluster
hash value
initial cluster
initial
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011278903A
Other languages
English (en)
Other versions
JP5716966B2 (ja
Inventor
Tomohiro Yasuda
知弘 安田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2011278903A priority Critical patent/JP5716966B2/ja
Publication of JP2013130965A publication Critical patent/JP2013130965A/ja
Application granted granted Critical
Publication of JP5716966B2 publication Critical patent/JP5716966B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】複数の要素から成るオブジェクトをすべて相互比較することなく類似する可能性のあるオブジェクトを高速に特定する。
【解決手段】入力されたデータを分析し、類似するデータ毎に分類するデータ分析装置であって、処理対象のデータを要素とする集合である複数のオブジェクトの入力を受け付け、ハッシュ関数を用いて各オブジェクトのハッシュ値を算出するハッシュ値算出部と、ハッシュ値が同一であるオブジェクトから構成される初期クラスタを生成するクラスタリング部と、類似する初期クラスタから構成される最終クラスタを生成するクラスタマージ部と、を備え、ハッシュ値算出部は、集合に含まれる要素が所定数以上一致する類似関係を満たすオブジェクトのハッシュ値の種類が限定され、かつ、類似関係を満たさないオブジェクトに対しては異なるハッシュ値を算出するハッシュ関数を用いる。
【選択図】図1

Description

本発明は、複数の要素から構成される集合を多数含むデータを分析する装置、方法及びプログラムに関する。
今日、社会のあらゆる分野において、様々な電子データが生み出されている。そうした膨大なデータの中から有用な知識を発見することは、データ分析技術の重要な課題である。
データの種類は多種多様であるが、頻繁に使用されるデータの種類の1つとして、複数の要素から成る集合が多数集まって構成されるデータがある。前述したデータの一例を図7を用いて説明する。
図7は、従来のデータの一例を示す説明図である。
まず、データに含まれる要素704から構成される集合U701がある。そして、集合U701の部分集合Si702を多数集めた集合S703が下式(1)のように与えられる。ここでnは、集合S703に含まれる部分集合の数である。図7に示す例では、nは「4」である。
Figure 2013130965
本明細書では、各部分集合Siを「オブジェクト」、集合Uに属する要素を「属性」と呼ぶ。
オブジェクトSi702は、集合U701に属する属性の集合であり、当該オブジェクトを構成する属性704によってオブジェクトSi702が特徴づけられる。
前述したデータの一例として、商店において顧客が購入した商品を記録したpoint of sales (POS)データがある。POSデータの場合、集合Uは全商品の集合であり、オブジェクトSiは個々の決済に相当する。このとき、各オブジェクトSiは購入した商品の集合によって特徴づけられる。
また、大規模な文書データにおいて、特定の動詞と共起しやすい名詞の集合、医療における患者の遺伝子変異及び疾患の有無の情報なども、同様なデータの例である。
さらに、明示的に集合となっていないデータでも、前述したようなモデルに帰着させ、解析できる場合がある。一例としては、様々な事物の関係を柔軟に表現するために考案された枠組みであるresource description framework(RDF)のデータである。ここで、RDFについて図8A及び図8Bを用いて説明する。
図8A及び図8Bは、従来のRDFデータを示す説明図である。
図8Aに示すように、RDFは、事物とそれらの関係とを有向グラフで表現したものである。ここで、有向グラフとは、点と点とを、向きがある線で結んだものである。有向グラフにおいて、点はノード801、線はエッジ802と呼ばれる。
RDFの有向グラフでは、事物を区別することための識別子803であるuniform resource identifier(URI)がノード801及びエッジ802に付与される。ノード801のURIは、当該ノード801に対応する事物を表し、エッジ802のURIは結ばれている事物がどのような関係にあるかを表す。
例えば、図8A及び図8Bに示す例では、「ある人2」は、「花子」という名前であり、「ある人1」と友達であり、かつ、犬を飼っていることが表現されている。
このとき、RDFにおいて各ノード801をオブジェクト、エッジ802のURI803を属性とみると、図9Aに示すように表現できる。なお、図9Aにおいて「1、2、3、4」といった数字は、各URIに割り当てられた番号である。したがって、RDFは、ノード801、すなわち、事物を、当該事物に関連する属性の集合によって特徴づけることができ、図9Bに示すように前述したモデルに帰着できる。なお、S1〜S4はオブジェクトを表し、S1〜S4に含まれる数字はURIに対応する。
前述したようなデータを解釈するためには、与えられたオブジェクト集合S703を網羅的に分析し、類似するオブジェクトを特定し、収集するデータ処理が必要である。
集合U701の部分集合であるオブジェクトSi703は、集合U701の属性を無作為に含むわけではなく、多くの場合、いくつかのカテゴリに分かれている。そのため、同一のカテゴリに属するオブジェクトは互いに類似する属性を持つことが期待される。
本発明では、式(1)に示すような集合Sが与えられたとき、集合に含まれるオブジェクトを相互に比較して、類似するオブジェクトのカテゴリを推定する技術について説明する。
図8Aに示す例では、「prop:name」、「prop:address」、及び「prop:friend」を属性として持つため、「resource:Taro」及び「resource:Hanako」を類似オブジェクトと見なすことができる。前述したようなカテゴリを見つけることによって、人間に相当するカテゴリを発見できる。
特開2008−225629号公報
岡田孝・元田浩、相関ルールとその周辺、オペレーションズ・リサーチ:経営の科学 47(9):565-571、2002年 石橋徹夫他、Locality-Sensitive Hashingを用いた階層的クラスタ解析手法の高速化、情報処理学会研究報告(CVIM) 2003(109):57-62
類似するオブジェクトを網羅的に分析するためには、式(1)に示すような集合Sに含まれるオブジェクトSiを相互に比較し、類似するものを探し出す必要がある。このとき、集合Sの要素間のペアの数は下式(2)で与えられる。
Figure 2013130965
式(2)から分かるように、nが大きいとき、全ペアの比較を行うことは非現実的である。このため、前述の分析処理を実用化するためには高速な計算手法が必要である。
前述したデータの分析方法に関する技術として、データマイニングにおけるバスケット分析が知られている(例えば、非特許文献1参照)。
以下では、集合Xの大きさ、すなわち、集合Xの要素数を|X|、空集合をφと記載する。
式(1)に示す集合Sを入力とした場合に、バスケット分析によって、相関ルールと呼ばれる情報が得られる。ここで、相関ルールとは、下式(3)〜(5)を満たす集合Uの部分集合X及び部分集合Yに対して、下式(6)を満たすならば、下式(7)を満たすような関係をいう。言い換えると、集合Sの要素である部分集合Siが部分集合Xを含むならば部分集合Yを含む関係をいう。
Figure 2013130965
Figure 2013130965
Figure 2013130965
Figure 2013130965
Figure 2013130965
バスケット分析は、産業上広い応用分野を持ち、例えば特許文献1のようなユーザが関心を持つ可能性のある事物を推薦するシステムに応用される。
しかし、バスケット分析は、データに含まれる顕著な特徴を探索する技術であって、データをカテゴリに分類する技術ではない。特に、低頻度のカテゴリを認識するには不向きな分析方法である。
顕著な特徴を抽出するだけでなく、データをカテゴリごとに分類するためには、オブジェクト間の類似度を算出し、類似するオブジェクトをまとめる技術が必要である。しかし、要素数n、すなわち、データ数が非常に大きい場合、前述したように、全オブジェクト間を相互に比較する処理は、現実的な処理時間では実現が困難となる。
そこで、類似する可能性があるオブジェクトを事前に集め、比較範囲を限定する方法が知られている。具体的には、以下の手順に従って処理が実行される。
(1)関数hを定義する。
当該関数hは、オブジェクトSiを変数とする関数であって、類似するオブジェクトSiに対しては同一の値を与え、類似しないオブジェクトSiに対しては異なる値を与えるように定義される。ここでは、集合Sの要素である各オブジェクトSiに対して、値h(Si)を算出する。以下、関数hをハッシュ関数と呼び、値h(Si)をハッシュ値と呼ぶ。
(2)ハッシュ値h(Si)が等しいオブジェクトを収集する。
(3)収集されたオブジェクトを相互比較する。
前述した手順で処理を実行することによって、類似度の算出対象となるオブジェクトを限定できる(図10参照)。
図10は、従来のオブジェクトの分類方法を示す説明図である。図10の(a)は、全てのオブジェクト間を比較する場合の概念図を表し、図10の(b)は、前述したハッシュ値を用いてオブジェクト間を比較する場合の概念図を表す。
前述した方法に用いられるハッシュ関数hの算出方法として、locality sensitive hashingと呼ばれる手法が知られている(例えば、非特許文献2参照)。
しかし、非特許文献2に記載の手法は、ハッシュ値が等しい類似オブジェクトを高速に探索できるが、ハッシュ値が異なる場合には類似度を比較する対象から除かれるため、精度のよい解析には対応できない。
本発明では、オブジェクトの類似度の算出処理を高速化するために、類似する可能性のあるオブジェクトを高速に特定する手段を提供することによって、類似オブジェクトを網羅的に探索可能とする手段を提供する。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、プロセッサと、前記プロセッサに接続される主記憶装置と、前記プロセッサに接続され、データを入出力する入出力装置とを備え、入力された前記データを分析し、類似するデータ毎に分類するデータ分析装置であって、前記入出力装置は、処理対象のデータを要素とする集合である複数のオブジェクトの入力を受け付け、前記データ分析装置は、所定のハッシュ関数を用いて前記各オブジェクトのハッシュ値を算出するハッシュ値算出部と、二つの前記オブジェクトが類似するか否かを判定する類似判定部と、前記算出されたハッシュ値に基づいて、前記算出されたハッシュ値が同一である前記オブジェクトから構成される初期クラスタを生成する初期クラスタリング部と、前記算出されたハッシュ値に基づいて、前記各初期クラスタが取り得る前記ハッシュ値の範囲を特定し、前記特定されたハッシュ値の範囲に基づいて類似する前記初期クラスタを検索し、前記検索された初期クラスタから構成される最終クラスタを生成するクラスタマージ部と、を備え、前記ハッシュ値算出部は、集合に含まれる要素が所定数以上一致する類似関係を満たすオブジェクトのハッシュ値の種類が限定され、かつ、前記類似関係を満たさないオブジェクトに対しては異なるハッシュ値を算出する前記ハッシュ関数を用いることを特徴とする。
本発明によれば、複数のオブジェクトを含むデータから、類似するオブジェクトから構成されるクラスタを高精度かつ高速に生成できる。
本発明の第1の実施形態のデータ分析装置の構成例を示すブロック図である。 本発明の第1の実施形態におけるデータ分析装置の各構成の連携を説明するシーケンス図である。 本発明の第1の実施形態におけるデータ分析装置の処理の流れを示すフローチャートである。 本発明の第1の実施形態における初期クラスタの生成処理を説明するフローチャートである。 本発明の第1の実施形態における最終クラスタの生成処理を説明するフローチャートである。 本発明の第2の実施形態におけるデータ分析装置の構成例を示すブロック図である。 従来のデータの一例を示す説明図である。 従来のRDFデータを示す説明図である。 従来のRDFデータを示す説明図である。 従来のRDFデータの想定モデルへの対応を示す説明図である。 従来のRDFデータの想定モデルへの対応を示す説明図である。 従来のオブジェクトの分類方法を示す説明図である。
以下、本発明の実施の形態について図面を参照しつつ説明する。
(第1の実施形態)
図1は、本発明の第1の実施形態のデータ分析装置100の構成例を示すブロック図である。
データ分析装置100は、CPU(Central Processing Unit)101、主記憶装置102、補助記憶装置103、リムーバブルドライブ104、ユーザインタフェース106及びネットワークインタフェース107を備える。各構成は、内部バス等によって互いに接続される。
また、データ分析装置100は、LAN(Local Area Network)等のネットワーク140を介して外部記憶装置130と接続される。なお、本発明は、ネットワーク140の種別に限定されず、有線及び無線いずれの接続方法を用いてもよい。
CPU101は、主記憶装置102に格納されたプログラムを実行する演算装置である。CPU101が、主記憶装置102に格納されるプログラムを実行することによって、データ分析装置100が有する機能を実現することができる。以下では、プログラムを主語にして処理を説明するときには、CPU101によって当該プログラムが実行されていることを表す。
主記憶装置102は、CPU101によって実行されるプログラム及び当該プログラムの実行に必要な情報を格納する。主記憶装置102は、例えば、RAM(Random アクセス 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は、情報を永続的に保持することが可能な装置であり、例えば、HDD(Hard Disk Drive)等が考えられる。リムーバブルドライブ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)を満たす。
Figure 2013130965
条件2:下式(9)を満たすオブジェクトS1、S2に対し、必ず下式(10)を満たす。
Figure 2013130965
Figure 2013130965
条件3:類似するオブジェクトSiは、ハッシュ値h(Si)が異なっても値の種類が限られる。
あらゆるデータに対し、前述した全ての条件を満たすハッシュ関数hを設計するのは難しいが、本発明では一例として、以下に述べるデータが与えられたとき、前述の条件1〜3を満たすハッシュ関数を示す。
まず、任意の集合Uから無作為に選択されたm個の要素から成る集合Gがg個あるものとする。以下では当該集合をグループと呼ぶ。また、各オブジェクトSiは、いずれか一つのグループGから、最大R個の要素を無作為に除去して得られる集合とする。ただし、整数m及びRは下式(11)及び下式(12)を満たすものとする。
Figure 2013130965
Figure 2013130965
このとき、同一グループの要素であるオブジェクト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以下の実数とする。さらに、ceil(x)は実数x以上の最小の整数とする関数であり、天井関数とも呼ばれる。
このとき、本発明のハッシュ関数hを下式(13)に示すように定義する。
Figure 2013130965
ここで、例えば、変数qが「0.5」のとき、図7に示すオブジェクトS1〜S4のハッシュ値は、下式(14)〜(17)に示すように算出される。なお、変数qの値は一例であって、0より大きく1以下の実数であればどのような値でもよく、本発明のデータ分析装置100の利用者がパラメータとして与える値である。
Figure 2013130965
Figure 2013130965
Figure 2013130965
Figure 2013130965
このとき、式(13)にように定義したハッシュ関数h(Si)が、前述のようなオブジェクトSiを要素とするオブジェクト集合Sに対し、条件1〜3を満足する。以下、具体的に理由を述べる。
(条件1について)
二つのオブジェクトS1、S2が、異なるグループから得られたオブジェクトであるとする。このとき、ハッシュ値h(S1)は、オブジェクトS1に含まれる属性のID番号であり、下式(18)を満たす。したがって、ハッシュ値h(S1)がS2に含まれる確率、すなわち、下式(19)を満たす確率は高々m/|U|である。前述のように、式(11)を満たすため当該確率は低い。
Figure 2013130965
Figure 2013130965
よって、高い確率で式(8)を満たす。
(条件2について)
式(9)を満たす二つのオブジェクトS1、S2において、下式(20)及び下式(21)を満たすことはない。なぜなら、ハッシュ値hは式(13)に示すようにID番号であり、属性が異なればID番号も異なるためである。したがって、式(10)を満たす。
Figure 2013130965
Figure 2013130965
(条件3について)
前述のようにオブジェクトSiは、グループGからR個の要素(属性)をランダムに除去して得られたオブジェクトである。このとき、ハッシュ値h(Si)は、グループGの限られた要素のいずれかであることを説明する。以下では、ハッシュ値h(Si)の、Gにおける順位をaとする。
まず、順位aが最大値をとるのは、オブジェクトSiがグループGの下位R個の要素を削除した集合である場合である。この場合、順位aの値は、下式(22)から下式(23)のように算出できる。
Figure 2013130965
Figure 2013130965
一方、順位aが最小値をとるのは、オブジェクトSiがグループGの上位R個の要素を削除した集合である場合である。この場合、順位aの値は、式(22)から、下式(24)のように算出できる。すなわち、順位aの値は、下式(25)を満たす。
Figure 2013130965
Figure 2013130965
したがって、順位aの取り得る値の種類は高々(R+1)個である。
以上がハッシュ関数の説明である。
次に、オブジェクトの類似性の判定方法について説明する。
オブジェクトの類似性は、類似性判定部111によって判定される。具体的には、類似性判定部111は、二つのオブジェクトS1、S2が与えられたとき、二つのオブジェクトの類似性を示す数値を算出する。二つのオブジェクト(集合)の類似性を数値化する方法は、さまざまな公知の方法を用いることができる。
例えば、オブジェクトS1、S2の異なる要素の数D1を用いる方法が知られている。なお、D1は、下式(26)のように与えられる。
Figure 2013130965
この場合、類似性判定部111は、D1が閾値(例えば、2R)以下のとき、オブジェクトS1とオブジェクトS2とが類似すると判定する。
しかし、前述したD1を用いた場合、要素数が小さいオブジェクトS1、S2に対して、要素の違いが大きくても類似性があると判定されてしまうことがある。例えば、要素数が「100」のオブジェクトS1、S2に対して、閾値が「60」と設定された場合に、D1が「50」ならばオブジェクトS1、S2は類似オブジェクトと判定される。しかし、両オブジェクトは半分の要素が異なり類似するオブジェクトとして扱うのは誤りがある可能性がある。すなわち、要素数に対して、D1が十分小さくないと誤った判定結果が出力される可能性がある。
そこで、前述したような判定を防ぐために、下式(27)を用いる方法が考えられる。
Figure 2013130965
式(27)は、オブジェクトS1、S2の和集合の要素数に対する、異なる要素の数D1の相対的な割合を算出するための数式である。
この場合、類似性判定部111は、D2と新たな閾値pとを比較し、D1及びD2の両方が条件を満たす場合にのみ、オブジェクトが類似すると判定する。ここで、閾値pは、0以上1以下の実数値である。
また、D1及びD2を算出するときに、オブジェクトS1、オブジェクトS2、オブジェクトS1とS2との共通部分、及び、オブジェクトS1とS2との和集合のそれぞれの要素数を単に数えるだけでなく、各集合の要素u(uは集合Uの要素)に実数値の重みw(u)を定義し、個数を数える代わりに、重みw(u)の和を算出してもよい。なお、任意の要素uに対して重みw(u)を「1」とした場合は、D1及びD2は、個数を数えた場合の値と一致する。
次に、初期クラスタ121を生成処理について説明する。
図4は、本発明の第1の実施形態における初期クラスタ121の生成処理を説明するフローチャートである。
当該処理では、初期クラスタリング部112が、ハッシュ値が同一のオブジェクトを集めて、相互にオブジェクトを比較し、類似性のある複数のオブジェクトをマージする。なお、オブジェクトの類似性は、類似性判定部111によって判定される。ここで、複数のオブジェクトをマージするとは、各オブジェクトの和集合を生成することを示す。
以下では、初期クラスタリング部112が、算出されたハッシュ値を取得した後の処理について説明する。なお、ハッシュ値算出部110は、以下のような処理を実行するものとする。すなわち、ハッシュ値算出部110は、入力されたオブジェクト集合120に含まれる属性のID番号を算出し、算出されたID番号の昇順に属性をソートする。さらに、ハッシュ値算出部110は、登録されたハッシュ関数hを用いて、オブジェクト集合120に含まれる各オブジェクトSiのハッシュ値h(Si)を算出する。本発明におけるハッシュ関数h(Si)の定義は、前述した通りである。
本実施形態における初期クラスタ121は、ハッシュ値が同一であり、かつ、類似性のあるオブジェクトをマージすることによって生成されるオブジェクトである。したがって、ハッシュ値が同一であるが、類似性のないオブジェクトは異なる初期クラスタ121となる。そのため、同一のハッシュ値である初期クラスタ121が複数存在することとなる。
以下では、ハッシュ値がxである初期クラスタ121の集合をC0(x)と記載する。
初期クラスタリング部112は、変数iを「1」を設定し、ステップS402に進む(ステップS401)。すなわち、まず、オブジェクトS1が処理対象として選択される。最初にオブジェクトS1がどの初期クラスタに所属するかが判定され、以下、変数iを1ずつ加算して、全てのオブジェクトSiについて同様の処理が実行される。
次に、初期クラスタリング部112は、変数iがオブジェクト集合Sの要素数より大きいか否か、すなわち、すべてのオブジェクトに対して処理が終了したか否かを判定する(ステップS402)。変数iがオブジェクト集合Sの要素数より大きいと判定された場合、初期クラスタリング部112は、処理を終了する。
変数iがオブジェクト集合Sの要素数以下と判定された場合、初期クラスタリング部112は、集合C0(h(Si))が存在するか否かを判定する(ステップS403)。
ここで、ハッシュ値h(Si)は、処理対象であるオブジェクトSiのハッシュ値である。すなわち、集合C0(h(Si))は、ハッシュ値がh(Si)である初期クラスタの集合である。したがって、ステップS403では、処理対象のオブジェクトSiのハッシュ値h(Si)が、初めて処理されるハッシュ値であるか否かが判定される。
集合C0(h(Si))が存在すると判定された場合、初期クラスタリング部112は、ステップS405に進む。
集合C0(h(Si))が存在しない、すなわち、初めて処理されるハッシュ値であると判定された場合、初期クラスタリング部112は、集合C0(h(Si))を空集合として設定して、ステップS405に進む(ステップS404)。
初期クラスタリング部112は、集合C0(h(Si))を集合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に類似する可能性のある初期クラスタを絞り込んでもよい。
前述した処理によって、互いに類似するオブジェクトのうち、ハッシュ値h(Si)が同一のオブジェクトがマージされた初期クラスタ121が生成される。
次に、最終クラスタ122の生成処理について説明する。
図5は、本発明の第1の実施形態における最終クラスタ122の生成処理を説明するフローチャートである。
当該処理では、クラスタマージ部113が、類似するハッシュ値h(Si)を取り得るオブジェクトを含む、複数の初期クラスタ121をマージすることによって、最終クラスタ122を生成する。ここで、複数の初期クラスタ121をマージするとは、各初期クラスタ121の和集合を生成することを表す。
クラスタマージ部113は、初期クラスタ121の中から、処理対象とする初期クラスタS0を選択し、選択された初期クラスタS0に対して、以下で説明する処理を実行する。
クラスタマージ部113は、初期クラスタS0を選択した後、変数iを「1」に設定し、さらに、当該初期クラスタS0が取り得るハッシュ値の集合H(S0)を変数Hに設定する(ステップS501)。ステップS501の処理は、クラスタS0のハッシュ値と類似する範囲を特定することに対応する。
集合Hは、初期クラスタS0において、順位aが下式(28)を満たす属性のID番号を要素とする集合である。
Figure 2013130965
このとき、初期クラスタS0とは別の初期クラスタS’が、初期クラスタS0と共通のグループGから生成され、かつ、ハッシュ値h(S’)が初期クラスタS0に含まれる場合、ハッシュ値h(S’)は集合Hに含まれる。その理由を以下で説明する。
任意の二つの初期クラスタS0、S’が、共通のグループGから高々R個の要素を削除して得られた集合である場合、前述のようにハッシュ値h(S0)とハッシュ値h(S’)とは、グループGの高々R個の要素のいずれかの値となる。ハッシュ値h(S0)、h(S’)の、グループGにおける順位をそれぞれa1、a2とした場合、順位a1、a2は、下式(29)を満たす。
Figure 2013130965
一方、グループGの(a1−R)番目から(a1+R)番目までの値は、クラスタS0において(ceil(q×|S0|)−R)番目から(ceil(q×|S0|)+R)番目の値のいずれかとなる。
したがって、ハッシュ値h(S’)がクラスタS0の要素である場合、ハッシュ値h(S’)は初期クラスタS0において(ceil(q×|S0|)−R)番目から(ceil(q×|S0|)+R)番目の値のいずれかであり、これらの値の集合H(S0)を集合Hとすればよい。
ただし、ハッシュ値h(S0)が初期クラスタS’の要素でなく、かつ、ハッシュ値h(S’)が初期クラスタS0の要素でない場合、初期クラスタS0と初期クラスタS’は共通のグループGに由来することが見落とされてしまう。
しかし、ハッシュ値h(S0)が初期クラスタS’の要素でない確率、及び、ハッシュ値h(S’)が初期クラスタS0の要素でない確率は、共に下式(30)に示すようになる。そのため、前述した両方の条件が成立する確率は、下式(31)のようになる。したがって、Rが下式(32)を満たすならば、前述の両方の条件が成立する確率を小さい。
Figure 2013130965
Figure 2013130965
Figure 2013130965
また、データ量が多いとき、初期クラスタS0、S’はいずれも多くのオブジェクトがマージされたものであるため、グループGの多くの要素を含むことが期待される。したがって、前述の両方の条件が成立しない確率は、式(31)よりはるかに小さいことが期待される。
図5の説明に戻る。
クラスタマージ部113は、変数iが集合Hの要素数より大きいか否か、すなわち、すべてのハッシュ値について処理が完了したか否かを判定する(ステップS502)。変数iが集合Hの要素数より大きいと判定された場合、クラスタマージ部113は、処理を終了する。
変数iが集合Hの要素数以下と判定された場合、クラスタマージ部113は、集合Hの要素Hiを一つ選択して、集合C0(Hi)を集合Cとして設定し、変数iを「1」加算し、さらに、変数jを「1」に設定する(ステップS503)。
次に、クラスタマージ部113は、変数jが集合Cの要素数より大きいか否かを判定する(ステップS504)。すなわち、集合C0(Hi)に含まれるすべての初期クラスタに対して処理が終了したか否かが判定される。
変数jが集合Cの要素数より大きいと判定された場合、クラスタマージ部113は、ステップS502に戻り同様の処理を実行する。
変数jが集合Cの要素数以下と判定された場合、クラスタマージ部113は、集合C(Hi)に含まれる要素である初期クラスタ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に基づいて、例えば、公知の単連結法(single linkage clustering)を適用することによって、互いに類似する初期クラスタをまとめて最終クラスタ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によって、最終クラスタも特定できる。
以上、本発明の各実施形態について説明したが、前述した実施形態は本発明の適用例を示したものであり、本発明の技術的範囲を前述した各実施形態の具体的構成に限定する趣旨ではない。本発明の要旨を逸脱しない範囲において種々変更可能である。
100 データ分析装置
101 CPU
102 主記憶装置
103 補助記憶装置
104 リムーバブルドライブ
106 ユーザインタフェース
107 ネットワークインタフェース
110 ハッシュ値算出部
111 類似性判定部
112 初期クラスタリング部
113 クラスタマージ部
120 オブジェクト集合
121 初期クラスタ
122 最終クラスタ
130 外部記憶装置
140 ネットワーク
600 RDF変換部

Claims (15)

  1. プロセッサと、前記プロセッサに接続される主記憶装置と、前記プロセッサに接続され、データを入出力する入出力装置とを備え、入力された前記データを分析し、類似するデータ毎に分類するデータ分析装置であって、
    前記入出力装置は、処理対象のデータを要素とする集合である複数のオブジェクトの入力を受け付け、
    前記データ分析装置は、
    所定のハッシュ関数を用いて前記各オブジェクトのハッシュ値を算出するハッシュ値算出部と、
    前記算出されたハッシュ値に基づいて、前記算出されたハッシュ値が同一である前記オブジェクトから構成される初期クラスタを生成するクラスタリング部と、
    前記算出されたハッシュ値に基づいて、前記各初期クラスタが取り得る前記ハッシュ値の範囲を特定し、前記特定されたハッシュ値の範囲に基づいて類似する前記初期クラスタを検索し、前記検索された初期クラスタから構成される最終クラスタを生成するクラスタマージ部と、
    を備え、
    前記ハッシュ値算出部は、集合に含まれる要素が所定数以上一致する類似関係を満たすオブジェクトのハッシュ値の種類が限定され、かつ、前記類似関係を満たさないオブジェクトに対しては異なるハッシュ値を算出する前記ハッシュ関数を用いることを特徴とするデータ分析装置。
  2. 前記データ分析装置は、
    さらに、異なる二つの集合に含まれる要素を比較することによって前記異なる二つの集合が前記類似関係を満たすか否かを判定する類似性判定部を備え、
    前記算出されたハッシュ値が同一であるオブジェクトを収集して集合を生成し、
    前記生成された集合の中から二つの前記オブジェクトを選択し、前記選択された二つのオブジェクトが前記類似関係を満たすか否かを判定し、
    前記選択された二つのオブジェクトが前記類似関係を満たす場合には、前記選択された二つのオブジェクトに含まれる前記要素をマージすることによって前記初期クラスタを生成し、
    処理対象となる第1の初期クラスタを選択し、
    前記選択された第1の初期クラスタに含まれる前記オブジェクトと前記類似関係を満たす他の前記オブジェクトが取り得る前記ハッシュ値の範囲を特定し、
    前記特定されたハッシュ値の範囲に含まれるハッシュ値と一致する前記オブジェクトを含む第2の初期クラスタを特定し、
    前記第1の初期クラスタ及び前記第2の初期クラスタが前記類似関係を満たすか否かを判定し、
    前記第1の初期クラスタ及び前記第2の初期クラスタが前記類似関係を満たす場合には、前記第1の初期クラスタに含まれる前記要素と、前記第2の初期クラスタに含まれる前記要素とをマージすることによって前記最終クラスタを生成することを特徴とする請求項1に記載のデータ分析装置。
  3. 前記オブジェクトをSと定義し、前記オブジェクトに含まれる前記要素の識別番号をS[i]と定義し、0より大きく1以下のパラメータとして与えられる実数をqと定義し、実数x以上の最小の整数値を算出する関数をceil(x)と定義した場合に、前記ハッシュ値算出部は、式(1)のように定義されるハッシュ関数h(S)を用いることを特徴とする請求項2に記載のデータ分析装置。
    Figure 2013130965
  4. 前記入出力装置は、特定の事柄を表すノードと、二つの前記ノード間を接続するエッジとを含むRDF(Resource Description Framework)の入力を受け付け、
    前記要素は、前記ノード及び前記エッジのそれぞれに付与されたURI(Uniform Resource Identifier)であり、
    前記最終クラスタは、類似する事柄を表す前記ノードがグループ化された集合であることを特徴とする請求項3に記載のデータ分析装置。
  5. 前記データ分析装置は、
    前記最終クラスタが生成された後に、新規オブジェクトの入力を受け付けた場合に、前記入力された新規オブジェクトのハッシュ値を算出し、
    前記新規オブジェクトと前記類似関係を満たす他の前記オブジェクトが取り得る前記ハッシュ値の範囲を特定し、
    前記特定されたハッシュ値の範囲に含まれるハッシュ値と一致する前記オブジェクトを含む第3の初期クラスタを特定し、
    前記新規オブジェクトと前記第3の初期クラスタとが前記類似関係を満たすか否かを判定し、
    前記新規オブジェクトと前記第3の初期クラスタとが前記類似関係を満たす場合には、前記第3の初期クラスタに対して、前記新規オブジェクトに含まれる前記要素をマージすることによって前記最終クラスタを生成することを特徴とする請求項3に記載のデータ分析装置。
  6. プロセッサと、前記プロセッサに接続される主記憶装置と、前記プロセッサに接続され、データを入出力する入出力装置とを備え、入力された前記データを分析し、類似するデータ毎に分類するデータ分析装置におけるデータ分析方法であって、
    前記方法は、
    前記データ分析装置が、所定のハッシュ関数を用いて、前記入力装置が受け付け、処理対象のデータを要素とする集合である複数のオブジェクトのそれぞれのハッシュ値を算出する第1のステップと、
    前記データ分析装置が、前記算出されたハッシュ値に基づいて、前記算出されたハッシュ値が同一である前記オブジェクトから構成される初期クラスタを生成する第2のステップと、
    前記データ分析装置が、前記算出されたハッシュ値に基づいて、前記各初期クラスタが取り得る前記ハッシュ値の範囲を特定し、前記特定されたハッシュ値の範囲に基づいて類似する前記初期クラスタを検索し、前記検索された初期クラスタから構成される最終クラスタを生成する第3のステップと、
    を含み、
    前記第1のステップでは、集合に含まれる要素が所定数以上一致する類似関係を満たすオブジェクトのハッシュ値の種類が限定され、かつ、前記類似関係を満たさないオブジェクトに対しては異なるハッシュ値を算出する前記ハッシュ関数を用いることを特徴とするデータ分析方法。
  7. 前記第2のステップは、
    前記算出されたハッシュ値が同一であるオブジェクトを収集して集合を生成するステップと、
    前記生成された集合の中から二つの前記オブジェクトを選択し、前記選択された二つのオブジェクトに含まれる前記要素を比較することによって、前記選択された二つのオブジェクトが前記類似関係を満たす否かを判定するステップと、
    前記選択された二つのオブジェクトが前記類似関係を満たす場合には、前記選択された二つのオブジェクトに含まれる前記要素をマージすることによって前記初期クラスタを生成するステップと、
    を含み、
    前記第3のステップは、
    処理対象となる第1の初期クラスタを選択するステップと、
    前記選択された第1の初期クラスタに含まれる前記オブジェクトと前記類似関係を満たす他の前記オブジェクトが取り得る前記ハッシュ値の範囲を特定するステップと、
    前記特定されたハッシュ値の範囲に含まれるハッシュ値と一致する前記オブジェクトを含む第2の初期クラスタを特定するステップと、
    前記第1の初期クラスタ及び前記第2の初期クラスタが前記類似関係を満たすか否かを判定するステップと、
    前記第1の初期クラスタ及び前記第2の初期クラスタが前記類似関係を満たす場合には、前記第1の初期クラスタに含まれる前記要素と、前記第2の初期クラスタに含まれる前記要素とをマージすることによって前記最終クラスタを生成するステップと、
    を含むことを特徴とする請求項6に記載のデータ分析方法。
  8. 前記オブジェクトをSと定義し、前記オブジェクトに含まれる前記要素の識別番号をS[i]と定義し、0より大きく1以下のパラメータとして与えられる実数をqと定義し、実数x以上の最小の整数値を算出する関数をceil(x)と定義した場合に、前記第1のステップでは、式(2)のように定義されるハッシュ関数h(S)を用いることを特徴とする請求項7に記載のデータ分析方法。
    Figure 2013130965
  9. 前記入出力装置は、特定の事柄を表すノードと、二つの前記ノード間を接続するエッジとを含むRDF(Resource Description Framework)の入力を受け付け、
    前記要素は、前記ノード及び前記エッジのそれぞれに付与されたURI(Uniform Resource Identifier)であり、
    前記最終クラスタは、類似する事柄を表す前記ノードがグループ化された集合であることを特徴とする請求項8に記載のデータ分析方法。
  10. 前記方法は、さらに、
    前記最終クラスタが生成された後に、新規オブジェクトの入力を受け付けた場合に、前記入力された新規オブジェクトのハッシュ値を算出するステップと、
    前記新規オブジェクトと前記類似関係を満たす他の前記オブジェクトが取り得る前記ハッシュ値の範囲を特定するステップと、
    前記特定されたハッシュ値の範囲に含まれるハッシュ値と一致する前記オブジェクトを含む第3の初期クラスタを特定するステップと、
    前記新規オブジェクトと前記第3の初期クラスタとが前記類似関係を満たすか否かを判定するステップと、
    前記新規オブジェクトと前記第3の初期クラスタとが前記類似関係を満たす場合には、前記第3の初期クラスタに対して、前記新規オブジェクトに含まれる前記要素をマージすることによって前記最終クラスタを生成するステップと、
    を含むことを特徴とする請求項8に記載のデータ分析方法。
  11. プロセッサと、前記プロセッサに接続される主記憶装置と、前記プロセッサに接続され、データを入出力する入出力装置とを備え、入力された前記データを分析し、類似するデータ毎に分類するデータ分析装置が実行するプログラムであって、
    前記プログラムは、
    所定のハッシュ関数を用いて、前記入力装置が受け付け、処理対象のデータを要素とする集合である複数のオブジェクトのそれぞれのハッシュ値を算出する第1の手順と、
    前記算出されたハッシュ値に基づいて、前記算出されたハッシュ値が同一である前記オブジェクトから構成される初期クラスタを生成する第2の手順と、
    前記算出されたハッシュ値に基づいて、前記各初期クラスタが取り得る前記ハッシュ値の範囲を特定し、前記特定されたハッシュ値の範囲に基づいて類似する前記初期クラスタを検索し、前記検索された初期クラスタから構成される最終クラスタを生成する第3の手順と、
    を前記プロセッサに実行させるためのプログラムであって、
    前記第1の手順では、集合に含まれる要素が所定数以上一致する類似関係を満たすオブジェクトのハッシュ値の種類が限定され、かつ、前記類似関係を満たさないオブジェクトに対しては異なるハッシュ値を算出する前記ハッシュ関数を用いて前記ハッシュ値を前記プロセッサに算出させることを特徴とするプログラム。
  12. 前記第2の手順は、
    前記算出されたハッシュ値が同一であるオブジェクトを収集して集合を生成する手順と、
    前記生成された集合の中から二つの前記オブジェクトを選択し、前記選択された二つのオブジェクトに含まれる前記要素を比較することによって、前記選択された二つのオブジェクトが前記類似関係を満たす否かを判定する手順と、
    前記選択された二つのオブジェクトが前記類似関係を満たす場合には、前記選択された二つのオブジェクトに含まれる前記要素をマージすることによって前記初期クラスタを生成する手順と、
    を含み、
    前記第3の手順は、
    処理対象となる第1の初期クラスタを選択する手順と、
    前記選択された第1の初期クラスタに含まれる前記オブジェクトと前記類似関係を満たす他の前記オブジェクトが取り得る前記ハッシュ値の範囲を特定する手順と、
    前記特定されたハッシュ値の範囲に含まれるハッシュ値と一致する前記オブジェクトを含む第2の初期クラスタを特定する手順と、
    前記第1の初期クラスタ及び前記第2の初期クラスタが前記類似関係を満たすか否かを判定する手順と、
    前記第1の初期クラスタ及び前記第2の初期クラスタが前記類似関係を満たす場合には、前記第1の初期クラスタに含まれる前記要素と、前記第2の初期クラスタに含まれる前記要素とをマージすることによって前記最終クラスタを生成する手順と、
    を含むことを特徴とする請求項11に記載のプログラム。
  13. 前記オブジェクトをSと定義し、前記オブジェクトに含まれる前記要素の識別番号をS[i]と定義し、0より大きく1以下のパラメータとして与えられる実数をqと定義し、実数x以上の最小の整数値を算出する関数をceil(x)と定義した場合に、前記第1の手順では、式(3)のように定義されるハッシュ関数h(S)を用いることを特徴とする請求項12に記載のプログラム。
    Figure 2013130965
  14. 前記入出力装置は、特定の事柄を表すノードと、二つの前記ノード間を接続するエッジとを含むRDF(Resource Description Framework)の入力を受け付け、
    前記要素は、前記ノード及び前記エッジのそれぞれに付与されたURI(Uniform Resource Identifier)であり、
    前記最終クラスタは、類似する事柄を表す前記ノードがグループ化された集合であることを特徴とする請求項13に記載のプログラム。
  15. 前記プログラムは、さらに、
    前記最終クラスタが生成された後に、新規オブジェクトの入力を受け付けた場合に、前記入力された新規オブジェクトのハッシュ値を算出する手順と、
    前記新規オブジェクトと前記類似関係を満たす他の前記オブジェクトが取り得る前記ハッシュ値の範囲を特定する手順と、
    前記特定されたハッシュ値の範囲に含まれるハッシュ値と一致する前記オブジェクトを含む第3の初期クラスタを特定する手順と、
    前記新規オブジェクトと前記第3の初期クラスタとが前記類似関係を満たすか否かを判定する手順と、
    前記新規オブジェクトと前記第3の初期クラスタとが前記類似関係を満たす場合には、前記第3の初期クラスタに対して、前記新規オブジェクトに含まれる前記要素をマージすることによって前記最終クラスタを生成する手順と、
    を前記プロセッサに実行させることを特徴とする請求項13に記載のプログラム。
JP2011278903A 2011-12-20 2011-12-20 データ分析装置、データ分析方法及びプログラム Expired - Fee Related JP5716966B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011278903A JP5716966B2 (ja) 2011-12-20 2011-12-20 データ分析装置、データ分析方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011278903A JP5716966B2 (ja) 2011-12-20 2011-12-20 データ分析装置、データ分析方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2013130965A true JP2013130965A (ja) 2013-07-04
JP5716966B2 JP5716966B2 (ja) 2015-05-13

Family

ID=48908487

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011278903A Expired - Fee Related JP5716966B2 (ja) 2011-12-20 2011-12-20 データ分析装置、データ分析方法及びプログラム

Country Status (1)

Country Link
JP (1) JP5716966B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015055975A (ja) * 2013-09-11 2015-03-23 株式会社Nttドコモ クラスタリング装置及びクラスタリング方法
JP2015179516A (ja) * 2014-03-18 2015-10-08 株式会社Nttドコモ 大量の複雑な構造化データを管理するための知識エンジン
US20220335067A1 (en) * 2021-04-20 2022-10-20 Cylance Inc. Clustering software codes in scalable manner
CN116992220A (zh) * 2023-09-25 2023-11-03 国网北京市电力公司 一种低冗余用电数据智能采集方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009505290A (ja) * 2005-08-15 2009-02-05 グーグル・インコーポレーテッド 集合の類似性に基づく拡張性に富むユーザクラスタリング

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009505290A (ja) * 2005-08-15 2009-02-05 グーグル・インコーポレーテッド 集合の類似性に基づく拡張性に富むユーザクラスタリング

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015055975A (ja) * 2013-09-11 2015-03-23 株式会社Nttドコモ クラスタリング装置及びクラスタリング方法
JP2015179516A (ja) * 2014-03-18 2015-10-08 株式会社Nttドコモ 大量の複雑な構造化データを管理するための知識エンジン
US20220335067A1 (en) * 2021-04-20 2022-10-20 Cylance Inc. Clustering software codes in scalable manner
US11880391B2 (en) * 2021-04-20 2024-01-23 Cylance, Inc. Clustering software codes in scalable manner
CN116992220A (zh) * 2023-09-25 2023-11-03 国网北京市电力公司 一种低冗余用电数据智能采集方法
CN116992220B (zh) * 2023-09-25 2023-12-19 国网北京市电力公司 一种低冗余用电数据智能采集方法

Also Published As

Publication number Publication date
JP5716966B2 (ja) 2015-05-13

Similar Documents

Publication Publication Date Title
US8533203B2 (en) Identifying synonyms of entities using a document collection
JP5621773B2 (ja) 分類階層再作成システム、分類階層再作成方法及び分類階層再作成プログラム
WO2018004829A1 (en) Methods and apparatus for subgraph matching in big data analysis
JP2009093655A (ja) 単語親和度による単語クラスタの識別
US20180341686A1 (en) System and method for data search based on top-to-bottom similarity analysis
JP5594145B2 (ja) 検索装置、検索方法、及びプログラム
US10613785B1 (en) Scalable binning for big data deduplication
Chen et al. Temporal representation for scientific data provenance
JP5588811B2 (ja) データ分析支援システム及び方法
JP5716966B2 (ja) データ分析装置、データ分析方法及びプログラム
Skluzacek et al. Skluma: An extensible metadata extraction pipeline for disorganized data
WO2017158802A1 (ja) データ変換システム及びデータ変換方法
JP5528292B2 (ja) 意味のある頻出アイテムセットを抽出するシステム、方法及びプログラム
JP2019204246A (ja) 学習データ作成方法及び学習データ作成装置
JP5324677B2 (ja) 類似文書検索支援装置及び類似文書検索支援プログラム
Barbosa et al. An approach to clustering and sequencing of textual requirements
Ferreira et al. Phrasing the giant: on the importance of rigour in literature search process
JP5361090B2 (ja) 話題語獲得装置、方法、及びプログラム
JP6008067B2 (ja) テキスト処理システム、テキスト処理方法およびテキスト処理プログラム
US11468065B2 (en) Information processing apparatus, information processing method, and non-transitory computer-readable recording medium
JP2021152751A (ja) 分析支援装置及び分析支援方法
Sawarkar et al. Automated metadata harmonization using entity resolution and contextual embedding
JP4128033B2 (ja) プロファイルデータ検索装置及びプログラム
JP4175001B2 (ja) 文書データ検索装置
Bochkaryov et al. The use of clustering algorithms ensemble with variable distance metrics in solving problems of web mining

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140702

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150106

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150127

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150217

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150304

R150 Certificate of patent or registration of utility model

Ref document number: 5716966

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees