以下、図面に基づいて、本発明の好適な実施の形態について説明する。
図1は、本発明に係る同一項目検出装置の一実施の形態を示したブロック構成図である。本実施の形態における同一項目検出装置10は、ペア情報設定部11、一致度範囲算出部12、一致度算出ペア特定部13、一致度算出部14、同一項目判定部15、判定結果出力部16、一致度算出処理制御部17、システムデータベース(DB)1、項目情報ペア情報記憶部21、対応関係情報記憶部22、対応キー情報記憶部23及び一致判定用閾値記憶部24を有している。
図2は、本実施の形態における同一項目検出装置10を形成するコンピュータのハードウェア構成図である。本実施の形態における同一項目検出装置10は、従前から存在する汎用的なコンピュータ、例えばパーソナルコンピュータのハードウェア構成で実現できる。同一項目検出装置10を実現するコンピュータは、図2に示したようにCPU31、ROM32、RAM33、ハードディスクドライブ(HDD)34を接続したHDDコントローラ35、入力手段として設けられたマウス36とキーボード37、及び表示装置として設けられたディスプレイ38をそれぞれ接続する入出力コントローラ39、通信手段として設けられたネットワークコントローラ40を内部バス41に接続して構成される。
ここで、本実施の形態において用いる用語について定義しておく。
まず、「項目」又は「データ項目」というのは、データベースに登録される各レコードを構成するデータの項目(アイテム)のことである。例えば、図13におけるデータベース1aには、建物ID、建物所属、担当者ID及び機種の4項目が設定される。
「項目データ」というのは、各項目に設定されるデータ(値)である。例えば、図13におけるデータベース1aの建物IDには、“AA0001”、“AA0002”などという項目データが設定される。
「項目情報」というのは、各項目を特定するための情報である。本実施の形態では、項目の名称を項目情報として用いる。例えば、図13におけるデータベース1aには、「建物ID」、「建物所属」、「担当者ID」及び「機種」が項目名として設定されている。各項目に設定登録される項目データは、異なるデータベース間で同じでも、項目を識別するために付けられた項目名は、例えば、「ユーザID」と「ログインID」や、「社員証番号」と「社員ID」などのようにデータベースによって異なっている場合があり得る。
「項目情報ペア」というのは、2つの項目情報の組のことをいう。図13においては、例えば、データベース1aの「建物所属」と、データベース1bの「契約年数」と、いう2つの項目情報によって項目情報ペアは形成される。
「一致度算出ペア」というのは、一致度の算出対象として選出された項目情報ペアのことをいう。本実施の形態における項目情報ペアは、一致度が一度算出されると、二度と一致度の算出対象として取り扱われない。換言すると、一致度が一度算出された項目情報ペアは、一致度算出ペア特定部13における一致度の算出対象候補とはならない。一致度算出ペア特定部13により一致度の算出対象として選出されることで、その選出された項目情報ペアは、一致度算出ペアとなるが、一致度算出部14によって一致度が算出された後は、一致度算出ペアと呼ばれることはない。
図1に戻り、同一項目検出装置10に含まれる各構成要素について説明する。
ペア情報設定部11は、項目情報抽出手段として設けられ、複数のデータベース1それぞれに登録されている項目データの項目情報を抽出する。ペア情報設定部11はまた、項目情報ペア情報生成手段としても設けられており、後述する項目情報ペア情報テーブルを生成する。
一致度範囲算出部12は、一致度範囲算出手段として設けられ、一致度算出部14により一致度が算出された項目情報ペアの中に、一方の項目情報を共通とし、かつ他方の項目情報の間で一致度が算出されていない項目情報ペアの組が存在する場合、前記他方の項目情報の間における一致度の取りうる範囲を算出する。
一致度算出ペア特定部13は、一致度算出ペア特定手段として設けられ、ペア情報設定部11により抽出された項目情報の中から2つの項目情報を選択することにより、当該2つの項目情報から成る項目情報ペアを少なくとも1つ形成し、その形成した項目情報ペアの中から一致度の算出対象とする項目情報ペアを一致度算出ペアとして特定する。
一致度算出部14は、一致度算出手段として設けられ、一致度算出ペア特定部13により特定された一致度算出ペアに含まれる各項目情報に対応する項目データを照合することによって当該項目情報に対応する項目データの一致度を算出する。
同一項目判定部15は、判定手段として設けられ、一致判定用閾値以上となる一致度が算出された項目情報ペアに含まれる各項目情報により特定される項目を同一の項目と判定する。
判定結果出力部16は、出力手段として設けられ、同一項目判定部15における判定結果をディスプレイ38やファイル、あるいは図示しないプリンタ等に出力する。なお、判定結果出力部16は、同一項目検出装置10の外部に設けられてもよい。
一致度算出処理制御部17は、一致度算出処理制御手段として設けられ、一致度範囲算出部12、一致度算出ペア特定部13及び一致度算出部14における各処理を繰り返し実行することで、一致度範囲算出部12により算出された一致度の取りうる範囲の上限が予め設定された一致判定用閾値に達していない項目情報ペアを除き、ペア情報設定部11により抽出された項目情報の間(すなわち項目情報ペア)における一致度を順次算出させる。一致度算出処理制御部17は、その他にも同一項目検出装置10における各構成要素11〜16の全体制御を行う。
データベース(DB)1は、本実施の形態において項目の対応付け対象とするデータベースである。データベース1を構成する各システムのデータベース1a,1b,1cは、同一のシステム内に構築されたデータベースであるものの、データベース管理者やシステム管理者(以下、「管理者」と総称する)の違いなどから別個に構築されたデータベースである。もちろん、全てのデータベース1a,1b,1cは、同一のシステム内に構築されている必要はなく、データベースに登録されている各項目を関連付ける対象として選出されていればよい。本実施の形態では、3つのデータベース1a,1b,1cを例にして説明するが、このデータベースの数は複数であればよい。なお、上記の通り、各データベース1a,1b,1cをまとめて説明する場合には、「データベース1」と総称する。
図3は、本実施の形態における対応関係情報記憶部22に設定登録された対応関係情報のデータ構成例を示した図である。対応関係情報記憶部22は、対応関係情報テーブルを記憶する対応関係情報記憶手段として設けられている。対応関係情報は、図3に示した対応関係情報テーブルにて管理される。対応関係情報は、管理者により一致していると認識されている項目の組を少なくとも含む。一致していると言うことは、当該項目情報ペアの一致度が一致判定用閾値以上であるということである。
対応関係情報テーブルには、図3に例示したように、項目の組を構成する各項目を特定する情報として項目1及び項目2が設定される。項目1には、対応付ける一方の項目に関する情報が設定登録される。具体的には、対応付ける一方のデータベースを特定するデータベース(DB)1と当該データベースにおける項目情報(項目名)1と、対応付ける際のキーとなる項目情報(項目名)を設定するキー1と、が対応付けして設定される。項目2には、対応付ける他方の項目に関する情報が項目1と同様に設定登録される。図3には、データベースAにおける“担当者ID”とデータベースBにおける“担当者ID”との項目の組が管理者により初期設定された例が示されている。ただ、対応関係情報テーブルには、初期設定とする項目情報ペアがされていなくてもよいし、複数の項目情報ペアが初期設定されていてもよい。
なお、この例の“担当者ID”のように、対応付ける項目名は、通常、同じ項目名となっている場合が多いと推測されるが、異なる項目名が設定される可能性もある。
また、本実施の形態では、後述するように、一致度等を一致度算出部14に算出させるので対応関係情報に含めていないが、既知である場合には当該項目情報ペアに対応させて予め設定するようにしてもよい。
本実施の形態においては、異なるデータベースそれぞれに設定されている2つの項目情報(項目名)が仮に異なっているとしても、同じ項目データが設定されているならば、それら対応する2つの項目は同一であると判定し、その判定結果を管理者に提示可能とするが、対応関係情報テーブルには、管理者が同一であると予め認識している項目の組が事前に対応付けされ設定登録される。
図4は、本実施の形態における対応キー情報記憶部23に設定登録された対応キー情報のデータ構成例を示した図である。対応キー情報記憶部23は、データベースを関連付けるためのキーとなる項目の項目情報の組から成る項目情報ペアが予め設定される対応キー情報テーブルを記憶する対応キー情報記憶手段として設けられている。対応キー情報は、図4に示したように対応キー情報テーブルにて管理される。本実施の形態においては、異なるデータベースそれぞれに設定されている項目を対応付けるものであるが、対応キー情報には、異なるデータベースの項目を対応付ける際のキーとなる項目の項目情報の組(キー項目情報ペア)が設定登録される。
対応キー情報には、図4に例示したように、項目の組を構成する各項目を特定する情報として項目1及び項目2が設定される。項目1には、対応付ける一方の項目に関する情報が設定登録される。具体的には、対応付ける一方のデータベースを特定するデータベース(DB)1と、キーとなる項目情報(項目名)を設定するキー1と、が対応付けして設定される。項目2には、対応付ける他方の項目に関する情報が項目1と同様に設定登録される。
対応キー情報テーブルには、各データベースを対応付ける少なくとも1組の項目情報が設定されている必要がある。図4に示した例によると、データベースA及びデータベースBは、同じ項目名 “建物ID” の項目によって対応付けられている。また、データベースA及びデータベースCは、同じ項目名 “建物ID” の項目によって対応付けられている。これにより、データベースC及びデータベースBも、項目名 “建物ID” の項目によって対応付けられていると言える。
一致判定用閾値記憶部24には、算出された一致度と比較される一致判定用閾値が記憶される。
前述した対応関係情報記憶部22、対応キー情報記憶部23及び一致判定用閾値記憶部24が、本実施の形態を実施する前に各テーブル内に情報が予め設定されているのに対し、項目情報ペア情報記憶部21に記憶される項目情報ペア情報テーブルは、本実施の形態の実施開始後に生成され、各種データは、一致度算出処理を繰り返し実行する過程において逐次設定登録される。
図5は、本実施の形態における項目情報ペア情報記憶部21に設定登録される項目情報ペア情報のデータ構成例を示した図である。項目情報ペア情報記憶部21は、項目情報ペア情報テーブルを記憶する項目情報ペア情報記憶手段として設けられている。項目情報ペア情報は、図5に例示した項目情報ペア情報テーブルにて管理される。項目情報ペア情報は、項目情報ペア毎に、項目情報1、項目情報2、キー、一致度、全件数、一致件数、欠損値数、一致度上限及び一致度下限の各データを保存する領域が事前に用意され、項目情報ペア情報に含まれるデータの生成に伴い、当該データが所定の保存領域に書き込まれる。「項目情報1」には、項目情報ペアを形成する一方の項目情報を特定する情報として、データベースと項目情報(項目名)が設定される。「項目情報2」には、項目情報ペアを形成する他方の項目情報を特定する情報として、データベースと項目情報(項目名)が設定される。「対応キー情報」には、各データベースの各項目情報を対応付ける際に用いるキーとして、各データベース及び当該各データベースにおける項目情報が設定される。「一致度」には、項目情報1と項目情報2それぞれに対応する項目データが一致する割合が一致度として設定される。「全件数」には、当該項目情報に設定されている項目データの全件数が設定される。「一致件数」には、項目情報1に設定されている項目データと、項目情報2に設定されている項目データとの双方に設定されている件数が設定される。「欠損値数」には、一方の項目情報のみに設定されている項目データの件数が設定される。一致度、全件数、一致件数及び欠損値数は、一致度算出部14により算出される。また、本実施の形態では、一致度範囲算出部12により一致度の取りうる範囲が算出されるが、「一致度上限」にはその範囲の上限値が、「一致度下限」にはその範囲の下限値が、それぞれ設定される。
同一項目検出装置10における各構成要素11〜17は、同一項目検出装置10を形成するコンピュータと、コンピュータに搭載されたCPU31で動作するプログラムとの協調動作により実現される。また、各記憶部21〜24は、同一項目検出装置10に搭載されたHDD34又はRAM33で実現される。あるいは、外部にある記憶手段をネットワーク経由で利用してもよい。
また、本実施の形態で用いるプログラムは、通信手段により提供することはもちろん、CD−ROMやDVD−ROM等のコンピュータ読み取り可能な記録媒体に格納して提供することも可能である。通信手段や記録媒体から提供されたプログラムはコンピュータにインストールされ、コンピュータのCPU31がプログラムを順次実行することで各種処理が実現される。
次に、本実施の形態における動作について説明するが、同一項目検出装置10に処理を実施させる前に、管理者は、前述したように対応関係情報、対応キー情報及び一致判定用閾値を各記憶部22〜24に予め設定しておく。以下、本実施の形態における同一項目の検出処理を図6に示したフローチャートを用いて説明する。
管理者により本処理のプログラムが起動されると、一致度算出処理制御部17は、まずペア情報設定部11を起動する。ペア情報設定部11は、一致度算出処理制御部17により起動されると、各データベース1a,1b,1cからそれぞれに設定されているデータ項目の項目名を抽出する(ステップ101)。そして、全ての項目名を組み合わせることで項目情報ペアを形成し、項目情報ペア毎に、前述した項目情報ペア情報を保存するための項目情報ペア情報テーブルを生成する(ステップ102)。例えば、図13に示した例によると、データベース1aから“建物ID”、“建物所属”、“担当者ID”及び“機種”を、データベース1bから“建物ID”、“契約種別”、“契約年数”及び“契約条件”を、データベース1cから“建物ID”、 “担当者ID” 、“担当者所属”、“作業種類”及び“作業条件”を、それぞれ抽出し、各項目情報を組み合わせて項目情報ペアを形成し、項目情報ペア情報テーブルに設定登録する。具体的には、ペア情報設定部11は、各項目情報ペアを図5における項目情報1と項目情報2に登録する。なお、全ての項目名の組み合わせとは言っても、1つのデータベースの中に同じデータ項目が存在することは通常はないので、同じデータベースに含まれる項目情報で項目情報ペアを形成する必要はないかもしれない。ただ、論理的にはあり得るし、また情報として提供するためにも、本実施の形態においては、同じデータベースに含まれる項目情報で項目情報ペアを形成するものとする。もちろん、形成しないようにしてもよい。
なお、本実施の形態では、処理対象のデータベース1の複製を同一項目検出装置10の内部に事前に用意するようにしたが、複製を作成せずに外部にあるデータベース1に直接アクセスするようにしてもよい。
続いて、ペア情報設定部11は、対応キー情報記憶部23から対応キー情報として設定されている項目1,2を取り出し、項目情報ペア情報テーブルにおける「対応キー情報」に設定登録する(ステップ103)。なお、本実施の形態では、項目情報ペア情報テーブルに対応キー情報を設定登録するようにしたが、設定登録せずに、必要なときにその都度対応キー情報テーブルを参照するようにしてもよい。
更に、ペア情報設定部11は、対応関係情報記憶部22から対応関係情報を取り出し、この対応関係情報に対応する項目情報ペアに対し、一致度、全件数、一致件数及び欠損値数を算出し、項目情報ペア情報テーブルに設定登録する(ステップ104)。この一致度等の算出に関しては、一致度算出部14に処理を依頼してもよい。一致度の算出の具体的な処理内容については、一致度算出部14における一致度算出処理の説明と合わせて説明する。
ここでの処理のように、一致度の取りうる範囲より先に一致度が算出されると、ペア情報設定部11は、一致度上限及び一致度下限に、算出された一致度を設定する。なお、対応関係情報テーブルに設定されている項目情報ペアの一致度は、一致判定用閾値以上であることは明らかなので、ペア情報設定部11は、一致度算出部14に一致度を算出させることなく、一致判定用閾値以上の値(例えば1.00)を一致度、一致度上限及び一致度下限に設定するようにしてもよい。
以上のように、ステップ101〜104における処理を実行した結果、得られる項目情報ペア情報の例が図5に示されている。なお、ステップ103とステップ104とは、どちらを先に実行してもよい。
ところで、項目情報対応関係グラフ生成処理手段(図示せず)を設けることによって、項目情報ペア情報テーブルに設定された項目情報ペア情報に基づき項目情報対応関係グラフを生成するようにしてもよい。図5に例示した内容の項目情報ペア情報に基づき生成された項目情報対応関係グラフを模式的に示した図を図7に示す。図7において、項目情報グループ101aにはデータベース1aから抽出した項目情報が含まれる。同様に、項目情報グループ101bにはデータベース1bから抽出した項目情報が、項目情報グループ101cにはデータベース1cから抽出した項目情報が、それぞれ含まれる。そして、対応キー情報に基づきキー項目の対応関係を線102で示している。更に、一致度がすでに算出されている項目情報ペアが線103で接続されている。
以上のようにして、ペア情報設定部11により現時点で判明している項目情報ペア情報が項目情報ペア情報テーブルに設定されると、一致度算出処理制御部17は、一致度範囲算出部12を起動する。
一致度範囲算出部12は、起動されると、現時点において設定されている項目情報ペア情報を参照し、図8に例示したような関係を持つ項目情報ペアの組を探索する。すなわち、一致度範囲算出部12は、一致度算出部14により一致度が算出された項目情報ペアの中に、一方の項目情報(図8における「項目情報A」)を共通とし、かつ他方の項目情報(図8における「項目情報B」及び「項目情報C」)の間で一致度が現時点で算出されていない項目情報ペア(図8における「ペアP1」及び「ペアP2」)の組が存在する場合、その項目情報ペアの組の全てに対し、他方の項目情報の間における一致度の取りうる範囲を算出する。つまり、図8に示した例では、項目情報ペアP1は一致度αが、項目情報ペアP2は一致度βが、それぞれ算出されており、項目情報ペアP1と項目情報ペアP2は、それぞれに共通する項目情報(項目情報A)を含んでおり、各項目情報ペアの他方の項目情報(「項目情報B」及び「項目情報C」)における一致度γは算出されていないことが確認できた場合、項目情報Bと項目情報Cとの間における一致度γの取りうる範囲を算出する。一致度γの取りうる範囲は、以下の式を用いて計算する。
max{α+β−1,0}≦γ≦|α−β| ・・・(1)
但し、式(1)において、αは項目情報ペアP1の一致度、βは項目情報ペアP2の一致度、γは項目情報ペアP1及び項目情報ペアP2に含まれる項目情報の組であって算出されていない一致度、max関数は、(α+β−1)と0とのうち大きい値とする。本実施の形態では、このように既知の項目情報ペアにおける一致度を用い、当該項目情報ペアを構成する項目の項目データを用いない方法にて一致度γの取りうる範囲を算出する。
以上のようにして一致度γの取りうる範囲を算出すると、一致度範囲算出部12は、その算出結果を、項目情報ペア情報における当該項目情報ペア(上記例では、項目情報Bと項目情報Cとの組)に対応する一致度上限及び一致度下限に設定登録する(ステップ105)。
なお、一致度範囲算出部12における最初の処理実行時点では、対応関係情報テーブルに設定されている項目情報ペアの間の一致度しか求められていない。本実施の形態の場合、図3に例示したように、データベース1aとデータベース1bの各担当者IDの組による項目情報ペアP1のみが存在する状況であるため、図8に例示した関係が1組も形成されない。このような場合には、一致度範囲算出部12において一致度の取りうる範囲は算出されないことになる。
一致度範囲算出部12における処理が終了すると、一致度算出処理制御部17は、一致度算出ペア特定部13を起動する。一致度算出ペア特定部13は、起動されると、項目情報ペア情報テーブルを参照し、次の手順にて項目情報ペアの中から一致度の算出対象とする一致度算出ペアを特定する(ステップ106)。本実施の形態では、一致度の算出対象候補となる項目情報ペアがなくなるまで、常に1つの項目情報ペアを一致度算出ペアとして選出することにしている。本実施の形態における一致度算出ペア特定部13は、4つの処理手順を設定して、各処理手順に設定された優先順位(本実施の形態では第1の処理から第4の処理まで順番)に従って各処理を順次実施するようにしている。
まず、第1の処理について図9を用いて説明する。図9において英字はそれぞれ項目情報名とする。図9(a)では、項目情報Aと各項目情報B,C,Dとの間でのみ一致度が算出されているものとする。図9(b)においては項目情報Fと各項目情報G,Hとの間でのみ一致度が算出されているものとする。
ここで、項目情報Aと項目情報Eとから成る項目情報ペアを一致度算出ペアとして選出したと仮定する。つまり、ステップ107において、項目情報Aと項目情報Eとの間の一致度を算出したと仮定する。そうすると、図9(a)の関係を図8に当てはめてみると、次に実施されるステップ105においては、項目情報Eと項目情報B,C,Dとの間で一致度γの取りうる範囲が計算可能になる。つまり、新規に3カ所の一致度の取りうる範囲(以下、「一致度範囲」ともいう)を算出対象とすることができる。
一方、図9(b)に例示したように、項目情報Fと項目情報Iとから成る項目情報ペアを一致度算出ペアとして選出したと仮定する。つまり、ステップ107において、項目情報Fと項目情報Iとの間の一致度を算出したと仮定する。そうすると、図9(b)の関係を図8に当てはめてみると、次に実施されるステップ105においては、項目情報Iと項目情報G,Hとの間で一致度γの取りうる範囲が計算可能になる。つまり、新規に2カ所の一致度範囲を算出対象とすることができる。
第1の処理では、次に実施されるステップ105において一致度範囲の算出対象となる項目情報ペアの数を求め、その項目情報ペアの数が最大となる項目情報ペアを一致度算出ペアとして選出する。図9に示した例では、項目情報Aと項目情報Eとから成る項目情報ペアは、項目情報Fと項目情報Iとから成る項目情報ペアより多く、最大の項目情報ペアを一致度範囲の算出対象とすることができるので、一致度算出ペアとして選出されることになる。
第1の処理では、一致度γの取りうる範囲が計算もされていない項目情報ペアの数を減らすことを目的としている。後述するように、一致度γの上限が一致判定用閾値に達していないということは、当該項目情報ペアに含まれる1組の項目情報は、同じ項目でないと判定されることになる。ステップ107においては、一致度を1つの項目情報ペアずつ算出していくので、1つの項目情報ペアのみが、項目が一致しているか否かの判定が可能になる。これに対し、ステップ105においては、図8に示すような関係に該当する項目情報ペア全てに対し一致度範囲を算出している。つまり、ステップ105における一度の処理で複数の一致度範囲が算出可能であり、その算出により得られた一致度上限が一致判定用閾値に達していなければ、その達していない項目情報ペアに含まれる項目は同一でないと判定できる。つまり、ステップ107では常に1組の項目情報のみを同一か否かを判定しているのに対し、ステップ105では複数組の項目情報を同一か否かを判定することが可能になる。処理効率化の観点から第1の処理を一致度算出ペアを選出する最初の処理手順としている。
この第1の処理でただ1つの項目情報ペアが一致度算出ペアとして選出できれば、以降の第2乃至第4の処理は実行せずに終了する。但し、次に実施されるステップ105において一致度範囲の算出対象となる項目情報ペアの数が最大となる項目情報ペアが複数存在する場合、ただ1つの項目情報ペアを特定できないので、この場合は第2の処理に移行する。以下、第2の処理について図10を用いて説明する。
第2の処理の対象となるのは、第1の処理において選出された複数の項目情報ペアである。そして、この中で一致度の最も高い項目情報ペアを特定し、その項目情報ペアに含まれる一方の項目情報との間でまだ一致度が算出されていない項目情報とから成る項目情報ペアを一致度算出ペアとして選出する。図10に示した例によると、一致度αが一致度βより大きく最大と判定されたので、図10(a)に示した項目情報ペアに含まれる項目情報Kと、項目情報Kとの間で一致度が算出されていない項目情報Lとから成る項目情報ペアを一致度算出ペアとして選出する。図10(a)を図9(a)に当てはめると、項目情報Jは項目情報B,C,Dに対応し、項目情報Kが項目情報Aに対応し、項目情報Lが項目情報Eに対応する。なお、図9(a)を参照すると、項目情報Aと項目情報Eから成る項目情報ペアが一致度算出ペアとして常に選出されるようにみえる。ただ、図9(a)に例示したように、新規3カ所の一致度範囲が算出可能な項目情報ペアは複数存在するので、複数の項目情報ペアが一致度の算出候補として存在している。
第2の処理では、項目情報Jと項目情報Kとの間における一致度が高いので、項目情報Kと項目情報ペアを成す項目情報は、他と比較して一致度が高い可能性があるとも考えられる。従って、第2の処理では、一致度が高いであろう項目情報ペアを優先して一致度を算出するようにしている。
この第2の処理でただ1つの項目情報ペアが一致度算出ペアとして選出できれば、以降の第3及び第4の各処理は実行せずに終了する。ここで、一致度αが最大であるのにかかわらず、一致度αの項目情報ペアが複数存在することにより、ただ1つの項目情報ペアを特定できない場合には、第3の処理に移行する。以下、第3の処理について図11を用いて説明する。
第3の処理対象となるのは、第2の処理において選出された複数の項目情報ペアである。そして、選出された複数の項目情報ペアの中で、一致度範囲が算出されており、その算出された一致度範囲の幅が最大となる項目情報ペアを一致度算出ペアとして選出する。つまり、図11(a)に示したように、項目情報ペアP3における一致度上限γmax1と一致度下限γmin1の差分である一致度範囲値(γmax1−γmin1)を求める。図11(b)においても同様に一致度範囲値(γmax2−γmin2)を求める。そして、一致度範囲値を求めた項目情報ペアの中で一致度範囲値が最大値となる項目情報ペアを一致度算出ペアとして選出する。仮に、複数の項目情報ペアが該当する場合は、いずれか任意の一方を選出すればよい。どちらを選ぼうと同じだからである。
第3の処理は、一致度範囲が広すぎるため一致度を確定させたい場合に有効である。特に、一致度上限が一致判定用閾値を超え、一致度下限が一致判定用閾値を下回る場合は一致度を明確にしたいので、このような場合を選出条件としてもよい。なお、一致度上限が一致判定用閾値を下回っている項目情報ペアは、一致度算出ペアの選出対象とする必要はない。
この第3の処理でただ1つの項目情報ペアが一致度算出ペアとして選出できれば、第4の各処理は実行せずに終了する。該当する項目情報ペアが複数存在することにより、ただ1つの項目情報ペアが選出できない場合には、第4の処理に移行する。
第4の処理は、第3の処理において選出された複数の項目情報ペアの中から任意の1つの項目情報ペアを選出する。あるいは、第3の処理を通過していない項目情報ペアを含めた全体の中から選出してもよい。
一致度算出ペア特定部13は、前述した処理手順に従ってただ1つの一致度算出ペアを特定する。この一致度算出ペアを特定する処理においては、一致度γの上限が一致判定用閾値に達していない項目情報ペアは一致度の算出対象候補から外すようにしている。これは、第1の処理においても説明したように、一致度γの上限が一致判定用閾値に達していないということは、当該項目情報ペアに含まれる1組の項目情報は、同じ項目でないことは明らかだからである。従って、一致度を算出する必要はない。本実施の形態では、このように一致度γの上限が一致判定用閾値に達していない項目情報ペアに対しては一致度を算出しないようにしたので、項目の同一性を判断する処理を効率化できる。
一致度算出ペア特定部13により一致度算出ペアが特定されると、一致度算出処理制御部17は、一致度算出部14を起動する。一致度算出部14は、起動されると、次の一致度算出処理を実行する(ステップ107)。
一致度算出部14は、特定された一致度算出ペアにおける対応キー情報を項目情報ペア情報テーブルから取り出す。また、一致度算出部14は、特定された一致度算出ペアに含まれる項目情報に対応する項目データを該当するデータベース1から取り出す。そして、対応キー情報に含まれている項目情報をキーとして各項目データを結合する。結合すると、結合したテーブルにおいて、全件数、一致件数及び欠損値数を求め、以下の式(2)に代入することで一致度を算出する。
一致度=一致件数÷(全件数−欠損値数) ・・・(2)
一致度算出部14は、算出した一致度並びに算出の過程において算出した全件数、一致件数及び欠損値数を、項目情報ペア情報テーブルにおいて一致度算出ペアに対応する保存領域に設定登録する。
ここで、未処理の項目情報ペア情報が存在する場合(ステップ108でY)、前述したステップ105〜107を繰り返し実行する。ここで、未処理の項目情報ペア情報というのは、算出された一致度範囲が一致判定用閾値に達していない項目情報ペア情報を除き、一致度が算出されていない項目情報ペア情報がこれに該当する。算出された一致度範囲が一致判定用閾値に達していない項目情報ペア情報を除くのは、前述したように一致度を算出する必要がないからである。
前述したステップ105〜107を繰り返し実行した結果、未処理の項目情報ペア情報が存在しなくなった場合(ステップ108でN)、一致度算出処理制御部17は、同一項目判定部15を起動する。同一項目判定部15は、起動されると、項目情報ペア情報テーブルを参照し、一致度が一致判定用閾値以上の項目情報ペア情報を抽出する。同一項目判定部15は、この抽出した項目情報ペアに含まれる各項目情報に対応する項目を同一と判定する(ステップ109)。
同一項目判定部15による判定処理が終了すると、一致度算出処理制御部17は、判定結果出力部16を起動する。判定結果出力部16は、起動されると、同一項目判定部15により同一と判定された項目情報ペア、すなわち項目情報の組を出力する(ステップ110)。出力先は、ディスプレイ38、図示しないプリンタ、あるいはファイル等でもよい。また、判定結果に基づき項目情報対応関係グラフ生成処理手段(図示せず)により生成された項目情報対応関係グラフを模式的に示した図を図12に示す。
管理者は、出力された項目情報対応関係グラフを参照することによって事前に同一と判明していたデータベースAとデータベースCの各「担当者ID」の組の他に、データベースAにおける「建物所属」とデータベースCにおける「担当者所属」との組も一致判定用閾値を超えているため同一の項目であると認識することができる。
図13は、本実施の形態において項目の対応付け対象とするデータベース1a,1b,1cの各データ設定例を示した図である。この項目データに基づき具体的な同一項目検出処理の内容について説明する。
ペア情報設定部11は、一致度算出処理制御部17により起動されると、各データベース1a,1b,1cそれぞれに設定されているデータ項目の項目名を抽出する(ステップ101)。図13に示した例によると、データベース1aから“建物ID”、“建物所属”、“担当者ID”及び“機種”を、データベース1bから“建物ID”、“契約種別”、“契約年数”及び“契約条件”を、データベース1cから“建物ID”、 “担当者ID” 、“担当者所属”、“作業種類”及び“作業条件”を、それぞれ抽出する。続いて、ペア情報設定部11は、抽出した項目情報から項目情報ペアを形成し、項目情報ペア情報テーブルを生成する(ステップ102)。そして、ペア情報設定部11は、対応キー情報記憶部23から図4に例示した対応キー情報を取り出し、項目情報ペア情報テーブルに設定登録する(ステップ103)。更に、ペア情報設定部11は、対応関係情報記憶部22から図3に例示した対応関係情報を取り出すと、このデータベースAの「担当者ID」とデータベースCの「担当者ID」との関係における一致度、全件数、一致件数及び欠損値数の算出を一致度算出部14に依頼する。
図13に示した項目データの例によると、データベースAの「担当者ID」とデータベースCの「担当者ID」の各項目データの全件数は29件、一致する項目データ数(一致件数)は19件、一方、一致していない項目データ数(欠損値数)は10件、であるので、一致度は、19÷(29−10)=1.00と算出される。ペア情報設定部11は、一致度算出部14から算出結果を受け取ると、項目情報ペア情報テーブルに設定登録する(ステップ104)。なお、一致度範囲より先に一致度が算出されると、ペア情報設定部11は、一致度上限及び一致度下限の双方に一致度を設定する。
この結果、項目情報ペア情報テーブルに設定された項目情報ペア情報は、図5に示したようになり、また、この項目情報ペア情報に基づき描画される項目情報対応関係グラフは、図7に示すようになる。
続いて、一致度範囲算出部12は、項目情報ペア情報テーブルを参照することによって図8に示したような対応関係を持つ項目情報ペアの組を探すが、この時点では対応関係情報に基づく1つの項目情報ペアしか登録されていないので、一致度範囲を算出できずに処理を終える(ステップ105)。
続いて、一致度算出ペア特定部13は、一致度算出ペアを特定しようとするが、この時点では、データベースA及びデータベースCの各「担当者ID」のいずれかと項目情報ペアを形成しても、第1の処理の結果は最大値は1であり、かつ複数存在するので、第2の処理に移行する。第2の処理でも同様に、1つの項目情報ペアしか存在しないこの時点では、ただ1つの項目情報を特定できないため、第3の処理に移行する。この時点では、一致度範囲は、対応関係情報に予め登録されていた、データベースAの「担当者ID」とデータベースCの「担当者ID」との組しか存在されず、かつこの組は一致度がすでに算出されているので、第4の処理に移行する。第4の処理では、任意の1つの項目情報ペアを一致度算出ペアとして特定する。ここでは、一致度算出ペア特定部13により無作為に選出された結果、データベースAの「担当者ID」とデータベースCの「担当者所属」とから成る項目情報ペアが一致度算出ペアとして特定された場合の例を示す。
図13における項目データの設定例によると、全件数は29件、一致する項目データ数(一致件数)は0件、一方、一致していない項目データ数(欠損値数)は10件、であるので、一致度は、0÷(29−10)=0.00と算出される(ステップ107)。一致度算出部14は、この算出結果を項目情報ペア情報テーブルに設定登録する。なお、一致度範囲より先に一致度が算出されると、一致度算出部14は、一致度上限及び一致度下限の双方に一致度を設定する。このときの項目情報ペア情報テーブルのデータ設定例を図14に、この項目情報ペア情報テーブルのデータ設定の内容に基づき生成された項目情報対応関係グラフを模式的に示した図を図15に、それぞれ示す。
ここで、未処理の項目情報ペアは存在するので(ステップ108でN)、ステップ105に移行する。一致度範囲算出部12は、項目情報ペア情報テーブルを参照することによって図8に示したような対応関係を持つ項目情報ペアの組を探すが、図15によると、この時点では、データベースAの「担当者ID」を共通とし、他方の項目情報(共にデータベースCにおける「担当者ID」と「担当者所属」)の間で一致度範囲が算出されていない項目情報ペアの組が存在する。従って、一致度範囲算出部12は、上記式(1)を用いてデータベースCにおける「担当者ID」と「担当者所属」との間の一致度γの取りうる範囲を算出する。具体的には、図15に示した対応関係を図8に当てはめると、一致度αは1.00、一致度βは0.00なので、0≦γ≦0と算出される。一致度範囲算出部12は、このようにして求めた一致度範囲を、項目情報ペア情報テーブルにおいて対応するデータベースCにおける「担当者ID」と「担当者所属」との間の一致度上限及び一致度下限に設定する(ステップ105)。このときの項目情報ペア情報テーブルのデータ設定例を図16に示す。
続いて、一致度算出ペア特定部13は、前述した処理手順に従って項目情報ペアの中から一致度の算出対象とする一致度算出ペアを特定する(ステップ106)。ここでの処理は、前回と異なり、データベースAにおける「担当者ID」とデータベースCにおける「担当者ID」及び「担当者所属」から図9に示した対応関係となる項目情報ペアの組が存在するが、項目E,Iの位置にどの項目情報を設定しても、一致度範囲算出対象の最大値は1となる。つまり、複数の項目情報ペアが一致度算出ペアの候補となるので、第2の処理に移行する。第2の処理においてもデータベースAにおける「担当者ID」とデータベースCにおける「担当者ID」との間における一致度1.00が最大なので、データベースAにおける「担当者ID」と項目情報ペアを形成する項目情報が複数存在するので、第2の処理ではただ1つの一致度算出ペアを特定できず、よって第3の処理に移行する。第3の処理においても一致度範囲の最大となる項目情報ペアは存在しないので、ここでも第4の処理に移行し、第4の処理によって任意の1つの項目情報ペアが一致度算出ペアとして特定される。ここでは、一致度算出ペア特定部13により無作為に選出された結果、データベースAの「担当者ID」とデータベースCの「作業種類」とから成る項目情報ペアが一致度算出ペアとして特定されたものとして説明を続ける。
なお、図16を参照すると、この時点で一致度上限が一致判定用閾値以上であって一致度がまだ算出されていない項目情報ペアは存在しないので、第4の処理によって一致度算出ペアが選出されるのは明らかである。ちなみに、今までのステップ105〜107の処理によって、データベースAの「担当者ID」とデータベースCの「担当者所属」との組、よってデータベースCの「担当者ID」とデータベースCの「担当者所属」との組は、それぞれ一致度上限が一致判定用閾値を下回ることは判明しているので、この2組の項目情報ペアは、一致度算出ペアを特定する処理において一致度算出対象候補から事前に外されている。
図13における項目データの設定例によると、データベースAの「担当者ID」とデータベースCの「作業種類」との関係において、全件数は29件、一致する項目データ数(一致件数)は0件、一方、一致していない項目データ数(欠損値数)は10件、であるので、一致度は、0÷(29−10)=0.00と算出される(ステップ107)。一致度算出部14は、この算出結果を項目情報ペア情報テーブルに設定登録する。なお、一致度範囲より先に一致度が算出されると、一致度算出部14は、一致度上限及び一致度下限の双方に一致度を設定する。このときの項目情報ペア情報テーブルのデータ設定例を図17に、この項目情報ペア情報テーブルのデータ設定の内容に基づき生成された項目情報対応関係グラフを模式的に示した図を図18に、それぞれ示す。
このとき、未処理の項目情報ペアは存在するので(ステップ108でN)、ステップ105に移行するが、未処理の項目情報ペアが存在しなくなるまでステップ105〜107は、以上のように繰り返し実行される。
ここで、ステップ106における一致度算出ペア特定処理において、データベースAの「建物所属」とデータベースCの「担当者所属」とから成る項目情報ペアが一致度算出ペアとして特定された場合における一致度算出部14における処理について説明する。
図13における項目データの設定例によると、データベースAの「建物所属」とデータベースCの「担当者所属」との関係において、全件数は29件、一致する項目データ数(一致件数)は17件、一方、一致していない項目データ数(欠損値数)は10件、であるので、一致度は、17÷(29−10)=0.89と算出される(ステップ107)。一致度算出部14は、この算出結果を項目情報ペア情報テーブルに設定登録する。なお、一致度範囲より先に一致度が算出されたので、一致度算出部14は、一致度上限及び一致度下限の双方に一致度を設定する。このときの項目情報ペア情報テーブルのデータ設定例の一部を図19に示す。
未処理の項目情報ペアは存在する場合(ステップ108でN)、前述したようにステップ105〜107の処理を繰り返すことになるが、この処理を繰り返すことによって、一致度が算出された項目情報ペア、及び一致度範囲が算出されかつ一致度上限が一致判定用閾値を超えていない項目情報ペアが増え、いずれ未処理の項目情報ペア、すなわち、一致度範囲が設定されていない項目情報ペア、又は一致度が算出されてなくかつ設定された一致度上限が一致判定用閾値以上の項目情報ペアは存在しなくなる。本実施の形態では、一致度が算出された項目情報ペアが増えると、ステップ105における1度の一致度範囲算出処理において複数の項目情報ペアに対して一致度範囲が算出されてくるようになる。一致度上限が一致判定用閾値を超えていない項目情報ペアは、ステップ106における処理の対象外とすることができるので、換言すると一致度を算出する必要がないので、同一である項目の検出に要する処理負荷を軽減することができるようになる。
未処理の項目情報ペアは存在しなくなると(ステップ108でN)、一致度算出処理制御部17は、同一項目判定部15を起動する。
同一項目判定部15は、起動されると、項目情報ペア情報テーブルを参照し、一致度が一致判定用閾値以上となる項目情報ペアを抽出し、当該項目情報ペアに含まれている各項目情報に対応する項目は同一であると判定する(ステップ109)。同一項目判定部15が項目の同一性を判定すると、同一項目判定部15は、判定結果をHDD34又はRAM33などの記憶手段に記憶させる。
その後、例えば、ユーザは、マウス36等の入力手段を用いて所定の操作にすることで判定結果の出力を要求する。一致度算出処理制御部17は、ユーザからの判定結果出力要求に応じて判定結果出力部16を起動する。判定結果出力部16は、起動されると、記憶手段から同一項目判定部15による判定結果を読み出し、その判定結果を所定の形式にてディスプレイ38などユーザにより指定された出力手段に出力させる(ステップ110)。例えば、判定結果出力部16は、項目情報対応関係グラフ生成処理手段(図示せず)により判定結果を表示する項目情報対応関係グラフを生成させ、それを表示するようにしてもよい。図20は、この項目情報対応関係グラフの表示例を示した図である。図19に示したように、項目情報対応関係グラフには、キー項目の対応関係を示す線104と、一致度が一致判定用閾値0.8以上となった項目情報ペアを表す線105と、が含まれており、線105には、一致度が対応付けて表示される。
なお、本実施の形態では、一致度が一致判定用閾値0.8以上となった項目情報ペアのみを表示するようにしたが、一致判定用閾値を下回る情報を表示するようにしてもよい。
管理者は、この表示内容を参照して、同一と判定された項目の項目データを確認する。また、データベースを結合するなどの作業を行ってもよい。
図21は、同一項目判定部15による判定結果をレポート形式にて出力した場合のレポートの一例を示した図である。図21のように、不一致の項目データを明示して判定結果を出力するようにしてもよい。
本実施の形態においては、以上説明した処理によって同一である項目を検出し、その結果を管理者に提示するようにしたが、これに限定することなく種々の変形例を適用してもよい。
例えば、一致度範囲算出部12は、式(1)を用いて一致度γの取りうる範囲を算出したが、以下のようにして算出してもよい。
一致度範囲を算出する項目情報ペアに含まれる各項目の項目データからランダムに選択したN’件の範囲での一致度をγ’としたとき、全体の一致率を信頼率95%で区間推定すると、一致度γは、
という式にて算出できる。この計算式の詳細については、「基礎統計学I 統計学入門
」東京大学教養学部統計学教室編、東京大学出版会、1991年を参照できる。この統計的方式を用いることで、項目情報ペアに含まれる各項目の全ての項目データを用いずに一致度γの取りうる範囲を算出できる。
ところで、項目データが文字列の場合、人的な入力ミス等により本来一致するはずの項目データが異なるデータと判断されてしまう可能性がある。例えば、“営業部設備課”と入力するべきところを“営業部設営課”と誤入力してしまうと、一致度算出部14により一致度を算出する過程において一致しない項目データとみなされ欠損値数として加算されてしまうことになる。従って、このような誤入力を検出する機能を設けるようにしてもよい。
本実施の形態では、異なる値の項目データの組が実際には一致していると判定するために、一致条件としてそれぞれに閾値(閾値1,閾値2)を利用した2つの条件を予め設定している。第1の条件は、照合する一方の項目データを形成する文字列1と他方の項目データを形成する文字列2とで相違する文字数が閾値1以下である、ということである。第2の条件は、各項目データの当該データベースに含まれる件数(全レコード数)に占める割合をそれぞれ算出し、算出した割合の多い方から少ない割合で除算した数が閾値2以上である、ということである。ここでは、閾値1=1、閾値2=100として具体的な例を挙げて説明する。
例えば、照合する項目データが“営業部設備課”及び“営業部設営課”という文字列であったとする。各項目データにおいて相違する文字は、“備”と“営”であり、文字数は1である。従って、第1の条件として設定された閾値1=1以下であるため、この第1の条件は満たすことになる。
続いて、当該データベースにおける全項目データに含まれる“営業部設備課”の数が7%、当該データベースにおける全項目データに含まれる “営業部設営課”の数が0.01%、であったとする。この場合、大きい数を小さい数で除算するので、7%/0.01%=700となり、第2の条件として設定された閾値2=100以上であるため、この第2の条件も満たすことになる。
このように、一致していない1組の項目データに含まれている各文字列の間に、予め設定された一致条件を満たす関係がある場合に、一方の項目データは誤入力された項目データと判定する誤入力判定手段(図示せず)を設けて、比較する各項目データが一致しない場合でも、一致条件を満たしたことで当該各項目データは一致していると判定する。一方、いずれかの1つの条件でも満たさない場合は当該各項目データは一致していないと判定する。
この誤入力判定手段は、例えば一致度算出部14の一機能としてもよい。この場合、一致度算出部14は、照合により一致していないと判定した場合でも、前述した一致条件を満たした場合には、照合した1組項目データは一致していると判定する。これにより、この項目データの組を欠損値数に加算すべきところを一致件数として加算する。また、前述した第2の条件の結果を参照し、データベースに含まれる件数に占める割合の少ない方の項目データが誤入力されていると判断して、当該項目データを自動的に修正してもよい。
この場合、修正した項目データに関する情報は、修正した旨、修正した項目データを特定する所定の項目データ変更情報を出力するなどして管理者に通知する。なお、この通知機能は、一致度算出部14に持たせてもよいし、判定結果出力部16に持たせてもよい。あるいは、別の手段として設けてもよい。
また、誤入力判定手段は、例えば同一項目判定部15又は判定結果出力部16の一機能としてもよい。あるいは、別の手段として設けてもよい。この場合、一致度算出部14は、該当する項目データの組は欠損値数として加算して一致度を算出することになる。ただ、誤入力判定手段は、判定結果、誤入力有りと判定した項目データの組を特定する情報、また、例えば、“営業部設営課”が“営業部設備課”の誤入力である可能性があります。」などのように正しい入力を示唆する情報を含む誤入力通知情報を出力する機能を持つ必要がある。誤入力通知情報は、単独で出力してもよいし、図6のステップ110において判定結果と共に、あるいは判定結果に含めて出力してもよい。
なお、前述した変形例では、一致条件として2つの条件を設定したが、設定する条件の数や内容はこれに限定する必要はない。また、条件として設定する閾値もこれに限定する必要はない。
ところで、本実施の形態においては、一致していると管理者が認識している項目情報ペアを対応関係情報テーブルに予め設定した。ただ、これとは逆の関係についての情報も事前に設定登録してもよい。すなわち、管理者により一致していないと認識されている項目情報ペアを特定する情報を予め設定しておき、この項目情報ペアに関しては一致度の算出対象にしないようにする。これにより、一致していないことが明らかな項目情報ペアに対しては、一致度算出ペアとして選出させない、つまり一致度を算出対象の候補から除外するようにしたので、同一項目の検出処理を効率的に実行させることができる。
本実施の形態では、不一致関係情報テーブルを記憶する不一致関係情報記憶手段を設け、不一致関係情報テーブルには、管理者により一致していないと認識されている項目の組から成る項目情報ペアを特定する不一致関係情報が予め設定される。不一致関係情報テーブルにおける構成は、基本的には図3に示した対応関係情報テーブルと同じでよい。
ペア情報設定部11は、不一致関係情報テーブルに設定されている項目情報ペアにおける一致度として、一致判定用閾値を下回る値(例えば、0.00)を項目情報ペア情報テーブルに設定する。この処理は、図6に示した同一項目検出処理においてステップ105が実施される前に実施されていればよい。
また、本実施の形態が提供する機能を1台のコンピュータにより実現したが、複数のコンピュータに分散させて実行するようにしてもよい。