以下、図面を参照して、各実施形態について説明する。
(第1の実施形態)
図1は、第1の実施形態に係るデータ分析支援装置のハードウェア構成を示すブロック図である。図1に示すように、コンピュータ10は、例えばハードディスクドライブ(HDD:Hard Disk Drive)のような外部記憶装置20と接続されている。この外部記憶装置20は、コンピュータ10によって実行されるプログラム21を格納する。コンピュータ10および外部記憶装置20は、データ分析支援装置30を構成する。
このデータ分析支援装置30は、例えばデータを分析する際に、異なる複数のデータテーブル(異なる定義がされたデータテーブル)間において属性を対応づけるために用いられる。
図2は、図1に示すデータ分析支援装置30の主として機能構成を示すブロック図である。
図2に示すように、データ分析支援装置30は、属性型分類部31、数値型属性処理部32、文字列型属性処理部33、閾値入力部34および類似属性候補抽出部35を含む。本実施形態において、これらの各部31〜35は、図1に示すコンピュータ10が外部記憶装置20に格納されているプログラム21を実行することにより実現されるものとする。このプログラム21は、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラム21が、例えばネットワークを介してコンピュータ10にダウンロードされても構わない。
また、データ分析支援装置30は、データテーブル格納部22、数値型属性格納部23、文字列型属性格納部24、数値型属性類似度格納部25、文字列型属性類似度格納部26および類似属性候補格納部27を含む。本実施形態において、これらの各部22〜27は、例えば外部記憶装置20に格納される。
データテーブル格納部22には、分析の対象となる異なる複数のデータテーブル(第1および第2のテーブル)が格納されている。このデータテーブル格納部22に格納されている複数のデータテーブルの各々は、属性から構成される。また、データテーブルを構成する属性には、例えば数値型属性および文字列型属性が含まれる。数値型属性は、数値を含む属性値を有する(つまり、数値を属性値としてとり得る)属性である。一方、文字列型属性は、文字列を含む属性値を有する(つまり、文字列を属性値としてとり得る)属性である。なお、文字列型属性が有する属性値に含まれる文字列は、例えば単語から構成される。
属性型分類部31は、データテーブル格納部22に格納されているデータテーブルの各々を構成する属性を、数値型属性または文字列型属性に分類する。
数値型属性格納部23および文字列型属性格納部24には、属性型分類部31による分類結果が格納される。具体的には、数値型属性格納部23には、データテーブル格納部22に格納されているデータテーブル毎に、当該データテーブルを構成する属性のうちの数値型属性(属性名および属性値)が格納される。また、文字列型属性格納部24には、データテーブル格納部22に格納されているデータテーブル毎に、当該データテーブルを構成する属性のうちの文字列型属性(属性名および属性値)が格納される。
数値型属性処理部32は、数値型属性格納部23に格納された異なるデータテーブルを構成する2つの数値型属性(第1および第2の数値型属性)が有する属性値(に含まれる数値)に基づいて、当該2つの数値型属性間の類似度を算出する。なお、数値型属性処理部32は、数値型属性格納部23に格納された異なるデータテーブルを構成する2つの数値型属性の組み合わせの全てについて類似度を算出する。
数値型属性類似度格納部25には、数値型属性処理部32によって算出された異なるデータテーブルを構成する2つの数値型属性の組み合わせ毎の類似度が格納される。
文字列型属性処理部33は、文字列型属性格納部24に格納された異なるデータテーブルを構成する2つの文字列型属性(第1および第2の文字列型属性)が有する属性値(に含まれる文字列)に基づいて、当該2つの文字列型属性間の類似度を算出する。なお、文字列型属性処理部33は、文字列型属性格納部24に格納された異なるデータテーブルを構成する2つの文字列型属性の組み合わせの全てについて類似度を算出する。
文字列型属性類似度格納部26には、文字列型属性処理部33によって算出された異なるデータテーブルを構成する2つの文字列型属性の組み合わせ毎の類似度が格納される。
閾値入力部34は、異なるデータテーブル間において同一の内容を表す属性の候補(以下、類似属性候補と表記)を抽出する際に用いられる閾値を入力する。閾値入力部34によって入力される閾値は、例えばユーザによって指定される。
類似属性候補抽出部35は、数値型属性類似度格納部25に格納された異なるデータテーブルを構成する2つの数値型属性の組み合わせ毎の類似度および閾値入力部34によって入力された閾値に基づいて、当該2つの数値型属性を類似属性候補として抽出する。また、類似属性候補抽出部35は、文字列型属性類似度格納部26に格納された異なるデータテーブルを構成する2つの文字列型属性の組み合わせ毎の類似度および閾値入力部34によって入力された閾値に基づいて、当該2つの文字列型属性を類似属性候補として抽出する。
類似属性候補格納部27には、類似属性候補抽出部35によって抽出された類似属性候補が格納される。
図3は、図2に示す数値型属性処理部32の機能構成を示すブロック図である。図3に示すように、数値型属性処理部32は、属性値数値範囲特定部321、属性値数値範囲格納部322および数値型属性類似度算出部323を含む。
属性値数値範囲特定部321は、数値型属性格納部23に格納された数値型属性が有する属性値に含まれる数値の範囲(以下、当該属性値の数値範囲と表記)を特定する。なお、属性値数値範囲特定部321は、数値型属性格納部23に格納された全ての数値型属性に対して属性値の数値範囲を特定する。
属性値数値範囲格納部322には、属性値数値範囲特定部321によって特定された数値型属性が有する属性値の数値範囲が格納される。
数値型属性類似度算出部323は、属性値数値範囲格納部322に格納された各数値型属性が有する属性値の数値範囲に基づいて、異なるデータテーブルを構成する2つの数値型属性間の類似度を算出する。具体的には、数値型属性類似度算出部323は、異なるデータテーブルを構成する2つの数値型属性が有する属性値の数値範囲が重なる範囲に基づいて、当該2つの数値型属性間の類似度を算出する。なお、数値型属性類似度算出部323は、上記したように異なるデータテーブルを構成する2つの数値型属性の組み合わせの全てについて類似度を算出する。このように数値型属性類似度算出部323によって算出された類似度は、数値型属性類似度格納部25に格納される。
図4は、図2に示す文字列型属性処理部33の機能構成を示すブロック図である。図4に示すように、文字列型属性処理部33は、属性値単語抽出部331、属性値単語集合格納部332および文字列型属性類似度算出部333を含む。
属性値単語抽出部331は、文字列型属性格納部24に格納された文字列型属性が有する属性値に含まれる文字列を形態素解析する。属性値単語抽出部331は、形態素解析結果に基づいて、文字列型属性格納部24に格納された文字列型属性が有する属性値に含まれる文字列を構成する単語を抽出する。これにより、属性値単語抽出部331は、文字列型属性が有する属性値に含まれる文字列を構成する単語の集合(以下、単に当該属性値の単語集合と表記)を作成する。なお、属性値単語抽出部331は、文字列型属性格納部24に格納された全ての文字列型属性に対して属性値の単語集合を作成する。
属性値単語集合格納部332には、属性値単語抽出部331によって作成された文字列型属性が有する属性値の単語集合が格納される。
文字列型属性類似度算出部333は、属性値単語集合格納部332に格納された各文字列型属性が有する属性値の単語集合に基づいて、異なるデータテーブルを構成する2つの文字列型属性間の類似度を算出する。具体的には、文字列型属性類似度算出部333は、異なるデータテーブルを構成する2つの文字列型属性が有する属性値の単語集合間で一致する単語の数に基づいて、当該2つの文字列型属性間の類似度を算出する。なお、文字列型属性類似度算出部333は、上記したように異なるデータテーブルを構成する2つの文字列型属性の組み合わせの全てについて類似度を算出する。このように文字列型属性類似度算出部333によって算出された類似度は、文字列型属性類似度格納部26に格納される。
ここで、図5〜図7を参照して、上記した図2に示すデータテーブル格納部22に格納されている異なる複数のデータテーブルについて説明する。
なお、本実施形態では、例えば複数の銀行における業務ミス(に関するデータ)の分析を支援することを想定する。ここでは、データテーブル格納部22に格納されている複数のデータテーブルは、例えばA〜C銀行の日々の業務で発生したミス(手数料間違い、口座番号指定間違い等)に関するデータ(情報)が蓄積された当該銀行毎のデータテーブル(つまり、A〜C銀行のデータテーブル)であるものとする。
図5は、データテーブル格納部22に格納されている複数のデータテーブルのうちのA銀行のデータテーブルのデータ構造の一例を示す。
図5に示すように、A銀行のデータテーブル221は、属性名(属性の名称)が「版」、「発生日」、「発見日」、「発生原因/発生者」、「現象/発生者」、「発生業務」、「発生者職位」、「損失金額(円)」、「発生店番号」および「発見店番号」である複数の属性から構成されている。以下の説明においては、例えば属性名が「版」である属性を単に「版」属性と称する。なお、他の属性についても同様に表記するものとする。
ここで、図5に示すA銀行のデータテーブル221を構成する複数の属性のうち、例えば「損失金額(円)」属性は、「94500」、「300000」、「1500000」および「0」等の数値を含む属性値を有する。このため、「損失金額(円)」属性は、数値型属性である。なお、A銀行のデータテーブル221を構成する複数の属性のうちの「版」属性、「発生日」属性、「発見日」属性、「損失金額(円)」属性、「発生店番号」属性および「発見店番号」属性が数値型属性である。
また、図5に示すA銀行のデータテーブル221を構成する複数の属性のうち、例えば「発生原因/発生者」属性は、「経験不足」、「指導・教育不足」、「第三者による事故」および「お客様の依頼ミス・記入誤り」等の文字列を含む属性値を有する。このため、「発生原因/発生者」属性は、文字列型属性である。なお、A銀行のデータテーブル221を構成する複数の属性のうちの「発生原因/発生者」属性、「現象/発生者」属性、「発生業務」属性および「発生者職位」属性が文字列型属性である。
図6は、データテーブル格納部22に格納されている複数のデータテーブルのうちのB銀行のデータテーブルのデータ構造の一例を示す。
図6に示すように、B銀行のデータテーブル222は、「発生日」属性、「バージョン」属性、「判明日」属性、「発生原因」属性、「概要」属性、「職位/発生者」属性、「職位/検証者」属性、「直接損失額(千円)」属性、「間接損失額(千円)」属性、「業務」属性および「発生店舗」属性から構成されている。なお、B銀行のデータテーブル222は、上述したA銀行のデータテーブル221と異なる定義がされているため、当該A銀行のデータテーブル221を構成する各属性と比較して属性名および属性値の表記が異なる。
ここで、図6に示すB銀行のデータテーブル222を構成する複数の属性のうち、例えば「間接損失額(千円)」属性は、「0」、「400」、「0」および「0」等の数値を含む属性値を有する。このため、「間接損失額(千円)」は、数値型属性である。なお、B銀行のデータテーブル222を構成する複数の属性のうちの「発生日」属性、「バージョン」属性、「判明日」属性、「直接損失額(千円)」属性、「間接損失額(千円)」属性および「発生店舗」属性が数値型属性である。
また、図6に示すB銀行のデータテーブル222を構成する複数の属性のうち、例えば「発生原因」属性は、「知識・経験・教育不足」、「顧客による事故」、「複雑な作業内容」および「ケアレスミス」等の文字列を含む属性値を有する。このため、「発生原因」属性は、文字列型属性である。なお、B銀行のデータテーブル222を構成する複数の属性のうちの「発生原因」属性、「概要」属性、「職位/発生者」属性、「職位/検証者」属性および「業務」属性が文字列型属性である。
図7は、データテーブル格納部22に格納されている複数のデータテーブルのうちのC銀行のデータテーブルのデータ構造の一例を示す。
図7に示すように、C銀行のデータテーブル223は、「判明日」属性、「発生日」属性、「版」属性、「発生店番号」属性、「発生原因/発生者」属性、「現象」属性、「発生業務」属性、「発生者職位」属性、「損失額(千円)」属性および「リスク評価」属性から構成されている。なお、C銀行のデータテーブル223は、上述したA銀行のデータテーブル221およびB銀行のデータテーブル222と異なる定義がされているため、当該A銀行のデータテーブル221およびB銀行のデータテーブル222を構成する各属性と比較して属性名および属性値の表記が異なる。
ここで、図7に示すC銀行のデータテーブル223を構成する複数の属性のうち、例えば「リスク評価」属性は、「1」、「0」、「3」および「0」等の数値を含む属性値を有する。このため、「リスク評価」属性は、数値型属性である。なお、C銀行のデータテーブル223を構成する複数の属性のうちの「判明日」属性、「発生日」属性、「版」属性、「発生店番号」属性、「損失額(千円)」属性および「リスク評価」属性が数値型属性である。
また、図7に示すC銀行のデータテーブル223を構成する複数の属性のうち、例えば「発生者職位」属性は、「一般行員」、「上級職」、「一般行員」および「パート」等の文字列を含む属性値を有する。このため、「発生者職位」属性は、文字列型属性である。なお、C銀行のデータテーブル223を構成する複数の属性のうちの「発生原因/発生者」属性、「現象」属性、「発生業務」属性および「発生者職位」属性が文字列型属性である。
次に、図8のフローチャートを参照して、本実施形態に係るデータ分析支援装置30の処理手順について説明する。
まず、属性型分類部31は、データテーブル格納部22に格納されている複数のデータテーブルを取得する(ステップS1)。
次に、属性型分類部31は、取得されたデータテーブル毎に、当該データテーブルを構成する属性の各々を数値型属性または文字列型属性に分類する(ステップS2)。また、属性型分類部31は、数値型属性に分類された属性の各々を更に数値型属性小分類に分類する。この数値型属性小分類には、例えば整数型、浮動小数型および日付型が含まれる。
属性型分類部31は、取得されたデータテーブルを構成する属性が有する属性値を参照して当該属性の分類処理を実行する。なお、属性型分類部31によって取得されたデータテーブルを構成する属性の各々の型を特定する情報(型情報)が当該データテーブルに保持されている場合には、当該情報を参照して分類処理が実行されても構わない。
属性型分類部31は、分類結果をデータテーブル毎に数値型属性格納部23および文字列型属性格納部24に格納する(ステップS3)。
ここで、データテーブル格納部22に格納されている複数のデータテーブルが上記したA〜C銀行のデータテーブル221〜223である場合を想定する。
この場合、数値型属性格納部23には、A〜C銀行のデータテーブル221〜223毎に数値型属性が格納される。具体的には、数値型属性格納部23には、A銀行のデータテーブル221を構成する複数の属性のうちの数値型属性(A銀行のデータテーブル221を構成する数値型属性)、B銀行のデータテーブル222を構成する複数の属性のうちの数値型属性(B銀行のデータテーブル222を構成する数値型属性)およびC銀行のデータテーブル223を構成する複数の属性のうちの数値型属性(C銀行のデータテーブル223を構成する数値型属性)が格納される。
なお、数値型属性格納部23において、A銀行のデータテーブル221を構成する数値型属性は、上記したように整数型、浮動小数型および日付型に更に分類されている。B銀行のデータテーブル222を構成する数値型属性およびC銀行のデータテーブル223を構成する数値型属性についても同様である。
また、数値型属性格納部23に格納されたA〜C銀行のデータテーブル221〜223の数値型属性には、当該A〜C銀行のデータテーブル221〜223において当該数値型属性が有する属性値および当該数値型属性の属性名が含まれる。
一方、文字列型属性格納部24には、A〜C銀行のデータテーブル221〜223毎に文字列型属性が格納される。具体的には、文字列型属性格納部24には、A銀行のデータテーブル221を構成する複数の属性のうちの文字列型属性(A銀行のデータテーブル221を構成する文字列型属性)、B銀行のデータテーブル222を構成する複数の属性のうちの文字列型属性(B銀行のデータテーブル222を構成する文字列型属性)およびC銀行のデータテーブル223を構成する複数の属性のうちの文字列型属性(C銀行のデータテーブル223を構成する文字列型属性)が格納される。
また、文字列型属性格納部24に格納されたA〜C銀行のデータテーブル221〜223の文字列型属性には、当該A〜C銀行のデータテーブル221〜223において当該文字列型属性が有する属性値および当該文字列型属性の属性名が含まれる。
次に、数値型属性格納部23および文字列型属性格納部24を参照して、類似度算出処理が実行される(ステップS4)。詳細については後述するが、この類似度算出処理には、数値型属性処理部32によって実行される数値型属性の類似度算出処理および文字列型属性処理部33によって実行される文字列型属性の類似度算出処理が含まれる。
数値型属性の類似度算出処理においては、数値型属性格納部23に格納された異なるデータテーブル(の各々)を構成する2つの数値型属性が有する属性値(に含まれる数値)に基づいて、当該2つの数値型属性間の類似度が数値型属性処理部32によって算出される。なお、数値型属性類似度算出処理においては、上記した数値型属性小分類(つまり、分類先)が同一である2つの数値型属性間の類似度が算出される。この数値型属性の類似度算出処理では、数値型属性格納部23に格納された異なるデータテーブルを構成する2つの数値型属性であって数値型属性小分類が同一である2つの数値型属性の組み合わせの全てについて類似度が算出される。
また、文字列型属性の類似度算出処理においては、文字列型属性格納部24に格納された異なるデータテーブルを構成する2つの文字列型属性が有する属性値(に含まれる文字列)に基づいて、当該2つの文字列型属性間の類似度が文字列型属性処理部33によって算出される。この文字列型属性の類似度算出処理では、文字列型属性格納部24に格納された異なるデータテーブルを構成する2つの文字列型属性の組み合わせの全てについて類似度が算出される。
ステップS4の処理が実行されると、数値型属性類似度格納部25には、数値型属性処理部32によって算出された類似度(異なるデータテーブルを構成する2つの数値型属性の組み合わせ毎の類似度)を含む類似度一覧表が格納され、文字列型属性類似度格納部26には、文字列型属性処理部33によって算出された類似度(異なるデータテーブルを構成する2つの文字列型属性の組み合わせ毎の類似度)を含む類似度一覧表が格納される(ステップS5)。なお、数値型属性類似度格納部25および文字列型属性類似度格納部25に格納される類似度一覧表の詳細については、後述する。
ここで、閾値入力部34は、例えばユーザによって指定された閾値を入力する(ステップS6)。ここでは、閾値がユーザによって指定されるものとして説明したが、当該閾値は、例えばデータ分析支援装置30の内部で予め設定されていてもよいし、データテーブルの内容等に応じて動的に決定されても構わない。
次に、類似属性候補抽出部35は、数値型属性類似度格納部25に格納された類似度一覧表、文字列型属性類似度格納部26に格納された類似度一覧表および閾値入力部34によって入力された閾値に基づいて、類似属性候補を抽出する処理(以下、類似属性候補抽出処理と表記)を実行する(ステップS7)。この類似属性候補抽出処理において類似属性候補抽出部35によって抽出される類似属性候補には、上記した異なるデータテーブルを構成する2つの数値型属性の組み合わせ(数値型属性ペア)および異なるデータテーブルを構成する2つの文字列型属性の組み合わせ(文字列型属性ペア)が含まれる。なお、この類似属性候補抽出処理の詳細については後述する。
ステップS7の処理が実行されると、類似属性候補抽出部35によって抽出された類似属性候補は、類似属性候補格納部27に格納される(ステップS8)。なお、類似属性候補格納部27に格納された類似属性候補は、データテーブル格納部22に格納されている異なる複数のデータテーブル間において同一の内容を表す属性の候補であるため、例えば当該複数のデータテーブルを比較する際に利用されることができる。
次に、図9のフローチャートを参照して、上述した類似度算出処理(図8に示すステップS4の処理)に含まれる数値型属性の類似度算出処理の処理手順について説明する。なお、この数値型属性の類似度算出処理は、数値型属性処理部32によって実行される。
まず、数値型属性処理部32は、数値型属性格納部23に格納された数値型属性の各々について以下のステップS11およびS12の処理を実行する。ここでは、この処理の対象となる数値型属性を対象数値型属性と称する。
数値型属性処理部32に含まれる属性値数値範囲特定部321は、数値型属性格納部23に格納された対象数値型属性が有する属性値の数値範囲を特定する(ステップS11)。この場合、属性値数値範囲特定部321は、数値型属性格納部23に格納された対象数値型属性が有する属性値(に含まれる数値)の最大値および最小値を特定し、当該最大値から最小値までの範囲を当該対象数値型属性が有する属性値の数値範囲とする。
属性値数値範囲特定部321は、特定された対象数値型属性が有する属性値の数値範囲を属性値数値範囲格納部322に格納する(ステップS12)。
ここで、数値型属性格納部23に格納された全ての数値型属性について上記したステップS11およびS12の処理が実行されたか否かが判定される(ステップS13)。
数値型属性格納部23に格納された全ての数値型属性について処理が実行されていないと判定された場合(ステップS13のNO)、上記したステップS11に戻って処理が繰り返される。この場合、ステップS11およびS12の処理が実行されていない数値型属性を対象数値型属性として処理が実行される。このように、数値型属性格納部23に格納された全ての数値型属性についてステップS11およびS12の処理が実行されることによって、当該数値型属性毎に特定された当該数値型属性が有する属性値の数値範囲が属性値数値範囲格納部322に格納される。以下、属性値数値範囲格納部322に格納された数値型属性が有する属性値の数値範囲を単に当該数値型属性の数値範囲と称する。
一方、数値型属性格納部23に格納された全ての数値型属性について処理が実行されたと判定された場合(ステップS13のYES)、数値型属性類似度算出部323は、数値型属性格納部23に格納された異なるデータテーブルを構成する2つの数値型属性の組み合わせ(数値型属性ペア)の各々に対して以下のステップS14およびS15の処理を実行する。ここでは、この処理の対象となる数値型属性ペアを対象数値型属性ペアと称する。また、対象数値型属性ペアに含まれる一方の数値型属性を第1の数値型属性、他方の数値型属性を第2の数値型属性と称する。なお、第1の数値型属性および第2の数値型属性の数値型属性小分類(つまり、分類先)は同一であるものとする。
まず、数値型属性類似度算出部323は、対象数値型属性ペアに含まれる第1および第2の数値型属性の数値範囲を属性値数値範囲格納部322から取得する。
次に、数値型属性類似度算出部323は、取得された第1および第2の数値型属性の数値範囲に基づいて、当該第1および第2の数値型属性間の類似度(対象数値型属性ペアの類似度)を算出する(ステップS14)。
ここで、数値型属性類似度算出部323によって取得された第1の数値型属性の数値範囲が第2の数値型属性の数値範囲より広い場合、または双方の数値範囲が同等の場合を想定する。この場合、数値型属性類似度算出部323は、第1の数値型属性の数値範囲に対する第1および第2の数値型属性の数値範囲の重なる範囲の割合(比率)を、当該第1および第2の数値型属性間の類似度として算出する。
一方、第1の数値型属性の数値範囲が第2の数値型属性の数値範囲より狭い場合、数値型属性類似度算出部323は、第2の数値型属性の数値範囲に対する第1および第2の数値型属性の数値範囲の重なる範囲の割合(比率)を、当該第1および第2の数値型属性間の類似度として算出する。
ここで、図10および図11を参照して、数値型属性類似度算出部323によって算出される第1および第2の数値型属性間の類似度について具体的に説明する。
まず、図10においては、第1の数値型属性がA銀行のデータテーブル221を構成する「損失金額(円)」属性であり、第2の数値型属性がB銀行のデータテーブル222を構成する「直接損失額(千円)」属性であるものとする。また、第1の数値型属性(つまり、「損失金額(円)」属性)の数値範囲は0〜1500000であり、第2の数値型属性(つまり、「直接損失額(千円)」属性)の数値範囲は0〜1000000であるものとする。なお、第1および第2の数値型属性においては単位が「円」と「千円」とで異なっているが、例えば上記したように数値範囲が特定される際に同一の単位となるように補正されているものとする。
ここで、第1の数値型属性の数値範囲は、第2の数値型属性の数値範囲より広い。この場合、第1および第2の数値型属性間の類似度は、第1の数値型属性の数値範囲(ここでは、0〜1500000)に対する第1および第2の数値型属性の数値範囲の重なる範囲(ここでは、0〜1000000)の割合、つまり、1000000/1500000≒0.667と算出される。
一方、図11においては、第1の数値型属性がA銀行のデータテーブル221を構成する「損失金額(円)」属性であり、第2の数値型属性がB銀行のデータテーブル222を構成する「発生店舗」属性であるものとする。また、第1の数値型属性(つまり、「損失金額(円)」属性)の数値範囲は0〜1500000であり、第2の数値型属性(つまり、「発生店舗」属性)の数値範囲は1〜145であるものとする。
ここで、第1の数値型属性の数値範囲は、第2の数値型属性の数値範囲より広い。この場合、第1および第2の数値型属性間の類似度は、第1の数値型属性の数値範囲(ここでは、0〜1500000)に対する第1および第2の数値型属性の数値範囲の重なる範囲(ここでは、1〜145)の割合、つまり、144/1500000≒0.000と算出される。
再び図9に戻ると、数値型属性類似度算出部323は、算出された第1および第2の数値型属性間の類似度を、類似度一覧表に格納する(ステップS15)。この場合、第1および第2の数値型属性間の類似度は、当該第1の数値型属性によって構成されるデータテーブルおよび当該第2の数値型属性によって構成されるデータテーブルの組み合わせに対して用意された、当該第1および第2の数値型属性の数値型属性小分類の類似度一覧表に格納される。具体的には、銀行Aのデータテーブル221を構成する整数型の第1の数値型属性および銀行Bのデータテーブル222を構成する整数型の第2の数値型属性間の類似度は、当該銀行Aのデータテーブル221および銀行Bのデータテーブル222の組み合わせに対して用意された整数型の類似度一覧表に格納される。
なお、類似度一覧表は、類似度が算出される2つの数値型属性(つまり、第1および第2の数値型属性)の各々を構成する異なる2つのデータテーブルの組み合わせ毎に用意されている。また、異なる2つのデータテーブルの組み合わせ毎に用意されている類似度一覧表は、更に数値型小分類毎に用意されている。
例えばデータテーブル格納部22に格納されているデータテーブルの数がnであり、数値型属性が分類される数値型属性小分類の数がmである場合には、n*(n−1)*m/2の数の類度一覧表が用意されている。具体的には、例えばデータテーブル格納部22に3つのデータテーブル221〜223が格納されており、3つの数値型属性小分類(例えば、整数型、浮動小数型および日付型)があるような場合には、9つの類似度一覧表が用意されていることになる。
次に、異なるデータテーブルを構成する2つの数値型属性の組み合わせの全て(つまり、全ての数値型属性ペア)について上記したステップS14およびS15の処理が実行されたか否かが判定される(ステップS16)。
全ての数値型属性ペアについて処理が実行されていないと判定された場合(ステップSS16のNO)、上記したステップS14に戻って処理が繰り返される。この場合、ステップS14およびS15の処理が実行されていない数値型属性ペアを対象数値型属性ペアとして処理が実行される。
一方、全ての数値型属性ペアについて処理が実行されたと判定された場合(ステップS16のYES)、数値型属性の類似度算出処理は終了される。
上記したように数値型属性の類似度算出処理が実行されると、用意されている全ての類似度一覧表(数値型属性の類似度一覧表)が作成される。なお、数値型属性の類似度算出処理において作成された類似度一覧表は、上述したように数値型属性類似度格納部25に格納される。
なお、異なるデータテーブルを構成する2つの数値型属性間の類似度算出方法は、上記に限定されるものではなく、例えば平均または分散等の基本統計量を比較する、またはグラフを作成して当該グラフ同士の重なりを類似度とする等の他の方法を用いても構わない。
ここで、図12を参照して、数値型属性の類似度算出処理において作成された類似度一覧表について具体的に説明する。図12は、A銀行のデータテーブル221およびB銀行のデータテーブル222の組み合わせに対して用意されている例えば整数型の類似度一覧表の一例を示す。
図12に示すように、類似度一覧表251中には、A銀行のデータテーブル221を構成する数値型属性およびB銀行のデータテーブル222を構成する数値型属性の各々が示されている。A銀行のデータテーブル221を構成する数値型属性には、「版」属性、「損失金額(円)」属性、「発生店番号」属性および「発見店番号」属性が含まれる。なお、これらの「版」属性、「損失金額(円)」属性、「発生店番号」属性および「発見店番号」属性は、整数型の数値型属性である。また、B銀行のデータテーブル222を構成する数値型属性には、「バージョン」属性、「直接損失額(千円)」属性、「間接損失額(千円)」属性および「発生店舗」属性が含まれる。同様に、これらの「バージョン」属性、「直接損失額(千円)」属性、「間接損失額(千円)」属性および「発生店舗」属性は、整数型の数値型属性である。
図12に示す例では、類似度一覧表251には、例えば「版」属性および「バージョン」属性に対応づけて0.805が格納されている。これによれば、異なるデータテーブル(ここでは、A銀行のデータテーブル221およびB銀行のデータテーブル222)を構成する「版」属性および「バージョン」属性間の類似度が0.805であることが示されている。
なお、図12に示す類似度一覧表251には、「版」属性および「バージョン」属性以外の他の2つの数値型属性間の類似度についても同様に格納されている。つまり、類似度一覧表251には、A銀行のデータテーブル221を構成する整数型の数値型属性およびB銀行のデータテーブル222を構成する整数型の数値型属性の全ての組み合わせに対する類似度が格納されている。
ここでは、A銀行のデータテーブル221およびB銀行のデータテーブル222の組み合わせに対して用意された整数型の類似度一覧表について説明したが、他の類似度一覧表についても同様であるため、その詳しい説明を省略する。
次に、図13のフローチャートを参照して、上述した類似度算出処理(図8に示すステップS4の処理)に含まれる文字列型属性の類似度算出処理の処理手順について説明する。なお、この文字列型属性の類似度算出処理は、文字列型属性処理部33によって実行される。
まず、文字列型属性処理部33は、文字列型属性格納部24に格納された文字列型属性の各々について以下のステップS21およびS22の処理を実行する。ここでは、この処理の対象となる文字列型属性を対象文字列型属性と称する。
文字列型属性処理部33に含まれる属性値単語抽出部331は、文字列型属性格納部24に格納された対象文字列型属性が有する属性値に含まれる文字列を形態素解析する。これにより、属性値単語抽出部331は、対象文字列型属性が有する属性値に含まれる文字列を構成する単語を抽出し、当該抽出された単語を含む単語集合(以下、対象文字列型属性の単語集合と表記)を作成する(ステップS21)。
ここで、図14を参照して、属性値単語抽出部331によって作成される対象文字列型属性の単語集合について具体的に説明する。ここでは、対象文字列型属性は、図5に示すA銀行のデータテーブル221を構成する「発生原因/発生者」属性であるものとする。
まず、対象文字列型属性によって構成されるデータテーブルにおいて当該対象文字列型属性が有する全ての属性値の集合(以下、対象文字列型属性の属性値集合と表記)が取得される。図14に示す例では、対象文字列型属性の属性値集合には、属性値「経験不足」、「指導・教育不足」、「第三者による事故」、「指導・教育不足」、「お客様の依頼ミス・記入誤り」、「経験不足」、「指導・教育不足」、「指導・教育不足」および「第三者による事故」が含まれている。
次に、対象文字列型属性の属性値集合に含まれる属性値のうち同一の属性値を1つに集約する(つまり、重複を除く)ことにより、対象文字列型属性の一意な属性値集合が作成される(ステップS31)。図14に示す例では、対象文字列型属性の一意な属性値集合には、属性値「経験不足」、「指導・教育不足」、「第三者による事故」および「お客様の依頼ミス・記入誤り」が含まれている。上記した対象文字列型属性の属性値集合においては属性値「経験不足」、「指導・教育不足」および「第三者による事故」が複数含まれているため、これらの属性値については対象文字列型属性の一意な属性値集合において1つに集約されている。
次に、対象文字列型属性の一意な属性値集合に含まれる属性値(に含まれる文字列)を形態素解析することにより、当該文字列が単語に分割される。ここで、形態素解析処理とは、文字列を単語に分割し、当該分割された各単語に品詞を付与する処理である。具体的には、属性値「お客様の依頼ミス・記入誤り」は、形態素解析処理により、「お(接頭辞)/客(名詞)/様(接尾辞)/の(助詞)/依頼(名詞)/ミス(名詞)/・(記号)/記入(名詞)/誤り(名詞)」のように分割される。このような形態素解析処理結果から品詞が名詞である単語が抽出され、当該単語を含む単語集合が作成される(ステップS32)。なお、図14に示す例では、属性値単語抽出部331によって作成された単語集合には、単語「経験」、「不足」、「指導」、「教育」、「不足」、「第三者」、「事故」、「客」、「依頼」、「ミス」、「記入」および「誤り」が含まれている。
なお、ステップS32の処理においては、品詞が名詞である単語の他に例えば品詞が動詞である単語および未知語等があわせて抽出されても構わない。未知語とは、例えば形態素解析用の辞書に登録されていない語である。一般に、固有名詞または専門用語等が未知語となる可能性が高い。
次に、作成された単語集合に含まれる単語のうち同一の単語を1つに集約する(つまり、重複を除く)ことにより、対象文字列型属性の一意な単語集合(属性値単語集合)が作成される(ステップS33)。図14に示す例では、対象文字列型属性の一意な単語集合には、単語「経験」、「不足」、「指導」、「教育」、「第三者」、「事故」、「客」、「依頼」、「ミス」、「記入」および「誤り」が含まれている。上記したステップS32において作成された単語集合においては単語「不足」が複数含まれているため、この単語については対象文字列型属性の一意な単語集合において1つに集約されている。
再び図13に戻ると、属性値単語抽出部331は、上記したように作成された対象文字列型属性の単語集合(対象文字列型属性の一意な単語集合)を属性値単語集合格納部332に格納する(ステップS22)。
ここで、文字列型属性格納部24に格納された全ての文字列型属性について上記したステップS21およびS22の処理が実行されたか否かが判定される(ステップS23)。
文字列型属性格納部24に格納された全ての文字列型属性について処理が実行されていないと判定された場合(ステップS23のNO)、上記したステップS21に戻って処理が繰り返される。この場合、ステップS21およびS22の処理が実行されていない文字列型属性を対象文字列型属性として処理が実行される。このように、文字列型属性格納部24に格納された全ての文字列型属性についてステップS21およびS22の処理が実行されることによって、当該文字列型属性毎の単語集合が属性値単語集合格納部332に格納される。
一方、文字列型属性格納部24に格納された全ての文字列型属性について処理が実行されたと判定された場合(ステップS23のYES)、文字列型属性類似度算出部333は、文字列型属性格納部24に格納された異なるデータテーブルを構成する2つの文字列型属性の組み合わせ(文字列型属性ペア)の各々に対して以下のステップS24〜S26の処理を実行する。ここでは、この処理の対象となる文字列型属性ペアを対象文字列型属性ペアと称する。また、対象文字列型属性ペアに含まれる一方の文字列型属性を第1の文字列型属性、他方の文字列型属性を第2の文字列型属性と称する。
まず、文字列型属性類似度算出部333は、対象文字列型属性ペアに含まれる第1および第2の文字列型属性の単語集合を属性値単語集合格納部332から取得する。
次に、文字列型属性類似度算出部333は、取得された第1および第2の文字列型属性の単語集合を参照して、当該第1および第2の文字列型属性の単語集合間で一致する単語の数を特定する(ステップS24)。この場合、文字列型属性類似度算出部333は、第1の文字列型属性の単語集合に含まれる単語のうち、第2の文字列型属性の単語集合に含まれる単語と一致する単語の数(以下、第1の文字列型属性の一致数と表記)を特定する。また、文字列型属性類似度算出部333は、第2の文字列型属性の単語集合に含まれる語のうち、第1の文字列型属性の単語集合に含まれる単語と一致する単語の数(以下、第2の文字列型属性の一致数と表記)を特定する。
文字列型属性類似度算出部333は、特定された第1および第2の文字列型属性の一致数に基づいて、当該第1および第2の文字列型属性間の類似度を算出する(ステップS25)。この場合、文字列型属性類似度算出部333は、第1の文字列型属性の単語集合に含まれる単語の一致率(以下、第1の文字列型属性の単語一致率と表記)および第2の文字列型属性の単語集合に含まれる単語の一致率(以下、第2の文字列型属性の単語一致率と表記)を利用して類似度を算出する。
ここで、第1の文字列型属性の単語一致率とは、第1の文字列型属性の単語集合に含まれる単語の数に対する上記したステップS24において特定された第1の文字列型属性の一致数の割合をいう。また、第2の文字列型属性の単語一致率とは、第2の文字列型属性の単語集合に含まれる単語の数に対する上記したステップS24において特定された第2の文字列型属性の一致数の割合をいう。
この場合、文字列型属性類似度算出部333は、第1および第2の文字列型属性の単語一致率の平均値を、当該第1および第2の文字列型属性間の類似度として算出する。
ここで、図15を参照して、文字列型属性類似度算出部333によって算出される第1および第2の文字列型属性間の類似度について具体的に説明する。
ここでは、第1の文字列型属性がA銀行のデータテーブル221を構成する「発生原因/発生者」属性であり、第2の文字列型属性がB銀行のデータテーブル222を構成する「発生原因」属性であるものとする。
図15に示すように、第1の文字列型属性(つまり、「発生原因/発生者」属性)の単語集合には、11個の単語、具体的には、単語「経験」、「不足」、「指導」、「教育」、「第三者」、「事故」、「客」、「依頼」、「ミス」、「記入」および「誤り」が含まれるものとする。また、第2の文字列型属性(つまり、「発生原因」属性)の単語集合には、10個の単語、具体的には、単語「知識」、「経験」、「教育」、「不足」、「顧客」、「事故」、「複雑」、「作業」、「内容」および「ケアレスミス」が含まれるものとする。
ここで、第1の文字列型属性の単語集合に含まれる単語のうち、第2の文字列型属性の単語集合に含まれる単語と一致する単語は、単語「経験」、「不足」、「教育」および「事故」である。この場合、第1の文字列型属性の一致数は4となる。一方、第2の文字列型属性の単語集合に含まれる単語のうち、第1の文字列型属性の単語集合に含まれる単語と一致する単語は、単語「経験」、「教育」、「不足」および「事故」である。この場合、第2の文字列型属性の一致数は4となる。
また、上記したように第1の文字列型属性の単語集合に含まれる単語の数は11であるため、第1の文字列型属性の単語一致率は4/11である。また、第2の文字列型属性の単語集合に含まれる単語の数は10であるため、第2の文字列型属性の単語一致率は4/10である。
これにより、第1および第2の文字列型属性間の類似度は、4/11と4/10との平均値、つまり、(4/11+4/10)/2≒0.382と算出される。
再び図13に戻ると、文字列型属性類似度算出部333は、算出された第1および第2の文字列型属性間の類似度を、類似度一覧表に格納する(ステップS26)。この場合、第1および第2の文字列型属性間の類似度は、当該第1の文字列型属性によって構成されるデータテーブルおよび当該第2の文字列型属性によって構成されるデータテーブルの組み合わせに対して用意された類似度一覧表に格納される。具体的には、銀行Aのデータテーブル221を構成する第1の文字列型属性および銀行Bのデータテーブル222を構成する第2の文字列型属性間の類似度は、当該銀行Aのデータテーブル221および銀行Bのデータテーブル222の組み合わせに対して用意された類似度一覧表に格納される。
なお、類似度一覧表は、類似度が算出される2つの文字列型属性(つまり、第1および第2の文字列型属性)の各々を構成する異なる2つのデータテーブルの組み合わせ毎に用意されている。
例えばデータテーブル格納部22に格納されているデータテーブルの数がnである場合には、n*(n−1)/2の数の類似度一覧表が用意されている。具体的には、例えばデータテーブル格納部22に3つのデータテーブル221〜223が格納されているような場合には、3つの類似度一覧表が用意されていることになる。
次に、異なるデータテーブルを構成する2つの文字列型属性の組み合わせの全て(つまり、全ての文字列型属性ペア)について上記したステップS24〜S26の処理が実行されたか否かが判定される(ステップS27)。
全ての文字列型属性ペアについて処理が実行されていないと判定された場合(ステップS27のNO)、上記したステップS24に戻って処理が繰り返される。この場合、ステップS24〜S26の処理が実行されていない文字列型属性ペアを対象文字列型属性ペアとして処理が実行される。
一方、全ての文字列型属性ペアについて処理が実行されたと判定された場合(ステップS27のYES)、文字列型属性の類似度算出処理は終了される。
上記したように文字列型属性の類似度算出処理が実行されると、用意されている全ての類似度一覧表(文字列型属性の類似度一覧表)が作成される。なお、文字列型属性の類似度算出処理において作成された類似度一覧表は、上述したように文字列型属性類似度格納部26に格納される。
ここで、図16を参照して、文字列型属性の類似度算出処理において作成された類似度一覧表について具体的に説明する。図16は、A銀行のデータテーブル221およびB銀行のデータテーブル222の組み合わせに対して用意されている類似度一覧表の一例を示す。
図16に示すように、類似度一覧表261中には、A銀行のデータテーブル221を構成する文字列型属性およびB銀行のデータテーブル222を構成する文字列型属性の各々が示されている。A銀行のデータテーブル221を構成する文字列型属性には、「発生原因/発生者」属性、「現象/発生者」属性、「発生業務」属性および「発生者職位」属性が含まれる。また、B銀行のデータテーブル222を構成する文字列型属性には、「発生原因」属性、「概要」属性、「職位/発生者」属性および「職位/検証者」属性が含まれる。
図16に示す例では、類似度一覧表261には、例えば「発生原因/発生者」属性および「発生原因」属性に対応づけて0.382が格納されている。これによれば、異なるデータテーブル(ここでは、A銀行のデータテーブル221およびB銀行のデータテーブル222)を構成する「発生原因/発生者」属性および「発生原因」属性間の類似度が0.382であることが示されている。
なお、図16に示す類似度一覧表261には、「発生原因/発生者」属性および「発生原因」属性以外の他の2つの文字列型属性間の類似度についても同様に格納されている。つまり、類似度一覧表261には、A銀行のデータテーブル221を構成する文字列型属性およびB銀行のデータテーブル222を構成する文字列型属性の全ての組み合わせに対する類似度が格納されている。
ここでは、A銀行のデータテーブル221およびB銀行のデータテーブル222の組み合わせに対して用意された類似度一覧表について説明したが、他の類似度一覧表についても同様であるため、その詳しい説明を省略する。
次に、図17のフローチャートを参照して、上述した類似属性候補抽出処理(図8に示すステップS7の処理)の処理手順について説明する。この類似属性候補抽出処理は、数値型属性および文字列型属性に共通して実行される処理である。なお、この類似属性候補抽出処理は、類似属性候補抽出部35によって実行される。
類似属性候補抽出部35は、数値型属性類似度格納部25および文字列型属性類似度格納部26に格納された類似度一覧表の各々について以下のステップS41〜S49の処理を実行する。ここでは、この処理の対象となる類似度一覧表を対象類似度一覧表と称する。
まず、類似属性候補抽出部35は、対象類似度一覧表を、数値型属性類似度格納部25または文字列型属性類似度格納部26から取り出す(ステップS41)。
次に、類似属性候補抽出部35は、取得された対象類似度一覧表中の属性の各々について以下のステップS42〜S48の処理を実行する。ここでは、この処理の対象となる属性を対象属性と称する。
類似属性候補抽出部35は、対象類似度一覧表中の対象属性を取り出す(ステップS42)。
類似属性候補抽出部35は、対象類似度一覧表において、取り出された対象属性との類似度が閾値入力部34によって入力された閾値(図8に示すステップS6において入力された閾値)以上である属性(対象属性とは異なるデータテーブルを構成する属性)を検索する。なお、この閾値は、類似属性候補を抽出するために十分な類似度を示す値である。
以下の説明においては、対象属性との類似度が閾値以上である属性を該当属性と称する。
類似属性候補抽出部35は、検索された該当属性の数が2つ以上であるか否かを判定する(ステップS43)。
該当属性の数が2つ以上でないと判定された場合(ステップS43のNO)、類似属性候補抽出部35は、検索された該当属性の数が1つであるか否かを判定する(ステップS44)。
該当属性の数が1つでない(つまり、該当属性が存在しない)と判定された場合(ステップS44のNO)、類似属性候補抽出部35は、対象類似度一覧表中の対象属性とは異なるデータテーブルを構成する属性のうち、予め定められた条件を満たす属性があるか否かを判定する(ステップS45)。ここで、予め定められた条件は、他の属性と比較して、対象属性と互いに類似度が最大となる属性が存在することを含む。
ここで、対称属性と互いに類似度が最大となる属性が存在するか否かを判定する処理(つまり、ステップS45の処理)について具体的に説明する。ここでは、対象類似度一覧表は、上述した図16に示す類似度一覧表261であるものとする。また、閾値入力部34によって入力された閾値は0.8であるものとする。
まず、対象属性は、類似度一覧表261中のA銀行のデータテーブル221を構成する「現象/発生者」属性であるものとする。この場合、類似度一覧表261において、対象属性である「現象/発生者」属性との類似度が閾値(0.8)以上である属性(該当属性)は存在しないため、ステップS45の処理が実行される。
図16に示す類似度一覧表261を参照すると、当該類似度一覧表261において、対象属性である「現象/発生者」属性との類似度が最大の属性は、「概要」属性である。
これに対して、類似度一覧表261において、「概要」属性との類似度が最大の属性は、対象属性である「現象/発生者」属性である。
このように対象属性である「現象/発生者」属性と類似度が最大となる属性が「概要」属性であり、当該「概要」属性と類似度が最大となる属性が「現象/発生者」属性(つまり、対象属性)である場合には、当該対象属性と互いに類似度が最大となる属性(ここでは、「概要」属性)が存在すると判定される。
次に、対象属性は、類似度一覧表261中のA銀行のデータテーブル221を構成する「発生業務」属性であるものとする。この場合、類似度一覧表261において、対象属性である「発生業務」属性との類似度が閾値(0.8)以上である属性(該当属性)は存在しないため、ステップS45の処理が実行される。
図16に示す類似度一覧表261を参照すると、当該類似度一覧表261において、対象属性である「発生業務」属性との類似度が最大の属性は、「発生原因」属性である。
これに対して、類似度一覧表261において、「発生原因」属性との類似度が最大の属性は、「発生原因/発生者」属性であり、対象属性である「発生業務」属性ではない。
このように対象属性である「発生業務」属性と類似度が最大となる属性が「発生原因」属性であるが、当該「発生原因」属性との類似度が最大となる属性が「発生業務」属性(つまり、対象属性)でない場合には、当該対象属性と互いに類似度が最大となる属性が存在しないと判定される。
上記したようにステップS45においては、対象属性と類似度が最大となる属性と類似度が最大となる属性が当該対象属性である場合には当該対象属性と互いに類似度が最大となる属性が存在すると判定され、対象属性と類似度が最大となる属性と類似度が最大となる属性が当該対象属性でない場合には当該対象属性と互いに類似度が最大となる属性が存在しない(つまり、類似属性候補はない)と判定される。
対象属性と互いに類似度が最大となる属性が存在する、つまり、予め定められた条件を満たす属性があると判定された場合(ステップS45のYES)、当該属性および対象属性(の組み合わせ)を類似属性候補として抽出する(ステップS46)。
一方、対象属性と互いに類似度が最大となる属性が存在しない、つまり、予め定められた条件を満たす属性がないと判定された場合(ステップS45のNO)、ステップS46の処理は実行されない。
また、上記したステップS43において該当属性の数が2つ以上であると判定された場合、類似属性候補抽出部35は、当該該当属性毎に、対象属性の属性名および当該該当属性の属性名間の類似度を算出する(ステップS47)。なお、対象属性の属性名および該当属性の属性名間の類似度は、上述した2つの文字列型属性間の類似度と同様に算出される。
ここで、図18および図19を参照して、類似属性候補抽出部35によって算出される対象属性の属性名および該当属性の属性名間の類似度について具体的に説明する。ここでは、対象類似度一覧表は、上述した図16に示す類似度一覧表261であるものとする。また、対象属性は、類似度一覧表261中のA銀行のデータテーブル221を構成する「発生者職位」属性であるものとする。なお、上記したように閾値入力部34によって入力された閾値は0.8であるものとする。
この場合、類似度一覧表261において、対象属性である「発生者職位」属性との類似度が閾値(0.8)以上である属性(該当属性)は、「職位/発生者」属性および「職位/検証者」属性の2つである。なお、「発生者職位」属性の属性名は「発生者職位」であり、「職位/発生者」属性の属性名は「職位/発生者」であり、「職位/検証者」属性の属性名は「職位/検証者」である。
まず、図18を参照して、対象属性である「発生者職位」属性の属性名および該当属性である「職位/発生者」属性の属性名間の類似度について説明する。
この場合、上述した2つの文字列型属性間の類似度と同様に、対象属性である「発生者職位」属性の属性名および該当属性である「職位/発生者」属性の属性名が形態素解析処理されることにより、当該「発生者職位」属性の属性名の単語集合および当該「職位/発生者」属性の属性名の単語集合が作成される。ここで作成される単語集合には、例えば品詞が名詞の単語が含まれる。
具体的には、「発生者職位」属性の属性名の単語集合には、単語「発生者」および「職位」が含まれる。また、「職位/発生者」属性の属性名の単語集合には、単語「職位」および「発生者」が含まれる。
ここで、「発生者職位」属性の属性名の単語集合に含まれる単語のうち、「職位/発生者」属性の属性名の単語集合に含まれる単語と一致する単語の数は2(単語「発生者」および「職位」)である。また、「職位/発生者」属性の属性名の単語集合に含まれる単語のうち、「職位/発生者」属性の属性名の単語集合に含まれる単語と一致する単語の数は2(単語「職位」および「発生者」)である。
また、上記したように「発生者職位」属性の属性名の単語集合に含まれる単語の数は2であるため、当該「発生者職位」属性の属性名の単語集合に含まれる単語の数に対する上記した「職位/発生者」属性の属性名の単語集合に含まれる単語と一致する単語の数の割合は2/2である。また、「職位/発生者」属性の属性名の単語集合に含まれる単語の数は2であるため、当該「職位/発生者」属性の属性名の単語集合に含まれる単語の数に対する上記した「発生者職位」属性の属性名の単語集合に含まれる単語と一致する単語の数の割合は2/2である。
これにより、対象属性である「発生者職位」属性の属性名および該当属性である「職位/発生者」属性の属性名間の類似度は、2/2と2/2との平均値、つまり、(2/2+2/2)/2=1と算出される。
次に、図19を参照して、対象属性である「発生者職位」属性の属性名および該当属性である「職位/検証者」属性の属性名間の類似度について説明する。
この場合、対象属性である「発生者職位」属性の属性名および該当属性である「職位/検証者」属性の属性名が形態素解析処理されることにより、当該「発生者職位」属性の属性名の単語集合および当該「職位/検証者」属性の属性名の単語集合が作成される。ここで作成される単語集合には、例えば品詞が名詞の単語が含まれる。
具体的には、「発生者職位」属性の属性名の単語集合には、上記したように単語「発生者」および「職位」が含まれる。また、「職位/検証者」属性の属性名の単語集合には、単語「職位」および「検証者」が含まれる。
ここで、「発生者職位」属性の属性名の単語集合に含まれる単語のうち、「職位/検証者」属性の属性名の単語集合に含まれる単語と一致する単語の数は1(単語「職位」)である。また、「職位/検証者」属性の属性名の単語集合に含まれる単語のうち、「発生者職位」属性の属性名の単語集合に含まれる単語と一致する単語の数は1(単語「職位」)である。
また、上記したように「発生者職位」属性の属性名の単語集合に含まれる単語の数は2であるため、当該「発生者職位」属性の属性名の単語集合に含まれる単語の数に対する上記した「職位/検証者」属性の属性名の単語集合に含まれる単語と一致する単語の数の割合は1/2である。また、「職位/検証者」属性の属性名の単語集合に含まれる単語の数は2であるため、当該「職位/検証者」属性の属性名の単語集合に含まれる単語の数に対する上記した「発生者職位」属性の属性名の単語集合に含まれる単語と一致する単語の数の割合は1/2である。
これにより、対象属性である「発生者職位」属性の属性名および該当属性である「職位/検証者」属性の属性名間の類似度は、1/2と1/2との平均値、つまり、(1/2+1/2)/2=1/2と算出される。
再び図17に戻ると、類似属性候補抽出部35は、該当属性毎に算出された類似度(対象属性の属性名および当該該当属性の属性名間の類似度)に基づいて、当該該当属性に対して順位づけを行う(ステップS48)。具体的には、類似属性候補抽出部35は、算出された類似度が高い該当属性の優先順位を高くするような順位づけを行う。上記したように「発生者職位」属性が対象属性であり、「職位/発生者」属性および「職位/検証者」属性が該当属性である場合には、「発生者職位」属性の属性名および「職位/検証者」属性の属性名間の類似度より「発生者職位」属性の属性名および「職位/発生者」属性の属性名間の類似度の方が高いため、「職位/発生者」属性により高い優先順位が付与される。
次に、類似属性候補抽出部35は、ステップS46において類似属性候補を抽出する。この場合、類似属性候補抽出部35は、対象属性および該当属性の各々(の組み合わせ)を類似属性候補として抽出する。
一方、上記したステップS44において該当属性の数が1つであると判定された場合、類似属性候補抽出部35は、ステップS46において類似属性候補を抽出する。この場合、類似属性候補抽出部35は、対象属性および該当属性(の組み合わせ)を類似属性候補として抽出する。
上記したステップS45において対象属性と互いに類似度が最大となる属性が存在しない、つまり、予め定められた条件を満たす属性がないと判定された場合、またはステップS46の処理が実行されると、対象類似度一覧表中の全ての属性について上記したステップS42〜S48の処理が実行されたか否かが判定される(ステップS49)。
対象類似度一覧表中の全ての属性について処理が実行されていないと判定された場合(ステップS49のNO)、上記したステップS42に戻って処理が繰り返される。この場合、ステップS42〜S48の処理が実行されていない属性を対象属性として処理が実行される。
一方、対象類似度一覧表中の全てについて処理が実行されたと判定された場合(ステップS49のYES)、数値型属性類似度格納部25および文字列型属性類似度格納部26に格納された全ての類似度一覧表について上記したステップS41〜S49の処理が実行されたか否かが判定される(ステップS50)。
全ての類似度一覧表について処理が実行されていないと判定された場合(ステップS50のNO)、上記したステップS41に戻って処理が繰り返される。この場合、ステップS41〜S49の処理が実行されていない類似度一覧表を対象類似度一覧表として処理が実行される。
一方、全ての類似度一覧表について処理が実行されたと判定された場合(ステップS50のYES)、類似属性候補抽出処理は終了される。
上記したように類似属性候補抽出処理が実行されると、当該類似属性候補抽出処理において抽出された類似属性候補が類似属性候補格納部27に格納される。
ここで、図20は、類似属性候補格納部27のデータ構造の一例を示す。類似属性候補格納部27には、上記したように類似属性候補として抽出された異なるデータテーブルを構成する2つの属性(の属性名)が対応づけて格納されている。
図20に示す例では、類似属性候補格納部27には、例えばA銀行のデータテーブル221を構成する「発生原因/発生者」属性に対応づけてB銀行のデータテーブル222を構成する「発生原因」属性が格納されている。また、類似属性候補格納部27には、例えばA銀行のデータテーブル221を構成する「発生原因/発生者」属性に対応づけてC銀行のデータテーブル223を構成する「発生原因/発生者」属性が格納されている。
これによれば、A銀行のデータテーブル221を構成する「発生原因/発生者」属性およびB銀行のデータテーブル222を構成する「発生原因」属性が同一の内容を表す属性の候補(つまり、類似属性候補)であることが示されている。同様に、A銀行のデータテーブル221を構成する「発生原因/発生者」属性およびC銀行のデータテーブル223を構成する「発生原因/発生者」属性が同一の内容を現す属性の候補であることが示されている。
また、類似属性候補格納部27には、例えばA銀行のデータテーブル221を構成する「発生者職位」属性に対応づけてB銀行のデータテーブル222を構成する「職位/発生者」属性および「職位/検証者」属性が格納されている。これによれば、A銀行のデータテーブル221を構成する「発生者職位」属性およびB銀行のデータテーブル222を構成する「職位/発生者」属性が同一の内容を表す属性の候補であることが示されている。また、A銀行のデータテーブル221を構成する「発生者職位」属性およびB銀行のデータテーブル222を構成する「職位/検証者」属性が同一の内容を現す属性の候補であることが示されている。
なお、A銀行のデータテーブル221を構成する「発生者職位」属性に対応づけて類似属性候補格納部27に格納されている「職位/発生者」属性および「職位/検証者」は、上記した類似属性候補抽出処理において当該「職位/発生者」属性および「職位/検証者」属性(該当属性)に対して付与された優先順位の順番に並べられる。
図20に示すように、類似属性候補格納部27には、類似属性候補抽出処理において類似属性候補として抽出された2つの属性の組み合わせの全てが格納されている。
なお、図20に示す類似属性候補格納部27に格納された類似属性候補は、上述したように例えばデータテーブル格納部22に格納されたA〜C銀行のデータテーブル221〜223(に保持されるデータ)のデータ分析において当該A〜C銀行のデータテーブル221〜223を比較する際に利用されることができる。
上記したように本実施形態においては、テーブル格納部22に格納されている複数のテーブルを構成する文字列型属性が有する属性値に含まれる文字列を構成する単語を抽出し、当該抽出された単語に基づいて異なるテーブルを構成する2つの文字列型属性間の類似度を算出し、当該算出された類似度に基づいて当該2つの文字列型属性を類似属性候補として抽出する構成により、属性の特徴のみを利用し、また属性値の意味を考慮して任意のデータテーブル間において適切な属性の対応づけを行うことが可能となる。
また、本実施形態においては、テーブル格納部22に格納されている複数のテーブルを構成する数値型属性が有する属性値に含まれる数値の範囲に基づいて、異なるテーブルを構成する2つの数値型属性間の類似度を算出し、当該算出された類似度に基づいて当該2つの数値型属性を類似属性候補として抽出する構成により、数値型属性についても任意のデータテーブル間において適切な対応づけを行うことができる。
更に、本実施形態においては、複数のテーブルを構成する数値型属性を数値型属性小分類に分類することにより、例えば数値範囲を比較することができない2つの数値型属性間の類似度を算出することを回避し、数値型属性の適切な対応づけを行うことができる。
(第2の実施形態)
次に、第2の実施形態について説明する。本実施形態に係るデータ分析支援装置のハードウェア構成および機能構成は、前述した第1の実施形態と同様であるため、適宜、図1および図2を用いて説明する。
なお、本実施形態においては、データ分析支援装置30に含まれる文字列型属性処理部33が2つの文字列型属性の類似度を算出する際に類義語辞書を用いる点が、前述した第1の実施形態とは異なる。
ここで、図21は、本実施形態に係るデータ分析支援装置30に含まれる文字列型属性処理部33の機能構成を示すブロック図である。
文字列型属性処理部33は、類義語辞書格納部334および文字列型属性類似度算出部335を含む。本実施形態において、類義語辞書格納部334は、例えば図1に示す外部記憶装置20に格納される。
類義語辞書格納部334には、意味が類似する(つまり、意味の似かよった)複数の単語が類義語として登録された類義語辞書が予め格納されている。
文字列型属性類似度算出部335は、属性値単語集合格納部331によって格納された各文字列型属性の単語集合および類義語辞書格納部334に格納されている類義語辞書に基づいて、異なるデータテーブルを構成する2つの文字列型属性間の類似度を算出する。この場合、文字列型属性類似度算出部335は、前述した第1の実施形態における文字列型属性類似度算出部333と同様に、2つの文字列型属性(第1および第2の文字列型属性)の単語集合間で一致する単語の数を特定する。このとき、文字列型属性類似度算出部335によって特定される2つの文字列型属性の単語集合間で一致する単語には、完全に一致した単語だけではなく、類義語辞書格納部334に格納されている類義語辞書に登録されている意味が類似する単語が含まれる。つまり、本実施形態における文字列型属性類似度算出部335においては、意味が類似する単語についても一致したものとみなされる。
なお、文字列型属性類似度算出部335は、この点以外については、前述した第1の実施形態における文字列型属性類似度算出部333と同様の機能を有する。
ここで、本実施形態に係るデータ分析支援装置30の動作について説明する。なお、本実施形態に係るデータ分析支援装置30において実行される処理のうち類似度算出処理(前述した図8に示すステップS4の処理)に含まれる文字列型属性の類似度算出処理以外の処理については前述した第1の実施形態と同様であるため、その詳しい説明を省略する。
以下、本実施形態における文字列型属性の類似度算出処理の処理手順について説明する。ここでは、便宜的に、図13のフローチャートを参照して説明する。
まず、図13に示すステップS21〜S23の処理が実行される。このステップS21〜S23の処理については、前述した第1の実施形態において説明した通りであるため、その詳しい説明を省略する。
ステップS23において文字列型属性格納部24に格納された全ての文字列型属性について処理が実行されたと判定された場合、文字列型属性類似度算出部335は、例えば文字列型属性格納部24に格納された異なるデータテーブルを構成する2つの文字列型属性の組み合わせ(文字列型属性ペア)の各々に対して以下のステップS24〜S26の処理を実行する。ここでは、この処理の対象となる文字列型属性ペアを対象文字列型属性ペアと称する。また、対象文字列型属性ペアに含まれる一方の文字列型属性を第1の文字列型属性、他方の文字列型属性を第2の文字列型属性と称する。
この場合、文字列型属性類似度算出部335は、対象文字列型属性ペアに含まれる第1および第2の文字列型属性の単語集合を属性値単語集合格納部332から取得する。
文字列型属性類似度算出部335は、取得された第1および第2の文字列型属性の単語集合と類義語辞書格納部334に格納されている類義語辞書を参照して、当該第1および第2の文字列型属性の単語集合間で一致する単語の数を特定する(ステップS24)。この場合、文字列型属性類似度算出部335は、第1の文字列型属性の単語集合に含まれる単語のうち、第2の文字列型属性の単語集合に含まれる単語と一致する単語および類似する単語の数(第1の文字列型属性の一致数)を特定する。また、文字列型属性類似度算出部335は、第2の文字列型属性の単語集合に含まれる単語のうち、第2の文字列型属性の単語集合に含まれる単語と一致する単語および類似する単語の数(第2の文字列型属性の一致数)を特定する。
文字列型属性類似度算出部335は、特定された第1および第2の文字列型属性の一致数に基づいて、当該第1および第2の文字列型属性間の類似度を算出する(ステップS25)。この場合、文字列型属性類似度算出部335は、前述した第1の実施形態と同様に、第1の文字列型属性の単語集合に含まれる単語の一致率(第1の文字列型属性の単語一致率)および第2の文字列型属性の単語集合に含まれる単語の一致率(第2の文字列型属性の単語一致率)を利用して類似度を算出する。
ここで、図22を参照して、文字列型属性類似度算出部335によって算出される第1および第2の文字列型属性間の類似度について具体的に説明する。
ここでは、第1の文字列型属性が前述した図5に示すA銀行のデータテーブル221を構成する「発生原因/発生者」属性であり、第2の文字列型属性が前述した図6に示すB銀行のデータテーブル222を構成する「発生原因」属性であるものとする。
図22に示すように、第1の文字列型属性(つまり、「発生原因/発生者」属性)の単語集合には、11個の単語、具体的には、単語「経験」、「不足」、「指導」、「教育」、「第三者」、「事故」、「客」、「依頼」、「ミス」、「記入」および「誤り」が含まれるものとする。また、第2の文字列型属性(つまり、「発生原因」属性)の単語集合には、10個の単語、具体的には、単語「知識」、「経験」、「教育」、「不足」、「顧客」、「事故」、「複雑」、「作業」、「内容」および「ケアレスミス」が含まれるものとする。
なお、文字列型属性処理部33に含まれる類義語辞書格納部334に格納されている類義語辞書には、単語「指導」および「教育」が類義語として登録されているものとする。また、類義語辞書には、単語「客」および「顧客」が類義語として登録されているものとする。また、類義語辞書には、単語「ミス」、「誤り」および「ケアレスミス」が類義語として登録されているものとする。
ここで、第1の文字列型属性の単語集合に含まれる単語のうち、第2の文字列型属性の単語集合に含まれる単語と完全に一致する単語は、単語「経験」、「不足」、「教育」および「事故」である。また、上記した類義語辞書によれば、第1の文字列型属性の単語集合に含まれる単語のうち、第2の文字列型属性の単語集合に含まれる単語と意味が類似する単語(つまり、類義語)は、第2の文字列型属性の単語集合に含まれる単語「教育」と意味が類似する単語「指導」、単語「顧客」と意味が類似する単語「客」、単語「ケアレスミス」と意味が類似する単語「ミス」および「誤り」である。この場合、第1の文字列型属性の一致数は8(単語「経験」、「不足」、「指導」、「教育」、「事故」、「客」、「ミス」および「誤り」)となる。
一方、第2の文字列型属性の単語集合に含まれる単語のうち、第1の文字列型属性の単語集合に含まれる単語と完全に一致する単語は、単語「経験」、「教育」、「不足」および「事故」である。また、上記した類義語辞書によれば、第2の文字列型属性の単語集合に含まれる単語のうち、第1の文字列型属性の単語集合に含まれる単語と意味が類似する単語(つまり、類義語)は、第1の文字列型属性の単語集合に含まれる単語「指導」と意味が類似する単語「教育」と、単語「客」と意味が類似する単語「顧客」と、単語「ミス」および「誤り」と意味が類似する単語「ケアレスミス」である。この場合、第2の文字列型属性の一致数は6(単語「経験」、「教育」、「不足」、「顧客」、「事故」および「ケアレスミス」)となる。例えば単語「教育」および「ケアレスミス」のように、第1の文字列型属性の単語集合に含まれる単語と完全に一致する単語および類似する単語が複数存在する場合には、当該同一の単語は1つとして扱われる。
なお、図22においては、完全に一致する2つの単語が実線でつながれており、意味が類似する2つの単語が破線でつながれている。
上記したように第1の文字列型属性の単語集合に含まれる単語の数は11であるため、第1の文字列型属性の単語一致率は8/11である。また、第2の文字列型属性の単語集合に含まれる単語の数は10であるため、第2の文字列型属性の単語一致率は6/10である。
これにより、第1および第2の文字列型属性間の類似度は、8/11と6/10との平均値、つまり、(8/11+6/10)/2≒0.664と算出される。
再び図13に戻ると、ステップS25〜S27の処理が実行される。なお、このステップS25〜S27の処理は、前述した第1の実施形態において説明した通りであるため、その詳しい説明を省略する。
上記したように本実施形態においては、類義語辞書格納部334に格納されている類義語辞書を用いることにより2つの文字列型属性間の類似度が算出される際に特定される当該文字列型属性の単語集合間で一致する単語として意味が類似する単語(類義語)が含まれる構成により、前述した第1の実施形態においては当該単語集合間で一致する単語として扱われない単語であっても意味が類似する単語であれば当該一致する単語と同様に扱われるため、当該2つの文字列型属性間の類似度をより適切に算出することが可能となる。
なお、本実施形態においては、2つの文字列型属性間の類似度を算出する(単語集合間で一致する単語の数を特定する)際に類義語辞書を用いるものとして説明したが、前述した第1の実施形態において説明した属性名間の類似度を算出する際に類義語辞書を用いる構成であっても構わない。
以上説明した少なくとも1つの実施形態によれば、任意のデータテーブル間において適切な属性の対応づけを行うことが可能なデータ分析支援装置およびプログラムを提供することができる。
なお、本願発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。