(57)【特許請求の範囲】
【請求項１】
項目に対応した値の集合から構成される複数のレコードについて、レコード間を照合し、レコード間の同一性、類似性および関連性を判定する情報照合装置であって、
前記複数のレコードを記憶する照合先のデータベースと、
照合元のレコードに含まれる照合対象の項目の値について、少なくとも類似または関連する可能性のない照合先のレコードの候補を落とす条件を示す検索定義で定義された検索条件と、照合先のレコードの照合範囲を限定する条件を示す分割定義で定義された分割条件とをＡＮＤで結合して、照合先のレコードを絞り込む絞込み条件を生成する絞込み条件生成部と、
前記絞込み条件生成部によって生成された絞込み条件に基づいて、前記照合先のデータベースから、照合先となるレコードを検索する検索部と
を有することを特徴とする情報照合装置。
【請求項２】
前記分割条件は、照合対象の項目の値に情報がない旨の条件をＯＲで結合した条件を含むことを特徴とする請求項１に記載の情報照合装置。
【請求項３】
前記検索部は、
照合対象の項目に関して予め構築されたインデックスを用いて、前記照合先のデータベースから、照合先となるレコードを検索することを特徴とする請求項１または請求項２に記載の情報照合装置。
【請求項４】
前記絞込み条件生成部は、
前記絞込み条件に含まれる照合対象の項目の値の部分を変数として生成した当該絞込み条件のテンプレートに基づいて、前記変数の部分に照合元のレコードが有する値を代入し、前記絞込み条件を生成することを特徴とする請求項１から請求項３のいずれか１つに記載の情報照合装置。
【請求項５】
前記検索部は、
前記絞込み条件に含まれる各条件の適合度合いに基づいて点数化を行い、点数の高い順に所定数のレコードを検索結果として抽出することを特徴とする請求項１から請求項４のいずれか１つに記載の情報照合装置。
【請求項６】
項目に対応した値の集合から構成される複数のレコードについて、レコード間を照合し、レコード間の同一性、類似性および関連性を判定する情報照合装置に、
照合元のレコードに含まれる照合対象の項目の値について、複数のレコードを記憶する照合先のデータベースに記憶されたレコードの照合範囲を限定する条件を示す分割定義で定義された分割条件を生成し、
照合元のレコードに含まれる照合対象の項目の値について、少なくとも類似または関連する可能性のない照合先のレコードの候補を落とす条件を示す検索定義で定義された検索条件を生成し、
該生成した分割条件および該生成した検索条件をＡＮＤで結合して、照合先のレコードを絞り込む絞込み条件を生成し、
該生成した絞込み条件に基づいて、前記照合先のデータベースから、照合先となるレコードを検索する
処理を実行させる情報照合プログラム。
【請求項７】
項目に対応した値の集合から構成される複数のレコードについて、レコード間を照合し、レコード間の同一性、類似性および関連性を判定する情報照合装置に実行させる情報照合方法であって、
照合元のレコードに含まれる照合対象の項目の値について、複数のレコードを記憶する照合先のデータベースに記憶されたレコードの照合範囲を限定する条件を示す分割定義で定義された分割条件を生成し、
照合元のレコードに含まれる照合対象の項目の値について、少なくとも類似または関連する可能性のない照合先のレコードの候補を落とす条件を示す検索定義で定義された検索条件を生成し、
該生成した分割条件および該生成した検索条件をＡＮＤで結合して、照合先のレコードを絞り込む絞込み条件を生成し、
該生成した絞込み条件に基づいて、前記照合先のデータベースから、照合先となるレコードを検索する
ことを特徴とする情報照合方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報照合装置、情報照合方法および情報照合プログラムに関する。
【背景技術】
【０００２】
値の集合から構成されるレコードについて、レコード間を照合し、レコード間の同一性、類似性および関連性を判定する機能として名寄せ機能がある。名寄せ機能では、例えば、名寄せするレコードの集合を名寄せ元、名寄せ相手となるレコードの集合を名寄せ先と称する。図１４は、名寄せ機能を説明する図である。図１４に示すように、名寄せ機能を実現する名寄せ処理は、名寄せ元と同じレコード、名寄せ元と類似するレコードまたは名寄せ元と関連するレコードを名寄せ先から検出し、検出結果を名寄せ結果として出力する。
【０００３】
顧客情報の名寄せ機能に関して、住所情報および名義情報を整形して得られた顧客データに基づいて名寄せＤＢ（database）に格納された顧客情報を検索して照合データを絞り込み、当該照合データと顧客データとを比較する技術が開示されている。かかる技術では、絞り込まれた照合データと名寄せ元である顧客データとを比較する機能において、一致度が判定され、その一致度に応じて顧客データが新規顧客の顧客データと判断された場合には、その顧客データを名寄せ先である名寄せＤＢに新規登録する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−３４８４８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
近年、データベースの大容量（大規模）化に伴い、名寄せを高速に行う手法が求められている。従来の名寄せ機能の動作について、図１５を参照しながら説明する。図１５は、名寄せ機能の動作を説明する図である。図１５に示すように、名寄せ機能を実現する名寄せ処理は、名寄せ元のレコードＪ１について、名寄せ先のレコードＭ（Ｍ１〜Ｍｎ）との名寄せを実行する。
【０００６】
まず、名寄せ処理は、名寄せ元のレコードＪ１および名寄せ先のレコードＭ１の各名寄せ対象の項目（「名寄せ対象項目」という。）の値について、予め名寄せ対象項目毎に規定されている評価関数を適用して照合を行う。ここでは、名寄せ対象項目が氏名、住所および生年月日であるものとし、名寄せ処理は、名寄せ対象項目のうち氏名をｆａ（）、住所をｆｂ（）、生年月日をｆｃ（）とする各評価関数を適用して照合を行う。そして、名寄せ処理は、照合の結果として導出される各名寄せ対象項目の評価値に名寄せ対象項目毎の重み付けを行い、得られた各値を加算することによって、総合評価値を導出する。さらに、名寄せ処理は、名寄せ元のレコードＪ１に対する残り全ての名寄せ先のレコードＭ２〜Ｍｎについて、総合評価値を導出する。名寄せ処理は、これら名寄せ元のレコードＪ１および名寄せ先のレコードＭ１〜Ｍｎの組についての総合評価値を含む名寄せ候補集合を作成する。
【０００７】
そして、名寄せ処理は、予め規定された閾値や判定ルールに基づいて、名寄せ候補集合に属するレコードの組について名寄せに関する判定を行う。例えば、名寄せ処理は、完全に一致していると判定されたレコードの組を「Ｗｈｉｔｅ」、完全に一致していないと判定されたレコードの組を「Ｂｌａｃｋ」として自動判定を行い、名寄せ結果を出力する。名寄せ処理は、自動判定できない組を「Ｇｒａｙ」として候補リストに出力する。そして、候補リストに出力された組の判定が人により任せられる。なお、人による設定が必要な名寄せ定義として、名寄せ対象項目の選定、評価関数の選定、重みおよび閾値の設定がある。
【０００８】
次に、名寄せ処理の具体例について、図１６および図１７を参照しながら説明する。図１６は、名寄せ定義のデータ構造の一例を示す図であり、図１６（Ａ）が、名寄せ定義の内容を示し、図１６（Ｂ）が、名寄せ定義の具体例を示す。図１７は、名寄せの具体例を説明する図である。
【０００９】
図１６（Ａ）に示すように、名寄せ定義は、名寄せ方法ｄ１、名寄せ元指定ｄ２、名寄せ先指定ｄ３、名寄せ対象項目指定ｄ４および閾値ｄ５を対応付けて定義される。名寄せ方法ｄ１には、名寄せの方法が指定される。例えば、名寄せの方法には、１つのレコード集合を対象として集合内のレコード間の総当りで名寄せを行い、一致しているレコードを検出して重複するレコードを除去する「自己名寄せ」がある。自己名寄せは、名寄せ元と名寄せ先が同じ集合なので、その構造（レコードの項目）も同じであるという特徴を有する。また、名寄せの方法には、名寄せ元および名寄せ先として異なるレコード集合を対象として名寄せ元レコードと名寄せ先レコードの組み合わせによる名寄せを行い、一致しているレコードを検出して該当レコード間の関連付けを行う「他者名寄せ」がある。他者名寄せは、名寄せ元と名寄せ先が異なる集合なので、一般的にその構造（レコードの項目）が異なるという特徴を有する。名寄せ元指定ｄ２には、名寄せ元のデータベース名等のアクセス情報および名寄せ元のレコードの項目が指定される。名寄せ先指定ｄ３には、名寄せ先のデータベース名等のアクセス情報および名寄せ先のレコードの項目が指定される。名寄せ対象項目指定ｄ４には、名寄せ対象項目が名寄せ元の項目と名寄せ先の項目の組み合わせとして指定され、名寄せ対象項目毎に適用される評価関数および重みが指定される。閾値ｄ５には、Ｗｈｉｔｅ判定用の上位の閾値およびＢｌａｃｋ判定用の下位の閾値が指定される。
【００１０】
図１６（Ｂ）に示すように、例えば、名寄せ方法ｄ１には、「自己名寄せ」が指定されている。名寄せ元指定ｄ２のアクセス情報には、「顧客表」が指定され、名寄せ元指定ｄ２のレコード情報には、ＩＤ（identification）、氏名、郵便番号、住所および生年月日の項目が指定されている。なお、名寄せ先指定ｄ３は、名寄せ方法が「自己名寄せ」の場合には、名寄せ元の情報と同様であるので定義が不要となる。名寄せ対象項目指定ｄ４には、名寄せ対象項目を氏名：氏名、郵便番号：郵便番号、住所：住所および生年月日：生年月日として指定されている。これは、名寄せ元の項目：名寄せ先の項目の組として名寄せ対象項目を指定しており、名寄せ方法が「自己名寄せ」の場合には、同じレコード構成なので一般的に同じ項目名となる。この名寄せ対象項目に対して、適用する評価関数と重みを指定する。例えば名寄せ対象項目が氏名：氏名の場合には、評価関数に「編集距離」、重みに０．３が指定されている。名寄せ対象項目が郵便番号：郵便番号の場合には、評価関数に「完全一致」、重みに０．２が指定されている。閾値ｄ５には、上位の閾値に０．７２、下位の閾値に０．２６が指定されている。なお、「編集距離」とは、名寄せ元と名寄せ先との名寄せ対象項目の値の照合において名寄せ先の値を名寄せ元の値に変形させる際の最小編集回数を距離として表す評価関数である。例えば、変形不要の場合には１．０を返し、全ての変形が必要な場合には０を返し、一部の変形で良い場合には変形回数に応じて０から１．０までの値を返す。また、「完全一致」とは、名寄せ元と名寄せ先との名寄せ対象項目の値の照合において２つの値が完全に一致するか否かを表す評価関数である。２つの値が完全に一致する場合には１．０を返し、それ以外は０を返す。なお、評価関数には、これらのみならず、名寄せ元の値について隣り合うＮ文字が名寄せ先の値に含まれる度合いを評価する「Ｎ−ｇｒａｍ」等がある。
【００１１】
図１７では、図１６で定義された名寄せ処理の一部として、名寄せ元の１件のレコードＭ１に対する名寄せ先との名寄せ処理の途中経過と結果を示す。名寄せ先の顧客表Ｍには、例えば２００万件のレコードが格納されている。そして、名寄せ処理は、これら各レコードを名寄せ先として名寄せ元のレコードＭ１との間で照合を行う。例えば、名寄せ処理は、照合の途中結果として、名寄せ元のレコードＭ１および名寄せ先のレコードＭ１〜Ｍ６の組毎に、評価関数の適用結果、重み付け結果および総合評価値を対応付けて出力する。そして、名寄せ処理は、照合後に、名寄せ元のレコードＭ１および名寄せ先のレコードＭ１〜Ｍ６の組毎に、名寄せに関する判定をし、判定結果を出力する。
【００１２】
しかしながら、大規模な名寄せにおいて、従来の名寄せ処理では、名寄せに係る照合に長時間を要するという問題があった。すなわち、従来の名寄せ処理では、名寄せ元および名寄せ先のレコードについて、総当りで照合することとなるので、例えば自己名寄せであって名寄せ元および名寄せ先が２００万件である場合には、２００万件×２００万件＝４兆組の照合が必要となる。この結果、名寄せ処理は、膨大な時間を要することとなる。
【００１３】
そこで、大規模な名寄せでは、名寄せ元および名寄せ先のレコードについて、照合するレコードの組を減らす仕組みを、照合前に取り入れることが試みられる。開示の技術では顧客データを対象とする名寄せを目的として構成され、住所情報および名義情報を整形して得られた顧客データに基づいて名寄せ先である顧客情報から照合データを絞り込んでいる。ところが、この技術では、予め名寄せ先全体について予定される検索が可能な状態に整形しておく必要があり、条件と一致する検索が行われるため、整形処理に誤りがあると誤った結果となる場合がる。また、住所と名義項目を有する顧客データのみを対象としており、汎用性が無い。更に、絞り込みの条件生成が経験則に基づいて予め決定されるため、絞り込みの効果が常に得られるとは限らない。例えば、絞り込み用の検索条件に該当する顧客データが多い場合には、絞り込まれた照合データの件数が多くなる。この結果、名寄せ処理では、照合するレコードの組を適切に減らすことができず、結果的に照合に膨大な時間を要することとなる。
【００１４】
１つの側面では、大規模な名寄せにおいて、名寄せに係る照合を高速に行う汎用的な手段を提供することを目的とする。
【課題を解決するための手段】
【００１５】
第１の案では、情報照合装置は、項目に対応した値の集合から構成される複数のレコードについて、レコード間を照合し、レコード間の同一性、類似性および関連性を判定する情報照合装置であって、前記複数のレコードを記憶する照合先のデータベースと、照合元のレコードに含まれる照合対象の項目の値について、少なくとも類似または関連する可能性のない照合先のレコードの候補を落とす条件を示す検索定義で定義された検索条件と、照合先のレコードの照合範囲を限定する条件を示す分割定義で定義された各分割条件とをＡＮＤで結合して、照合先のレコードを絞り込む絞込み条件を生成する絞込み条件生成部と、前記絞込み条件生成部によって生成された絞込み条件に基づいて、前記照合先のデータベースから、照合先となるレコードを検索する検索部とを備える。
【発明の効果】
【００１６】
名寄せに係る照合を汎用的かつ高速に行うことができる。
【図面の簡単な説明】
【００１７】
【図１】図１は、実施例に係る情報照合装置の構成を示す機能ブロック図である。
【図２】図２は、分割定義のデータ構造の一例を示す図である。
【図３】図３は、検索定義のデータ構造の一例を示す図である。
【図４】図４は、名寄せ処理の全体の手順を示すフローチャートである。
【図５】図５は、実施例に係る２段階絞込み処理の名寄せの手順を示すフローチャートである。
【図６】図６は、実施例に係る絞込み条件生成処理の手順を示すフローチャートである。
【図７】図７は、実施例に係る絞込み条件生成の動作例を説明する図である。
【図８】図８は、実施例に係る絞込み条件のテンプレートを生成する場合の絞込み条件生成の動作例を示す図である。
【図９】図９は、実施例に係る検索を説明する図である。
【図１０】図１０は、実施例に係る順序付け検索の一例を説明する図である。
【図１１】図１１は、実施例に係る順序付け検索の別の一例を説明する図である。
【図１２】図１２は、実施例に係る２段階絞込みにおける効果を説明する図である。
【図１３】図１３は、情報照合プログラムを実行するコンピュータを示す図である。
【図１４】図１４は、名寄せ機能を説明する図である。
【図１５】図１５は、名寄せ機能の動作を説明する図である。
【図１６】図１６は、名寄せ定義のデータ構造の一例を示す図である。
【図１７】図１７は、名寄せの具体例を説明する図である。
【図１８】図１８は、「粗絞り」による名寄せを説明する図である。
【図１９】図１９は、粗絞りによる名寄せの処理手順を示すフローチャートである。
【図２０】図２０は、照合処理の手順を示すフローチャートである。
【図２１】図２１は、粗絞り定義のデータ構造の一例を示す図である。
【図２２】図２２は、粗絞りによる名寄せの具体例を説明する図である。
【図２３】図２３は、「ウィンドウ分割」による名寄せを説明する図である。
【図２４】図２４は、ウィンドウ分割の一例を説明する図である。
【図２５】図２５は、ウィンドウ分割による名寄せの処理手順を示すフローチャートである。
【図２６】図２６は、ウィンドウ分割定義のデータ構造の一例を示す図である。
【図２７Ａ】図２７Ａは、ウィンドウ分割の具体例を説明する図である。
【図２７Ｂ】図２７Ｂは、ウィンドウ分割後の名寄せの具体例を説明する図である。
【発明を実施するための形態】
【００１８】
以下に、本願の開示する情報照合装置、情報照合方法および情報照合プログラムの実施例を図面に基づいて詳細に説明する。以下の実施例では、情報照合装置を大規模な名寄せに適用した場合について説明することとし、実施例の説明に先立って、大規模な名寄せの高速化技術について説明を行う。なお、実施例によりこの発明が限定されるものではない。
【００１９】
［粗絞りによる名寄せの高速化技術］
名寄せ元のレコードおよび名寄せ先のレコードについて、レコード同士を照合する照合処理の前に、照合するレコードの組を減らし、大規模な名寄せを高速化する技術がある。ここでは、照合処理の前に、名寄せ元と一致する可能性のある名寄せ先のレコードを粗く絞り込む「粗絞り」の技術について説明する。
【００２０】
図１８は、「粗絞り」による名寄せを説明する図である。図１８に示すように、粗絞りを実行する粗絞り処理１０２は、名寄せ元１００のレコード毎に生成される検索条件を用いて、名寄せ先１０１からレコードを検索し、検索した結果を検索結果１０２ｂとして出力する。この検索条件は、後述する粗絞り定義１０２ａに基づいて生成される。
【００２１】
ここで、名寄せ先候補となる検索結果１０２ｂの件数が名寄せ元１００の１レコードに対して平均１００件であると仮定すると、名寄せ処理１０３による照合では、名寄せ元１００の２００万件×名寄せ先候補の平均１００件＝２億組の照合となり、名寄せ先１０１０を直接対象とする総当り照合の４兆組に比べて大幅な削減となる。
【００２２】
次に、粗絞りによる名寄せの処理手順について、図１９を参照しながら説明する。図１９は、粗絞りによる名寄せの処理手順を示すフローチャートである。
【００２３】
まず、粗絞り処理１０２は、粗絞り定義１０２ａを読み込んで動作環境を設定し（ステップＳ１００）、名寄せ元１００から名寄せする対象となる名寄せ元のレコード（以降、「名寄せ元レコード」という。）を順に取り出す（ステップＳ１０１）。そして、粗絞り処理１０２は、粗絞り定義１０２ａに定義される粗絞り対象項目毎に名寄せ元レコードの該当する項目の値を条件にして、名寄せ先１０１を粗く検索する（ステップＳ１０２）。具体的には、粗絞り処理１０２は、粗絞り対象項目毎に名寄せ元レコードの該当する項目の値を条件とした各条件をＯＲした検索条件で名寄せ先１０１を曖昧検索する。ここで、曖昧検索とは  「Ｎ−ｇｒａｍ」等による検索である。そして、粗絞り処理１０２は、検索したレコードを検索結果１０２ｂとして格納する。
【００２４】
次に、名寄せ処理１０３は、検索結果１０２ｂに格納された各レコードを名寄せ先として順に取り出し（ステップＳ１０３）、名寄せ元レコードと名寄せ先との照合処理を行う（ステップＳ１０４）。そして、名寄せ処理１０３は、照合結果を名寄せ候補集合に格納する（ステップＳ１０５）。なお、照合結果には、総合評価値が含まれる。
【００２５】
続いて、名寄せ処理１０３は、検索結果１０２ｂに残りの検索結果レコードが有るか否かを判定する（ステップＳ１０６）。検索結果１０２ｂに残りの検索結果レコードが有ると判定された場合には（ステップＳ１０６；Ｙｅｓ）、名寄せ処理１０３は、残りの検索結果レコードを取り出すべく、ステップＳ１０３に移行する。
【００２６】
一方、検索結果１０２ｂに残りの検索結果レコードが無いと判定された場合には（ステップＳ１０６；Ｎｏ）、名寄せ処理１０３は、名寄せ候補集合に格納された各総合評価値について閾値による判定を実行して判定結果を出力する（ステップＳ１０７）。例えば、名寄せ処理１０３は、総合評価値が上位閾値以上である場合には、照合した名寄せ元レコードと名寄せ先レコードの組について、一致しているレコードの組であると判断して「Ｗｈｉｔｅ」と判定する。また、名寄せ処理１０３は、総合評価値が上位閾値未満且つ下位閾値以上である場合には、照合した名寄せ元レコードと名寄せ先レコードの組について、自動判定できないと判断して「Ｇｒａｙ」と判定する。また、名寄せ処理１０３は、総合評価値が下位閾値未満である場合には、照合した名寄せ元レコードと名寄せ先レコードの組について、不一致であるレコードの組であると判断して「Ｂｌａｃｋ」と判定する。そして、名寄せ処理１０３は、「Ｂｌａｃｋ」以外の判定結果を結果に出力しても良い。「Ｂｌａｃｋ」と判定された判定結果のレコードの組は「Ｗｈｉｔｅ」および「Ｇｒａｙ」と判定された判定結果のレコードの組以外であるものと判断できるので、「Ｂｌａｃｋ」の判定結果は結果に出力する必要は無い。また、結果の出力を「Ｗｈｉｔｅ」と「Ｇｒａｙ」に分けて、「Ｇｒａｙ」は人による判定候補として「候補リスト」とする場合もある。
【００２７】
そして、粗絞り処理１０２は、名寄せ元１００に残りの名寄せ元レコードが有るか否かを判定する（ステップＳ１０８）。そして、名寄せ元１００に残りの名寄せ元レコードが有ると判定された場合には（ステップＳ１０８；Ｙｅｓ）、粗絞り処理１０２は、残りの名寄せ元レコードを取り出すべく、ステップＳ１０１に移行する。一方、名寄せ元１００に残りの名寄せ元レコードが無いと判定された場合には（ステップＳ１０８；Ｎｏ）、粗絞り処理１０２は、粗絞りによる名寄せ処理を終了する。
【００２８】
次に、図１９に示すＳ１０４の処理手順について、図２０を参照しながら説明する。図２０は、照合処理の手順を示すフローチャートである。照合処理は、名寄せ元レコードと名寄せ先レコードの１組毎に、照合を行い総合評価値を導出する処理である。
【００２９】
まず、名寄せ処理１０３は、名寄せ定義１０３ａに定義された名寄せ対象項目を順に選択する（ステップＳ１１０）。なお、名寄せ対象項目は、名寄せ元の項目と名寄せ先の項目で構成される比較の対象とする項目の対として予め名寄せ定義１０３ａに定義されているものとする。そして、名寄せ処理１０３は、名寄せ元レコードおよび名寄せ先レコードについて、それぞれ選択した名寄せ対象項目に対応した各値を指定し（ステップＳ１１１）、指定した２つの値に評価関数を適用し（ステップＳ１１２）、評価値を算出する。なお、評価関数は、名寄せ対象項目について予め規定されている関数であり、名寄せ定義１０３ａに定義されているものとする。
【００３０】
続いて、名寄せ処理１０３は、残りの名寄せ対象項目が有るか否かを判定する（ステップＳ１１３）。残りの名寄せ対象項目が有ると判定された場合には（ステップＳ１１３；Ｙｅｓ）、名寄せ処理１０３は、残りの名寄せ対象項目について評価関数を適用すべく、ステップＳ１１０に移行する。
【００３１】
一方、残りの名寄せ対象項目が無いと判定された場合には（ステップＳ１１３；Ｎｏ）、名寄せ処理１０３は、各名寄せ対象項目の評価値に名寄せ対象項目毎の重み付けを行い、重み付けを行った結果の各評価値を加算する（ステップＳ１１４）。そして、名寄せ処理１０３は、加算結果の値を対象のレコード組に対する総合評価値として出力を行い（ステップＳ１１５）、１組に対する照合処理を終える。
【００３２】
次に、粗絞りによる名寄せ処理の具体例について、図２１および図２２を参照しながら説明する。図２１は、粗絞り定義のデータ構造の一例を示す図であり、図２１（Ａ）が、粗絞り定義の内容を示し、図２１（Ｂ）が、粗絞り定義の具体例を示す。図２２は、粗絞りによる名寄せの具体例を説明する図である。
【００３３】
図２１（Ａ）に示すように、粗絞り定義は、対象項目と検索条件を対応付けて定義し、必要に応じて加えて最大検出数を定義することができる。対象項目は、粗絞り処理において検索条件を適用する名寄せ元の項目と名寄せ先の項目とを対として複数指定することができ、対応する検索条件が指定される。最大検出数は、１つの名寄せ元レコードについて名寄せ先を検索した結果として残す名寄せ先レコードの最大件数を示す。
【００３４】
図２１（Ｂ）に示すように、粗絞り定義１０２ａは、粗絞り対象項目ｄ１１毎に対象とする名寄せ元の項目と名寄せ元の項目および適用する検索条件が定義され、前述の最大検出数ｄ１２が定義される。粗絞り対象項目ｄ１１には、「元先」および「検索条件」が対応付けられる。「元先」は、名寄せ元レコードおよび名寄せ先レコードそれぞれの粗絞り対象項目となる項目の名称を「名寄せ元項目：名寄せ先項目」として示す。検索条件は、各対象項目について、名寄せ元の該当項目の値により名寄せ先の該当項目を検索する際の検索方法を指定する。例えば、検索条件には、名寄せ元レコードの対象項目について値の連続する何れかの２文字を対象項目に含む名寄せ先レコードを検索する「ＢＹＧＲＡＭ」や、名寄せ先レコードの対象項目の値が完全に一致している対象項目を有する名寄せ先レコードを検索する「完全一致」がある。図２１（Ｂ）の例では、対象項目が「氏名：氏名」および「住所：住所」の検索条件は「ＢＹＧＲＡＭ」であることを示し、対象項目が「生年月日：生年月日」の検索条件は「完全一致」であることを示す。また、各名寄せ元レコード毎の最大検出数は、１０００件であることを示す。
【００３５】
図２２では、粗絞りによる名寄せ処理の一部として、名寄せ元の１件の名寄せ元レコードＭ１に対する名寄せ処理の途中経過と結果を示す。名寄せ先である顧客表１０１Ａには、例えば２００万件のレコードが格納されている。そして、粗絞り処理１０２は、粗絞り定義１０２ａに基づいて、粗絞り対象項目毎に名寄せ元レコードＭ１の該当項目の値を条件として、名寄せ先レコードの該当項目を検索する「検索方法（名寄せ先項目名＝名寄せ元項目の値）」で表される各条件をＯＲした粗絞りの検索条件Ｋ１を生成する。ここでは、検索条件Ｋ１は、「ＢＹＧＲＡＭ（氏名＝田中一郎）  ＯＲ  ＢＹＧＲＡＭ（住所＝北海道札幌市ＡＡＡＡ）  ＯＲ  完全一致（生年月日＝1958.8.3）」と生成される。そして、粗絞り処理１０２は、生成した検索条件Ｋ１で名寄せ先である顧客表１０１Ａを検索して検索結果の名寄せ先レコードを名寄せ元レコードＭ１に対する粗絞り結果として検索結果１０２ｂに出力する。ここで、粗絞り定義１０２ａに最大検出数が規定されている場合は、粗絞り処理１０２は、検索したレコードの中から粗絞り定義１０２ａに定義された最大検出数（図２１（Ｂ）の例では１０００件）のレコードを選定して、結果を検索結果１０２ｂとして出力する。例えば、ここでは、粗絞り処理１０２は、粗絞りの結果として、平均１００件のレコードを検索結果１０２ｂとして出力する。なお、図２２では、粗絞りの結果について、名寄せ先レコードのＩＤのみ示している。
【００３６】
そして、名寄せ処理１０３は、検索結果１０２ｂの各レコードを名寄せ先として名寄せ元レコードＭ１との間で照合処理を行う。例えば、名寄せ処理１０３は、照合処理の途中結果として、名寄せ元レコードＭ１に対する名寄せ先のレコードＭ１、Ｍ３、Ｍ４、Ｍ５・・・の組毎に、評価関数の適用結果、重み付け結果および総合評価値を対応付けて出力する。そして、名寄せ処理１０３は、照合後に、名寄せ元レコードＭ１および名寄せ先のレコードＭ１、Ｍ３、Ｍ４、Ｍ５・・・の組毎に、名寄せに関する判定を実行し、判定結果を出力する。
【００３７】
上述したように、粗絞りによる名寄せ処理では、例えば名寄せ元と名寄せ先が同じレコード群である自己名寄せであって名寄せ対象（名寄せ元および名寄せ先）が２００万件である場合には、名寄せ元１件について粗絞りの結果として平均１００件が残ると仮定すると、２００万件×１００件＝２億組の照合処理による名寄せが完了する。前述したように粗絞りを使用しない総当りの名寄せは２００万件×２００万件＝４兆組の照合処理が必要なので、粗絞りによる名寄せ処理は、名寄せ元および名寄せ先のレコードについて、総当りで照合する場合と比較して、約１／２００００の照合でよいこととなり、名寄せに係る照合を高速化することができる。
【００３８】
ところで、粗絞りによる名寄せ処理では、名寄せ元レコード毎に名寄せ先と一致する可能性のあるレコードを粗く絞り込み、絞り込んだ名寄せ先と名寄せ元レコードとを照合することで、大規模な名寄せの高速化を実現した。しかしながら、名寄せ処理では、粗絞りによる名寄せ処理のほかに、大規模な名寄せを高速化する「ウィンドウ分割」という技術がある。この技術は、自己名寄せに使用され、名寄せ処理を行う前に、予め設定した項目の値（ウィンドウ）に基づいて名寄せ対象をグループに分割し、分割したグループ内でのみ照合するようにすることで、大規模な名寄せの高速化を実現する。
【００３９】
［ウィンドウ分割による名寄せの高速化技術］
図２３は、「ウィンドウ分割」による名寄せを説明する図である。図２３に示すように、ウィンドウ分割を実行するウィンドウ分割処理２０１は、ウィンドウ分割で用いられる項目を定義したウィンドウ分割定義２０１ａに基づいて、名寄せ対象２００を複数のグループに分割する。そして、ウィンドウ分割処理２０１は、分割したグループを分割結果２０２−１〜ｎ（ｎは自然数）として出力する。このウィンドウ分割定義２０１ａの詳細については、後述する。なお、ウィンドウ分割による名寄せでは、名寄せ元および名寄せ先のレコードの項目が一致している自己名寄せに適用される。
【００４０】
例えば、ウィンドウ分割処理２０１は、２００万件の名寄せ対象２００を４万グループからなる分割結果２０２−１〜ｎに分割することによって、各グループの平均レコード数を平均５０件にする。この場合、名寄せ処理２０３による照合は、グループ毎の総当りで行われるので、５０件×５０件×４万グループ＝１億組の照合となる。
【００４１】
ここで、ウィンドウ分割について、図２４を参照しながら説明する。図２４は、ウィンドウ分割の一例を説明する図である。図２４に示すように、ウィンドウ分割で採用されるウィンドウは、複数の項目の値の全部または一部を組み合わせたものもある。図２４の例では、ウィンドウ分割処理２０１は、郵便番号の先頭３桁の値とカナ名の先頭１文字の値とを組み合わせた値をウィンドウとしてウィンドウ分割をする。そして、名寄せ処理２０３は、異なるウィンドウ同士のグループ間で名寄せを行わず、同じウィンドウのグループ内でのみ名寄せを行う。例えば、名寄せ処理２０３は、郵便番号の先頭３桁「２１１」とカナ名の先頭１文字の「ア」とを組み合わせたウィンドウ「２１１ア」のグループ内でのみ名寄せを行う。一方、名寄せ処理２０３は、郵便番号の先頭３桁「２１１」とカナ名の先頭１文字「ア」とを組み合わせたウィンドウ「２１１ア」のグループと郵便番号の先頭３桁「２１１」とカナ名の先頭１文字「ＮＵＬＬ」とを組み合わせたウィンドウ「２１１ＮＵＬＬ」のグループとの間では名寄せを行わない。結果として、ウィンドウが異なるレコード間の名寄せは行われない。
【００４２】
次に、ウィンドウ分割による名寄せの処理手順について、図２５を参照しながら説明する。図２５は、ウィンドウ分割による名寄せの処理手順を示すフローチャートである。
【００４３】
まず、ウィンドウ分割処理２０１は、ウィンドウ分割定義２０１ａを読み込んで動作環境を設定し（ステップＳ２００）、ウィンドウ分割を行う（ステップＳ２０１）。すなわち、ウィンドウ分割処理２０１は、読み込んだウィンドウ分割定義２０１ａに基づいて、名寄せ元および名寄せ先である名寄せ対象２００を複数のグループに分割する。
【００４４】
続いて、名寄せ処理２０３は、ウィンドウ分割を行った結果である複数のグループの中から未処理のグループを取り出す（ステップＳ２０２）。そして、名寄せ処理２０３は、取り出したグループ内で名寄せ元レコードを順に取り出す（ステップＳ２０３）。さらに、名寄せ処理２０３は、名寄せ元レコードと同一のグループ内の未処理の名寄せ先レコードを順に取り出す（ステップＳ２０４）。
【００４５】
そして、名寄せ処理２０３は、名寄せ元レコードと名寄せ先レコードとの照合処理を行う（ステップＳ２０５）。なお、照合処理の手順は、図２０と同様であるので、説明を省略する。そして、名寄せ処理２０３は、照合結果を名寄せ候補集合に格納する（ステップＳ２０６）。なお、照合結果には、総合評価値が含まれる。
【００４６】
続いて、名寄せ処理２０３は、グループ内に残りの名寄せ先レコードが有るか否かを判定する（ステップＳ２０７）。グループ内に残りの名寄せ先レコードが有ると判定された場合には（ステップＳ２０７；Ｙｅｓ）、名寄せ処理２０３は、残りの名寄せ先レコードを取り出すべく、ステップＳ２０４に移行する。
【００４７】
一方、グループ内に残りの名寄せ先レコードが無いと判定された場合には（ステップＳ２０７；Ｎｏ）、名寄せ処理２０３は、名寄せ候補集合に格納された各総合評価値について閾値による判定を実行して判定結果を出力する（ステップＳ２０８）。総合評価値についての閾値による判定処理の手順は、図１９と同様であるので、説明を省略する。
【００４８】
続いて、名寄せ処理２０３は、グループ内に残りの名寄せ元レコードが有るか否かを判定する（ステップＳ２０９）。グループ内に残りの名寄せ元レコードが有ると判定された場合には（ステップＳ２０９；Ｙｅｓ）、名寄せ処理２０３は、残りの名寄せ元レコードを取り出すべく、ステップＳ２０３に移行する。
【００４９】
一方、グループ内に残りの名寄せ元レコードが無いと判定された場合には（ステップＳ２０９；Ｎｏ）、名寄せ処理２０３は、ウィンドウ分割を行った結果である複数のグループの中に残りのグループが有るか否かを判定する(ステップＳ２１０)。複数のグループの中に残りのグループが有ると判定された場合には（ステップＳ２１０；Ｙｅｓ）、名寄せ処理２０３は、残りのグループを取り出すべく、ステップＳ２０２に移行する。一方、複数のグループの中に残りのグループが無いと判定された場合には（ステップＳ２１０；Ｎｏ）、名寄せ処理２０３は、ウィンドウ分割による名寄せを終了する。
【００５０】
次に、ウィンドウ分割による名寄せ処理の具体例について、図２６および図２７を参照しながら説明する。図２６は、ウィンドウ分割定義のデータ構造の一例を示す図であり、図２６（Ａ）がウィンドウ分割定義の内容を示す図であり、図２６（Ｂ）が、ウィンドウ分割定義の具体例を示す図である。図２７は、ウィンドウ分割による名寄せの具体例を示し、図２７Ａがウィンドウ分割の具体例を説明する図であり、図２７Ｂがウィンドウ分割後の名寄せの具体例を説明する図である。
【００５１】
図２６（Ａ）に示すように、ウィンドウ分割定義２０１ａは、ウィンドウ分割で用いられる項目（項目データの一部を使用するときは項目と対象データの位置指定）をウィンドウキーとして記憶する。すなわち、ウィンドウ分割定義２０１ａは、ウィンドウキーで指定された項目の値によってウィンドウ分割を行うことを定義する。図２６（Ｂ）の例において、ウィンドウ分割定義２０１ａには、ウィンドウキーｄ２１として郵便番号が定義されている。
【００５２】
図２７Ａに示すように、ウィンドウ分割処理２０１は、名寄せ対象を顧客表２００Ａとし、顧客表２００Ａのレコードについてウィンドウキーである郵便番号の値でウィンドウ分割を行う。ここでは、ウィンドウ分割処理２０１は、郵便番号の値をウィンドウキーとしてグループを分けるので、同じ郵便番号の値毎に顧客表２００Ａのレコードについて５万件のグループ２０２Ａ−１〜ｎを作成する。そして、各グループの平均レコード数は、４０件になる。なお、実際の郵便番号は１０数万件存在するが、ここでは、顧客表２００Ａに存在する郵便番号は５万件であると仮定する。そして、ウィンドウ分割処理２０１がウィンドウ分割を行った後、名寄せ処理２０３がウィンドウ分割によって分割されたグループ毎に名寄せを行う。
【００５３】
図２７Ｂでは、ウィンドウ分割後の名寄せ処理の一部として、郵便番号が「００４−００２１」であるグループ２０２Ａ−１内の名寄せ処理の途中経過と結果を示す。名寄せ処理２０３は、グループ２０２Ａ−１内のレコードを名寄せ元レコードおよび名寄せ先レコードとし、名寄せ元レコードに対して名寄せ先レコードとの名寄せを行う。例えば、名寄せ処理２０３は、名寄せ元レコードＭ１に対して、名寄せ先レコードＭ１、Ｍ３、Ｍ５・・・との組毎に、評価関数の適用結果、重み付け結果および総合評価値を対応付けて出力する。そして、名寄せ処理２０３は、照合後に、名寄せ元レコードＭ１および名寄せ先レコードＭ１、Ｍ３、Ｍ５・・・の組毎に、名寄せに関する判定をし、判定結果を出力する。
【００５４】
上述したように、ウィンドウ分割による名寄せ処理では、分割されたグループが５万件であると仮定すると、１つのグループ内のレコード件数が平均４０件となるので、４０件×４０件×５万グループ＝８千万組の照合が必要となる。したがって、図２７の例に示すウィンドウ分割による名寄せ処理は、名寄せ対象のレコード２００Ａについて、全てのレコードの総当りで照合する場合（４兆組）と比較して、約１／５００００の照合でよいこととなり、名寄せに係る照合を高速化することができる。
【００５５】
しかしながら、上述した大規模な名寄せを高速化する技術であっても、名寄せに係る照合を高速化することができない場合がある。例えば、「粗絞り」による名寄せでは、名寄せ先に名寄せ元レコードと類似するレコードが多い場合には、粗絞りによる検索結果１０２ｂの件数が多くなるので、名寄せ元レコードとの照合の組み合わせを削減するという効果が低下する。この結果、粗絞りによる名寄せ処理１０３は、名寄せに係る照合を高速化することができない場合がある。
【００５６】
また、「ウィンドウ分割」による名寄せは、自己名寄せだけに適用できる技術なので、名寄せ元および名寄せ先のレコードの項目が異なる他者名寄せの場合には、対応できない。したがって、この場合には、ウィンドウ分割処理２０１は使えないので、名寄せに係る照合を高速化することができない。
【００５７】
また、「ウィンドウ分割」による名寄せでは、ウィンドウ分割に用いられる項目（ウィンドウキー）の値に情報がないＮＵＬＬ値が多い場合、以下の問題が生じる。ウィンドウ分割処理２０１は、ウィンドウキーの値がＮＵＬＬ値であるグループのレコード件数が大きくなり、大きいレコード件数間の総当りで名寄せ処理２０３が実行されるため、照合の組み合わせ削減の効果が小さくなる。また、名寄せ処理２０３は、ウィンドウキーの値が異なるグループ間では名寄せしないので、ウィンドウキーに値を持つレコードと値がＮＵＬＬ値であるレコードとの間では名寄せを行わないが、ＮＵＬＬ値には本来は特定の値が入ることが想定される場合には名寄せする必要が生じる。したがって、かかる場合には、名寄せ処理２０３は、別個にＮＵＬＬ値を含むグループと値を持つ全てのグループとの間で総当りの照合処理を行う必要があるので、ウィンドウ分割による照合の組み合わせ削減の効果が小さくなり、名寄せに係る照合を高速化することができない。
【００５８】
また、「ウィンドウ分割」による名寄せでは、分割されたグループの数が所定数より小さいと、照合の組み合わせ削減の効果が小さくなり、名寄せに係る照合を高速化することができない。例えば、図２７Ａにおいて、ウィンドウキーを郵便番号の値に代えて郵便番号の先頭３桁の値にすると、ウィンドウ分割によって分割されるグループの数が５万件から２００件程度に変わる。そうすると、各グループの平均レコード数が１万件となるので、１万件×１万件×２００グループ＝２００億組の照合が必要となる。分割されたグループが５万件の場合には、８千万組の照合が必要であったので、分割されたグループが２００件になると、照合の組み合わせが相当増大することとなる。
【００５９】
また、「ウィンドウ分割」による名寄せでは、ウィンドウ分割に用いられる項目（ウィンドウキー）の値に偏りがあると、グループによってレコード数にムラが生じ、照合の組み合わせ削減の効果が小さくなり、多くのレコードを有するグループの影響が大きくなって名寄せに係る照合を高速化することができない。例えば、図２７Ａにおいて、仮に、同一の郵便番号の顧客が１０万人存在すると、このグループだけで１０万件×１０万件＝１００億組の照合が必要となる。各グループの平均レコード数が４０件の場合には、全体で８千万組の照合が必要であったので、１グループであってもレコード数が１０万件のグループがあると、照合の組み合わせが相当増大することとなる。
【実施例】
【００６０】
［実施例に係る情報照合装置の構成］
図１は、実施例に係る情報照合装置の構成を示す機能ブロック図である。情報照合装置１は、項目に対応する値の集合から構成される複数のレコードについて、レコード間を照合し、レコード間の同一性、類似性および関連性を判定する装置である。図１に示すように、情報照合装置１は、不揮発性記憶部１１、制御部１２および揮発性記憶部１３を有する。不揮発性記憶部１１は、ＡＣ電源またはバッテリ等から給電されなくても保持するデータを失わない記憶領域である。さらに、不揮発性記憶部１１は、名寄せ元ＤＢ１１１、名寄せ先ＤＢ１１２、分割定義１１３、検索定義１１４および名寄せ定義１１５を有する。なお、不揮発性記憶部１１は、例えば、フラッシュメモリ（flash  memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置である。
【００６１】
名寄せ元ＤＢ１１１は、名寄せするレコード（名寄せ元レコード）を複数記憶するＤＢ（database）である。名寄せ先ＤＢ１１２は、名寄せ相手となるレコード（名寄せ先レコード）を複数記憶するＤＢである。本実施例では、名寄せ先ＤＢ１１２には、大規模なレコードを記憶しているものとして説明する。なお、名寄せ元ＤＢ１１１および名寄せ先ＤＢ１１２は、項目が完全に一致している場合であっても、項目が一部一致である場合であっても、項目が完全に一致していなくても一部の項目に関連性がある場合であっても良い。また、名寄せ元ＤＢ１１１および名寄せ先ＤＢ１１２が同じ情報を有するＤＢであっても良いし、１つのＤＢであっても良い。さらに名寄せ元ＤＢ１１１は必ずしもＤＢ（Ｄａｔａｂａｓｅ）である必要はなく、レコードを順次取り出す機能を有すればＸＭＬやＣＳＶファイル等でも良い。同様に名寄せ先ＤＢ１１２ＤＢは必ずしもＤＢ（Ｄａｔａｂａｓｅ）である必要はなく、レコードを順次取り出す機能と項目による検索機能を有すればＸＭＬやＣＳＶファイル等でも良い。分割定義１１３、検索定義１１４および名寄せ定義１１５については、後述する。
【００６２】
制御部１２は、名寄せ元レコードの名寄せを行う際に、名寄せ先ＤＢ１１２に記憶された名寄せ先レコードを２段階で絞込む２段階絞込み処理を行う。さらに、制御部１２は、絞込み条件生成部１２１、検索部１２２および名寄せ部１２３を有する。なお、制御部１２は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路またはＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等の電子回路である。
【００６３】
揮発性記憶部１３は、ＡＣ電源またはバッテリ等から給電されなくなると保持するデータを失ってしまう記憶領域である。さらに、揮発性記憶部１３は、分割処理結果１３１および検索処理結果１３２を有する。なお、揮発性記憶部１３は、例えば、ＲＡＭ（Random  Access  Memory）、ＤＲＡＭ（Dynamic  Random  Access  Memory）等の半導体メモリ素子の記憶装置である。
【００６４】
絞込み条件生成部１２１は、名寄せ元レコードに含まれる名寄せ対象項目の値について、検索定義１１４で定義された検索条件と、分割定義１１３で定義された分割条件とをＡＮＤで結合して、名寄せ先のレコードを絞り込む絞込み条件を生成する。ここで、分割定義１１３とは、名寄せ先ＤＢ１１２の名寄せする範囲（名寄せ範囲）を限定する条件を定義したファイルである。言い換えると、分割定義１１３は、名寄せ先ＤＢ１１２に記憶された複数の名寄せ先レコードのうち名寄せ範囲と名寄せ範囲でない範囲に分割する定義であるともいえる。また、検索定義１１４とは、名寄せ元レコードに含まれる名寄せ対象項目の値について、少なくとも類似または関連する可能性のない名寄せ先レコードの候補を落とす条件を定義したファイルである。
【００６５】
分割定義１１３の一例について、図２を参照しながら説明する。図２は、分割定義のデータ構造の一例を示す図である。図２（Ａ）では、分割定義１１３の内容を示し、図２（Ｂ）では、分割定義１１３の具体例を示す。図２（Ａ）に示すように、分割定義１１３は、対象項目Ｂ１、分割条件Ｂ２およびＮＵＬＬ値の扱いＢ３を対応付けて記憶する。対象項目Ｂ１は、名寄せ先を分割するためのキーとなる項目を示す。対象項目Ｂ１には、名寄せ元レコードおよび名寄せ先レコードについて、双方の対応する項目が対で設定される。分割条件Ｂ２は、対象項目Ｂ１で示される項目と当該項目の値とによって名寄せ先ＤＢ１１２の名寄せ先レコードを分割する条件を示す。ＮＵＬＬ値の扱いＢ３は、対象項目の値にＮＵＬＬ値が設定されているレコードを後続する検索の対象にするか否かを示す。
【００６６】
図２（Ｂ）に示すように、分割定義１１３は、「元先」ｂ１、「条件」ｂ２および「ＮＵＬＬ値」ｂ３を分割対象条件ｂ９として記憶する。「元先」ｂ１は、対象項目Ｂ１に対応し、「名寄せ元の項目：名寄せ先の項目」を記述する。「条件」ｂ２は、分割条件Ｂ２に対応する。「ＮＵＬＬ値」ｂ３は、ＮＵＬＬ値の扱いＢ３に対応する。例えば、「元先」ｂ１には、名寄せ元レコードの項目を郵便番号とし、名寄せ先レコードの項目を郵便番号とした双方の対象項目が設定される。「条件」ｂ２には、分割条件として「＝」が設定される。「ＮＵＬＬ値」ｂ３には、対象項目の値にＮＵＬＬ値が設定されている全てのレコードを後続する検索の対象にすることを示す「ＡＬＬ」が設定される。これにより、図２（Ｂ）の分割定義１１３から作成される分割条件は、「郵便番号＝名寄せ元レコードの郵便番号の値  ＯＲ  郵便番号＝ＮＵＬＬ」となる。なお、図２（Ｂ）では、分割対象条件ｂ９が１個の場合を説明したが、分割対象条件ｂ９が複数であっても良い。
【００６７】
また、検索定義１１４の一例について、図３を参照しながら説明する。図３は、検索定義のデータ構造の一例を示す図である。図３（Ａ）では、検索定義１１４の内容を示し、図３（Ｂ）では、検索定義１１４の具体例を示す。図３（Ａ）に示すように、検索定義１１４は、対象項目Ｋ１、検索条件Ｋ２対応付けて記憶し、必要に応じて最大検出数Ｋ３を記憶することができる。対象項目Ｋ１は、名寄せ先を粗く絞り込むためのキーとなる項目を示す。対象項目Ｋ１には、名寄せ元レコードおよび名寄せ先レコードについて、双方の対応する項目が設定される。検索条件Ｋ２は、対象項目Ｋ１で示される項目と当該項目の値とによって名寄せ先ＤＢ１１２を検索する条件を示す。検索条件Ｋ２には、例えば連続する２文字が一致する値を検索する「ＢＹＧＲＡＭ」や値が完全に一致する値を検索する「完全一致」がある。最大検出数Ｋ３は、１つの名寄せ元レコードに対して検索される検索結果の最大レコード数を示し、最大検出数Ｋ３が無い場合は無制限であることを示す。
【００６８】
図３（Ｂ）に示すように、検索定義１１４は、「元先」ｋ１−１〜３および検索条件ｋ２−１〜３を対応付けて対象条件ｋ１２−１〜３とし、この対象条件ｋ１２−１〜３および最大検出数ｋ３を記憶する。「元先」ｋ１−１〜３は、対象項目Ｋ１に対応する。「検索条件」ｋ２−１〜３は、検索条件Ｋ２に対応する。最大検出数ｋ３は、最大検出数Ｋ３に対応する。例えば、「元先」ｋ１−１には、名寄せ元レコードの項目を氏名とし、名寄せ先レコードの項目を氏名とした双方の対象項目が設定される。「検索条件」ｋ２−１には、「ＢＹＧＲＡＭ」が設定される。また、「元先」ｋ１−３には、名寄せ元レコードの項目を生年月日とし、名寄せ先レコードの項目を生年月日とした双方の対象項目が設定される。「検索条件」ｋ２−３には、「完全一致」が設定される。これにより、図３（Ｂ）の検索定義１１４から作成される検索条件は、「ＢＹＧＲＡＭ(氏名＝名寄せ元レコードの氏名の値)  ＯＲ  ＢＹＧＲＡＭ（住所＝名寄せ元レコードの住所の値)  ＯＲ  完全一致（生年月日＝名寄せ元レコードの生年月日の値）」となる。また、名寄せ元１レコードについて作成された検索条件を適用した結果の最大レコード件数は最大検出数ｋ３として１０００件と定義されている。
【００６９】
図１に戻って、具体的には、絞込み条件生成部１２１は、分割定義１１３に定義された分割対象条件ｂ９を順次取得する。また、絞込み条件生成部１２１は、取得した分割対象条件ｂ９に含まれる「元先」ｂ１の項目と「条件」ｂ２と名寄せ元レコードの当該項目の値とから分割条件を生成する。また、絞込み条件生成部１２１は、取得した分割対象条件ｂ９に含まれるＮＵＬＬ値ｂ３が後続する検索の対象にすることを示す場合には、「元先」ｂ１の項目の値としてＮＵＬＬ値を有効とする条件を分割条件とＯＲで結合する。そして、絞込み条件生成部１２１は、分割対象条件ｂ９が複数有る場合には、各分割対象条件ｂ９から生成された分割条件をＡＮＤで結合する。
【００７０】
また、絞込み条件生成部１２１は、検索定義１１４に定義された対象条件ｋ１２を順次取得する。また、絞込み条件生成部１２１は、取得した対象条件ｋ１２に含まれる「元先」ｋ１の項目と「検索条件」ｋ２と名寄せ元レコードの当該項目の値とから検索条件を生成する。そして、絞込み条件生成部１２１は、対象条件ｋ１２が複数有る場合には、各対象条件ｋ１２から生成された検索条件をＯＲで結合する。また、絞込み条件生成部１２１は、生成した分割条件および生成した検索条件をＡＮＤで結合して、名寄せ先のレコードを絞り込む絞り込み条件を生成する。
【００７１】
検索部１２２は、絞込み条件生成部１２１によって生成された絞込み条件に基づいて、名寄せ先ＤＢ１１２から名寄せ先となるレコードを検索する。さらに、検索部１２２は、分割処理部１２２ａおよび検索処理部１２２ｂを有する。
【００７２】
分割処理部１２２ａは、絞込み条件生成部１２１によって生成された絞込み条件内の分割条件に合致するレコードを、名寄せ先ＤＢ１１２から検索する。すなわち、分割処理部１２２ａは、名寄せ先ＤＢ１１２の名寄せ先を名寄せ範囲と名寄せしない範囲に分割する。そして、分割処理部１２２ａは、検索した結果のレコードを分割処理結果１３１に格納する。分割処理結果１３１に格納されたレコードが、後続する検索処理部１２２ｂによる検索の対象となる。なお、分割処理部１２２ａは、予め名寄せ先ＤＢ１１２の名寄せ対象項目に関して構築されたインデックスを用いて、名寄せ先ＤＢ１１２の名寄せ先を名寄せ範囲と名寄せしない範囲に分割するようにしても良い。
【００７３】
検索処理部１２２ｂは、絞込み条件生成部１２１によって生成された絞込み条件内の検索条件に合致するレコードを、分割処理結果１３１から検索する。すなわち、検索処理部１２２ｂは、分割処理結果１３１に記憶されたレコードのうち名寄せの可能性のない候補を落とす処理を行う。そして、検索処理部１２２ｂは、検索した結果のレコードを検索処理結果１３２に格納する。検索処理結果１３２に格納されたレコードが、後続する名寄せ部１２３による照合の対象となる。
【００７４】
前述の分割処理部１２２ａと検索処理部１１２ｂは論理的な機能であり、必ずしも２段階に分けて実行する必要は無い。すなわち、検索部１２２は絞り込み条件生成部１２１で生成された絞込み条件の全てを使って名寄せ先ＤＢ１１２の検索を行うことによって、分割処理結果１３１を生成することなく、直接検索処理結果１３２を出力するように構成してもよい。さらに、検索部１２２による名寄せ先ＤＢ１１２の検索は、対象項目のインデックスを使用してもよい。
【００７５】
名寄せ部１２３は、検索処理結果１３２を名寄せ先として、名寄せ定義１１５に基づいて、名寄せ元レコードの名寄せを行う。この名寄せ定義１１５には、名寄せ対象項目や名寄せ対象項目毎に適用される評価関数および重みと、結果判定の閾値が定義される。閾値には、Ｗｈｉｔｅ判定用の上位の閾値およびＢｌａｃｋ判定用の下位の閾値が定義される。なお、名寄せ定義１１５のデータ構造は、図１６と同様であるので、説明を省略する。具体的には、名寄せ部１２３は、検索処理結果１３２に記憶された名寄せ先レコードから順次名寄せ先レコードを取得する。また、名寄せ部１２３は、取得した名寄せ先レコードおよび名寄せ元レコードの各名寄せ対象項目の値について、名寄せ対象項目毎に規定された評価関数を適用して照合を行う。また、名寄せ部１２３は、照合の結果、各名寄せ対象項目の評価値に名寄せ対象項目毎の重み付けを行い、得られた各値を加算し、総合評価値を導出する。また、名寄せ部１２３は、残りの名寄せ先レコードについても、同様に、名寄せ元レコードおよび名寄せ先レコードの組についての総合評価値を導出する。また、名寄せ部１２３は、名寄せ元レコードおよび名寄せ先レコードの組についての総合評価値を含む名寄せ候補集合を作成する。また、名寄せ部１２３は、名寄せ定義１１５に予め定義されている閾値に基づいて、名寄せ候補集合に属するレコードの組について名寄せに関する判定を行う。ここで、閾値による判定処理を総合評価値の導出直後に実施して判定結果を出力するように構成してもよく、この場合には総合評価値を含む名寄せ候補集合を残す必要は無くなる。
【００７６】
［名寄せ処理の全体の手順］
ここで、情報照合装置１による名寄せ処理の全体の手順について、図４を参照しながら説明する。図４は、名寄せ処理の全体の手順を示すフローチャートである。まず、制御部１２は、名寄せ対象となる名寄せ元ＤＢ１１１および名寄せ先ＤＢ１１２から、レコード内の項目のデータを順次抽出する（ステップＳ１０１）。次に、制御部１２は、抽出したデータの性質を分析するプロファイリングを行う（ステップＳ１０２）。この結果、人がプロファイリングに基づいて、どの項目とどの項目とを名寄せ対象にするかを含めた名寄せ方法を決定し、決定した名寄せ方法に応じた名寄せツールを設定する。次に、制御部１２は、設定した名寄せツールにしたがって、抽出したデータについて名寄せしやすいデータに整形するクレンジング処理を行う（ステップＳ１０３）。この後、制御部１２は、名寄せ元ＤＢ１１１に対応する名寄せ元の各レコードについて、名寄せ先ＤＢ１１２に対応するの名寄せ先レコードを２段階で絞込む２段階絞込み処理を行いながら名寄せを実行し、名寄せ結果を出力する（ステップＳ１０４）。その後、人が、名寄せ結果の妥当性について検証や承認を行い、名寄せ先ＤＢ１１２に対する名寄せ結果の反映等、必要な処理をすることとなる。なお、本発明は、名寄せ処理（ステップＳ１０４）に関するものなので、本明細書では名寄せ処理（ステップＳ１０４）を中心に説明している。
【００７７】
［実施例に係る２段階絞込み処理の手順］
次に、実施例に係る２段階絞込み処理の手順を、図５を参照しながら説明する。図５は、実施例に係る２段階絞込み処理の手順を示すフローチャートである。
【００７８】
名寄せの実行指示があると、まず、制御部１２は、分割定義１１３、検索定義１１４、および名寄せ定義１１５を読み込んで動作環境を設定する（ステップＳ１２）。そして、制御部１２は、名寄せ元ＤＢ１１１から名寄せする対象となる名寄せ元レコードを順に取り出す（ステップＳ１３）。
【００７９】
続いて、絞込み条件生成部１２１は、取り出した名寄せ元レコードから絞込み条件を生成する（ステップＳ１４）。そして、検索部１２２は、名寄せ先ＤＢ１１２に対して生成された絞込み条件を適用して名寄せ先ＤＢ１１２の名寄せ先レコードを絞り込む（ステップＳ１５）。具体的には、分割処理部１２２ａは、絞込み条件生成部１２１によって生成された絞込み条件内の分割条件に合致するレコードを、名寄せ先ＤＢ１１２から検索し、検索したレコードを分割処理結果１３１に格納する。そして、検索処理部１２２ｂは、絞込み条件生成部１２１によって生成された絞込み条件内の検索条件に合致するレコードを、分割処理結果１３１から検索し、検索したレコードを、検索処理結果１３２に格納する。
【００８０】
なお、この名寄せ先レコードを絞り込む処理（ステップＳ１５）は、必ずしも２段階に分けて実行する必要は無い。すなわち、検索部１２２は絞り込み条件生成部１２１で生成された絞込み条件の全てを使って名寄せ先ＤＢ１１２の検索を行うことによって、分割処理結果１３１を生成することなく、直接検索処理結果１３２を出力するように構成してもよい。さらに、検索部１２２による名寄せ先ＤＢ１１２の検索は、対象項目のインデックスを使用してもよい。
【００８１】
続いて、名寄せ部１２３は、検索処理結果１３２に格納された各レコードを名寄せ先として順に取り出し（ステップＳ１６）、名寄せ元レコードと名寄せ先レコードとの照合処理を行う（ステップＳ１７）。なお、照合処理の手順は、図２０と同様であるので、説明を省略する。そして、名寄せ部１２３は、照合結果を名寄せ候補集合に格納する（ステップＳ１８）。なお、照合結果には、総合評価値が含まれる。
【００８２】
続いて、名寄せ部１２３は、検索処理結果１３２に残りのレコードが有るか否かを判定する（ステップＳ１９）。そして、検索処理結果１３２に残りのレコードが有ると判定された場合には（ステップＳ１９；Ｙｅｓ）、名寄せ部１２３は、残りのレコードを取り出すべく、ステップＳ１６に移行する。
【００８３】
一方、検索処理結果１３２に残りのレコードが無いと判定された場合には（ステップＳ１９；Ｎｏ）、名寄せ部１２３は、名寄せ候補集合に格納された総合評価値について閾値による判定を実行して判定結果を出力する（ステップＳ２０）。ここで、総合評価値について閾値による判定を実行して判定結果を出力する処理（ステップＳ２０）は、名寄せ元レコードと名寄せ先レコードとの照合処理（ステップＳ１７）の直後に行うことも可能であり、この場合は、名寄せ候補集合への格納処理（ステップＳ１８）は不要になる。
【００８４】
そして、制御部１２は、名寄せ元ＤＢ１１１に残りの名寄せ元レコードが有るか否かを判定する（ステップＳ２１）。名寄せ元ＤＢ１１１に残りの名寄せ元レコードが有ると判定された場合には（ステップＳ２１；Ｙｅｓ）、制御部１２は、残りの名寄せ元レコードを取り出すべく、ステップＳ１３に移行する。一方、名寄せ元ＤＢ１１１に残りの名寄せ元レコードが無いと判定された場合には（ステップＳ２１；Ｎｏ）、制御部１２は、２段階絞込み処理による名寄せの実行を終了する。
【００８５】
［実施例に係る絞込み条件生成処理の手順］
次に、図５に示すＳ１４の処理手順について、図６を参照しながら説明する。図６は、実施例に係る絞込み条件生成処理の手順を示すフローチャートである。
【００８６】
まず、絞込み条件生成部１２１は、分割定義１１３に分割対象条件ｂ９が有るか否かを判定する（ステップＳ３１）。分割対象条件ｂ９が無いと判定された場合には（ステップＳ３１；Ｎｏ）、絞込み条件生成部１２１は、デフォルトの分割条件を生成する（ステップＳ３２）。デフォルトの分割条件とは分割しない条件として「ＴＲＵＥ」を設定する。そして、絞込み条件生成部１２１は、検索条件を生成すべく、ステップＳ３９に移行する。
【００８７】
一方、分割対象条件ｂ９が有ると判定された場合には（ステップＳ３１；Ｙｅｓ）、絞込み条件生成部１２１は、分割定義１１３に未処理の分割対象条件ｂ９が有るか否かを判定する（ステップＳ３３）。未処理の分割対象条件ｂ９が無いと判定された場合には（ステップＳ３３；Ｎｏ）、絞込み条件生成部１２１は、検索条件を生成すべく、ステップＳ３９に移行する。
【００８８】
一方、未処理の分割対象条件ｂ９が有ると判定された場合には（ステップＳ３３；Ｙｅｓ）、絞込み条件生成部１２１は、分割定義１１３から未処理の分割対象条件ｂ９を取得する（ステップＳ３４）。そして、絞込み条件生成部１２１は、取得した分割対象条件ｂ９内のＮＵＬＬ値ｂ３に基づいて、ＮＵＬＬ値を後続する検索の対象にするか否かを判定する（ステップＳ３５）。ＮＵＬＬ値を後続する検索の対象にすると判定された場合には（ステップＳ３５；Ｙｅｓ）、絞込み条件生成部１２１は、「対象項目＝Ｘ  ＯＲ  対象項目＝ＮＵＬＬ」を条件として生成する（ステップＳ３６）。一方、ＮＵＬＬ値を後続する検索の対象にしないと判定された場合には（ステップＳ３５；Ｎｏ）、絞込み条件生成部１２１は、「対象項目＝Ｘ」を条件として生成する（ステップＳ３７）。なお、「対象項目」とは、「元先」ｂ１で指定される「名寄せ元の項目名：名寄せ先の項目名」の内、名寄せ先の項目名を示す。また、「Ｘ」は、名寄せ元レコードにおける「元先」ｂ１で指定される名寄せ元の項目の値を示す。また、「＝」は「条件」ｂ２で指定される「＝」を示す。
【００８９】
そして、絞込み条件生成部１２１は、生成した条件を既処理の分割対象条件ｂ９で生成された条件とＡＮＤで結合する（ステップＳ３８）。そして、絞込み条件生成部１２１は、ステップＳ３３に移行する。
【００９０】
全ての分割対象条件ｂ９についての処理が完了すると（ステップＳ３３；Ｎｏ）、絞込み条件生成部１２１は、検索定義１１４に対象条件ｋ１２が有るか否かを判定する（ステップＳ３９）。対象条件ｋ１２が無いと判定された場合には（ステップＳ３９；Ｎｏ）、絞込み条件生成部１２１は、デフォルトの検索条件を生成する（ステップＳ４０）。デフォルトの検索条件とは無条件で前件を結果に残す条件として「＊」を設定する。そして、絞込み条件生成部１２１は、絞込み条件を生成すべく、ステップＳ４４に移行する。
【００９１】
一方、対象条件ｋ１２が有ると判定された場合には（ステップＳ３９；Ｙｅｓ）、絞込み条件生成部１２１は、検索定義１１４に未処理の対象条件ｋ１２が有るか否かを判定する（ステップＳ４１）。未処理の対象条件ｋ１２が無いと判定された場合には（ステップＳ４１；Ｎｏ）、絞込み条件生成部１２１は、絞込み条件を生成すべく、ステップＳ４４に移行する。
【００９２】
一方、未処理の対象条件ｋ１２が有ると判定された場合には（ステップＳ４１；Ｙｅｓ）、絞込み条件生成部１２１は、検索定義１１４から未処理の対象条件ｋ１２を取得する（ステップＳ４２）。そして、絞込み条件生成部１２１は、対象項目、検索条件および名寄せ元レコードにおける当該対象項目の値から検索条件を生成する。ここで生成される検索条件は「検索条件（対象項目＝Ｘ）」として生成する。なお、「対象項目」とは、「元先」ｋ１で指定される「名寄せ元の項目名：名寄せ先の項目名」の内、名寄せ先の項目名を示す。また「Ｘ」は、名寄せ元レコードにおける「元先」ｋ１で指定される名寄せ元の項目の値を示す。また、「検索条件」とは、検索条件ｋ２で表される検索方法を示す。そして、絞込み条件生成部１２１は、生成した条件を既処理の対象条件ｋ１２で生成された条件とＯＲで結合する（ステップＳ４３）。そして、絞込み条件生成部１２１は、ステップＳ４１に移行する。
【００９３】
全ての対象条件ｋ１２についての検索条件生成処理が完了すると（ステップＳ４１；Ｎｏ）、絞込み条件生成部１２１は、生成した検索条件を先に生成した分割条件とＡＮＤで結合し（ステップＳ４４）、絞込み条件を生成する。
【００９４】
［実施例に係る絞込み条件生成の動作］
次に、実施例に係る絞込み条件生成の動作を、図７を参照しながら説明する。図７は、実施例に係る絞込み条件生成の動作例を説明する図である。図７に示すように、分割定義１１３Ａおよび検索定義１１４Ａに基づいて、名寄せ元レコードＪ１０について、絞込み条件Ｓ１が生成される。なお、分割定義１１３Ａには、対象項目Ｂ１を「郵便番号：郵便番号」とし、分割条件Ｂ２を「＝」とした条件であってＮＵＬＬ値の扱いＢ３を「ＡＬＬ」（ＮＵＬＬ値を後続する検索の対象とする）とした条件（分割対象条件ｂ９）が定義されているものとする。また、検索定義１１４Ａには、第１の対象条件、第２の対象条件および第３の対象条件が定義されているものとする。第１の対象条件とは、対象項目ｋ１−１を「氏名：氏名」とし、検索条件ｋ２−１を「ＢＹＧＲＡＭ」とした条件であるものとする。第２の対象条件とは、対象項目ｋ１−２を「住所：住所」とし、検索条件ｋ２−２を「ＢＹＧＲＡＭ」とした条件であるものとする。第３の対象条件とは、対象項目ｋ１−３を「生年月日：生年月日」とし、検索条件ｋ２−３を「完全一致」とした条件であるものとする。また、名寄せ元レコードＪ１０および名寄せ先ＤＢ１１２は共に、ＩＤ、氏名、郵便番号、住所および生年月日の項目を備えるものとする。
【００９５】
まず、絞込み条件生成部１２１は、分割定義１１３Ａから未処理の分割対象条件ｂ９を取得し、取得した分割対象条件ｂ９内の「対象項目」Ｂ１を示す「郵便番号：郵便番号」の名寄せ元項目「郵便番号」の値「004-0021」を名寄せ元レコードＪ１０から取得し、名寄せ先項目名として「郵便番号」を取得する。また、絞込み条件生成部１２１は、取得した分割対象条件ｂ９内の「条件」Ｂ２から「＝」を取得する。また、絞込み条件生成部１２１は、取得した分割対象条件ｂ９内のＮＵＬＬ値の扱いＢ３を示す「ＡＬＬ」に基づいて、ＮＵＬＬ値である郵便番号を後続する検索の対象にすると判定する。そして、絞込み条件生成部１２１は、「郵便番号＝“004-0021”ＯＲ  郵便番号＝ＮＵＬＬ」を分割条件Ｓ１−１として生成する。
【００９６】
次に、絞込み条件生成部１２１は、検索定義１１４Ａから未処理の第１の対象条件を取得し、取得した第１の対象条件内の対象項目Ｋ１から名寄せ元の項目名「氏名」と名寄せ先の項目名「氏名」を取得し、検索条件Ｋ２および名寄せ元レコードＪ１０における当該対象項目の値から第１の条件を生成する。ここでは、絞込み条件生成部１２１は、「ＢＹＧＲＡＭ（氏名＝“田中一郎”）」を第１の条件として生成する。また、絞込み条件生成部１２１は、第２の対象条件および名寄せ元レコードＪ１０における当該対象項目の値から第２の条件を生成する。ここでは、絞込み条件生成部１２１は、「ＢＹＧＲＡＭ（住所＝“北海道札幌市ＡＡＡＡ”）」を第２の条件として生成する。そして、絞込み条件生成部１２１は、第２の条件を既処理の第１の条件とＯＲで結合した検索条件を生成する。
【００９７】
さらに、絞込み条件生成部１２１は、第３の対象条件および名寄せ元レコードＪ１０における当該対象項目の値から第３の条件を生成する。ここでは、絞込み条件生成部１２１は、「完全一致（生年月日＝“1958.8.3”）」を第３の条件として生成する。そして、絞込み条件生成部１２１は、生成した第３の条件を既処理の検索条件とＯＲで結合した新たな検索条件Ｓ１−２を生成する。そして、絞込み条件生成部１２１は、生成した検索条件Ｓ１−２を既に生成した分割条件Ｓ１−１とＡＮＤで結合し、絞込み条件Ｓ１を生成する。
【００９８】
ところで、上記の絞込み条件生成部１２１では、各名寄せ元レコードに対する名寄せ先レコードの絞込み条件を生成する都度、分割定義１１３Ａおよび検索定義１１４Ａから絞込み条件を生成する場合を説明した。絞込み条件生成部１２１はこれに限定されるものではなく、例えば１個目の名寄せ元レコードに対する絞込み条件を生成する際に、分割定義１１３Ａおよび検索定義１１４Ａから絞込み条件のテンプレートを生成しておいても良い。そして、絞込み条件生成部１２１は、生成したテンプレートを用いて、各名寄せ元レコードに対する名寄せ先レコードの絞込み条件を生成する。
【００９９】
［絞り込み条件生成部の変形例］
そこで、以下の絞込み条件生成部１２１の変形例では、１個目の名寄せ元レコードに対する名寄せ先の絞込み条件を生成する際に、絞込み条件のテンプレートを生成し、生成したテンプレートを用いて各名寄せ元レコードに対する絞込み条件を生成する場合を、図８を参照しながら説明する。図８は、実施例に係る絞込み条件のテンプレートを生成する場合の絞込み条件生成の動作例を説明する図である。
【０１００】
図８に示すように、分割定義１１３Ａおよび検索定義１１４Ａから生成された絞込み条件のテンプレートを用いて、名寄せ元レコードＪ１１についての絞込み条件Ｓ２が生成される。なお、分割定義１１３Ａ、検索定義１１４Ａおよび名寄せ元レコードＪ１１の内容は、図７と同様であるので、説明を省略する。
【０１０１】
まず、絞込み条件生成部１２１は、１個目の名寄せ元レコードに対する名寄せ先の絞込み条件を生成する際に、分割定義１１３Ａから分割条件のテンプレートを生成する。ここでは、分割条件のテンプレートＴ１−１は、「郵便番号＝Ｘ  ＯＲ  郵便番号＝ＮＵＬＬ」として生成される。なお、Ｘは、対象とする名寄せ元レコードの対応する項目の値を入れる変数であるものとする。次に、絞込み条件生成部１２１は、１個目の名寄せ元レコードに対する絞込み条件を生成する際に、検索定義１１４Ａから検索条件のテンプレートを生成する。ここでは、検索条件のテンプレートＴ１−２は、「ＢＹＧＲＡＭ（氏名＝Ｘ）  ＯＲ  ＢＹＧＲＡＭ（住所＝Ｘ）  ＯＲ  完全一致（生年月日＝Ｘ）」として生成される。なお、Ｘは、対象とする名寄せ元レコードの対応する項目の値を入れる変数であるものとする。そして、絞込み条件生成部１２１は、生成した検索条件のテンプレートＴ１−２を分割条件のテンプレートＴ１−１とＡＮＤで結合し、絞込み条件のテンプレートＴ１を生成する。
【０１０２】
そして、絞込み条件生成部１２１は、名寄せ元レコードＪ１１の絞込み条件を生成する際に、生成した絞込み条件のテンプレートＴ１内の変数Ｘに名寄せ元レコードＪ１１の対象項目の値を埋め込み、絞込み条件Ｓ２を生成する。ここでは、絞込み条件生成部１２１は、絞込み条件のテンプレートＴ１内の「郵便番号」に対する変数Ｘに「００４−００２１」を埋め込む。また、絞込み条件生成部１２１は、絞込み条件のテンプレートＴ１内の「氏名」に対する変数Ｘに「田中一郎」を埋め込む。加えて、絞込み条件生成部１２１は、絞込み条件のテンプレートＴ１内の「住所」に対する変数Ｘに「北海道札幌市ＡＡＡＡ」を埋め込む。さらに、絞込み条件生成部１２１は、絞込み条件のテンプレートＴ１内の「生年月日」に対する変数Ｘに「1958.8.3」を埋め込む。この結果、絞込み条件生成部１２１は、名寄せ元レコードＪ１１の絞込み条件Ｓ２を生成する。
【０１０３】
［検索部の変形例］
ところで、上記の検索部１２２は、名寄せ元レコードから生成された絞込み条件内の各条件を名寄せ先レコードに適用した結果、論理式がＴＲＵＥとなる名寄せ先レコードを検索するものである。図９は、実施例に係る検索を説明する図であり、図９（Ａ）では、ある名寄せ元レコードにおける絞込み条件を示し、図９（Ｂ）では、絞込み条件内の各条件をある名寄せ先レコードに適用した場合の検索結果の例を示す。
【０１０４】
図９（Ｂ）に示すように、検索部１２２は、「郵便番号＝“004-0021”」がＴＲＵＥ（「Ｔ」と略記）であるので、「郵便番号＝ＮＵＬＬ」がＦＡＬＳＥ（「Ｆ」と略記）となり、これらをＯＲで算術して、「Ｔ」（ａ１）を導出する。また、検索部１２２は、「ＢＹＧＲＡＭ（氏名＝“田中一郎”）」が「Ｔ」、「ＢＹＧＲＡＭ(住所＝“北海道札幌市ＡＡＡＡ”)」が「Ｔ」および「完全一致（生年月日＝“1958.8.3”）」が「Ｆ」であるので、これらをＯＲで算出して、「Ｔ」（ａ２）を導出する。そして、検索部１２２は、導出した２つの「Ｔ」をＡＮＤで算出して、「Ｔ」（ａ３）を導出する。すると、検索部１２２は、各条件を適用した結果に対する論理式がＴＲＵＥとなるので、この名寄せ先レコードを検索結果として抽出する。
【０１０５】
上記の検索部１２２では、名寄せ元レコードから生成された絞込み条件内の各条件を名寄せ先レコードに適用した結果、論理式がＴＲＵＥとなる名寄せ先レコードを検索する場合を説明した。検索部１２２はこれに限定されるものではなく、名寄せ元レコードから生成された絞込み条件内の各条件に適合する度合いに基づいて名寄せ先レコードを点数化し、点数の高い順に名寄せ先レコードを検索結果として抽出する「順序付け検索」であっても良い。
【０１０６】
図１０は、実施例に係る順序付け検索の一例を説明する図である。図１０に示すように、検索部１２２は、絞込み条件内の各条件の適用結果である「Ｔ」および「Ｆ」に応じて点数を付け、ＯＲ条件およびＡＮＤ条件で総合点を算出して、検索対象である名寄せ先レコードに総合点を付ける。図１０の例では、「Ｔ」の場合には１点、「Ｆ」の場合には０点とするものとする。また、検索部１２２は、ＯＲ条件の場合に、各条件の適用結果の点数を加算し、ＡＮＤ条件の場合に、各条件の適用結果の点数を乗算する。すなわち、検索部１２２は、「郵便番号＝“004-0021”」が「Ｔ」、「郵便番号＝ＮＵＬＬ」が「Ｆ」であるので、これらのＯＲ条件で「１＋０」として「１」（ａ４）を算出する。また、検索部１２２は、「ＢＹＧＲＡＭ（氏名＝“田中一郎”）」が「Ｔ」、「ＢＹＧＲＡＭ(住所＝“北海道札幌市ＡＡＡＡ”)」が「Ｔ」および「完全一致（生年月日＝“1958.8.3”）」が「Ｆ」であるので、これらのＯＲ条件で「１＋１＋０」として「２」（ａ５）を算出する。そして、検索部１２２は、それぞれ算出した２つの点数をＡＮＤ条件で乗算し、総合点「２」（ａ６）を算出する。その後、検索部１２２は、名寄せ先レコードを総合点の昇順に並べて、例えば上位から検索定義１１４に定義された最大検出数ｋ３だけレコードを検索結果として抽出する。当然のことながら、この名寄せ先レコードを総合点の昇順に並べる処理は総合点が０の名寄せ先レコードを除外することができる。
【０１０７】
図１１は、実施例に係る順序付け検索の別の一例を説明する図である。図１１に示すように、検索部１２２は、絞込み条件内の各条件に応じて０〜１の小数点の点数を付け、ＯＲ条件およびＡＮＤ条件で総合点を算出して、検索対象の名寄せ先レコードに総合点を付ける。図１１の例では、検索部１２２は、ＯＲ条件の場合に、各条件の適用結果の点数を加算し、ＡＮＤ条件の場合に、各条件の適用結果の点数を乗算する。すなわち、検索部１２２は、「郵便番号＝“004-0021”」が「１．０」、「郵便番号＝ＮＵＬＬ」が「０」であるので、これらのＯＲ条件では「１．０＋０」として「１．０」（ａ７）を算出する。また、検索部１２２は、「ＢＹＧＲＡＭ（氏名＝“田中一郎”）」が「１．０」、「ＢＹＧＲＡＭ(住所＝“北海道札幌市ＡＡＡＡ”)」が「０．６」および「完全一致（生年月日＝“1958.8.3”）」が「０」であるので、これらのＯＲ条件では「１．０＋０．６＋０」として「１．６」（ａ８）を算出する。そして、検索部１２２は、それぞれ算出した２つの点数をＡＮＤ条件で乗算し、総合点「１．６」（ａ９）を算出する。その後、検索部１２２は、名寄せ先レコードを総合点の昇順に並べて、例えば上位から検索定義１１４に定義された最大検出数ｋ３だけレコードを検索する。ここでも、この名寄せ先レコードを総合点の昇順に並べる処理は総合点が０の名寄せ先レコードを除外することができる。
【０１０８】
［実施例の効果］
上記実施例によれば、情報照合装置１が、少なくとも類似または関連する可能性のない名寄せ先レコードの候補を落とす条件を示す検索定義１１４および名寄せ先レコードの範囲を限定する条件を示す分割定義１１３を有する。そして、情報照合装置１が、名寄せ元レコードに含まれる名寄せ対象項目の値について、検索定義１１４で定義された検索条件と、分割定義１１３で定義された分割条件とをＡＮＤで結合して、名寄せ先レコードを絞り込む絞込み条件を生成する。そして、情報照合装置１が、生成した絞込み条件に基づいて、名寄せ先ＤＢ１１２から名寄せ先レコードを検索する。
【０１０９】
かかる構成によれば、情報照合装置１は、検索定義１１４で定義された検索条件と、分割定義１１３で定義された分割条件とをＡＮＤで結合し、絞込み条件を生成して、生成した絞込み条件に基づいて、名寄せ先レコードを検索する。このため、情報照合装置１は、検索条件および分割条件による２段階の絞込みを一体化し、纏めて検索できるので、名寄せ対象の性質に適応した条件に基づいて絞り込んだ名寄せ先レコードの件数を削減することができる。この結果、情報照合装置１は、大規模な名寄せにおいて、名寄せに係る照合を高速に行うことができる。
【０１１０】
また、分割定義１１３で定義される分割条件は、業務ルール等により特定の項目の値によって名寄せ結果が確実に確定できる場合に効果的であり、一方、検索定義１１４で定義された検索条件は、対象項目の照合結果に曖昧性がある場合に効果的であり、分割条件と検索条件を組み合わせることによって名寄せ対象の性質に最適な絞り込み条件となる。具体的には、情報照合装置１は、名寄せ先ＤＢ１１２に名寄せ元レコードと類似するレコードが多く存在する場合であっても、検索条件のみならず分割条件を踏まえた２段階の名寄せ先の絞込みを行うので、効果的に名寄せ元レコードとの照合の組み合わせを削減できる。また、情報照合装置１は、分割条件により絞り込まれた名寄せ先レコードの件数が多い場合であっても、検索条件を踏まえた２段階の名寄せ先の絞込みを行うので、効果的に名寄せ元レコードとの照合の組み合わせを削減できる。
【０１１１】
ここで、実施例に係る２段階絞込みにおける効果について、図１２を参照しながら説明する。図１２は、実施例に係る２段階絞込みにおける効果を説明する図である。図１２では、２段階絞込みによる名寄せ処理の一部として、１件の名寄せ元レコードＭ１に対する名寄せ処理の途中経過と結果を示す。名寄せ先ＤＢの顧客マスタＤＢ１１２Ａには、例えば２００万件のレコードが格納されている。そして、絞込み条件生成部１２１は、名寄せ元レコードＭ１に含まれる名寄せ対象項目の値について、検索定義１１４で定義された検索条件Ｓ３−２と分割定義１１３で定義された分割条件Ｓ３−１とを生成してＡＮＤで結合する。この結果、絞込み条件生成部１２１は、名寄せ先レコードを絞り込む絞込み条件Ｓ３を生成する。そして、検索部１２２は、生成した絞込み条件Ｓ３に基づいて、顧客マスタＤＢ１１２Ａから名寄せ先レコードを検索し、検索した結果を検索処理結果１３２に格納する。例えば、検索部１２２は、２段階絞込みの結果として、１件の名寄せ元レコードＭ１に対して平均１０件のレコードを検索処理結果１３２に格納している。ここでは、検索部１２２は、検索処理結果１３２に名寄せ先レコードＭ１、Ｍ３、Ｍ５・・・を格納する。なお、図１２では、検索した結果の名寄せ先レコードについて、ＩＤのみ示している。
【０１１２】
そして、名寄せ部１２３は、検索処理結果１３２の各レコードを名寄せ先として名寄せ元レコードＭ１との間で照合を行う。例えば、名寄せ部１２３は、照合の途中結果として、名寄せ元レコードＭ１に対応する名寄せ先レコードＭ１、Ｍ３、Ｍ５・・・の組毎に、評価関数の適用結果、重み付け結果および総合評価値を対応付けて出力する。そして、名寄せ部１２３は、照合後に、名寄せ元レコードＭ１に対応する名寄せ先レコードＭ１、Ｍ３、Ｍ５・・・の組毎に、名寄せに関する判定をし、判定結果を出力する。
【０１１３】
このように、２段階絞込みでは、２００万件の自己名寄せの場合に、１件の名寄せ元レコードについて２段階絞込みの結果として平均１０件が残ると仮定すると、２００万件×１０件＝２０００万組の照合が必要となる。一方、名寄せ元レコードおよび名寄せ先レコードについて、総当りで照合する場合には、２００万件×２００万件＝４兆組の照合が必要となる。したがって、名寄せ部１２３は、総当りで照合する場合と比較して、約１／２０万の照合でよいこととなり、名寄せに係る照合を飛躍的に高速化することができる。なお、「粗絞り」による名寄せでは、検索条件を先に図１２を用いて説明した２段階絞込みの検索条件と同一とする場合に、２００万件×１００件＝２億組の照合が必要となる。したがって、名寄せ部１２３は、「粗絞り」による名寄せで照合する場合と比較して、１／１０の照合でよいこととなり、名寄せに係る照合を高速化することができる。また、「ウィンドウ分割」による名寄せでは、ウィンドウ分割を先に図１２を用いて説明した２段階絞込みの分割条件と同一の項目を使用する場合には、分割された全てのグループのレコード数が４０件で揃っているという最も良い条件の場合に４０件×４０件×５万ウィンドウ＝８千万組の照合が必要となる。したがって、名寄せ部１２３は、「ウィンドウ分割」による名寄せで照合する場合と比較して、１／４の照合でよいこととなり、名寄せに係る照合を高速化することができる。
【０１１４】
また、上記実施例によれば、分割条件には、名寄せ対象項目の値がＮＵＬＬ値であるレコードの対する条件をＯＲで結合した条件を含むことができるようにした。かかる構成によれば、名寄せ先ＤＢ１１２に名寄せ対象項目の値としてＮＵＬＬ値が多く含まれる場合であっても、分割処理部１２２ａが、絞込み条件内の分割条件にＮＵＬＬ値を含めて合致するレコードを、名寄せ先ＤＢ１１２から検索し、分割処理結果１３１に格納することとなる。この結果、検索処理部１２２ｂが、名寄せ対象項目の値にＮＵＬＬ値が含まれる名寄せ先レコードを絞込み条件内の検索条件によって絞り込む対象とできるので、ＮＵＬＬ値が含まれる名寄せ先レコードであっても名寄せ漏れを防止することができる。
【０１１５】
また、上記実施例によれば、検索部１２２は、予め名寄せ対象項目に関して構築されたインデックスを用いて、名寄せ先ＤＢ１１２から名寄せ先レコードを検索する。かかる構成によれば、検索部１２２は、インデックスを用いて名寄せ先ＤＢ１１２から名寄せ先レコードを検索することとしたので、名寄せ先レコードに直接アクセスすることなく高速に２段階絞込み処理を実現することができる。
【０１１６】
また、上記実施例によれば、絞込み条件生成部１２１は、絞込み条件に含まれる名寄せ対象項目の値の部分を変数とした絞込み条件のテンプレートを生成する。そして、絞込み条件生成部１２１は、生成したテンプレートに基づいて、変数の部分に名寄せ元レコードが有する該当項目の値を埋め込み、絞込み条件を生成する。かかる構成によれば、絞込み条件生成部１２１は、絞込み条件のテンプレートを生成し、生成したテンプレートを用いて絞込み条件を生成できるので、より高速に２段階絞込み処理を実現することができる。
【０１１７】
また、上記実施例によれば、検索部１２２は、絞込み条件に含まれる各条件の適合度合いに基づいて点数化を行い、点数の高い順に所定数のレコードを検索結果として抽出する。かかる構成によれば、検索部１２２は、点数の高い順に所定数のレコードを検索結果として抽出することとしたので、検索結果が相当数になるような場合であっても、低い点数のレコードを検索結果に含めないので、後続する名寄せに係る照合を高速に行うことができ、更に名寄せ結果として残すべき点数の高いレコードを最大検出数で指定される制限により絞込み段階で落とす可能性を低減する効果がある。
【０１１８】
また、上記実施例によれば、検索条件は、検索定義１１４で定義された複数の条件をＯＲで結合した条件を含むようにした。かかる構成によれば、絞込み条件生成部１２１は、複数の条件をＯＲで結合した検索条件を生成するので何れかの条件に適合するレコードは検索結果に残ることになり、誤って名寄せ元レコードと類似または関連する可能性のある名寄せ先レコードの候補を落とす危険を低減することができる。
【０１１９】
なお、分割定義１１３の対象項目Ｂ１には、名寄せ元レコードおよび名寄せ先レコードについて、双方の対応する項目が設定されるものとして説明した。したがって、名寄せ元レコードについての項目および名寄せ先レコードについての項目を同じ項目としても良いし、異なる項目としても良い。これにより、情報照合装置１は、自己名寄せのみならず、項目構成が異なる他者名寄せや、名寄せ元の１項目に対応して名寄せ先の複数項目を条件とする名寄せの高速化を図ることができる。
【０１２０】
また、検索定義１１４の対象項目Ｋ１には、名寄せ元レコードおよび名寄せ先レコードについて、双方の対応する項目が設定されるものとして説明した。したがって、名寄せ元レコードについての項目および名寄せ先レコードについての項目を同じ項目としても良いし、異なる項目としても良い。これにより、情報照合装置１は、自己名寄せのみならず、項目構成が異なる他者名寄せや、名寄せ元の１項目に対応して名寄せ先の複数項目を条件とする名寄せの高速化を図ることができる。
【０１２１】
［プログラム等］
なお、情報照合装置１は、既知のパーソナルコンピュータ、ワークステーション等の情報処理装置に、上記した不揮発性記憶部１１、制御部１２および揮発性記憶部１３等の各機能を搭載することによって実現することができる。
【０１２２】
また、図示した情報照合装置１の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、情報照合装置１の分散・統合の具体的態様は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、分割処理部１２２ａおよび検索処理部１２２ｂを１個の部として統合しても良い。一方、絞込み条件生成部１２１を、分割条件を生成する分割条件生成部と、検索条件を生成する検索条件生成部と、生成した分割条件と検索条件とから絞込み条件を生成する絞込み条件生成部とに分散しても良い。また、名寄せ先ＤＢ１１２や名寄せ元ＤＢ１１１等の各種記憶部を情報照合装置１の外部装置としてネットワーク経由で接続するようにしても良い。
【０１２３】
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することによって実現することができる。そこで、以下では、図１３を用いて、図１に示した情報照合装置１の制御部１２と同様の機能を有する情報照合プログラムを実行するコンピュータの一例を説明する。
【０１２４】
図１３は、情報照合プログラムを実行するコンピュータを示す図である。図１３に示すように、コンピュータ１０００は、ＲＡＭ１０１０と、ネットワークインタフェース装置１０２０と、ＨＤＤ１０３０と、ＣＰＵ１０４０、媒体読取装置１０５０及びバス１０６０とを有する。ＲＡＭ１０１０、ネットワークインタフェース装置１０２０、ＨＤＤ１０３０、ＣＰＵ１０４０、媒体読取装置１０５０は、バス１０６０によって接続されている。
【０１２５】
そして、ＨＤＤ１０３０には、図１に示した制御部１２と同様の機能を有する情報照合プログラム１０３１が記憶される。また、ＨＤＤ１０３０には、図１に示した名寄せ先ＤＢ１１２、名寄せ元ＤＢ１１１、分割定義１１３および検索定義１１４に対応する情報照合関連情報１０３２が記憶される。
【０１２６】
そして、ＣＰＵ１０４０が情報照合プログラム１０３１をＨＤＤ１０３０から読み出してＲＡＭ１０１０に展開することにより、情報照合プログラム１０３１は、情報照合プロセス１０１１として機能するようになる。そして、情報照合プロセス１０１１は、情報照合関連情報１０３２から読み出した情報等を適宜ＲＡＭ１０１０上の自身に割り当てられた領域に展開し、この展開したデータ等に基づいて各種データ処理を実行する。
【０１２７】
媒体読取装置１０５０は、情報照合プログラム１０３１がＨＤＤ１０３０に格納されていない場合であっても情報照合プログラム１０３１を記憶する媒体等から情報照合プログラム１０３１を読み取る。媒体読取装置１０５０には、例えばＣＤ−ＲＯＭや光ディスク装置がある。また、ネットワークインタフェース装置１０２０は、外部装置とネットワーク経由で接続する装置であり、有線、無線に対応するものである。
【０１２８】
なお、上記の情報照合プログラム１０３１は、必ずしもＨＤＤ１０３０に格納されている必要はなく、ＣＤ−ＲＯＭ等の媒体読取装置１０５０に記憶されたこのプログラムを、コンピュータ１０００が読み出して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ、ＷＡＮ（Wide  Area  Network）等を介してコンピュータ１０００に接続される他のコンピュータ（またはサーバ）等にこのプログラムを記憶させておいても良い。この場合には、コンピュータ１０００がネットワークインタフェース装置１０２０を介してこれらからプログラムを読み出して実行する。
【０１２９】
以上の実施例に係る実施形態に関し、さらに以下の付記を開示する。
【０１３０】
（付記１）項目に対応した値の集合から構成される複数のレコードについて、レコード間を照合し、レコード間の同一性、類似性および関連性を判定する情報照合装置であって、
前記複数のレコードを記憶する照合先のデータベースと、
照合元のレコードに含まれる照合対象の項目の値について、少なくとも類似または関連する可能性のない照合先のレコードの候補を落とす条件を示す検索定義で定義された検索条件と、照合先のレコードの照合範囲を限定する条件を示す分割定義で定義された分割条件とをＡＮＤで結合して、照合先のレコードを絞り込む絞込み条件を生成する絞込み条件生成部と、
前記絞込み条件生成部によって生成された絞込み条件に基づいて、前記照合先のデータベースから、照合先となるレコードを検索する検索部と
を有することを特徴とする情報照合装置。
【０１３１】
（付記２）前記分割条件は、照合対象の項目の値に情報がない旨の条件をＯＲで結合した条件を含むことを特徴とする付記１に記載の情報照合装置。
【０１３２】
（付記３）前記検索部は、
照合対象の項目に関して予め構築されたインデックスを用いて、前記照合先のデータベースから、照合先となるレコードを検索することを特徴とする付記１または付記２に記載の情報照合装置。
【０１３３】
（付記４）前記絞込み条件生成部は、
前記絞込み条件に含まれる照合対象の項目の値の部分を変数として生成した当該絞込み条件のテンプレートに基づいて、前記変数の部分に照合元のレコードが有する値を代入し、前記絞込み条件を生成することを特徴とする付記１から付記３のいずれか１つに記載の情報照合装置。
【０１３４】
（付記５）前記検索部は、
前記絞込み条件に含まれる各条件の適合度合いに基づいて点数化を行い、点数の高い順に所定数のレコードを検索結果として抽出することを特徴とする付記１から付記４のいずれか１つに記載の情報照合装置。
【０１３５】
（付記６）前記検索条件は、前記検索定義で定義された複数の条件をＯＲで結合した条件を含むことを特徴とする付記１から付記５のいずれか１つに記載の情報照合装置。
【０１３６】
（付記７）項目に対応した値の集合から構成される複数のレコードについて、レコード間を照合し、レコード間の同一性、類似性および関連性を判定する情報照合装置に、
照合元のレコードに含まれる照合対象の項目の値について、複数のレコードを記憶する照合先のデータベースに記憶されたレコードの照合範囲を限定する条件を示す分割定義で定義された分割条件を生成し、
照合元のレコードに含まれる照合対象の項目の値について、少なくとも類似または関連する可能性のない照合先のレコードの候補を落とす条件を示す検索定義で定義された検索条件を生成し、
該生成した分割条件および該生成した検索条件をＡＮＤで結合して、照合先のレコードを絞り込む絞込み条件を生成し、
該生成した絞込み条件に基づいて、前記照合先のデータベースから、照合先となるレコードを検索する
処理を実行させる情報照合プログラム。
【０１３７】
（付記８）項目に対応した値の集合から構成される複数のレコードについて、レコード間を照合し、レコード間の同一性、類似性および関連性を判定する情報照合装置に実行させる情報照合方法であって、
照合元のレコードに含まれる照合対象の項目の値について、複数のレコードを記憶する照合先のデータベースに記憶されたレコードの照合範囲を限定する条件を示す分割定義で定義された分割条件を生成し、
照合元のレコードに含まれる照合対象の項目の値について、少なくとも類似または関連する可能性のない照合先のレコードの候補を落とす条件を示す検索定義で定義された検索条件を生成し、
該生成した分割条件および該生成した検索条件をＡＮＤで結合して、照合先のレコードを絞り込む絞込み条件を生成し、
該生成した絞込み条件に基づいて、前記照合先のデータベースから、照合先となるレコードを検索する
ことを特徴とする情報照合方法。
【符号の説明】
【０１３８】
１  情報照合装置
１１  不揮発性記憶部
１２  制御部
１３  揮発性記憶部
１１１  名寄せ元ＤＢ
１１２  名寄せ先ＤＢ
１１３  分割定義
１１４  検索定義
１１５  名寄せ定義
１２１  絞込み条件生成部
１２２  検索部
１２２ａ  分割処理部
１２２ｂ  検索処理部
１２３  名寄せ部
１３１  分割処理結果
１３２  検索処理結果
【図１】
0005585472.tif 000002
【図２】
0005585472.tif 000003
【図３】
0005585472.tif 000004
【図４】
0005585472.tif 000005
【図５】
0005585472.tif 000006
【図６】
0005585472.tif 000007
【図７】
0005585472.tif 000008
【図８】
0005585472.tif 000009
【図９】
0005585472.tif 000010
【図１０】
0005585472.tif 000011
【図１１】
0005585472.tif 000012
【図１２】
0005585472.tif 000013
【図１３】
0005585472.tif 000014
【図１４】
0005585472.tif 000015
【図１５】
0005585472.tif 000016
【図１６】
0005585472.tif 000017
【図１７】
0005585472.tif 000018
【図１８】
0005585472.tif 000019
【図１９】
0005585472.tif 000020
【図２０】
0005585472.tif 000021
【図２１】
0005585472.tif 000022
【図２２】
0005585472.tif 000023
【図２３】
0005585472.tif 000024
【図２４】
0005585472.tif 000025
【図２５】
0005585472.tif 000026
【図２６】
0005585472.tif 000027
【図２７Ａ】
0005585472.tif 000028
【図２７Ｂ】
0005585472.tif 000029