【実施例1】
【0009】
以下、本発明の一実施形態を、図面を参照して説明する。
【0010】
図1は、本発明の実施例1のデータ変換システムのハードウェア構成を示すブロック図である。
【0011】
本実施例のデータ変換システムは、中央処理装置001、二次記憶装置002、主記憶装置003、入力装置004及び出力装置005を有し、中央処理装置001、二次記憶装置002、主記憶装置003、入力装置004及び出力装置005がバス006で接続された計算機011によって実現される。
【0012】
中央処理装置001は、二次記憶装置002や主記憶装置003に格納されたプログラムを実行するプロセッサである。
【0013】
二次記憶装置002は、例えば磁気記憶装置、フラッシュメモリ等の大容量かつ不揮発性の記憶装置であり、プログラム実行時に中央処理装置001によって計算される抽象化処理部007を格納する。抽象化処理部007は、中央処理装置001によって実行されるアプリケーションプログラムであり、その一部又は全部が必要に応じて主記憶装置003にコピーされてもよい。以下の説明に置いて抽象化処理部007又はそれに含まれる処理部が実行する処理は、実際には、中央処理装置001が、抽象化処理部007を実現するプログラム又はそれに含まれるサブプログラムに従って実行する。
【0014】
主記憶装置003は、例えばDRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶装置であり、オペレーティングシステム(OS)(図示省略)及びアプリケーションプログラムを格納する。中央処理装置001がオペレーティングシステムを実行することによって、計算機011の基本機能が実現されアプリケーションプログラムを実行することによって、計算機011が提供する機能が実現される。具体的には主記憶装置003は、入力テーブル008、出力テーブル009を格納する。
【0015】
入力装置004は、キーボード、マウスなどのユーザインターフェースである。出力装置005は、ディスプレイ装置、プリンタなどのユーザインターフェースである。
【0016】
なお、計算機011は、ネットワーク012に接続し、他の装置との通信を制御する通信インターフェース010を有してもよい。この場合、計算機011が通信インターフェース010を介して端末(図示省略)と接続されており、該端末が入力装置004及び出力装置005を有し、端末からの要求に従ってテーブルを処理し、処理結果を端末に出力する。
【0017】
本実施例のデータ変換システムは、さらに、ネットワーク012に接続されたサーバ計算機013を含んでもよい。サーバ計算機013の通信インターフェース014、バス015、中央処理装置016、二次記憶装置017、主記憶装置018、入力装置019及び出力装置020は、それぞれ、計算機011の同名の各部と同様であってよいため、これらに関する説明を省略する。ただし、サーバ計算機013の二次記憶装置017には、データベース021が格納される。この例に置いて、データベース021に含まれるテーブルの一部が入力テーブル008としてネットワーク012を介して計算機011に入力されてもよい。また、出力テーブル009は、計算機011からネットワーク012を介してサーバ計算機013に出力され、データベース021の一部として二次記憶装置017に格納されてもよい。
【0018】
本実施例のデータ変換システムは、物理的に一つの計算機上に構築されても、物理的には一つ又は複数の計算機上に構成された論理区画上に構築されてもよい。例えば、計算機011とサーバ計算機013が
図1に示すようにネットワーク012に接続された複数の物理的な計算機によって構築されてもよいし、物理的に一つの計算機上に構築されてもよい。また、計算機011が保持する入力テーブル008、出力テーブル009及び抽象化処理部007がネットワーク012を介して接続された複数の物理的な計算機に分散して配置され、それらの間でデータをやり取りすることによって抽象化処理部007の機能が実現されてもよい。
【0019】
次に、抽象化処理部007に入力される入力テーブル008ついて詳細を説明する。このシステムによって抽象化されたカラムを用いることで、分析者は大規模なデータに対して様々な分析を行うことができる。
【0020】
図2は、本発明の実施例1のデータ変換システムが保持する入力テーブル008の具体例の説明図である。
【0021】
具体的には、
図2に示すテーブル101は、
図1に示した主記憶装置003に保持され、抽象化処理部007に入力される入力テーブル008の具体例を示している。
【0022】
テーブル101は、ある企業の倉庫に保管される在庫商品と、各商品の管理状況に関するデータを管理するテーブルである。テーブル101には、保管される商品の場所を一意に定める商品ロケID102、商品の種類を表す品目103、保管される商品の個数を表す個数104、商品を保管した社員を特定する担当社員ID105、及び、作業が実行された日時を表す処理時刻106、のカラムが格納されている。企業等の組織では一般的に、テーブル101のような形でシステムの運用状況及び在庫状況等が管理されている。本実施例は、テーブル101のようなリレーショナルデータベース形式のあらゆるテーブルを入力対象としている。テーブル101が入力され、抽象化処理部007が実行されることで、出力テーブル009が得られる。
【0023】
図3は、本発明の実施例1のデータ変換システムが保持する出力テーブル009の第1の具体例の説明図である。
【0024】
図3に示すテーブル201は、
図2のテーブル101が入力された抽象化処理部007によって出力され、主記憶装置003に保持される出力テーブル009の具体例を示している。テーブル201は、テーブル101の各カラムが抽象化された上位概念カラムを含むカラムを持つテーブルである。
【0025】
テーブル201における商品ロケID(1−2桁)202、商品ロケID(3−5桁)203、商品ロケID(6−7桁)204、商品ロケID(8−9桁)205、及び商品ロケID(10−11桁)206は、テーブル101における商品ロケID102カラムから抽出された上位概念カラムである。担当社員ID(1−4桁)209、担当社員ID(5−6桁)210、及び担当社員ID(7−11桁)211は、テーブル101における担当社員ID105から抽出された上位概念カラムである。処理時刻(1−10桁)212、処理時刻(12−13桁)213、及び処理時刻(15−16桁)214は、テーブル101における処理時刻106カラムから抽出された上位概念カラムである。品目207及び個数208は上位概念が存在しないカラムであると判定され、入力テーブル101中の品目103及び個数104カラムがそのまま出力されたカラムである。
【0026】
図4は、本発明の実施例1のデータ変換システムが保持する出力テーブル009の第2の具体例の説明図である。
【0027】
図4は、
図3に示した出力テーブル201の各カラムに対して、ユーザから入力された名前を付加した出力テーブル301の具体例を示している。
【0028】
本システムによって、入力テーブル101における商品ロケID102は、商品が格納される建物の階を表す階302、エリア名を表すエリア名303、棚の列番号を示す列番号304、棚の行番号を示す行番号305、棚の段を表す棚番号306に分離される。なお、これらは、それぞれ、
図3に示した出力テーブル201の商品ロケID(1−2桁)202〜商品ロケID(10−11桁)206に対応する。
【0029】
同様に入力テーブル101における担当社員ID105は、社員の入社年度を表す入社年度309、社員の所属部署を表す所属部署ID310、同期入社の社員の中での五十音順を示す五十音番号311に分離される。これらは、それぞれ、
図3に示した出力テーブル201の担当社員ID(1−4桁)209〜担当社員ID(7−11桁)211に対応する。
【0030】
また、IDのようなラベル的に振る舞う情報を含むカラム以外にも、日時及び時刻を表現するカラムに対しても上記のような名前の付加が適用される。入力テーブル101における処理時刻106は、処理した日時を表す処理日312、処理した時刻を一時間単位で表す処理時313、及び処理した時間を分単位で表す処理分314に分離される。これらは、それぞれ、
図3に示した出力テーブル201の処理時刻(1−10桁)212〜処理時刻(15−16桁)214に対応する。
【0031】
「品目」307及び「個数」308のように、上位概念となるカラムが存在しない場合は、入力したカラムがそのまま出力される。このように本実施形態のデータ変換システムは、入力したテーブルの各カラムについて、上位概念を持つカラムに自動変換して出力する。
【0032】
図5は、本発明の実施例1の抽象化処理部007の詳細を示すフロー図である。
【0033】
抽象化処理部007は、入力されたテーブルの各カラムについて、その要素を分離することで、元のカラムの上位概念となるカラムを抽出して出力する。抽象化処理部007は、以下に説明するカラム選択部401、要素分離部402、ユニーク性評価部403、変化点検出部404、分離点抽出部405、カラム分離処理部406及び命名部407を含む。これらは、抽象化処理部007を実現するためのプログラムに含まれるサブプログラムを中央処理装置001が実行することによって実現される機能ブロックである。
【0034】
抽象化処理部007では、カラム選択部401が入力テーブル008からカラムを選択し、要素分離部402が、選択されたカラム中の要素を文字ごとに分離する。ユニーク性評価部403は、文字ごとに分離された各カラムの要素に対して、ユニーク要素数を基本とするデータのユニーク性を表現する値を計算する。変化点検出部404は、各カラムに対して計算されたユニーク性に関する評価値を用いて、ユニーク性の値が変化する変化点となる文字数を抽出する。分離点抽出部405は、抽出されたユニーク性変化点を元に、対象カラムを分離する分離点を抽出する。カラム分離処理部406は、抽出されたカラムの分離点に従い、対象カラムを複数のカラムに分離する。命名部407は、対象カラムから分離して新しく生成された複数のカラムに対してカラム名を設定する。入力テーブル008中の全てのカラムに対して処理が完了すると、各カラムを抽象化した上位概念となるカラムを含んだ出力テーブル009が出力される。
【0035】
図6は、本発明の実施例1のユニーク性評価部403の詳細を示すフロー図である。
【0036】
ユニーク性評価部403は、選択されたカラム501を入力として、カラムのユニーク性を表現する値を計算する。具体的には、ユニーク性評価部403は、選択されたカラム501から分離された各要素を順次選択して(ステップ502)、選択した各要素に対して、ユニーク性を評価する値を計算する(ステップ503)。
図6では例として、各要素の情報量を計算している。その他にも、ユニーク性を評価する値として、ユニーク要素数そのものを使うなど様々な値を当てはめることが想定できる。ユニーク要素数等のユニーク性を評価する値は、各要素の情報量を表す値であるといえる。すなわち、ユニーク性評価部403は、広義には、情報量評価部と言い換えることができる。ユニーク性評価部403は、分離した全ての要素について値を計算したのち、分離した要素ごとの平均情報量を計算する。結果として、分離した要素ごとの平均情報量504が出力される。
【0037】
図7は、本発明の実施例1の変化点検出部404の詳細を示すフロー図である。
【0038】
変化点検出部404は、選択されたカラム501と分離した要素ごとの平均情報量504とを入力として、カラムのユニーク性を示す値の変化点を検出する。
図7の例では、変化点検出部404は、ユニーク性の値が変化する変化点となる文字数を、平均情報量の変化点として抽出する(ステップ601)。ユニーク性の値の変化点としては、カラム中の要素の文字数が変化した際の情報量の変化量を求めてもよいし、その変化量の変化量を求めてもよいし、その他の様々な変化量を求めることが想定できる。結果として、変化点検出部404は、検出した変化点情報602を出力する。
【0039】
図8は、本発明の実施例1の分離点抽出部405の詳細を示すフロー図である。
【0040】
分離点抽出部405は、選択されたカラム501と抽出された変化点情報602とを入力として、カラムの持つユニーク性の情報から、カラムを分離する分離点を抽出する。具体的には、分離点抽出部405は、カラム中の要素の持つユニーク性の変化点を元に、カラムを異なる概念の複数のカラムに分離する点を抽出し(ステップ701)、結果としてカラムの分離点情報702を出力する。
【0041】
図9は、本発明の実施例1のカラム分離処理部406の詳細を示すフロー図である。
【0042】
カラム分離処理部406は、選択されたカラム501とカラムの分離点情報702とを入力として、カラムを複数の上位概念カラムに分離する。具体的には、カラム分離処理部406は、カラムの分離点情報702から分離すべき文字数を抽出することによって、各分離点を選択する(ステップ801)。次に、カラム分離処理部406は、抽出された文字について、選択されたカラム501に対してカラムを分離する(ステップ802)。全ての分離点に対して分離したカラムが、分離したカラム803として出力される。
【0043】
図10は、本発明の実施例1の命名部407の詳細を示すフロー図である。
【0044】
命名部407は、分離したカラム803とユーザから入力されたカラム名901とを入力として、分離した各カラムに名前を付加する。具体的には、命名部407は、分離した各カラムを選択し(ステップ902)、ユーザから入力されたカラム名901の情報を用いて、選択したカラムに名前を付加する(ステップ903)。ユーザから入力されたカラム名901の入力は任意であり、入力されなかった場合は、命名部407は、分離した各カラムに、分離元カラムの名前に識別記号を付加した名前を付ける。例えば「担当社員ID」カラムから2つのカラムが生成された場合、「担当社員ID(1−4桁目)」「担当社員ID(5−6桁目)」といった名前が自動的に付加される。命名部407は、全てのカラムに名前を付加したのち、分離したカラム’904を出力する。
【0045】
次に、上記の
図5〜
図10に示した処理の具体例として、
図2に示す入力テーブル008が入力された場合に実行される処理を、
図11〜
図14を参照して説明する。
【0046】
図11は、本発明の実施例1の抽象化処理部007に入力される入力テーブル008中の一つのカラムの具体例の説明図である。
【0047】
図11における社員IDカラム1002は、
図2のテーブル101に含まれる担当社員ID105に相当する。この社員IDカラム1002に格納された各社員IDは、表1001に示されるように、社員の入社年度を数値で表す「入社年度」、社員の所属部署について数値を記号として表す「所属部署ID」、及び、同期入社した社員の中での名前の五十音番号を表す「五十音順番号」から構成される、社員一人一人に割り当てられるIDである。この具体例で示す社員ID1002は、各要素が数値から成るカラムであるが、各要素を表す数値は文字列と同じように扱われている。つまり、例えばフィールド1003の社員ID「20135000004」とフィールド1004の社員ID「20015000020」とを足し合わせて「40150000024」という値を得ても意味をなさない。このように「20135000004」に代表される各社員IDの値は、現実の各物体又は事象に付けられたラベル(名前)である。このように具体例では、数値を記号とみなしたラベル値を挙げたが、「A_23TT0−a」又は「日本」といった数値以外の記号を含むラベルや、単に対象を表す名前なども同様に扱うことができる。
【0048】
社員ID1002のようなカラムを含むテーブルが抽象化処理部007に入力されると、要素分離部402によってカラム中の各要素が文字ごとに分解される。
【0049】
なお、
図11は、
図2の入力テーブル101から担当社員ID105のカラムが選択された例を示しているが、本実施例は、一つのカラムのみからなるテーブルにも適用可能である。また、本実施例は、テーブル形式以外の形式であっても、上記のように複数のデータ要素を含むカラムに相当する情報を含む任意の形式の構造化データに適用することができる。
【0050】
図12は、本発明の実施例1のユニーク性評価部403の具体例の説明図である。
【0051】
図12における分離したカラム1101は、
図11における社員IDカラム1002中の要素が文字数ごとに分離された様子の一部を示す具体例である。
図12のように、例えば社員IDカラム1002が「20135000004」、「19985000020」、「20125100050」及び「20075200035」といった値を含んでいる場合に、社員IDカラム1002中の要素は、各要素の1桁目「2」及び「1」のみから成るカラム、各要素の1桁目から2桁目「20」及び「19」のみから成るカラム、各要素の1桁目から3桁目「201」、「200」及び「199」のみから成るカラムといった具合に、要素分離部402によって複数のカラムに分離される。分離された複数のカラムに対して、ユニーク性評価部403によってユニーク性を評価する指標が計算される。
【0052】
なお、上記のようにカラムを所定の桁数の範囲に分離する処理は、この後のユニーク性評価部403による情報量の計算の対象となる範囲を指定する処理の一例に過ぎない。実際には、要素分離部402は、カラムを分離する以外の方法で上記のような範囲を指定してもよい。要素分離部は、範囲指定部と言い換えてもよい。
【0053】
ユニーク性を評価する指標の具体例として、カラムの持つ平均情報量が挙げられる。平均情報量は、例えば式(1)によって計算される。
【0054】
【数1】
【0055】
ここで、xは対象カラムにおける各要素であり、p(x)は要素xがカラム中に出現する割合(確率)である。カラムのユニーク性を表現する値を求める手法としては、単純にユニーク要素数を求めるなど、様々な手法を用いることができる。
図12における社員ID1002を分離した各カラム1101に対して単純にユニーク要素数を求めた場合、カラム「1桁目」は、ユニークな要素が「2」及び「1」の2個あるため、ユニーク数2、カラム「2桁目」は、ユニークな要素が「20」及び「19」の2個あるため、ユニーク数2、カラム「3桁目」は、ユニークな要素が「201」、「200」及び「199」の3個あるため、ユニーク数3と計算される。上記のように、分離した各カラムのユニーク数を計算した結果を、要素のユニーク数1102に示している。
【0056】
各カラムに対して計算されたユニーク性を表現する値に対して、変化点検出部404は、文字数の変化に応じたユニーク性の変化点を検出する。
【0057】
図13は、本発明の実施例1の変化点検出部404の具体例の説明図である。
【0058】
図13は、具体例として、
図12に示すように、社員ID1002を分離するために区切った桁数(文字数)を横軸にとり、分離したカラムの持つ平均情報量H(X)を縦軸にとった場合の、ユニーク性を表現する値(この例では平均情報量)の変化の様子を示す。
【0059】
図13のグラフは、社員IDカラム1002の各要素について、左端から順に1桁目のみ、2桁目まで、3桁目まで、・・・のように区切って分離したカラムについて、そのカラムが持つ平均情報量をプロットしたグラフである。具体例から、社員IDを示す各要素について、4桁目付近と6桁目付近において、平均情報量の値の変化量が変化している様子が分かる。このように変化点検出部404は、カラムのユニーク性を表現する値に関して、分離するカラム中の要素の文字数を変化させた場合に、ユニーク性の変化が所定の特徴を有する(すなわち所定の条件を満たす)地点を検出する。ユニーク性の変化に関する特徴としては、ユニーク性の値そのものの変化、ユニーク性の値の変化量の変化、又は、変化の勾配が最大もしくは0となる点など、様々な特徴が想定される。分離点抽出部405は、こうしたユニーク性の変化量に関する特徴を用いて、カラムの分離点を抽出する。
【0060】
例えば、上記の例のように、11桁の社員IDが、社員の入社年度を示す先頭の4桁、社員の所属事業所を示す次の2桁、及び、社員の名前の五十音順の番号を示す最後の5桁、といった複数の部分を含む場合に、例えば1桁目から6桁目までのように複数の部分を含む分離したカラムの平均情報量は、一般に、上記のような複数の部分の値の組合せによって、例えば1桁目から4桁目までのように一つの部分のみを含む分離したカラムの平均情報量より著しく大きくなる。このように、分離したカラムに含まれる部分の数が多いほど平均情報量が大きくなる傾向があるため、
図13に示すように、分離したカラムに含まれる桁数を順次増やしていったときの平均情報量の変化に基づいて、カラムを構成する部分の境界の位置を推定することが可能になる。
【0061】
この推定に従えば、カラムのデータ要素を、最上位の桁を起点として指定した長さだけ分離し、順次その長さを伸ばしながら情報量(例えば平均情報量又はユニーク要素数等)を計算した場合、その分離した範囲に新たに隣接する部分が含まれたときにその情報量が急激に増加すると考えられる。このため、例えば、情報量の変化が極大値を示したときに、その変化の直前の長さの範囲を分離するように分離点を抽出してもよい。
【0062】
ただし、社員の入社年度及び社員の名前の五十音順の番号のように、それぞれの部分の中でも桁によって情報量が異なる場合がある。例えば、
図11に示すように、入社年度が西暦1996年から2015年までである場合、最下位の桁の値は0〜9の10通りがあるが、その次の位の桁の値は9、0、1の3通りであり、さらにその次の位の桁の値は9、0の2通り、さらにその次の位の桁の値は1、2の2通りである。
【0063】
したがって、上記のように分離する範囲の長さを伸ばしながら情報量を計算すると、その範囲に下位の桁が順次追加されるごとに増加し、特に最下位の桁が追加された時点で急激に増加し、その隣の部分の最上位の桁が追加された時点ではあまり増加せず、その下位の桁が順次追加されるに従って再び次第に増加する、といった変化が観察されることが考えられる。このため、例えば、
図13に示すように、情報量の変化が極小値を示したときに、その変化の直前の長さの範囲を分離するように分離点を抽出してもよいし、情報量の変化が極大値を示したときに、その変化の直後の長さの範囲を分離するように分離点を抽出してもよい。
【0064】
あるいは、上記の極大値又は極小値の代わりに、最大値又は最小値を用いてもよいし、情報量の変化量が所定の値より大きい点、又は所定の値より小さい点を基準として、その直前又は直後の長さの範囲を分離してもよい。抽出の対象となるデータの性質によって最適な基準を選択することで、適切に上位概念データを抽出することができる。これらの方法は、指定した範囲の変化に応じたデータ要素の情報量の変化が所定の条件を満たす点を基準としてカラムの分離点を抽出する方法の一例であり、そのような方法に該当する限り、その他の任意の方法を採用することができる。
【0065】
カラム分離処理部406は、上記のように抽出した分離点に基づいて、カラムの分離を行う。
【0066】
図14は、本発明の実施例1のカラム分離処理部406の具体例の説明図である。
【0067】
図14は、具体例として、社員ID1002を分離した際の分離カラムを示す。
図14では社員ID1002の各要素について、4桁目、6桁目で要素を分離することで、社員ID(1−4桁目)1201、社員ID(5−6桁目)1202、及び社員ID(7−11桁目)1203の3つのカラムに分離されている。
図11の1001に示されるように、それぞれ入社年度、所属部署ID、及び五十音順番号を意味するカラムに分離することができている。このように、それぞれに異なる意味を持った複数の部分からなるカラムをそれぞれの部分に自動的に分離することができる。
【0068】
分離された各カラムは、ユーザからカラム名に関する入力があった場合、命名部407によって入社年度1204、事業所ID1205、五十音順番号1206といったカラム名が付加される。ただし、命名部407は必須ではなく、上記の社員ID(1−4桁目)1201〜社員ID(7−11桁目)1203がそのまま出力されてもよい。
【0069】
また、命名部407は、ユーザからの入力によらずに、他の情報に基づいて分離した各カラムの名前を推定して付加してもよい。例えば、社員IDカラム1002がデータベース021から抽出されたものであり、データベース021にさらに社員IDに含まれる要素とその意味(例えば5−6桁目と社員の所属事業所)とを対応付ける定義ファイルが含まれる場合には、命名部407はその情報を参照して分離したカラムに名前を付加してもよい。
【0070】
あるいは、データベース021に、社員IDと各社員の属性とを対応付ける情報が含まれる場合、命名部407は、その情報に基づいて、分離した各カラムとそれぞれの属性との間の相互情報量に基づいて両者の類似度を計算し、類似度が所定の条件を満たす(例えば所定の値より高い)場合に、その属性を分離したカラムの名前として付加してもよい。例えば、データベース021に社員IDと各社員の所属事業所の名前とを対応付ける情報が含まれ、命名部407がその情報に基づいて社員IDの5−6桁目と所属事業所名との類似度が高いと判定した場合には、分離した5−6桁目のカラムに、「所属事業所名」に基づいて生成した名称(例えば「事業所ID」)を付加してもよい。これによって、命名を自動化することができる。このような処理を行うために必要なデータベース021の情報は、必要に応じて主記憶装置003又は二次記憶装置002にコピーされ、命名部407によって参照されてもよい。
【0071】
以上のように、本実施例では、入力テーブル008を抽象化処理部007に入力することで、出力テーブル009として、複数の上位概念カラムを得ることができる。このとき、上記のように、ID又は名前のようなラベルデータに対して、各桁(文字)に注目して上位概念データを抽出するため、数値データ、及び、文字列から成るラベルデータ共に適用可能である。
【0072】
また、上記の例では、カラムのデータから上位概念データを抽出する処理を説明したが、概念の上下関係に関わらず、一つのカラムのデータ要素が異なる意味を持った複数の部分を含んでいる場合には、上記の処理によって、それぞれの部分を自動的に分離することができる。
【実施例2】
【0073】
次に、本発明の実施例2について説明する。以下に説明する相違点を除き、実施例2のシステムの各部は、
図1〜
図14に示された実施例1の同一の符号を付された各部と同一の機能を有するため、それらの説明は省略する。
【0074】
図15は、本発明の実施例2の抽象化処理部007の詳細を示すフロー図である。
【0075】
実施例1との違いは、カラム選択部401によって選択された各カラムに対して、抽象化処理の適用妥当性を判定する尺度判定部1301〜クラスタ選択部1304の処理が含まれる点である。尺度判定部1301〜クラスタ選択部1304は、カラム選択部401と同様に、抽象化処理部007を実現するためのプログラムに含まれるサブプログラムを中央処理装置001が実行することによって実現される機能ブロックである。
【0076】
尺度判定部1301では、カラム選択部401によって選択されたカラム中の要素の持つ尺度水準を判定する。尺度水準とは、収集されたデータに対して、そのデータが表現する情報の性質に基づき、数学・統計学的に分類する基準であり、尺度には一般的に比例尺度、間隔尺度、順序尺度、名義尺度の4種類がある。
【0077】
名義尺度は、データ同士の一致を比較することのみ可能なデータであり、数字や記号を単なる名前として対象に割り振った尺度である。具体例として、”20135000004”のように表現される社員ID1002、及び、”田中太郎”という社員名(図示省略)などが該当する。
【0078】
順序尺度は、データ同士の一致に加え、順序の比較が可能な尺度であり、例えばマラソンの順位カラム(図示省略)における”2”、”4”などが該当する。
【0079】
間隔尺度は、データ同士の一致、順序の比較に加え、加減演算が適用可能な尺度であり、例えば処理時刻106カラムにおける”2016/01/07 09:12”、”2016/01/08 12:50”などが該当する。
【0080】
比例尺度は、データの一致、順序の比較、加減演算に加え、比を取ることができる尺度であり、例えば年齢カラム(図示省略)における”27”、”54”などが該当する。
【0081】
図11の具体例で説明した通り、データを表現する記号が数値であっても名義尺度に分類されることがあるため、尺度情報を獲得するためには尺度の判定が必要である。
【0082】
本発明で主に対象とするデータは、
図11で説明した社員ID1002のような名義尺度カラムであるが、
図2の入力テーブルで紹介した処理時刻106カラムのような時刻のカラムに対しても適用可能である。処理時刻106のような日付や時刻は間隔尺度に分類される。
【0083】
要素文字数判定部1302は、選択されたカラム中の要素について、各要素の文字数を算出し、文字数が揃っているかどうか判定する。クラスタリング部1303は、判定された要素の文字数ごとに要素をクラスタに分類する。クラスタ選択部1304は、要素の文字数ごとにクラスタリングされた各クラスタを選択する。抽象化処理部007は、尺度判定部1301で判定された尺度情報を使い、選択されたカラムが比例尺度であるか否かを判定し(ステップ1305)、比例尺度以外である場合はその先の抽象化処理(すなわち要素分離部402〜命名部407の処理)を適用する。
【0084】
要素文字数判定部1302及びクラスタリング部1303は、対象カラムの要素について、全要素の多くが異なる文字数であるために異なるクラスタに分類される場合、抽象化処理部007の処理を適用する代わりに正規表現を用いてカラムの要素を分離してもよい。その場合、要素文字数判定部1302等は、対象カラムの各要素を表現する正規表現を求め、正規表現が動的に変化する部分を分離する。
【0085】
上記のような方法は、要素間の距離に基づいて要素をクラスタリングする方法の一例であり、要素間の距離として種々のものを利用することができる。例えば、上記の文字数の差は、要素間の距離の一例であるが、他の距離の例として、要素間のユークリッド距離又はレーベンシュタイン距離等が挙げられる。
【0086】
尺度判定部1301、要素文字数判定部1302及びクラスタリング部1303によって、抽象化処理を適用すべきカラムを判定することが可能となる。
【0087】
図16は、本発明の実施例2のクラスタリング部1303の詳細を示すフロー図である。
【0088】
クラスタリング部1303は、選択されたカラム501の各要素に対して、各要素の文字数1401から順に文字数を選択する(ステップ1402)。次に、クラスタリング部1303は、該当する文字数の要素を同一のクラスタにクラスタリングすることによって、文字数の一致するレコードを一つのクラスタに集計する(ステップ1403)。全ての文字数に対して処理が完了したのち、クラスタリング部1303は、要素のクラスタリング情報1404を出力する。
【0089】
以上の本発明の実施例2によれば、様々な尺度のデータが含まれるテーブルに対しても、抽象化処理を適用できるカラムを自動的に判定してそれに対する抽象化処理を行うことができる。また、一つのカラムに文字数の異なる要素が含まれる場合であっても、クラスタリングによって、クラスタごとに抽象化処理を行うことができる。
【0090】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明のより良い理解のために詳細に説明したのであり、必ずしも説明の全ての構成を備えるものに限定されものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることが可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0091】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によってハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによってソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
【0092】
また、制御線及び情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線及び情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。