説明

情報照合装置、情報照合方法および情報照合プログラム

【課題】大規模な名寄せにおいて、名寄せに係る照合を高速に行う。
【解決手段】情報照合装置1は、項目に対応した値の集合から構成される複数のレコードについて、レコード間を照合し、レコード間の同一性、類似性および関連性を判定する情報照合装置であって、複数のレコードを記憶する照合先の名寄せ先DB112と、照合元のレコードに含まれる照合対象の項目の値について、少なくとも類似または関連する可能性のない照合先のレコードの候補を落とす条件を示す検索定義114で定義された検索条件と、照合先のレコードの照合範囲を限定する条件を示す分割定義113で定義された各分割条件とをANDで結合して、照合先のレコードを絞り込む絞込み条件を生成する絞込み条件生成部121と、生成された絞込み条件に基づいて、照合先の名寄せ先DB112から、照合先となるレコードを検索する検索部122とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報照合装置、情報照合方法および情報照合プログラムに関する。
【背景技術】
【0002】
値の集合から構成されるレコードについて、レコード間を照合し、レコード間の同一性、類似性および関連性を判定する機能として名寄せ機能がある。名寄せ機能では、例えば、名寄せするレコードの集合を名寄せ元、名寄せ相手となるレコードの集合を名寄せ先と称する。図14は、名寄せ機能を説明する図である。図14に示すように、名寄せ機能を実現する名寄せ処理は、名寄せ元と同じレコード、名寄せ元と類似するレコードまたは名寄せ元と関連するレコードを名寄せ先から検出し、検出結果を名寄せ結果として出力する。
【0003】
顧客情報の名寄せ機能に関して、住所情報および名義情報を整形して得られた顧客データに基づいて名寄せDB(database)に格納された顧客情報を検索して照合データを絞り込み、当該照合データと顧客データとを比較する技術が開示されている。かかる技術では、絞り込まれた照合データと名寄せ元である顧客データとを比較する機能において、一致度が判定され、その一致度に応じて顧客データが新規顧客の顧客データと判断された場合には、その顧客データを名寄せ先である名寄せDBに新規登録する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2004−348489号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
近年、データベースの大容量(大規模)化に伴い、名寄せを高速に行う手法が求められている。従来の名寄せ機能の動作について、図15を参照しながら説明する。図15は、名寄せ機能の動作を説明する図である。図15に示すように、名寄せ機能を実現する名寄せ処理は、名寄せ元のレコードJ1について、名寄せ先のレコードM(M1〜Mn)との名寄せを実行する。
【0006】
まず、名寄せ処理は、名寄せ元のレコードJ1および名寄せ先のレコードM1の各名寄せ対象の項目(「名寄せ対象項目」という。)の値について、予め名寄せ対象項目毎に規定されている評価関数を適用して照合を行う。ここでは、名寄せ対象項目が氏名、住所および生年月日であるものとし、名寄せ処理は、名寄せ対象項目のうち氏名をfa()、住所をfb()、生年月日をfc()とする各評価関数を適用して照合を行う。そして、名寄せ処理は、照合の結果として導出される各名寄せ対象項目の評価値に名寄せ対象項目毎の重み付けを行い、得られた各値を加算することによって、総合評価値を導出する。さらに、名寄せ処理は、名寄せ元のレコードJ1に対する残り全ての名寄せ先のレコードM2〜Mnについて、総合評価値を導出する。名寄せ処理は、これら名寄せ元のレコードJ1および名寄せ先のレコードM1〜Mnの組についての総合評価値を含む名寄せ候補集合を作成する。
【0007】
そして、名寄せ処理は、予め規定された閾値や判定ルールに基づいて、名寄せ候補集合に属するレコードの組について名寄せに関する判定を行う。例えば、名寄せ処理は、完全に一致していると判定されたレコードの組を「White」、完全に一致していないと判定されたレコードの組を「Black」として自動判定を行い、名寄せ結果を出力する。名寄せ処理は、自動判定できない組を「Gray」として候補リストに出力する。そして、候補リストに出力された組の判定が人により任せられる。なお、人による設定が必要な名寄せ定義として、名寄せ対象項目の選定、評価関数の選定、重みおよび閾値の設定がある。
【0008】
次に、名寄せ処理の具体例について、図16および図17を参照しながら説明する。図16は、名寄せ定義のデータ構造の一例を示す図であり、図16(A)が、名寄せ定義の内容を示し、図16(B)が、名寄せ定義の具体例を示す。図17は、名寄せの具体例を説明する図である。
【0009】
図16(A)に示すように、名寄せ定義は、名寄せ方法d1、名寄せ元指定d2、名寄せ先指定d3、名寄せ対象項目指定d4および閾値d5を対応付けて定義される。名寄せ方法d1には、名寄せの方法が指定される。例えば、名寄せの方法には、1つのレコード集合を対象として集合内のレコード間の総当りで名寄せを行い、一致しているレコードを検出して重複するレコードを除去する「自己名寄せ」がある。自己名寄せは、名寄せ元と名寄せ先が同じ集合なので、その構造(レコードの項目)も同じであるという特徴を有する。また、名寄せの方法には、名寄せ元および名寄せ先として異なるレコード集合を対象として名寄せ元レコードと名寄せ先レコードの組み合わせによる名寄せを行い、一致しているレコードを検出して該当レコード間の関連付けを行う「他者名寄せ」がある。他者名寄せは、名寄せ元と名寄せ先が異なる集合なので、一般的にその構造(レコードの項目)が異なるという特徴を有する。名寄せ元指定d2には、名寄せ元のデータベース名等のアクセス情報および名寄せ元のレコードの項目が指定される。名寄せ先指定d3には、名寄せ先のデータベース名等のアクセス情報および名寄せ先のレコードの項目が指定される。名寄せ対象項目指定d4には、名寄せ対象項目が名寄せ元の項目と名寄せ先の項目の組み合わせとして指定され、名寄せ対象項目毎に適用される評価関数および重みが指定される。閾値d5には、White判定用の上位の閾値およびBlack判定用の下位の閾値が指定される。
【0010】
図16(B)に示すように、例えば、名寄せ方法d1には、「自己名寄せ」が指定されている。名寄せ元指定d2のアクセス情報には、「顧客表」が指定され、名寄せ元指定d2のレコード情報には、ID(identification)、氏名、郵便番号、住所および生年月日の項目が指定されている。なお、名寄せ先指定d3は、名寄せ方法が「自己名寄せ」の場合には、名寄せ元の情報と同様であるので定義が不要となる。名寄せ対象項目指定d4には、名寄せ対象項目を氏名:氏名、郵便番号:郵便番号、住所:住所および生年月日:生年月日として指定されている。これは、名寄せ元の項目:名寄せ先の項目の組として名寄せ対象項目を指定しており、名寄せ方法が「自己名寄せ」の場合には、同じレコード構成なので一般的に同じ項目名となる。この名寄せ対象項目に対して、適用する評価関数と重みを指定する。例えば名寄せ対象項目が氏名:氏名の場合には、評価関数に「編集距離」、重みに0.3が指定されている。名寄せ対象項目が郵便番号:郵便番号の場合には、評価関数に「完全一致」、重みに0.2が指定されている。閾値d5には、上位の閾値に0.72、下位の閾値に0.26が指定されている。なお、「編集距離」とは、名寄せ元と名寄せ先との名寄せ対象項目の値の照合において名寄せ先の値を名寄せ元の値に変形させる際の最小編集回数を距離として表す評価関数である。例えば、変形不要の場合には1.0を返し、全ての変形が必要な場合には0を返し、一部の変形で良い場合には変形回数に応じて0から1.0までの値を返す。また、「完全一致」とは、名寄せ元と名寄せ先との名寄せ対象項目の値の照合において2つの値が完全に一致するか否かを表す評価関数である。2つの値が完全に一致する場合には1.0を返し、それ以外は0を返す。なお、評価関数には、これらのみならず、名寄せ元の値について隣り合うN文字が名寄せ先の値に含まれる度合いを評価する「N−gram」等がある。
【0011】
図17では、図16で定義された名寄せ処理の一部として、名寄せ元の1件のレコードM1に対する名寄せ先との名寄せ処理の途中経過と結果を示す。名寄せ先の顧客表Mには、例えば200万件のレコードが格納されている。そして、名寄せ処理は、これら各レコードを名寄せ先として名寄せ元のレコードM1との間で照合を行う。例えば、名寄せ処理は、照合の途中結果として、名寄せ元のレコードM1および名寄せ先のレコードM1〜M6の組毎に、評価関数の適用結果、重み付け結果および総合評価値を対応付けて出力する。そして、名寄せ処理は、照合後に、名寄せ元のレコードM1および名寄せ先のレコードM1〜M6の組毎に、名寄せに関する判定をし、判定結果を出力する。
【0012】
しかしながら、大規模な名寄せにおいて、従来の名寄せ処理では、名寄せに係る照合に長時間を要するという問題があった。すなわち、従来の名寄せ処理では、名寄せ元および名寄せ先のレコードについて、総当りで照合することとなるので、例えば自己名寄せであって名寄せ元および名寄せ先が200万件である場合には、200万件×200万件=4兆組の照合が必要となる。この結果、名寄せ処理は、膨大な時間を要することとなる。
【0013】
そこで、大規模な名寄せでは、名寄せ元および名寄せ先のレコードについて、照合するレコードの組を減らす仕組みを、照合前に取り入れることが試みられる。開示の技術では顧客データを対象とする名寄せを目的として構成され、住所情報および名義情報を整形して得られた顧客データに基づいて名寄せ先である顧客情報から照合データを絞り込んでいる。ところが、この技術では、予め名寄せ先全体について予定される検索が可能な状態に整形しておく必要があり、条件と一致する検索が行われるため、整形処理に誤りがあると誤った結果となる場合がる。また、住所と名義項目を有する顧客データのみを対象としており、汎用性が無い。更に、絞り込みの条件生成が経験則に基づいて予め決定されるため、絞り込みの効果が常に得られるとは限らない。例えば、絞り込み用の検索条件に該当する顧客データが多い場合には、絞り込まれた照合データの件数が多くなる。この結果、名寄せ処理では、照合するレコードの組を適切に減らすことができず、結果的に照合に膨大な時間を要することとなる。
【0014】
1つの側面では、大規模な名寄せにおいて、名寄せに係る照合を高速に行う汎用的な手段を提供することを目的とする。
【課題を解決するための手段】
【0015】
第1の案では、情報照合装置は、項目に対応した値の集合から構成される複数のレコードについて、レコード間を照合し、レコード間の同一性、類似性および関連性を判定する情報照合装置であって、前記複数のレコードを記憶する照合先のデータベースと、照合元のレコードに含まれる照合対象の項目の値について、少なくとも類似または関連する可能性のない照合先のレコードの候補を落とす条件を示す検索定義で定義された検索条件と、照合先のレコードの照合範囲を限定する条件を示す分割定義で定義された各分割条件とをANDで結合して、照合先のレコードを絞り込む絞込み条件を生成する絞込み条件生成部と、前記絞込み条件生成部によって生成された絞込み条件に基づいて、前記照合先のデータベースから、照合先となるレコードを検索する検索部とを備える。
【発明の効果】
【0016】
名寄せに係る照合を汎用的かつ高速に行うことができる。
【図面の簡単な説明】
【0017】
【図1】図1は、実施例に係る情報照合装置の構成を示す機能ブロック図である。
【図2】図2は、分割定義のデータ構造の一例を示す図である。
【図3】図3は、検索定義のデータ構造の一例を示す図である。
【図4】図4は、名寄せ処理の全体の手順を示すフローチャートである。
【図5】図5は、実施例に係る2段階絞込み処理の名寄せの手順を示すフローチャートである。
【図6】図6は、実施例に係る絞込み条件生成処理の手順を示すフローチャートである。
【図7】図7は、実施例に係る絞込み条件生成の動作例を説明する図である。
【図8】図8は、実施例に係る絞込み条件のテンプレートを生成する場合の絞込み条件生成の動作例を示す図である。
【図9】図9は、実施例に係る検索を説明する図である。
【図10】図10は、実施例に係る順序付け検索の一例を説明する図である。
【図11】図11は、実施例に係る順序付け検索の別の一例を説明する図である。
【図12】図12は、実施例に係る2段階絞込みにおける効果を説明する図である。
【図13】図13は、情報照合プログラムを実行するコンピュータを示す図である。
【図14】図14は、名寄せ機能を説明する図である。
【図15】図15は、名寄せ機能の動作を説明する図である。
【図16】図16は、名寄せ定義のデータ構造の一例を示す図である。
【図17】図17は、名寄せの具体例を説明する図である。
【図18】図18は、「粗絞り」による名寄せを説明する図である。
【図19】図19は、粗絞りによる名寄せの処理手順を示すフローチャートである。
【図20】図20は、照合処理の手順を示すフローチャートである。
【図21】図21は、粗絞り定義のデータ構造の一例を示す図である。
【図22】図22は、粗絞りによる名寄せの具体例を説明する図である。
【図23】図23は、「ウィンドウ分割」による名寄せを説明する図である。
【図24】図24は、ウィンドウ分割の一例を説明する図である。
【図25】図25は、ウィンドウ分割による名寄せの処理手順を示すフローチャートである。
【図26】図26は、ウィンドウ分割定義のデータ構造の一例を示す図である。
【図27A】図27Aは、ウィンドウ分割の具体例を説明する図である。
【図27B】図27Bは、ウィンドウ分割後の名寄せの具体例を説明する図である。
【発明を実施するための形態】
【0018】
以下に、本願の開示する情報照合装置、情報照合方法および情報照合プログラムの実施例を図面に基づいて詳細に説明する。以下の実施例では、情報照合装置を大規模な名寄せに適用した場合について説明することとし、実施例の説明に先立って、大規模な名寄せの高速化技術について説明を行う。なお、実施例によりこの発明が限定されるものではない。
【0019】
[粗絞りによる名寄せの高速化技術]
名寄せ元のレコードおよび名寄せ先のレコードについて、レコード同士を照合する照合処理の前に、照合するレコードの組を減らし、大規模な名寄せを高速化する技術がある。ここでは、照合処理の前に、名寄せ元と一致する可能性のある名寄せ先のレコードを粗く絞り込む「粗絞り」の技術について説明する。
【0020】
図18は、「粗絞り」による名寄せを説明する図である。図18に示すように、粗絞りを実行する粗絞り処理102は、名寄せ元100のレコード毎に生成される検索条件を用いて、名寄せ先101からレコードを検索し、検索した結果を検索結果102bとして出力する。この検索条件は、後述する粗絞り定義102aに基づいて生成される。
【0021】
ここで、名寄せ先候補となる検索結果102bの件数が名寄せ元100の1レコードに対して平均100件であると仮定すると、名寄せ処理103による照合では、名寄せ元100の200万件×名寄せ先候補の平均100件=2億組の照合となり、名寄せ先1010を直接対象とする総当り照合の4兆組に比べて大幅な削減となる。
【0022】
次に、粗絞りによる名寄せの処理手順について、図19を参照しながら説明する。図19は、粗絞りによる名寄せの処理手順を示すフローチャートである。
【0023】
まず、粗絞り処理102は、粗絞り定義102aを読み込んで動作環境を設定し(ステップS100)、名寄せ元100から名寄せする対象となる名寄せ元のレコード(以降、「名寄せ元レコード」という。)を順に取り出す(ステップS101)。そして、粗絞り処理102は、粗絞り定義102aに定義される粗絞り対象項目毎に名寄せ元レコードの該当する項目の値を条件にして、名寄せ先101を粗く検索する(ステップS102)。具体的には、粗絞り処理102は、粗絞り対象項目毎に名寄せ元レコードの該当する項目の値を条件とした各条件をORした検索条件で名寄せ先101を曖昧検索する。ここで、曖昧検索とは 「N−gram」等による検索である。そして、粗絞り処理102は、検索したレコードを検索結果102bとして格納する。
【0024】
次に、名寄せ処理103は、検索結果102bに格納された各レコードを名寄せ先として順に取り出し(ステップS103)、名寄せ元レコードと名寄せ先との照合処理を行う(ステップS104)。そして、名寄せ処理103は、照合結果を名寄せ候補集合に格納する(ステップS105)。なお、照合結果には、総合評価値が含まれる。
【0025】
続いて、名寄せ処理103は、検索結果102bに残りの検索結果レコードが有るか否かを判定する(ステップS106)。検索結果102bに残りの検索結果レコードが有ると判定された場合には(ステップS106;Yes)、名寄せ処理103は、残りの検索結果レコードを取り出すべく、ステップS103に移行する。
【0026】
一方、検索結果102bに残りの検索結果レコードが無いと判定された場合には(ステップS106;No)、名寄せ処理103は、名寄せ候補集合に格納された各総合評価値について閾値による判定を実行して判定結果を出力する(ステップS107)。例えば、名寄せ処理103は、総合評価値が上位閾値以上である場合には、照合した名寄せ元レコードと名寄せ先レコードの組について、一致しているレコードの組であると判断して「White」と判定する。また、名寄せ処理103は、総合評価値が上位閾値未満且つ下位閾値以上である場合には、照合した名寄せ元レコードと名寄せ先レコードの組について、自動判定できないと判断して「Gray」と判定する。また、名寄せ処理103は、総合評価値が下位閾値未満である場合には、照合した名寄せ元レコードと名寄せ先レコードの組について、不一致であるレコードの組であると判断して「Black」と判定する。そして、名寄せ処理103は、「Black」以外の判定結果を結果に出力しても良い。「Black」と判定された判定結果のレコードの組は「White」および「Gray」と判定された判定結果のレコードの組以外であるものと判断できるので、「Black」の判定結果は結果に出力する必要は無い。また、結果の出力を「White」と「Gray」に分けて、「Gray」は人による判定候補として「候補リスト」とする場合もある。
【0027】
そして、粗絞り処理102は、名寄せ元100に残りの名寄せ元レコードが有るか否かを判定する(ステップS108)。そして、名寄せ元100に残りの名寄せ元レコードが有ると判定された場合には(ステップS108;Yes)、粗絞り処理102は、残りの名寄せ元レコードを取り出すべく、ステップS101に移行する。一方、名寄せ元100に残りの名寄せ元レコードが無いと判定された場合には(ステップS108;No)、粗絞り処理102は、粗絞りによる名寄せ処理を終了する。
【0028】
次に、図19に示すS104の処理手順について、図20を参照しながら説明する。図20は、照合処理の手順を示すフローチャートである。照合処理は、名寄せ元レコードと名寄せ先レコードの1組毎に、照合を行い総合評価値を導出する処理である。
【0029】
まず、名寄せ処理103は、名寄せ定義103aに定義された名寄せ対象項目を順に選択する(ステップS110)。なお、名寄せ対象項目は、名寄せ元の項目と名寄せ先の項目で構成される比較の対象とする項目の対として予め名寄せ定義103aに定義されているものとする。そして、名寄せ処理103は、名寄せ元レコードおよび名寄せ先レコードについて、それぞれ選択した名寄せ対象項目に対応した各値を指定し(ステップS111)、指定した2つの値に評価関数を適用し(ステップS112)、評価値を算出する。なお、評価関数は、名寄せ対象項目について予め規定されている関数であり、名寄せ定義103aに定義されているものとする。
【0030】
続いて、名寄せ処理103は、残りの名寄せ対象項目が有るか否かを判定する(ステップS113)。残りの名寄せ対象項目が有ると判定された場合には(ステップS113;Yes)、名寄せ処理103は、残りの名寄せ対象項目について評価関数を適用すべく、ステップS110に移行する。
【0031】
一方、残りの名寄せ対象項目が無いと判定された場合には(ステップS113;No)、名寄せ処理103は、各名寄せ対象項目の評価値に名寄せ対象項目毎の重み付けを行い、重み付けを行った結果の各評価値を加算する(ステップS114)。そして、名寄せ処理103は、加算結果の値を対象のレコード組に対する総合評価値として出力を行い(ステップS115)、1組に対する照合処理を終える。
【0032】
次に、粗絞りによる名寄せ処理の具体例について、図21および図22を参照しながら説明する。図21は、粗絞り定義のデータ構造の一例を示す図であり、図21(A)が、粗絞り定義の内容を示し、図21(B)が、粗絞り定義の具体例を示す。図22は、粗絞りによる名寄せの具体例を説明する図である。
【0033】
図21(A)に示すように、粗絞り定義は、対象項目と検索条件を対応付けて定義し、必要に応じて加えて最大検出数を定義することができる。対象項目は、粗絞り処理において検索条件を適用する名寄せ元の項目と名寄せ先の項目とを対として複数指定することができ、対応する検索条件が指定される。最大検出数は、1つの名寄せ元レコードについて名寄せ先を検索した結果として残す名寄せ先レコードの最大件数を示す。
【0034】
図21(B)に示すように、粗絞り定義102aは、粗絞り対象項目d11毎に対象とする名寄せ元の項目と名寄せ元の項目および適用する検索条件が定義され、前述の最大検出数d12が定義される。粗絞り対象項目d11には、「元先」および「検索条件」が対応付けられる。「元先」は、名寄せ元レコードおよび名寄せ先レコードそれぞれの粗絞り対象項目となる項目の名称を「名寄せ元項目:名寄せ先項目」として示す。検索条件は、各対象項目について、名寄せ元の該当項目の値により名寄せ先の該当項目を検索する際の検索方法を指定する。例えば、検索条件には、名寄せ元レコードの対象項目について値の連続する何れかの2文字を対象項目に含む名寄せ先レコードを検索する「BYGRAM」や、名寄せ先レコードの対象項目の値が完全に一致している対象項目を有する名寄せ先レコードを検索する「完全一致」がある。図21(B)の例では、対象項目が「氏名:氏名」および「住所:住所」の検索条件は「BYGRAM」であることを示し、対象項目が「生年月日:生年月日」の検索条件は「完全一致」であることを示す。また、各名寄せ元レコード毎の最大検出数は、1000件であることを示す。
【0035】
図22では、粗絞りによる名寄せ処理の一部として、名寄せ元の1件の名寄せ元レコードM1に対する名寄せ処理の途中経過と結果を示す。名寄せ先である顧客表101Aには、例えば200万件のレコードが格納されている。そして、粗絞り処理102は、粗絞り定義102aに基づいて、粗絞り対象項目毎に名寄せ元レコードM1の該当項目の値を条件として、名寄せ先レコードの該当項目を検索する「検索方法(名寄せ先項目名=名寄せ元項目の値)」で表される各条件をORした粗絞りの検索条件K1を生成する。ここでは、検索条件K1は、「BYGRAM(氏名=田中一郎) OR BYGRAM(住所=北海道札幌市AAAA) OR 完全一致(生年月日=1958.8.3)」と生成される。そして、粗絞り処理102は、生成した検索条件K1で名寄せ先である顧客表101Aを検索して検索結果の名寄せ先レコードを名寄せ元レコードM1に対する粗絞り結果として検索結果102bに出力する。ここで、粗絞り定義102aに最大検出数が規定されている場合は、粗絞り処理102は、検索したレコードの中から粗絞り定義102aに定義された最大検出数(図21(B)の例では1000件)のレコードを選定して、結果を検索結果102bとして出力する。例えば、ここでは、粗絞り処理102は、粗絞りの結果として、平均100件のレコードを検索結果102bとして出力する。なお、図22では、粗絞りの結果について、名寄せ先レコードのIDのみ示している。
【0036】
そして、名寄せ処理103は、検索結果102bの各レコードを名寄せ先として名寄せ元レコードM1との間で照合処理を行う。例えば、名寄せ処理103は、照合処理の途中結果として、名寄せ元レコードM1に対する名寄せ先のレコードM1、M3、M4、M5・・・の組毎に、評価関数の適用結果、重み付け結果および総合評価値を対応付けて出力する。そして、名寄せ処理103は、照合後に、名寄せ元レコードM1および名寄せ先のレコードM1、M3、M4、M5・・・の組毎に、名寄せに関する判定を実行し、判定結果を出力する。
【0037】
上述したように、粗絞りによる名寄せ処理では、例えば名寄せ元と名寄せ先が同じレコード群である自己名寄せであって名寄せ対象(名寄せ元および名寄せ先)が200万件である場合には、名寄せ元1件について粗絞りの結果として平均100件が残ると仮定すると、200万件×100件=2億組の照合処理による名寄せが完了する。前述したように粗絞りを使用しない総当りの名寄せは200万件×200万件=4兆組の照合処理が必要なので、粗絞りによる名寄せ処理は、名寄せ元および名寄せ先のレコードについて、総当りで照合する場合と比較して、約1/20000の照合でよいこととなり、名寄せに係る照合を高速化することができる。
【0038】
ところで、粗絞りによる名寄せ処理では、名寄せ元レコード毎に名寄せ先と一致する可能性のあるレコードを粗く絞り込み、絞り込んだ名寄せ先と名寄せ元レコードとを照合することで、大規模な名寄せの高速化を実現した。しかしながら、名寄せ処理では、粗絞りによる名寄せ処理のほかに、大規模な名寄せを高速化する「ウィンドウ分割」という技術がある。この技術は、自己名寄せに使用され、名寄せ処理を行う前に、予め設定した項目の値(ウィンドウ)に基づいて名寄せ対象をグループに分割し、分割したグループ内でのみ照合するようにすることで、大規模な名寄せの高速化を実現する。
【0039】
[ウィンドウ分割による名寄せの高速化技術]
図23は、「ウィンドウ分割」による名寄せを説明する図である。図23に示すように、ウィンドウ分割を実行するウィンドウ分割処理201は、ウィンドウ分割で用いられる項目を定義したウィンドウ分割定義201aに基づいて、名寄せ対象200を複数のグループに分割する。そして、ウィンドウ分割処理201は、分割したグループを分割結果202−1〜n(nは自然数)として出力する。このウィンドウ分割定義201aの詳細については、後述する。なお、ウィンドウ分割による名寄せでは、名寄せ元および名寄せ先のレコードの項目が一致している自己名寄せに適用される。
【0040】
例えば、ウィンドウ分割処理201は、200万件の名寄せ対象200を4万グループからなる分割結果202−1〜nに分割することによって、各グループの平均レコード数を平均50件にする。この場合、名寄せ処理203による照合は、グループ毎の総当りで行われるので、50件×50件×4万グループ=1億組の照合となる。
【0041】
ここで、ウィンドウ分割について、図24を参照しながら説明する。図24は、ウィンドウ分割の一例を説明する図である。図24に示すように、ウィンドウ分割で採用されるウィンドウは、複数の項目の値の全部または一部を組み合わせたものもある。図24の例では、ウィンドウ分割処理201は、郵便番号の先頭3桁の値とカナ名の先頭1文字の値とを組み合わせた値をウィンドウとしてウィンドウ分割をする。そして、名寄せ処理203は、異なるウィンドウ同士のグループ間で名寄せを行わず、同じウィンドウのグループ内でのみ名寄せを行う。例えば、名寄せ処理203は、郵便番号の先頭3桁「211」とカナ名の先頭1文字の「ア」とを組み合わせたウィンドウ「211ア」のグループ内でのみ名寄せを行う。一方、名寄せ処理203は、郵便番号の先頭3桁「211」とカナ名の先頭1文字「ア」とを組み合わせたウィンドウ「211ア」のグループと郵便番号の先頭3桁「211」とカナ名の先頭1文字「NULL」とを組み合わせたウィンドウ「211NULL」のグループとの間では名寄せを行わない。結果として、ウィンドウが異なるレコード間の名寄せは行われない。
【0042】
次に、ウィンドウ分割による名寄せの処理手順について、図25を参照しながら説明する。図25は、ウィンドウ分割による名寄せの処理手順を示すフローチャートである。
【0043】
まず、ウィンドウ分割処理201は、ウィンドウ分割定義201aを読み込んで動作環境を設定し(ステップS200)、ウィンドウ分割を行う(ステップS201)。すなわち、ウィンドウ分割処理201は、読み込んだウィンドウ分割定義201aに基づいて、名寄せ元および名寄せ先である名寄せ対象200を複数のグループに分割する。
【0044】
続いて、名寄せ処理203は、ウィンドウ分割を行った結果である複数のグループの中から未処理のグループを取り出す(ステップS202)。そして、名寄せ処理203は、取り出したグループ内で名寄せ元レコードを順に取り出す(ステップS203)。さらに、名寄せ処理203は、名寄せ元レコードと同一のグループ内の未処理の名寄せ先レコードを順に取り出す(ステップS204)。
【0045】
そして、名寄せ処理203は、名寄せ元レコードと名寄せ先レコードとの照合処理を行う(ステップS205)。なお、照合処理の手順は、図20と同様であるので、説明を省略する。そして、名寄せ処理203は、照合結果を名寄せ候補集合に格納する(ステップS206)。なお、照合結果には、総合評価値が含まれる。
【0046】
続いて、名寄せ処理203は、グループ内に残りの名寄せ先レコードが有るか否かを判定する(ステップS207)。グループ内に残りの名寄せ先レコードが有ると判定された場合には(ステップS207;Yes)、名寄せ処理203は、残りの名寄せ先レコードを取り出すべく、ステップS204に移行する。
【0047】
一方、グループ内に残りの名寄せ先レコードが無いと判定された場合には(ステップS207;No)、名寄せ処理203は、名寄せ候補集合に格納された各総合評価値について閾値による判定を実行して判定結果を出力する(ステップS208)。総合評価値についての閾値による判定処理の手順は、図19と同様であるので、説明を省略する。
【0048】
続いて、名寄せ処理203は、グループ内に残りの名寄せ元レコードが有るか否かを判定する(ステップS209)。グループ内に残りの名寄せ元レコードが有ると判定された場合には(ステップS209;Yes)、名寄せ処理203は、残りの名寄せ元レコードを取り出すべく、ステップS203に移行する。
【0049】
一方、グループ内に残りの名寄せ元レコードが無いと判定された場合には(ステップS209;No)、名寄せ処理203は、ウィンドウ分割を行った結果である複数のグループの中に残りのグループが有るか否かを判定する(ステップS210)。複数のグループの中に残りのグループが有ると判定された場合には(ステップS210;Yes)、名寄せ処理203は、残りのグループを取り出すべく、ステップS202に移行する。一方、複数のグループの中に残りのグループが無いと判定された場合には(ステップS210;No)、名寄せ処理203は、ウィンドウ分割による名寄せを終了する。
【0050】
次に、ウィンドウ分割による名寄せ処理の具体例について、図26および図27を参照しながら説明する。図26は、ウィンドウ分割定義のデータ構造の一例を示す図であり、図26(A)がウィンドウ分割定義の内容を示す図であり、図26(B)が、ウィンドウ分割定義の具体例を示す図である。図27は、ウィンドウ分割による名寄せの具体例を示し、図27Aがウィンドウ分割の具体例を説明する図であり、図27Bがウィンドウ分割後の名寄せの具体例を説明する図である。
【0051】
図26(A)に示すように、ウィンドウ分割定義201aは、ウィンドウ分割で用いられる項目(項目データの一部を使用するときは項目と対象データの位置指定)をウィンドウキーとして記憶する。すなわち、ウィンドウ分割定義201aは、ウィンドウキーで指定された項目の値によってウィンドウ分割を行うことを定義する。図26(B)の例において、ウィンドウ分割定義201aには、ウィンドウキーd21として郵便番号が定義されている。
【0052】
図27Aに示すように、ウィンドウ分割処理201は、名寄せ対象を顧客表200Aとし、顧客表200Aのレコードについてウィンドウキーである郵便番号の値でウィンドウ分割を行う。ここでは、ウィンドウ分割処理201は、郵便番号の値をウィンドウキーとしてグループを分けるので、同じ郵便番号の値毎に顧客表200Aのレコードについて5万件のグループ202A−1〜nを作成する。そして、各グループの平均レコード数は、40件になる。なお、実際の郵便番号は10数万件存在するが、ここでは、顧客表200Aに存在する郵便番号は5万件であると仮定する。そして、ウィンドウ分割処理201がウィンドウ分割を行った後、名寄せ処理203がウィンドウ分割によって分割されたグループ毎に名寄せを行う。
【0053】
図27Bでは、ウィンドウ分割後の名寄せ処理の一部として、郵便番号が「004−0021」であるグループ202A−1内の名寄せ処理の途中経過と結果を示す。名寄せ処理203は、グループ202A−1内のレコードを名寄せ元レコードおよび名寄せ先レコードとし、名寄せ元レコードに対して名寄せ先レコードとの名寄せを行う。例えば、名寄せ処理203は、名寄せ元レコードM1に対して、名寄せ先レコードM1、M3、M5・・・との組毎に、評価関数の適用結果、重み付け結果および総合評価値を対応付けて出力する。そして、名寄せ処理203は、照合後に、名寄せ元レコードM1および名寄せ先レコードM1、M3、M5・・・の組毎に、名寄せに関する判定をし、判定結果を出力する。
【0054】
上述したように、ウィンドウ分割による名寄せ処理では、分割されたグループが5万件であると仮定すると、1つのグループ内のレコード件数が平均40件となるので、40件×40件×5万グループ=8千万組の照合が必要となる。したがって、図27の例に示すウィンドウ分割による名寄せ処理は、名寄せ対象のレコード200Aについて、全てのレコードの総当りで照合する場合(4兆組)と比較して、約1/50000の照合でよいこととなり、名寄せに係る照合を高速化することができる。
【0055】
しかしながら、上述した大規模な名寄せを高速化する技術であっても、名寄せに係る照合を高速化することができない場合がある。例えば、「粗絞り」による名寄せでは、名寄せ先に名寄せ元レコードと類似するレコードが多い場合には、粗絞りによる検索結果102bの件数が多くなるので、名寄せ元レコードとの照合の組み合わせを削減するという効果が低下する。この結果、粗絞りによる名寄せ処理103は、名寄せに係る照合を高速化することができない場合がある。
【0056】
また、「ウィンドウ分割」による名寄せは、自己名寄せだけに適用できる技術なので、名寄せ元および名寄せ先のレコードの項目が異なる他者名寄せの場合には、対応できない。したがって、この場合には、ウィンドウ分割処理201は使えないので、名寄せに係る照合を高速化することができない。
【0057】
また、「ウィンドウ分割」による名寄せでは、ウィンドウ分割に用いられる項目(ウィンドウキー)の値に情報がないNULL値が多い場合、以下の問題が生じる。ウィンドウ分割処理201は、ウィンドウキーの値がNULL値であるグループのレコード件数が大きくなり、大きいレコード件数間の総当りで名寄せ処理203が実行されるため、照合の組み合わせ削減の効果が小さくなる。また、名寄せ処理203は、ウィンドウキーの値が異なるグループ間では名寄せしないので、ウィンドウキーに値を持つレコードと値がNULL値であるレコードとの間では名寄せを行わないが、NULL値には本来は特定の値が入ることが想定される場合には名寄せする必要が生じる。したがって、かかる場合には、名寄せ処理203は、別個にNULL値を含むグループと値を持つ全てのグループとの間で総当りの照合処理を行う必要があるので、ウィンドウ分割による照合の組み合わせ削減の効果が小さくなり、名寄せに係る照合を高速化することができない。
【0058】
また、「ウィンドウ分割」による名寄せでは、分割されたグループの数が所定数より小さいと、照合の組み合わせ削減の効果が小さくなり、名寄せに係る照合を高速化することができない。例えば、図27Aにおいて、ウィンドウキーを郵便番号の値に代えて郵便番号の先頭3桁の値にすると、ウィンドウ分割によって分割されるグループの数が5万件から200件程度に変わる。そうすると、各グループの平均レコード数が1万件となるので、1万件×1万件×200グループ=200億組の照合が必要となる。分割されたグループが5万件の場合には、8千万組の照合が必要であったので、分割されたグループが200件になると、照合の組み合わせが相当増大することとなる。
【0059】
また、「ウィンドウ分割」による名寄せでは、ウィンドウ分割に用いられる項目(ウィンドウキー)の値に偏りがあると、グループによってレコード数にムラが生じ、照合の組み合わせ削減の効果が小さくなり、多くのレコードを有するグループの影響が大きくなって名寄せに係る照合を高速化することができない。例えば、図27Aにおいて、仮に、同一の郵便番号の顧客が10万人存在すると、このグループだけで10万件×10万件=100億組の照合が必要となる。各グループの平均レコード数が40件の場合には、全体で8千万組の照合が必要であったので、1グループであってもレコード数が10万件のグループがあると、照合の組み合わせが相当増大することとなる。
【実施例】
【0060】
[実施例に係る情報照合装置の構成]
図1は、実施例に係る情報照合装置の構成を示す機能ブロック図である。情報照合装置1は、項目に対応する値の集合から構成される複数のレコードについて、レコード間を照合し、レコード間の同一性、類似性および関連性を判定する装置である。図1に示すように、情報照合装置1は、不揮発性記憶部11、制御部12および揮発性記憶部13を有する。不揮発性記憶部11は、AC電源またはバッテリ等から給電されなくても保持するデータを失わない記憶領域である。さらに、不揮発性記憶部11は、名寄せ元DB111、名寄せ先DB112、分割定義113、検索定義114および名寄せ定義115を有する。なお、不揮発性記憶部11は、例えば、フラッシュメモリ(flash memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置である。
【0061】
名寄せ元DB111は、名寄せするレコード(名寄せ元レコード)を複数記憶するDB(database)である。名寄せ先DB112は、名寄せ相手となるレコード(名寄せ先レコード)を複数記憶するDBである。本実施例では、名寄せ先DB112には、大規模なレコードを記憶しているものとして説明する。なお、名寄せ元DB111および名寄せ先DB112は、項目が完全に一致している場合であっても、項目が一部一致である場合であっても、項目が完全に一致していなくても一部の項目に関連性がある場合であっても良い。また、名寄せ元DB111および名寄せ先DB112が同じ情報を有するDBであっても良いし、1つのDBであっても良い。さらに名寄せ元DB111は必ずしもDB(Database)である必要はなく、レコードを順次取り出す機能を有すればXMLやCSVファイル等でも良い。同様に名寄せ先DB112DBは必ずしもDB(Database)である必要はなく、レコードを順次取り出す機能と項目による検索機能を有すればXMLやCSVファイル等でも良い。分割定義113、検索定義114および名寄せ定義115については、後述する。
【0062】
制御部12は、名寄せ元レコードの名寄せを行う際に、名寄せ先DB112に記憶された名寄せ先レコードを2段階で絞込む2段階絞込み処理を行う。さらに、制御部12は、絞込み条件生成部121、検索部122および名寄せ部123を有する。なお、制御部12は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)等の電子回路である。
【0063】
揮発性記憶部13は、AC電源またはバッテリ等から給電されなくなると保持するデータを失ってしまう記憶領域である。さらに、揮発性記憶部13は、分割処理結果131および検索処理結果132を有する。なお、揮発性記憶部13は、例えば、RAM(Random Access Memory)、DRAM(Dynamic Random Access Memory)等の半導体メモリ素子の記憶装置である。
【0064】
絞込み条件生成部121は、名寄せ元レコードに含まれる名寄せ対象項目の値について、検索定義114で定義された検索条件と、分割定義113で定義された分割条件とをANDで結合して、名寄せ先のレコードを絞り込む絞込み条件を生成する。ここで、分割定義113とは、名寄せ先DB112の名寄せする範囲(名寄せ範囲)を限定する条件を定義したファイルである。言い換えると、分割定義113は、名寄せ先DB112に記憶された複数の名寄せ先レコードのうち名寄せ範囲と名寄せ範囲でない範囲に分割する定義であるともいえる。また、検索定義114とは、名寄せ元レコードに含まれる名寄せ対象項目の値について、少なくとも類似または関連する可能性のない名寄せ先レコードの候補を落とす条件を定義したファイルである。
【0065】
分割定義113の一例について、図2を参照しながら説明する。図2は、分割定義のデータ構造の一例を示す図である。図2(A)では、分割定義113の内容を示し、図2(B)では、分割定義113の具体例を示す。図2(A)に示すように、分割定義113は、対象項目B1、分割条件B2およびNULL値の扱いB3を対応付けて記憶する。対象項目B1は、名寄せ先を分割するためのキーとなる項目を示す。対象項目B1には、名寄せ元レコードおよび名寄せ先レコードについて、双方の対応する項目が対で設定される。分割条件B2は、対象項目B1で示される項目と当該項目の値とによって名寄せ先DB112の名寄せ先レコードを分割する条件を示す。NULL値の扱いB3は、対象項目の値にNULL値が設定されているレコードを後続する検索の対象にするか否かを示す。
【0066】
図2(B)に示すように、分割定義113は、「元先」b1、「条件」b2および「NULL値」b3を分割対象条件b9として記憶する。「元先」b1は、対象項目B1に対応し、「名寄せ元の項目:名寄せ先の項目」を記述する。「条件」b2は、分割条件B2に対応する。「NULL値」b3は、NULL値の扱いB3に対応する。例えば、「元先」b1には、名寄せ元レコードの項目を郵便番号とし、名寄せ先レコードの項目を郵便番号とした双方の対象項目が設定される。「条件」b2には、分割条件として「=」が設定される。「NULL値」b3には、対象項目の値にNULL値が設定されている全てのレコードを後続する検索の対象にすることを示す「ALL」が設定される。これにより、図2(B)の分割定義113から作成される分割条件は、「郵便番号=名寄せ元レコードの郵便番号の値 OR 郵便番号=NULL」となる。なお、図2(B)では、分割対象条件b9が1個の場合を説明したが、分割対象条件b9が複数であっても良い。
【0067】
また、検索定義114の一例について、図3を参照しながら説明する。図3は、検索定義のデータ構造の一例を示す図である。図3(A)では、検索定義114の内容を示し、図3(B)では、検索定義114の具体例を示す。図3(A)に示すように、検索定義114は、対象項目K1、検索条件K2対応付けて記憶し、必要に応じて最大検出数K3を記憶することができる。対象項目K1は、名寄せ先を粗く絞り込むためのキーとなる項目を示す。対象項目K1には、名寄せ元レコードおよび名寄せ先レコードについて、双方の対応する項目が設定される。検索条件K2は、対象項目K1で示される項目と当該項目の値とによって名寄せ先DB112を検索する条件を示す。検索条件K2には、例えば連続する2文字が一致する値を検索する「BYGRAM」や値が完全に一致する値を検索する「完全一致」がある。最大検出数K3は、1つの名寄せ元レコードに対して検索される検索結果の最大レコード数を示し、最大検出数K3が無い場合は無制限であることを示す。
【0068】
図3(B)に示すように、検索定義114は、「元先」k1−1〜3および検索条件k2−1〜3を対応付けて対象条件k12−1〜3とし、この対象条件k12−1〜3および最大検出数k3を記憶する。「元先」k1−1〜3は、対象項目K1に対応する。「検索条件」k2−1〜3は、検索条件K2に対応する。最大検出数k3は、最大検出数K3に対応する。例えば、「元先」k1−1には、名寄せ元レコードの項目を氏名とし、名寄せ先レコードの項目を氏名とした双方の対象項目が設定される。「検索条件」k2−1には、「BYGRAM」が設定される。また、「元先」k1−3には、名寄せ元レコードの項目を生年月日とし、名寄せ先レコードの項目を生年月日とした双方の対象項目が設定される。「検索条件」k2−3には、「完全一致」が設定される。これにより、図3(B)の検索定義114から作成される検索条件は、「BYGRAM(氏名=名寄せ元レコードの氏名の値) OR BYGRAM(住所=名寄せ元レコードの住所の値) OR 完全一致(生年月日=名寄せ元レコードの生年月日の値)」となる。また、名寄せ元1レコードについて作成された検索条件を適用した結果の最大レコード件数は最大検出数k3として1000件と定義されている。
【0069】
図1に戻って、具体的には、絞込み条件生成部121は、分割定義113に定義された分割対象条件b9を順次取得する。また、絞込み条件生成部121は、取得した分割対象条件b9に含まれる「元先」b1の項目と「条件」b2と名寄せ元レコードの当該項目の値とから分割条件を生成する。また、絞込み条件生成部121は、取得した分割対象条件b9に含まれるNULL値b3が後続する検索の対象にすることを示す場合には、「元先」b1の項目の値としてNULL値を有効とする条件を分割条件とORで結合する。そして、絞込み条件生成部121は、分割対象条件b9が複数有る場合には、各分割対象条件b9から生成された分割条件をANDで結合する。
【0070】
また、絞込み条件生成部121は、検索定義114に定義された対象条件k12を順次取得する。また、絞込み条件生成部121は、取得した対象条件k12に含まれる「元先」k1の項目と「検索条件」k2と名寄せ元レコードの当該項目の値とから検索条件を生成する。そして、絞込み条件生成部121は、対象条件k12が複数有る場合には、各対象条件k12から生成された検索条件をORで結合する。また、絞込み条件生成部121は、生成した分割条件および生成した検索条件をANDで結合して、名寄せ先のレコードを絞り込む絞り込み条件を生成する。
【0071】
検索部122は、絞込み条件生成部121によって生成された絞込み条件に基づいて、名寄せ先DB112から名寄せ先となるレコードを検索する。さらに、検索部122は、分割処理部122aおよび検索処理部122bを有する。
【0072】
分割処理部122aは、絞込み条件生成部121によって生成された絞込み条件内の分割条件に合致するレコードを、名寄せ先DB112から検索する。すなわち、分割処理部122aは、名寄せ先DB112の名寄せ先を名寄せ範囲と名寄せしない範囲に分割する。そして、分割処理部122aは、検索した結果のレコードを分割処理結果131に格納する。分割処理結果131に格納されたレコードが、後続する検索処理部122bによる検索の対象となる。なお、分割処理部122aは、予め名寄せ先DB112の名寄せ対象項目に関して構築されたインデックスを用いて、名寄せ先DB112の名寄せ先を名寄せ範囲と名寄せしない範囲に分割するようにしても良い。
【0073】
検索処理部122bは、絞込み条件生成部121によって生成された絞込み条件内の検索条件に合致するレコードを、分割処理結果131から検索する。すなわち、検索処理部122bは、分割処理結果131に記憶されたレコードのうち名寄せの可能性のない候補を落とす処理を行う。そして、検索処理部122bは、検索した結果のレコードを検索処理結果132に格納する。検索処理結果132に格納されたレコードが、後続する名寄せ部123による照合の対象となる。
【0074】
前述の分割処理部122aと検索処理部112bは論理的な機能であり、必ずしも2段階に分けて実行する必要は無い。すなわち、検索部122は絞り込み条件生成部121で生成された絞込み条件の全てを使って名寄せ先DB112の検索を行うことによって、分割処理結果131を生成することなく、直接検索処理結果132を出力するように構成してもよい。さらに、検索部122による名寄せ先DB112の検索は、対象項目のインデックスを使用してもよい。
【0075】
名寄せ部123は、検索処理結果132を名寄せ先として、名寄せ定義115に基づいて、名寄せ元レコードの名寄せを行う。この名寄せ定義115には、名寄せ対象項目や名寄せ対象項目毎に適用される評価関数および重みと、結果判定の閾値が定義される。閾値には、White判定用の上位の閾値およびBlack判定用の下位の閾値が定義される。なお、名寄せ定義115のデータ構造は、図16と同様であるので、説明を省略する。具体的には、名寄せ部123は、検索処理結果132に記憶された名寄せ先レコードから順次名寄せ先レコードを取得する。また、名寄せ部123は、取得した名寄せ先レコードおよび名寄せ元レコードの各名寄せ対象項目の値について、名寄せ対象項目毎に規定された評価関数を適用して照合を行う。また、名寄せ部123は、照合の結果、各名寄せ対象項目の評価値に名寄せ対象項目毎の重み付けを行い、得られた各値を加算し、総合評価値を導出する。また、名寄せ部123は、残りの名寄せ先レコードについても、同様に、名寄せ元レコードおよび名寄せ先レコードの組についての総合評価値を導出する。また、名寄せ部123は、名寄せ元レコードおよび名寄せ先レコードの組についての総合評価値を含む名寄せ候補集合を作成する。また、名寄せ部123は、名寄せ定義115に予め定義されている閾値に基づいて、名寄せ候補集合に属するレコードの組について名寄せに関する判定を行う。ここで、閾値による判定処理を総合評価値の導出直後に実施して判定結果を出力するように構成してもよく、この場合には総合評価値を含む名寄せ候補集合を残す必要は無くなる。
【0076】
[名寄せ処理の全体の手順]
ここで、情報照合装置1による名寄せ処理の全体の手順について、図4を参照しながら説明する。図4は、名寄せ処理の全体の手順を示すフローチャートである。まず、制御部12は、名寄せ対象となる名寄せ元DB111および名寄せ先DB112から、レコード内の項目のデータを順次抽出する(ステップS101)。次に、制御部12は、抽出したデータの性質を分析するプロファイリングを行う(ステップS102)。この結果、人がプロファイリングに基づいて、どの項目とどの項目とを名寄せ対象にするかを含めた名寄せ方法を決定し、決定した名寄せ方法に応じた名寄せツールを設定する。次に、制御部12は、設定した名寄せツールにしたがって、抽出したデータについて名寄せしやすいデータに整形するクレンジング処理を行う(ステップS103)。この後、制御部12は、名寄せ元DB111に対応する名寄せ元の各レコードについて、名寄せ先DB112に対応するの名寄せ先レコードを2段階で絞込む2段階絞込み処理を行いながら名寄せを実行し、名寄せ結果を出力する(ステップS104)。その後、人が、名寄せ結果の妥当性について検証や承認を行い、名寄せ先DB112に対する名寄せ結果の反映等、必要な処理をすることとなる。なお、本発明は、名寄せ処理(ステップS104)に関するものなので、本明細書では名寄せ処理(ステップS104)を中心に説明している。
【0077】
[実施例に係る2段階絞込み処理の手順]
次に、実施例に係る2段階絞込み処理の手順を、図5を参照しながら説明する。図5は、実施例に係る2段階絞込み処理の手順を示すフローチャートである。
【0078】
名寄せの実行指示があると、まず、制御部12は、分割定義113、検索定義114、および名寄せ定義115を読み込んで動作環境を設定する(ステップS12)。そして、制御部12は、名寄せ元DB111から名寄せする対象となる名寄せ元レコードを順に取り出す(ステップS13)。
【0079】
続いて、絞込み条件生成部121は、取り出した名寄せ元レコードから絞込み条件を生成する(ステップS14)。そして、検索部122は、名寄せ先DB112に対して生成された絞込み条件を適用して名寄せ先DB112の名寄せ先レコードを絞り込む(ステップS15)。具体的には、分割処理部122aは、絞込み条件生成部121によって生成された絞込み条件内の分割条件に合致するレコードを、名寄せ先DB112から検索し、検索したレコードを分割処理結果131に格納する。そして、検索処理部122bは、絞込み条件生成部121によって生成された絞込み条件内の検索条件に合致するレコードを、分割処理結果131から検索し、検索したレコードを、検索処理結果132に格納する。
【0080】
なお、この名寄せ先レコードを絞り込む処理(ステップS15)は、必ずしも2段階に分けて実行する必要は無い。すなわち、検索部122は絞り込み条件生成部121で生成された絞込み条件の全てを使って名寄せ先DB112の検索を行うことによって、分割処理結果131を生成することなく、直接検索処理結果132を出力するように構成してもよい。さらに、検索部122による名寄せ先DB112の検索は、対象項目のインデックスを使用してもよい。
【0081】
続いて、名寄せ部123は、検索処理結果132に格納された各レコードを名寄せ先として順に取り出し(ステップS16)、名寄せ元レコードと名寄せ先レコードとの照合処理を行う(ステップS17)。なお、照合処理の手順は、図20と同様であるので、説明を省略する。そして、名寄せ部123は、照合結果を名寄せ候補集合に格納する(ステップS18)。なお、照合結果には、総合評価値が含まれる。
【0082】
続いて、名寄せ部123は、検索処理結果132に残りのレコードが有るか否かを判定する(ステップS19)。そして、検索処理結果132に残りのレコードが有ると判定された場合には(ステップS19;Yes)、名寄せ部123は、残りのレコードを取り出すべく、ステップS16に移行する。
【0083】
一方、検索処理結果132に残りのレコードが無いと判定された場合には(ステップS19;No)、名寄せ部123は、名寄せ候補集合に格納された総合評価値について閾値による判定を実行して判定結果を出力する(ステップS20)。ここで、総合評価値について閾値による判定を実行して判定結果を出力する処理(ステップS20)は、名寄せ元レコードと名寄せ先レコードとの照合処理(ステップS17)の直後に行うことも可能であり、この場合は、名寄せ候補集合への格納処理(ステップS18)は不要になる。
【0084】
そして、制御部12は、名寄せ元DB111に残りの名寄せ元レコードが有るか否かを判定する(ステップS21)。名寄せ元DB111に残りの名寄せ元レコードが有ると判定された場合には(ステップS21;Yes)、制御部12は、残りの名寄せ元レコードを取り出すべく、ステップS13に移行する。一方、名寄せ元DB111に残りの名寄せ元レコードが無いと判定された場合には(ステップS21;No)、制御部12は、2段階絞込み処理による名寄せの実行を終了する。
【0085】
[実施例に係る絞込み条件生成処理の手順]
次に、図5に示すS14の処理手順について、図6を参照しながら説明する。図6は、実施例に係る絞込み条件生成処理の手順を示すフローチャートである。
【0086】
まず、絞込み条件生成部121は、分割定義113に分割対象条件b9が有るか否かを判定する(ステップS31)。分割対象条件b9が無いと判定された場合には(ステップS31;No)、絞込み条件生成部121は、デフォルトの分割条件を生成する(ステップS32)。デフォルトの分割条件とは分割しない条件として「TRUE」を設定する。そして、絞込み条件生成部121は、検索条件を生成すべく、ステップS39に移行する。
【0087】
一方、分割対象条件b9が有ると判定された場合には(ステップS31;Yes)、絞込み条件生成部121は、分割定義113に未処理の分割対象条件b9が有るか否かを判定する(ステップS33)。未処理の分割対象条件b9が無いと判定された場合には(ステップS33;No)、絞込み条件生成部121は、検索条件を生成すべく、ステップS39に移行する。
【0088】
一方、未処理の分割対象条件b9が有ると判定された場合には(ステップS33;Yes)、絞込み条件生成部121は、分割定義113から未処理の分割対象条件b9を取得する(ステップS34)。そして、絞込み条件生成部121は、取得した分割対象条件b9内のNULL値b3に基づいて、NULL値を後続する検索の対象にするか否かを判定する(ステップS35)。NULL値を後続する検索の対象にすると判定された場合には(ステップS35;Yes)、絞込み条件生成部121は、「対象項目=X OR 対象項目=NULL」を条件として生成する(ステップS36)。一方、NULL値を後続する検索の対象にしないと判定された場合には(ステップS35;No)、絞込み条件生成部121は、「対象項目=X」を条件として生成する(ステップS37)。なお、「対象項目」とは、「元先」b1で指定される「名寄せ元の項目名:名寄せ先の項目名」の内、名寄せ先の項目名を示す。また、「X」は、名寄せ元レコードにおける「元先」b1で指定される名寄せ元の項目の値を示す。また、「=」は「条件」b2で指定される「=」を示す。
【0089】
そして、絞込み条件生成部121は、生成した条件を既処理の分割対象条件b9で生成された条件とANDで結合する(ステップS38)。そして、絞込み条件生成部121は、ステップS33に移行する。
【0090】
全ての分割対象条件b9についての処理が完了すると(ステップS33;No)、絞込み条件生成部121は、検索定義114に対象条件k12が有るか否かを判定する(ステップS39)。対象条件k12が無いと判定された場合には(ステップS39;No)、絞込み条件生成部121は、デフォルトの検索条件を生成する(ステップS40)。デフォルトの検索条件とは無条件で前件を結果に残す条件として「*」を設定する。そして、絞込み条件生成部121は、絞込み条件を生成すべく、ステップS44に移行する。
【0091】
一方、対象条件k12が有ると判定された場合には(ステップS39;Yes)、絞込み条件生成部121は、検索定義114に未処理の対象条件k12が有るか否かを判定する(ステップS41)。未処理の対象条件k12が無いと判定された場合には(ステップS41;No)、絞込み条件生成部121は、絞込み条件を生成すべく、ステップS44に移行する。
【0092】
一方、未処理の対象条件k12が有ると判定された場合には(ステップS41;Yes)、絞込み条件生成部121は、検索定義114から未処理の対象条件k12を取得する(ステップS42)。そして、絞込み条件生成部121は、対象項目、検索条件および名寄せ元レコードにおける当該対象項目の値から検索条件を生成する。ここで生成される検索条件は「検索条件(対象項目=X)」として生成する。なお、「対象項目」とは、「元先」k1で指定される「名寄せ元の項目名:名寄せ先の項目名」の内、名寄せ先の項目名を示す。また「X」は、名寄せ元レコードにおける「元先」k1で指定される名寄せ元の項目の値を示す。また、「検索条件」とは、検索条件k2で表される検索方法を示す。そして、絞込み条件生成部121は、生成した条件を既処理の対象条件k12で生成された条件とORで結合する(ステップS43)。そして、絞込み条件生成部121は、ステップS41に移行する。
【0093】
全ての対象条件k12についての検索条件生成処理が完了すると(ステップS41;No)、絞込み条件生成部121は、生成した検索条件を先に生成した分割条件とANDで結合し(ステップS44)、絞込み条件を生成する。
【0094】
[実施例に係る絞込み条件生成の動作]
次に、実施例に係る絞込み条件生成の動作を、図7を参照しながら説明する。図7は、実施例に係る絞込み条件生成の動作例を説明する図である。図7に示すように、分割定義113Aおよび検索定義114Aに基づいて、名寄せ元レコードJ10について、絞込み条件S1が生成される。なお、分割定義113Aには、対象項目B1を「郵便番号:郵便番号」とし、分割条件B2を「=」とした条件であってNULL値の扱いB3を「ALL」(NULL値を後続する検索の対象とする)とした条件(分割対象条件b9)が定義されているものとする。また、検索定義114Aには、第1の対象条件、第2の対象条件および第3の対象条件が定義されているものとする。第1の対象条件とは、対象項目k1−1を「氏名:氏名」とし、検索条件k2−1を「BYGRAM」とした条件であるものとする。第2の対象条件とは、対象項目k1−2を「住所:住所」とし、検索条件k2−2を「BYGRAM」とした条件であるものとする。第3の対象条件とは、対象項目k1−3を「生年月日:生年月日」とし、検索条件k2−3を「完全一致」とした条件であるものとする。また、名寄せ元レコードJ10および名寄せ先DB112は共に、ID、氏名、郵便番号、住所および生年月日の項目を備えるものとする。
【0095】
まず、絞込み条件生成部121は、分割定義113Aから未処理の分割対象条件b9を取得し、取得した分割対象条件b9内の「対象項目」B1を示す「郵便番号:郵便番号」の名寄せ元項目「郵便番号」の値「004-0021」を名寄せ元レコードJ10から取得し、名寄せ先項目名として「郵便番号」を取得する。また、絞込み条件生成部121は、取得した分割対象条件b9内の「条件」B2から「=」を取得する。また、絞込み条件生成部121は、取得した分割対象条件b9内のNULL値の扱いB3を示す「ALL」に基づいて、NULL値である郵便番号を後続する検索の対象にすると判定する。そして、絞込み条件生成部121は、「郵便番号=“004-0021”OR 郵便番号=NULL」を分割条件S1−1として生成する。
【0096】
次に、絞込み条件生成部121は、検索定義114Aから未処理の第1の対象条件を取得し、取得した第1の対象条件内の対象項目K1から名寄せ元の項目名「氏名」と名寄せ先の項目名「氏名」を取得し、検索条件K2および名寄せ元レコードJ10における当該対象項目の値から第1の条件を生成する。ここでは、絞込み条件生成部121は、「BYGRAM(氏名=“田中一郎”)」を第1の条件として生成する。また、絞込み条件生成部121は、第2の対象条件および名寄せ元レコードJ10における当該対象項目の値から第2の条件を生成する。ここでは、絞込み条件生成部121は、「BYGRAM(住所=“北海道札幌市AAAA”)」を第2の条件として生成する。そして、絞込み条件生成部121は、第2の条件を既処理の第1の条件とORで結合した検索条件を生成する。
【0097】
さらに、絞込み条件生成部121は、第3の対象条件および名寄せ元レコードJ10における当該対象項目の値から第3の条件を生成する。ここでは、絞込み条件生成部121は、「完全一致(生年月日=“1958.8.3”)」を第3の条件として生成する。そして、絞込み条件生成部121は、生成した第3の条件を既処理の検索条件とORで結合した新たな検索条件S1−2を生成する。そして、絞込み条件生成部121は、生成した検索条件S1−2を既に生成した分割条件S1−1とANDで結合し、絞込み条件S1を生成する。
【0098】
ところで、上記の絞込み条件生成部121では、各名寄せ元レコードに対する名寄せ先レコードの絞込み条件を生成する都度、分割定義113Aおよび検索定義114Aから絞込み条件を生成する場合を説明した。絞込み条件生成部121はこれに限定されるものではなく、例えば1個目の名寄せ元レコードに対する絞込み条件を生成する際に、分割定義113Aおよび検索定義114Aから絞込み条件のテンプレートを生成しておいても良い。そして、絞込み条件生成部121は、生成したテンプレートを用いて、各名寄せ元レコードに対する名寄せ先レコードの絞込み条件を生成する。
【0099】
[絞り込み条件生成部の変形例]
そこで、以下の絞込み条件生成部121の変形例では、1個目の名寄せ元レコードに対する名寄せ先の絞込み条件を生成する際に、絞込み条件のテンプレートを生成し、生成したテンプレートを用いて各名寄せ元レコードに対する絞込み条件を生成する場合を、図8を参照しながら説明する。図8は、実施例に係る絞込み条件のテンプレートを生成する場合の絞込み条件生成の動作例を説明する図である。
【0100】
図8に示すように、分割定義113Aおよび検索定義114Aから生成された絞込み条件のテンプレートを用いて、名寄せ元レコードJ11についての絞込み条件S2が生成される。なお、分割定義113A、検索定義114Aおよび名寄せ元レコードJ11の内容は、図7と同様であるので、説明を省略する。
【0101】
まず、絞込み条件生成部121は、1個目の名寄せ元レコードに対する名寄せ先の絞込み条件を生成する際に、分割定義113Aから分割条件のテンプレートを生成する。ここでは、分割条件のテンプレートT1−1は、「郵便番号=X OR 郵便番号=NULL」として生成される。なお、Xは、対象とする名寄せ元レコードの対応する項目の値を入れる変数であるものとする。次に、絞込み条件生成部121は、1個目の名寄せ元レコードに対する絞込み条件を生成する際に、検索定義114Aから検索条件のテンプレートを生成する。ここでは、検索条件のテンプレートT1−2は、「BYGRAM(氏名=X) OR BYGRAM(住所=X) OR 完全一致(生年月日=X)」として生成される。なお、Xは、対象とする名寄せ元レコードの対応する項目の値を入れる変数であるものとする。そして、絞込み条件生成部121は、生成した検索条件のテンプレートT1−2を分割条件のテンプレートT1−1とANDで結合し、絞込み条件のテンプレートT1を生成する。
【0102】
そして、絞込み条件生成部121は、名寄せ元レコードJ11の絞込み条件を生成する際に、生成した絞込み条件のテンプレートT1内の変数Xに名寄せ元レコードJ11の対象項目の値を埋め込み、絞込み条件S2を生成する。ここでは、絞込み条件生成部121は、絞込み条件のテンプレートT1内の「郵便番号」に対する変数Xに「004−0021」を埋め込む。また、絞込み条件生成部121は、絞込み条件のテンプレートT1内の「氏名」に対する変数Xに「田中一郎」を埋め込む。加えて、絞込み条件生成部121は、絞込み条件のテンプレートT1内の「住所」に対する変数Xに「北海道札幌市AAAA」を埋め込む。さらに、絞込み条件生成部121は、絞込み条件のテンプレートT1内の「生年月日」に対する変数Xに「1958.8.3」を埋め込む。この結果、絞込み条件生成部121は、名寄せ元レコードJ11の絞込み条件S2を生成する。
【0103】
[検索部の変形例]
ところで、上記の検索部122は、名寄せ元レコードから生成された絞込み条件内の各条件を名寄せ先レコードに適用した結果、論理式がTRUEとなる名寄せ先レコードを検索するものである。図9は、実施例に係る検索を説明する図であり、図9(A)では、ある名寄せ元レコードにおける絞込み条件を示し、図9(B)では、絞込み条件内の各条件をある名寄せ先レコードに適用した場合の検索結果の例を示す。
【0104】
図9(B)に示すように、検索部122は、「郵便番号=“004-0021”」がTRUE(「T」と略記)であるので、「郵便番号=NULL」がFALSE(「F」と略記)となり、これらをORで算術して、「T」(a1)を導出する。また、検索部122は、「BYGRAM(氏名=“田中一郎”)」が「T」、「BYGRAM(住所=“北海道札幌市AAAA”)」が「T」および「完全一致(生年月日=“1958.8.3”)」が「F」であるので、これらをORで算出して、「T」(a2)を導出する。そして、検索部122は、導出した2つの「T」をANDで算出して、「T」(a3)を導出する。すると、検索部122は、各条件を適用した結果に対する論理式がTRUEとなるので、この名寄せ先レコードを検索結果として抽出する。
【0105】
上記の検索部122では、名寄せ元レコードから生成された絞込み条件内の各条件を名寄せ先レコードに適用した結果、論理式がTRUEとなる名寄せ先レコードを検索する場合を説明した。検索部122はこれに限定されるものではなく、名寄せ元レコードから生成された絞込み条件内の各条件に適合する度合いに基づいて名寄せ先レコードを点数化し、点数の高い順に名寄せ先レコードを検索結果として抽出する「順序付け検索」であっても良い。
【0106】
図10は、実施例に係る順序付け検索の一例を説明する図である。図10に示すように、検索部122は、絞込み条件内の各条件の適用結果である「T」および「F」に応じて点数を付け、OR条件およびAND条件で総合点を算出して、検索対象である名寄せ先レコードに総合点を付ける。図10の例では、「T」の場合には1点、「F」の場合には0点とするものとする。また、検索部122は、OR条件の場合に、各条件の適用結果の点数を加算し、AND条件の場合に、各条件の適用結果の点数を乗算する。すなわち、検索部122は、「郵便番号=“004-0021”」が「T」、「郵便番号=NULL」が「F」であるので、これらのOR条件で「1+0」として「1」(a4)を算出する。また、検索部122は、「BYGRAM(氏名=“田中一郎”)」が「T」、「BYGRAM(住所=“北海道札幌市AAAA”)」が「T」および「完全一致(生年月日=“1958.8.3”)」が「F」であるので、これらのOR条件で「1+1+0」として「2」(a5)を算出する。そして、検索部122は、それぞれ算出した2つの点数をAND条件で乗算し、総合点「2」(a6)を算出する。その後、検索部122は、名寄せ先レコードを総合点の昇順に並べて、例えば上位から検索定義114に定義された最大検出数k3だけレコードを検索結果として抽出する。当然のことながら、この名寄せ先レコードを総合点の昇順に並べる処理は総合点が0の名寄せ先レコードを除外することができる。
【0107】
図11は、実施例に係る順序付け検索の別の一例を説明する図である。図11に示すように、検索部122は、絞込み条件内の各条件に応じて0〜1の小数点の点数を付け、OR条件およびAND条件で総合点を算出して、検索対象の名寄せ先レコードに総合点を付ける。図11の例では、検索部122は、OR条件の場合に、各条件の適用結果の点数を加算し、AND条件の場合に、各条件の適用結果の点数を乗算する。すなわち、検索部122は、「郵便番号=“004-0021”」が「1.0」、「郵便番号=NULL」が「0」であるので、これらのOR条件では「1.0+0」として「1.0」(a7)を算出する。また、検索部122は、「BYGRAM(氏名=“田中一郎”)」が「1.0」、「BYGRAM(住所=“北海道札幌市AAAA”)」が「0.6」および「完全一致(生年月日=“1958.8.3”)」が「0」であるので、これらのOR条件では「1.0+0.6+0」として「1.6」(a8)を算出する。そして、検索部122は、それぞれ算出した2つの点数をAND条件で乗算し、総合点「1.6」(a9)を算出する。その後、検索部122は、名寄せ先レコードを総合点の昇順に並べて、例えば上位から検索定義114に定義された最大検出数k3だけレコードを検索する。ここでも、この名寄せ先レコードを総合点の昇順に並べる処理は総合点が0の名寄せ先レコードを除外することができる。
【0108】
[実施例の効果]
上記実施例によれば、情報照合装置1が、少なくとも類似または関連する可能性のない名寄せ先レコードの候補を落とす条件を示す検索定義114および名寄せ先レコードの範囲を限定する条件を示す分割定義113を有する。そして、情報照合装置1が、名寄せ元レコードに含まれる名寄せ対象項目の値について、検索定義114で定義された検索条件と、分割定義113で定義された分割条件とをANDで結合して、名寄せ先レコードを絞り込む絞込み条件を生成する。そして、情報照合装置1が、生成した絞込み条件に基づいて、名寄せ先DB112から名寄せ先レコードを検索する。
【0109】
かかる構成によれば、情報照合装置1は、検索定義114で定義された検索条件と、分割定義113で定義された分割条件とをANDで結合し、絞込み条件を生成して、生成した絞込み条件に基づいて、名寄せ先レコードを検索する。このため、情報照合装置1は、検索条件および分割条件による2段階の絞込みを一体化し、纏めて検索できるので、名寄せ対象の性質に適応した条件に基づいて絞り込んだ名寄せ先レコードの件数を削減することができる。この結果、情報照合装置1は、大規模な名寄せにおいて、名寄せに係る照合を高速に行うことができる。
【0110】
また、分割定義113で定義される分割条件は、業務ルール等により特定の項目の値によって名寄せ結果が確実に確定できる場合に効果的であり、一方、検索定義114で定義された検索条件は、対象項目の照合結果に曖昧性がある場合に効果的であり、分割条件と検索条件を組み合わせることによって名寄せ対象の性質に最適な絞り込み条件となる。具体的には、情報照合装置1は、名寄せ先DB112に名寄せ元レコードと類似するレコードが多く存在する場合であっても、検索条件のみならず分割条件を踏まえた2段階の名寄せ先の絞込みを行うので、効果的に名寄せ元レコードとの照合の組み合わせを削減できる。また、情報照合装置1は、分割条件により絞り込まれた名寄せ先レコードの件数が多い場合であっても、検索条件を踏まえた2段階の名寄せ先の絞込みを行うので、効果的に名寄せ元レコードとの照合の組み合わせを削減できる。
【0111】
ここで、実施例に係る2段階絞込みにおける効果について、図12を参照しながら説明する。図12は、実施例に係る2段階絞込みにおける効果を説明する図である。図12では、2段階絞込みによる名寄せ処理の一部として、1件の名寄せ元レコードM1に対する名寄せ処理の途中経過と結果を示す。名寄せ先DBの顧客マスタDB112Aには、例えば200万件のレコードが格納されている。そして、絞込み条件生成部121は、名寄せ元レコードM1に含まれる名寄せ対象項目の値について、検索定義114で定義された検索条件S3−2と分割定義113で定義された分割条件S3−1とを生成してANDで結合する。この結果、絞込み条件生成部121は、名寄せ先レコードを絞り込む絞込み条件S3を生成する。そして、検索部122は、生成した絞込み条件S3に基づいて、顧客マスタDB112Aから名寄せ先レコードを検索し、検索した結果を検索処理結果132に格納する。例えば、検索部122は、2段階絞込みの結果として、1件の名寄せ元レコードM1に対して平均10件のレコードを検索処理結果132に格納している。ここでは、検索部122は、検索処理結果132に名寄せ先レコードM1、M3、M5・・・を格納する。なお、図12では、検索した結果の名寄せ先レコードについて、IDのみ示している。
【0112】
そして、名寄せ部123は、検索処理結果132の各レコードを名寄せ先として名寄せ元レコードM1との間で照合を行う。例えば、名寄せ部123は、照合の途中結果として、名寄せ元レコードM1に対応する名寄せ先レコードM1、M3、M5・・・の組毎に、評価関数の適用結果、重み付け結果および総合評価値を対応付けて出力する。そして、名寄せ部123は、照合後に、名寄せ元レコードM1に対応する名寄せ先レコードM1、M3、M5・・・の組毎に、名寄せに関する判定をし、判定結果を出力する。
【0113】
このように、2段階絞込みでは、200万件の自己名寄せの場合に、1件の名寄せ元レコードについて2段階絞込みの結果として平均10件が残ると仮定すると、200万件×10件=2000万組の照合が必要となる。一方、名寄せ元レコードおよび名寄せ先レコードについて、総当りで照合する場合には、200万件×200万件=4兆組の照合が必要となる。したがって、名寄せ部123は、総当りで照合する場合と比較して、約1/20万の照合でよいこととなり、名寄せに係る照合を飛躍的に高速化することができる。なお、「粗絞り」による名寄せでは、検索条件を先に図12を用いて説明した2段階絞込みの検索条件と同一とする場合に、200万件×100件=2億組の照合が必要となる。したがって、名寄せ部123は、「粗絞り」による名寄せで照合する場合と比較して、1/10の照合でよいこととなり、名寄せに係る照合を高速化することができる。また、「ウィンドウ分割」による名寄せでは、ウィンドウ分割を先に図12を用いて説明した2段階絞込みの分割条件と同一の項目を使用する場合には、分割された全てのグループのレコード数が40件で揃っているという最も良い条件の場合に40件×40件×5万ウィンドウ=8千万組の照合が必要となる。したがって、名寄せ部123は、「ウィンドウ分割」による名寄せで照合する場合と比較して、1/4の照合でよいこととなり、名寄せに係る照合を高速化することができる。
【0114】
また、上記実施例によれば、分割条件には、名寄せ対象項目の値がNULL値であるレコードの対する条件をORで結合した条件を含むことができるようにした。かかる構成によれば、名寄せ先DB112に名寄せ対象項目の値としてNULL値が多く含まれる場合であっても、分割処理部122aが、絞込み条件内の分割条件にNULL値を含めて合致するレコードを、名寄せ先DB112から検索し、分割処理結果131に格納することとなる。この結果、検索処理部122bが、名寄せ対象項目の値にNULL値が含まれる名寄せ先レコードを絞込み条件内の検索条件によって絞り込む対象とできるので、NULL値が含まれる名寄せ先レコードであっても名寄せ漏れを防止することができる。
【0115】
また、上記実施例によれば、検索部122は、予め名寄せ対象項目に関して構築されたインデックスを用いて、名寄せ先DB112から名寄せ先レコードを検索する。かかる構成によれば、検索部122は、インデックスを用いて名寄せ先DB112から名寄せ先レコードを検索することとしたので、名寄せ先レコードに直接アクセスすることなく高速に2段階絞込み処理を実現することができる。
【0116】
また、上記実施例によれば、絞込み条件生成部121は、絞込み条件に含まれる名寄せ対象項目の値の部分を変数とした絞込み条件のテンプレートを生成する。そして、絞込み条件生成部121は、生成したテンプレートに基づいて、変数の部分に名寄せ元レコードが有する該当項目の値を埋め込み、絞込み条件を生成する。かかる構成によれば、絞込み条件生成部121は、絞込み条件のテンプレートを生成し、生成したテンプレートを用いて絞込み条件を生成できるので、より高速に2段階絞込み処理を実現することができる。
【0117】
また、上記実施例によれば、検索部122は、絞込み条件に含まれる各条件の適合度合いに基づいて点数化を行い、点数の高い順に所定数のレコードを検索結果として抽出する。かかる構成によれば、検索部122は、点数の高い順に所定数のレコードを検索結果として抽出することとしたので、検索結果が相当数になるような場合であっても、低い点数のレコードを検索結果に含めないので、後続する名寄せに係る照合を高速に行うことができ、更に名寄せ結果として残すべき点数の高いレコードを最大検出数で指定される制限により絞込み段階で落とす可能性を低減する効果がある。
【0118】
また、上記実施例によれば、検索条件は、検索定義114で定義された複数の条件をORで結合した条件を含むようにした。かかる構成によれば、絞込み条件生成部121は、複数の条件をORで結合した検索条件を生成するので何れかの条件に適合するレコードは検索結果に残ることになり、誤って名寄せ元レコードと類似または関連する可能性のある名寄せ先レコードの候補を落とす危険を低減することができる。
【0119】
なお、分割定義113の対象項目B1には、名寄せ元レコードおよび名寄せ先レコードについて、双方の対応する項目が設定されるものとして説明した。したがって、名寄せ元レコードについての項目および名寄せ先レコードについての項目を同じ項目としても良いし、異なる項目としても良い。これにより、情報照合装置1は、自己名寄せのみならず、項目構成が異なる他者名寄せや、名寄せ元の1項目に対応して名寄せ先の複数項目を条件とする名寄せの高速化を図ることができる。
【0120】
また、検索定義114の対象項目K1には、名寄せ元レコードおよび名寄せ先レコードについて、双方の対応する項目が設定されるものとして説明した。したがって、名寄せ元レコードについての項目および名寄せ先レコードについての項目を同じ項目としても良いし、異なる項目としても良い。これにより、情報照合装置1は、自己名寄せのみならず、項目構成が異なる他者名寄せや、名寄せ元の1項目に対応して名寄せ先の複数項目を条件とする名寄せの高速化を図ることができる。
【0121】
[プログラム等]
なお、情報照合装置1は、既知のパーソナルコンピュータ、ワークステーション等の情報処理装置に、上記した不揮発性記憶部11、制御部12および揮発性記憶部13等の各機能を搭載することによって実現することができる。
【0122】
また、図示した情報照合装置1の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、情報照合装置1の分散・統合の具体的態様は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、分割処理部122aおよび検索処理部122bを1個の部として統合しても良い。一方、絞込み条件生成部121を、分割条件を生成する分割条件生成部と、検索条件を生成する検索条件生成部と、生成した分割条件と検索条件とから絞込み条件を生成する絞込み条件生成部とに分散しても良い。また、名寄せ先DB112や名寄せ元DB111等の各種記憶部を情報照合装置1の外部装置としてネットワーク経由で接続するようにしても良い。
【0123】
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することによって実現することができる。そこで、以下では、図13を用いて、図1に示した情報照合装置1の制御部12と同様の機能を有する情報照合プログラムを実行するコンピュータの一例を説明する。
【0124】
図13は、情報照合プログラムを実行するコンピュータを示す図である。図13に示すように、コンピュータ1000は、RAM1010と、ネットワークインタフェース装置1020と、HDD1030と、CPU1040、媒体読取装置1050及びバス1060とを有する。RAM1010、ネットワークインタフェース装置1020、HDD1030、CPU1040、媒体読取装置1050は、バス1060によって接続されている。
【0125】
そして、HDD1030には、図1に示した制御部12と同様の機能を有する情報照合プログラム1031が記憶される。また、HDD1030には、図1に示した名寄せ先DB112、名寄せ元DB111、分割定義113および検索定義114に対応する情報照合関連情報1032が記憶される。
【0126】
そして、CPU1040が情報照合プログラム1031をHDD1030から読み出してRAM1010に展開することにより、情報照合プログラム1031は、情報照合プロセス1011として機能するようになる。そして、情報照合プロセス1011は、情報照合関連情報1032から読み出した情報等を適宜RAM1010上の自身に割り当てられた領域に展開し、この展開したデータ等に基づいて各種データ処理を実行する。
【0127】
媒体読取装置1050は、情報照合プログラム1031がHDD1030に格納されていない場合であっても情報照合プログラム1031を記憶する媒体等から情報照合プログラム1031を読み取る。媒体読取装置1050には、例えばCD−ROMや光ディスク装置がある。また、ネットワークインタフェース装置1020は、外部装置とネットワーク経由で接続する装置であり、有線、無線に対応するものである。
【0128】
なお、上記の情報照合プログラム1031は、必ずしもHDD1030に格納されている必要はなく、CD−ROM等の媒体読取装置1050に記憶されたこのプログラムを、コンピュータ1000が読み出して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WAN(Wide Area Network)等を介してコンピュータ1000に接続される他のコンピュータ(またはサーバ)等にこのプログラムを記憶させておいても良い。この場合には、コンピュータ1000がネットワークインタフェース装置1020を介してこれらからプログラムを読み出して実行する。
【0129】
以上の実施例に係る実施形態に関し、さらに以下の付記を開示する。
【0130】
(付記1)項目に対応した値の集合から構成される複数のレコードについて、レコード間を照合し、レコード間の同一性、類似性および関連性を判定する情報照合装置であって、
前記複数のレコードを記憶する照合先のデータベースと、
照合元のレコードに含まれる照合対象の項目の値について、少なくとも類似または関連する可能性のない照合先のレコードの候補を落とす条件を示す検索定義で定義された検索条件と、照合先のレコードの照合範囲を限定する条件を示す分割定義で定義された分割条件とをANDで結合して、照合先のレコードを絞り込む絞込み条件を生成する絞込み条件生成部と、
前記絞込み条件生成部によって生成された絞込み条件に基づいて、前記照合先のデータベースから、照合先となるレコードを検索する検索部と
を有することを特徴とする情報照合装置。
【0131】
(付記2)前記分割条件は、照合対象の項目の値に情報がない旨の条件をORで結合した条件を含むことを特徴とする付記1に記載の情報照合装置。
【0132】
(付記3)前記検索部は、
照合対象の項目に関して予め構築されたインデックスを用いて、前記照合先のデータベースから、照合先となるレコードを検索することを特徴とする付記1または付記2に記載の情報照合装置。
【0133】
(付記4)前記絞込み条件生成部は、
前記絞込み条件に含まれる照合対象の項目の値の部分を変数として生成した当該絞込み条件のテンプレートに基づいて、前記変数の部分に照合元のレコードが有する値を代入し、前記絞込み条件を生成することを特徴とする付記1から付記3のいずれか1つに記載の情報照合装置。
【0134】
(付記5)前記検索部は、
前記絞込み条件に含まれる各条件の適合度合いに基づいて点数化を行い、点数の高い順に所定数のレコードを検索結果として抽出することを特徴とする付記1から付記4のいずれか1つに記載の情報照合装置。
【0135】
(付記6)前記検索条件は、前記検索定義で定義された複数の条件をORで結合した条件を含むことを特徴とする付記1から付記5のいずれか1つに記載の情報照合装置。
【0136】
(付記7)項目に対応した値の集合から構成される複数のレコードについて、レコード間を照合し、レコード間の同一性、類似性および関連性を判定する情報照合装置に、
照合元のレコードに含まれる照合対象の項目の値について、複数のレコードを記憶する照合先のデータベースに記憶されたレコードの照合範囲を限定する条件を示す分割定義で定義された分割条件を生成し、
照合元のレコードに含まれる照合対象の項目の値について、少なくとも類似または関連する可能性のない照合先のレコードの候補を落とす条件を示す検索定義で定義された検索条件を生成し、
該生成した分割条件および該生成した検索条件をANDで結合して、照合先のレコードを絞り込む絞込み条件を生成し、
該生成した絞込み条件に基づいて、前記照合先のデータベースから、照合先となるレコードを検索する
処理を実行させる情報照合プログラム。
【0137】
(付記8)項目に対応した値の集合から構成される複数のレコードについて、レコード間を照合し、レコード間の同一性、類似性および関連性を判定する情報照合装置に実行させる情報照合方法であって、
照合元のレコードに含まれる照合対象の項目の値について、複数のレコードを記憶する照合先のデータベースに記憶されたレコードの照合範囲を限定する条件を示す分割定義で定義された分割条件を生成し、
照合元のレコードに含まれる照合対象の項目の値について、少なくとも類似または関連する可能性のない照合先のレコードの候補を落とす条件を示す検索定義で定義された検索条件を生成し、
該生成した分割条件および該生成した検索条件をANDで結合して、照合先のレコードを絞り込む絞込み条件を生成し、
該生成した絞込み条件に基づいて、前記照合先のデータベースから、照合先となるレコードを検索する
ことを特徴とする情報照合方法。
【符号の説明】
【0138】
1 情報照合装置
11 不揮発性記憶部
12 制御部
13 揮発性記憶部
111 名寄せ元DB
112 名寄せ先DB
113 分割定義
114 検索定義
115 名寄せ定義
121 絞込み条件生成部
122 検索部
122a 分割処理部
122b 検索処理部
123 名寄せ部
131 分割処理結果
132 検索処理結果

【特許請求の範囲】
【請求項1】
項目に対応した値の集合から構成される複数のレコードについて、レコード間を照合し、レコード間の同一性、類似性および関連性を判定する情報照合装置であって、
前記複数のレコードを記憶する照合先のデータベースと、
照合元のレコードに含まれる照合対象の項目の値について、少なくとも類似または関連する可能性のない照合先のレコードの候補を落とす条件を示す検索定義で定義された検索条件と、照合先のレコードの照合範囲を限定する条件を示す分割定義で定義された分割条件とをANDで結合して、照合先のレコードを絞り込む絞込み条件を生成する絞込み条件生成部と、
前記絞込み条件生成部によって生成された絞込み条件に基づいて、前記照合先のデータベースから、照合先となるレコードを検索する検索部と
を有することを特徴とする情報照合装置。
【請求項2】
前記分割条件は、照合対象の項目の値に情報がない旨の条件をORで結合した条件を含むことを特徴とする請求項1に記載の情報照合装置。
【請求項3】
前記検索部は、
照合対象の項目に関して予め構築されたインデックスを用いて、前記照合先のデータベースから、照合先となるレコードを検索することを特徴とする請求項1または請求項2に記載の情報照合装置。
【請求項4】
前記絞込み条件生成部は、
前記絞込み条件に含まれる照合対象の項目の値の部分を変数として生成した当該絞込み条件のテンプレートに基づいて、前記変数の部分に照合元のレコードが有する値を代入し、前記絞込み条件を生成することを特徴とする請求項1から請求項3のいずれか1つに記載の情報照合装置。
【請求項5】
前記検索部は、
前記絞込み条件に含まれる各条件の適合度合いに基づいて点数化を行い、点数の高い順に所定数のレコードを検索結果として抽出することを特徴とする請求項1から請求項4のいずれか1つに記載の情報照合装置。
【請求項6】
項目に対応した値の集合から構成される複数のレコードについて、レコード間を照合し、レコード間の同一性、類似性および関連性を判定する情報照合装置に、
照合元のレコードに含まれる照合対象の項目の値について、複数のレコードを記憶する照合先のデータベースに記憶されたレコードの照合範囲を限定する条件を示す分割定義で定義された分割条件を生成し、
照合元のレコードに含まれる照合対象の項目の値について、少なくとも類似または関連する可能性のない照合先のレコードの候補を落とす条件を示す検索定義で定義された検索条件を生成し、
該生成した分割条件および該生成した検索条件をANDで結合して、照合先のレコードを絞り込む絞込み条件を生成し、
該生成した絞込み条件に基づいて、前記照合先のデータベースから、照合先となるレコードを検索する
処理を実行させる情報照合プログラム。
【請求項7】
項目に対応した値の集合から構成される複数のレコードについて、レコード間を照合し、レコード間の同一性、類似性および関連性を判定する情報照合装置に実行させる情報照合方法であって、
照合元のレコードに含まれる照合対象の項目の値について、複数のレコードを記憶する照合先のデータベースに記憶されたレコードの照合範囲を限定する条件を示す分割定義で定義された分割条件を生成し、
照合元のレコードに含まれる照合対象の項目の値について、少なくとも類似または関連する可能性のない照合先のレコードの候補を落とす条件を示す検索定義で定義された検索条件を生成し、
該生成した分割条件および該生成した検索条件をANDで結合して、照合先のレコードを絞り込む絞込み条件を生成し、
該生成した絞込み条件に基づいて、前記照合先のデータベースから、照合先となるレコードを検索する
ことを特徴とする情報照合方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27A】
image rotate

【図27B】
image rotate


【公開番号】特開2012−159883(P2012−159883A)
【公開日】平成24年8月23日(2012.8.23)
【国際特許分類】
【出願番号】特願2011−17219(P2011−17219)
【出願日】平成23年1月28日(2011.1.28)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】