(57)【要約】【課題】効率的な並列分散処理を実現することができ、サーバのスケールアウトによる性能改善を図ることが可能な名寄せシステムを提供する。【解決手段】名寄せマスタの構成データを用いて同一の名称（例えば姓名）を含む親グループを作成する親グルーピング手段２３と、親グループ毎に名称以外の属性情報が一致する子グループを作成する子グルーピング手段２４と、子グループ毎に、子グループを構成する全データについての各主体識別情報（例えば個人番号）を、その中の最小値または最大値で統一する置換手段２５と、置換処理後の各親グループに属する各子グループを構成する各データおよび主体識別情報により、名寄せマスタ記憶手段４１に記憶された名寄せマスタを更新する名寄せマスタ更新手段２６とを設け、名寄せシステム１０を構成した。【選択図】図１
2019074874.tif 000002
【特許請求の範囲】
【請求項１】
個人、団体、またはその他の主体に関する属性情報を含むデータの集合について、同一の主体に関するデータをまとめる名寄せ処理を実行するコンピュータにより構成された名寄せシステムであって、
名寄せ処理の対象となる複数のデータとそれらの各データに関与する主体を識別する主体識別情報とを関連付けて構成される名寄せマスタを記憶する名寄せマスタ記憶手段と、
この名寄せマスタ記憶手段に記憶された前記名寄せマスタを構成する複数のデータについて、各データに含まれる属性情報のうちの主体の呼び名を示す名称を用いて、同一の名称を含むデータの集合からなる親グループを作成するグルーピング処理を実行する親グルーピング手段と、
この親グルーピング手段により作成された親グループ毎に、同一の主体であることを判定するためのマッチングパターンの構成要素としての名称以外の少なくとも１つの判定用の属性情報を用いて、同一の名称を含み、かつ、名称以外の少なくとも１つの判定用の属性情報が一致するデータの集合からなる子グループを作成するグルーピング処理を実行する子グルーピング手段と、
この子グルーピング手段により作成された子グループ毎に、子グループを構成する全てのデータについての各主体識別情報を、その中の最小値または最大値で統一するための置換処理を実行する置換手段と、
この置換手段による置換処理後の各親グループに属する各子グループを構成する各データおよびそれらの各データに対応する主体識別情報により、前記名寄せマスタ記憶手段に記憶された前記名寄せマスタを更新する処理を実行する名寄せマスタ更新手段と
を備えたことを特徴とする名寄せシステム。
【請求項２】
前記名寄せマスタ記憶手段に記憶された前回の名寄せ処理後の名寄せマスタに対し、新規追加または変更された更新用データを記憶する更新用データ記憶手段と、
この更新用データ記憶手段に記憶された全ての更新用データの各々に対し、前記名寄せマスタ記憶手段に記憶された前回の名寄せ処理後の名寄せマスタを構成する各データに関連付けられて使用されている主体識別情報と重ならない新規の仮の主体識別情報を付与する処理を実行する仮主体識別情報付与手段と、
この仮主体識別情報付与手段により仮の主体識別情報を付与された全ての更新用データを、前記名寄せマスタ記憶手段に記憶された前回の名寄せ処理後の名寄せマスタに組み込むことにより、今回の名寄せ処理の対象となる名寄せマスタを作成するマージ処理を実行するマージ手段と
を備えたことを特徴とする請求項１に記載の名寄せシステム。
【請求項３】
前記仮主体識別情報付与手段は、
前記更新用データ記憶手段に記憶された全ての更新用データの各々に対し、連番で更新用データ識別番号を付与してから、全ての更新用データをデータ単位で分割した後、
前記更新用データ識別番号を付与した状態で分割されている更新用データ毎に、前記名寄せマスタ記憶手段に記憶された前回の名寄せ処理後の名寄せマスタを構成する各データに関連付けられて使用されている主体識別情報のうちの最大値と、更新用データに付与された前記更新用データ識別番号とを加算するか、または、前記最大値と、１以上の整数と、更新用データに付与された前記更新用データ識別番号とを加算することにより、前記仮の主体識別情報を算出する処理を実行する構成とされている
ことを特徴とする請求項２に記載の名寄せシステム。
【請求項４】
Ｎを２以上の整数としたとき、前記マッチングパターンとして、必須の構成要素となる名称と名称以外の判定用の属性情報との異なる組み合わせによる第１〜第Ｎの複数のマッチングパターンがあり、いずれかのマッチングパターンに合致したときに、同一の主体であると判定する場合には、
前記子グルーピング手段として、第１〜第Ｎのマッチングパターンに対応して第１〜第Ｎの子グルーピング手段が設けられるとともに、前記置換手段として、第１〜第Ｎのマッチングパターンに対応して第１〜第Ｎの置換手段が設けられ、
第１の子グルーピング手段は、第１のマッチングパターンの構成要素としての名称以外の少なくとも１つの判定用の属性情報を用いて、同一の名称を含み、かつ、名称以外の少なくとも１つの判定用の属性情報が一致するデータの集合からなる第１の子グループを作成するグルーピング処理を実行する構成とされ、
ｍ＝２〜Ｎとしたとき、第ｍの子グルーピング手段は、第（ｍ−１）の置換手段による置換処理後のデータについて第（ｍ−１）の子グルーピング手段によるグルーピングを解除した後に、第ｍのマッチングパターンの構成要素としての名称以外の少なくとも１つの判定用の属性情報を用いて、同一の名称を含み、かつ、名称以外の少なくとも１つの判定用の属性情報が一致するデータの集合からなる第ｍの子グループを作成するグルーピング処理を実行する構成とされ、
ｅ＝１〜Ｎとしたとき、第ｅの置換手段は、第ｅの子グルーピング手段により作成された第ｅの子グループ毎に、第ｅの子グループを構成する全てのデータについての各主体識別情報を、その中の最小値または最大値で統一するための置換処理を実行する構成とされている
ことを特徴とする請求項１〜３のいずれかに記載の名寄せシステム。
【請求項５】
いずれかの親グループについての名寄せ処理でエラーが発生した場合に、その親グループに対応する名称を記憶するエラー情報記憶手段を備え、
前記名寄せマスタ更新手段は、
いずれかの親グループについての名寄せ処理でエラーが発生した場合には、エラーが発生した親グループを除く置換処理後の各親グループに属する各子グループを構成する各データおよびそれらの各データに対応する主体識別情報により、前記名寄せマスタ記憶手段に記憶された前記名寄せマスタを更新するとともに、エラーが発生した親グループに対応する名称を前記エラー情報記憶手段に記憶させる処理を実行する構成とされている
ことを特徴とする請求項１〜４のいずれかに記載の名寄せシステム。
【請求項６】
名寄せ処理のアルゴリズムを親グループ単位で切り替えるための切替対象となる名称を記憶する切替対象記憶手段と、
前記エラー情報記憶手段に記憶された同一の名称のエラー情報の通算回数または発生頻度が予め定められた回数または頻度に達したか否かを判断し、達したと判断した場合にその名称を前記切替対象記憶手段に記憶させる処理を実行するか、またはユーザによるアルゴリズム切替対象の名称の入力設定を受け付けて前記切替対象記憶手段に記憶させる処理を実行する切替対象設定手段とを備え、
前記子グルーピング手段および／または前記置換手段は、
前記切替対象記憶手段に記憶されている名称に対応する親グループについての名寄せ処理について、通常のアルゴリズムとは異なるアルゴリズムを適用して処理を実行する構成とされている
ことを特徴とする請求項５に記載の名寄せシステム。
【請求項７】
過去の実際の入力結果として得られた不適切な入力状態の名称とこれに対応する適切な入力状態の名称とを対応付けて記憶する修正情報記憶手段と、
前記不適切な入力状態の名称および前記適切な入力状態の名称についてのユーザによる入力設定を受け付けて前記修正情報記憶手段に記憶させる処理を実行する修正情報設定手段とを備え、
前記親グルーピング手段は、
前記修正情報記憶手段に記憶されている前記不適切な入力状態の名称を、前記適切な入力状態の名称に修正してから、前記親グループを作成するグルーピング処理を実行する構成とされている
ことを特徴とする請求項１〜６のいずれかに記載の名寄せシステム。
【請求項８】
異なる種類の属性情報を用いて予め学習して得られた異なる種類の属性情報間の関係を導くためのパラメータを記憶するモデル記憶手段と、
名称以外の属性情報について前記マッチングパターンの構成要素となる属性情報がブランクになっているデータがある場合に、前記子グルーピング手段により前記子グループを作成するグルーピング処理よりも前の段階で、前記モデル記憶手段に記憶された前記パラメータを用いて、当該データに含まれる名称および／またはその他の属性情報から、ブランクになっている属性情報の内容を推定し、推定した属性情報の内容をブランクに埋め込む処理を実行する属性情報推定手段と
を備えたことを特徴とする請求項１〜７のいずれかに記載の名寄せシステム。
【請求項９】
請求項１〜８のいずれかに記載の名寄せシステムとして、コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、個人、団体、またはその他の主体に関する属性情報を含むデータの集合について、同一の主体に関するデータをまとめる名寄せ処理を実行するコンピュータにより構成された名寄せシステムおよびプログラムに係り、例えば、契約、請求、取引等に関するトランザクションデータの名寄せ処理等に利用できる。
【背景技術】
【０００２】
一般に、複数の個人データの中から、名前、住所、電話番号等の個人の属性情報を手掛かりとして同一人物の個人データを分別してまとめる作業は、名寄せと呼ばれている。例えば、個人が関与した契約、請求、取引等のトランザクションデータを対象として、名寄せが行われる。通常、このような名寄せを行うシステムでは、レコード単位に上記のような個人の属性情報を互いに比較（マッチング）し、同値と判定することができたレコードについて、同一人物の個人データであるものとして、同一の名寄せ用の個人番号を付与する処理を行っている。
【０００３】
従来の名寄せ方法では、通常、新規追加または変更された更新用データ（今回、新たに増えたデータ）、および、名寄せマスタの構成データ（これまでの蓄積データであって、既に少なくとも１回は名寄せ処理を経ているデータ）の双方をマッチングキーでソートした後に、１行目のレコードから順にマッチングを行う行指向で処理されている。例えば、更新用データの１行目と、名寄せマスタのうちの対応する名前を含む部分の各行とを比較し、次に、更新用データの２行目と、名寄せマスタのうちの対応する名前を含む部分の各行とを比較するといったシーケンシャルな処理を行っている。
【０００４】
また、属性情報の中で一部が一致しない同一人物についても名寄せを行うことができる名寄せ処理システムが知られている（特許文献１参照）。この名寄せ処理システムでは、（Ａ）複数のソートキー（複数の属性情報）でのソート、（Ｂ）ソートキーとして用いた属性情報が共通しているレコードの検出、（Ｃ）番号の変更を、順番に繰り返している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−２０９８５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
前述したように、従来の名寄せ方法では、ソート後に１行目のレコードから順にマッチングを行う行指向のシーケンシャルな処理を行っているので、サーバの台数増によるスケールアウト（水平スケール）の恩恵を受けることができない。
【０００７】
また、スケールアウトによらずに処理性能を向上させるには、１つのノード（１台のサーバ）内でのマルチプロセッシングによる分散処理や、サーバ自体を最新性能のものに入れ替える等によるスケールアップ（垂直スケール）が考えられるが、どちらも単一ノードに起因するボトルネック（例えば、ディスクＩ／０の制限、すなわち、ＣＰＵからディスクへアクセスする際のスレッド数についての制限）により、性能改善の頭打ちに合う可能性がある。
【０００８】
さらに、名寄せを行うために、ライセンスを受けて利用することができる既存の製品（マッチング機能）は、１コア（１つのＣＰＵ）で処理されるものであるため、処理性能を向上させることは困難である。また、ライセンスの費用はノード単位であることから、マッチング機能に関して、使用するノード数（サーバの台数）を増やすためには、ライセンス費用を追加する必要があるが、高額なライセンス費用を支払ってノード数を増やしたとしても、かけたコストに見合うだけのスケールアウトの効果が得られない可能性が高い。
【０００９】
また、前述した特許文献１に記載された名寄せ処理システムでは、（Ａ）複数のソートキー（複数の属性情報）でのソート、（Ｂ）ソートキーとして用いた属性情報が共通しているレコードの検出、（Ｃ）番号の変更を、順番に繰り返しているが、並列分散処理は行っておらず、また、並列分散処理を行おうとしても、並列分散処理に適したアルゴリズムになっていないので、結局、並列分散処理の効果が得られない。
【００１０】
すなわち、前述した特許文献１に記載された名寄せ処理システムにおいて、最初に用いる複数のソートキーを、後述する本願明細書の実施の形態における「姓名」および「住所バーコード」とし、次に用いる複数のソートキーを、「姓名」および「電話番号」とする本願への当て嵌めを考えると、最終的には、本発明と同様な、または本発明に近い名寄せ処理の結果を得ることができると考えられる。しかし、特許文献１では、上記の（Ａ），（Ｂ），（Ｃ）の処理を、順番に繰り返しているだけであり、並列分散処理を行っていないので、処理速度は遅い。また、特許文献１において、無理矢理に並列分散処理を行うことを考えた場合でも、（Ｂ）の処理で何組かのレコードの集合が検出されるので、それらの集合内での（Ｃ）番号の変更については、別のプロセッサまたは別のサーバに割り当てられ、並列分散処理が可能となるかもしれない。なぜなら、（Ｂ）の処理を行った後では、タスク間の先行制約がないと思われるためである。しかし、（Ｃ）番号の変更についての並列分散処理を行うことができたとしても、それは、その次の（Ａ）ソートの処理が行われるまでの、かなり部分的な処理についての並列分散処理であるから、大きな効果は得られない。換言すれば、特許文献１の名寄せのアルゴリズムは、タスク間の先行制約が多いので、効率的な並列分散処理を実現することはできない。
【００１１】
本発明の目的は、効率的な並列分散処理を実現することができ、サーバのスケールアウトによる性能改善を図ることが可能な名寄せシステムおよびプログラムを提供するところにある。
【課題を解決するための手段】
【００１２】
＜本発明の基本構成＞
【００１３】
本発明は、個人、団体、またはその他の主体に関する属性情報を含むデータの集合について、同一の主体に関するデータをまとめる名寄せ処理を実行するコンピュータにより構成された名寄せシステムであって、
名寄せ処理の対象となる複数のデータとそれらの各データに関与する主体を識別する主体識別情報とを関連付けて構成される名寄せマスタを記憶する名寄せマスタ記憶手段と、
この名寄せマスタ記憶手段に記憶された名寄せマスタを構成する複数のデータについて、各データに含まれる属性情報のうちの主体の呼び名を示す名称を用いて、同一の名称を含むデータの集合からなる親グループを作成するグルーピング処理を実行する親グルーピング手段と、
この親グルーピング手段により作成された親グループ毎に、同一の主体であることを判定するためのマッチングパターンの構成要素としての名称以外の少なくとも１つの判定用の属性情報を用いて、同一の名称を含み、かつ、名称以外の少なくとも１つの判定用の属性情報が一致するデータの集合からなる子グループを作成するグルーピング処理を実行する子グルーピング手段と、
この子グルーピング手段により作成された子グループ毎に、子グループを構成する全てのデータについての各主体識別情報を、その中の最小値または最大値で統一するための置換処理を実行する置換手段と、
この置換手段による置換処理後の各親グループに属する各子グループを構成する各データおよびそれらの各データに対応する主体識別情報により、名寄せマスタ記憶手段に記憶された名寄せマスタを更新する処理を実行する名寄せマスタ更新手段と
を備えたことを特徴とするものである。
【００１４】
ここで、「個人、団体、またはその他の主体」における「個人」は自然人であり、「団体」は、企業、国、地方公共団体等の各種の法人や、町内会、自治会、同業者組合、大学のサークル、同好会、スポーツチーム、任意団体等のような法人格のない団体であり、「その他」は、例えば、疑似的に、契約、請求、取引、送金、決済、貯蓄、分配、付与、交換、移動、消費、貸借、コミュニケーション、対戦等の各種の行為（必ずしも法律上の行為には限定されない。）についての当事者、関係者、参加者、主催者、共催者、スポンサー、支援者等になり得るロボット、動物、駅、ビル、施設等である。
【００１５】
また、「主体の呼び名を示す名称」は、主として、自然人である個人の氏名（姓名）や、法人または法人格のない団体の名称（例えば、企業、教育機関、病院、地方公共団体、町内会、組合、同好会等の各種団体の名称）であるが、実名に限らず、芸名やニックネームやペンネーム等でもよく、その他に、例えば、契約、請求、取引等の各種の行為に関与した主体（当事者、関係者、参加者、主催者、共催者、スポンサー、支援者等）が市区町村、町内会、野球チーム、サッカーチーム等のような地域性のある主体である場合には、それらの代替名称や略称としての地名（地域の名称）であってもよく、さらには、疑似的に、ロボット、動物、駅、ビル、施設等を、契約、請求、取引等の各種の行為（必ずしも法律上の行為には限定されない。）の主体とみなせるような場合には、ロボットや動物に付された名前、駅名、ビル名、施設名等であってもよく、要するに、契約、請求、取引等に関するデータを記録する場面において、実際には異なる主体について同一の名称が付されるケースがあり得れば（例えば、代替名称や略称としての地名であれば、東京都の「原宿」と神奈川県の「原宿」等）、名寄せの効果が得られるので、そのような場合の名称が含まれる。
【００１６】
さらに、「子グルーピング手段」における「マッチングパターンの構成要素としての名称以外の少なくとも１つの判定用の属性情報」が「少なくとも１つ」とされているのは、マッチングパターンが、名称と１つの判定用の属性情報とで構成されていてもよく、名称と２以上の判定用の属性情報とで構成されていてもよい趣旨である。前者の場合は、必須の構成要素である名称およびそれ以外の属性情報（例えば、属性情報αとする。）の双方が一致していれば、同一の主体であると判断する場合であり、子グループの作成は、親グループ毎に行われるので、同一の名称を含んでいるのは前提であるため、この場合のグルーピング処理は、属性情報αが一致しているデータをまとめて１つの子グループとする処理となる。後者の場合は、必須の構成要素である名称およびそれ以外の複数の属性情報（例えば、３つの属性情報α，β，γとする。）の全てが一致していれば、同一の主体であると判断する場合であり、子グループの作成は、親グループ毎に行われるので、同一の名称を含んでいるのは前提であるため、この場合のグルーピング処理は、３つの属性情報α，β，γの全てが一致しているデータをまとめて１つの子グループとする処理となり、従って、３つの属性情報α，β，γのうち１つでも異なっているデータであれば、それらのデータは別々の子グループとして分割されることになる。
【００１７】
そして、ここでの「名寄せ処理」には、新規追加または変更された更新用データがない場合に行われる名寄せ処理、すなわち、最初に収集したデータについて行われる初回の名寄せ処理も含まれる。
【００１８】
このような本発明の名寄せシステムにおいては、親グルーピング手段を備えているので、名寄せの対象となるデータについて、先ず、同一の名称を含むデータの集合からなる親グループを作成することができ、それぞれの親グループ（名称グループ）の中で、子グループの作成処理や、主体識別情報の置換処理を実行することが可能となる。従って、親グループ単位の処理につき、並列分散処理を実現することができる。換言すれば、ある親グループ内の処理は、別の親グループ内の処理の終了を待つことなく進めることができ、ある親グループ内のいずれの処理についても、別の親グループ内のいずれの処理とのタスク間の先行制約を生じない状態となる。また、このことは、ある親グループ内の処理でエラーが発生しても、別の親グループ内の処理を完了させることができることを意味する。
【００１９】
このため、名寄せのための一連の処理の中の早い段階で、効果的なグルーピング処理が行われていることになり、全体的に見て、タスク間の先行制約の少ない並列分散処理に適したアルゴリズムを実現しているので、効率的な並列分散処理を実現することができ、サーバのスケールアウトによる性能改善を図ることが可能となる。
【００２０】
また、各親グループに分かれた後の処理においても、子グループ単位での並列分散処理が行われるので、この点でも、処理性能の向上が図られ、これらにより前記目的が達成される。
【００２１】
＜全ての更新用データの各々に対し、仮の主体識別情報を付与してから、更新用データを名寄せマスタに反映させる構成＞
【００２２】
また、前述した名寄せシステムにおいて、
名寄せマスタ記憶手段に記憶された前回の名寄せ処理後の名寄せマスタに対し、新規追加または変更された更新用データを記憶する更新用データ記憶手段と、
この更新用データ記憶手段に記憶された全ての更新用データの各々に対し、名寄せマスタ記憶手段に記憶された前回の名寄せ処理後の名寄せマスタを構成する各データに関連付けられて使用されている主体識別情報と重ならない新規の仮の主体識別情報を付与する処理を実行する仮主体識別情報付与手段と、
この仮主体識別情報付与手段により仮の主体識別情報を付与された全ての更新用データを、名寄せマスタ記憶手段に記憶された前回の名寄せ処理後の名寄せマスタに組み込むことにより、今回の名寄せ処理の対象となる名寄せマスタを作成するマージ処理を実行するマージ手段と
を備えた構成とすることが望ましい。
【００２３】
このように仮主体識別情報付与手段を備えた構成とした場合には、全ての更新用データの各々に対し、仮の主体識別情報を付与してから、更新用データを名寄せマスタに反映させるので、名寄せに必要な各種の判断処理を行う前に、全ての更新用データの各々に対し、仮の主体識別情報が付与されている状態であるため、途中の段階で付与するよりも、名寄せ処理のアルゴリズムを簡易化することが可能となる。
【００２４】
＜全ての更新用データの各々に対し、仮の主体識別情報を付与する際に、それぞれの仮の主体識別情報を、並列分散処理による計算で求める構成＞
【００２５】
さらに、上述したように仮主体識別情報付与手段を備えた構成とした場合において、
仮主体識別情報付与手段は、
更新用データ記憶手段に記憶された全ての更新用データの各々に対し、連番で更新用データ識別番号を付与してから、全ての更新用データをデータ単位で分割した後、
更新用データ識別番号を付与した状態で分割されている更新用データ毎に、名寄せマスタ記憶手段に記憶された前回の名寄せ処理後の名寄せマスタを構成する各データに関連付けられて使用されている主体識別情報のうちの最大値と、更新用データに付与された更新用データ識別番号とを加算するか、または、最大値と、１以上の整数と、更新用データに付与された更新用データ識別番号とを加算することにより、仮の主体識別情報を算出する処理を実行する構成とされていることが望ましい。
【００２６】
ここで、「更新用データ識別番号」となる「連番」は、０から付与してもよく、１から付与してもよく、２以上の整数から付与してもよい。０からの連番を付与した場合には、既に使用されている主体識別情報と重ならないようにするため、最大値と、１以上の整数（重ならないようにするためには、１でよいが、管理上等の何らかの理由で間をあける場合には、２以上の整数でもよい。）と、更新用データ識別番号（０からの連番）とを加算する。１からの連番を付与した場合には、重ならないようにするためには、最大値と、更新用データ識別番号（１からの連番）とを加算するだけでよいが、管理上等の何らかの理由で間をあける場合には、さらに１以上の整数を加算してもよい。２以上の整数からの連番を付与した場合は、管理上等の何らかの理由で間をあけることを目的として付与しているが、この場合も、重ならないようにするためには、最大値と、更新用データ識別番号（２以上の整数からの連番）とを加算するだけでよいが、さらに１以上の整数を加算してもよい。
【００２７】
このように仮の主体識別情報を、連番で付与した更新用データ識別番号や、名寄せマスタ内の主体識別情報の最大値を用いて、並列分散処理により計算で求める構成とした場合には、名寄せの一連の処理の中で、並列分散処理が行われる部分を、より一層増やすことができるので、処理性能の向上が図られる。
【００２８】
＜複数のマッチングパターンがある場合の構成＞
【００２９】
そして、以上に述べた名寄せシステムにおいて、
Ｎを２以上の整数としたとき、マッチングパターンとして、必須の構成要素となる名称と名称以外の判定用の属性情報との異なる組み合わせによる第１〜第Ｎの複数のマッチングパターンがあり、いずれかのマッチングパターンに合致したときに、同一の主体であると判定する場合には、
子グルーピング手段として、第１〜第Ｎのマッチングパターンに対応して第１〜第Ｎの子グルーピング手段が設けられるとともに、置換手段として、第１〜第Ｎのマッチングパターンに対応して第１〜第Ｎの置換手段が設けられ、
第１の子グルーピング手段は、第１のマッチングパターンの構成要素としての名称以外の少なくとも１つの判定用の属性情報を用いて、同一の名称を含み、かつ、名称以外の少なくとも１つの判定用の属性情報が一致するデータの集合からなる第１の子グループを作成するグルーピング処理を実行する構成とされ、
ｍ＝２〜Ｎとしたとき、第ｍの子グルーピング手段は、第（ｍ−１）の置換手段による置換処理後のデータについて第（ｍ−１）の子グルーピング手段によるグルーピングを解除した後に、第ｍのマッチングパターンの構成要素としての名称以外の少なくとも１つの判定用の属性情報を用いて、同一の名称を含み、かつ、名称以外の少なくとも１つの判定用の属性情報が一致するデータの集合からなる第ｍの子グループを作成するグルーピング処理を実行する構成とされ、
ｅ＝１〜Ｎとしたとき、第ｅの置換手段は、第ｅの子グルーピング手段により作成された第ｅの子グループ毎に、第ｅの子グループを構成する全てのデータについての各主体識別情報を、その中の最小値または最大値で統一するための置換処理を実行する構成とすることができる。
【００３０】
このように複数のマッチングパターンがあるときに、第（ｍ−１）の子グループの処理を行った後に、そのグルーピングを解除してから、異なるルールで作成された第ｍの子グループの処理を行う構成とした場合には、第１の子グループ単位の処理、第２の子グループ単位の処理、…の如く、異なるルールで作成された子グループ単位の処理のそれぞれにおいて、並列分散処理を実行することが可能となる。すなわち、ある第１の子グループの処理と、別の第１の子グループの処理との間で、並列分散処理を実行し、次に、ある第２の子グループの処理と、別の第２の子グループの処理との間でも、並列分散処理を実行するといったことが可能となる。このため、複数のマッチングパターンがある場合でも、効果的な並列分散処理を実行することが可能となる。
【００３１】
なお、複数のマッチングパターンがある場合には、同一のマッチングパターンに対応する子グルーピング手段による処理および置換手段による処理を複数回繰り返すようにしてもよい。例えば、２つのマッチングパターンがある場合には、第１のマッチングパターンに対応する第１の子グルーピング手段による処理および第１の置換手段による処理を実行した後に、第２のマッチングパターンに対応する第２の子グルーピング手段による処理および第２の置換手段による処理を実行し、さらに、そこで終了するのではなく、再び、第１のマッチングパターンに対応する第１の子グルーピング手段による処理（但し、初回ではなく、２回目なので、その前に実行された子グルーピングを解除する処理が含まれる。）および第１の置換手段による処理を実行してもよく、あるいは、さらに第２のマッチングパターンに対応する第２の子グルーピング手段による処理および第２の置換手段による処理を実行してもよい。そして、第１、第２、第１、第２、第１、第２、…という具合に、３回以上繰り返してもよい。３つのマッチングパターンがある場合であれば、第１、第２、第３の実行で終了するのではなく、例えば、第１、第２、第３、第１まで実行したり、第１、第２、第３、第１、第２まで実行したり、第１、第２、第３、第１、第２、第３まで実行したり、あるいは３回以上繰り返してもよい。
【００３２】
このように同一のマッチングパターンに対応する子グルーピング手段による処理および置換手段による処理を複数回繰り返すことにより、名寄せ対象のデータの中に、特殊な状態（稀にしか発生しない状態や、主体による意図的な入力がないと発生し得ない状態等）にあるデータが含まれている場合であっても、名寄せを完全に完了させるか、または完了の度合いを高めることが可能となる。すなわち、マッチングパターンの構成要素としての判定用の属性情報の選択の仕方や、複数のマッチングパターンに対応する各処理の実行順序によっては、各マッチングパターンに対応する処理を１回ずつしか実行しないと、名寄せが完了しないケースも生じ得る。特に、１つの主体（例えば１人の個人）が、偶然に、または何らかの目的で意図的（善意、悪意は問わない。）に、自分についての、ある１つの属性情報として、何通りもの入力を行い、かつ、そのような入力を複数の属性情報について行った場合には、マッチングパターンによるデータ間の連鎖が複雑になるので、各マッチングパターンの処理の１回ずつの実行では、名寄せが完了しないケースも生じ得る。従って、複数回の繰り返しにより、このような特殊なケースにも対応することが可能となり、繰り返しの回数を多くすれば、より複雑な連鎖に対応することが可能となる。
【００３３】
＜エラーが発生した場合の構成＞
【００３４】
また、以上に述べた名寄せシステムにおいて、
いずれかの親グループについての名寄せ処理でエラーが発生した場合に、その親グループに対応する名称を記憶するエラー情報記憶手段を備え、
名寄せマスタ更新手段は、
いずれかの親グループについての名寄せ処理でエラーが発生した場合には、エラーが発生した親グループを除く置換処理後の各親グループに属する各子グループを構成する各データおよびそれらの各データに対応する主体識別情報により、名寄せマスタ記憶手段に記憶された名寄せマスタを更新するとともに、エラーが発生した親グループに対応する名称をエラー情報記憶手段に記憶させる処理を実行する構成としてもよい。
【００３５】
このようにエラーが発生した親グループを除き、名寄せの結果を名寄せマスタに反映させるとともに、エラーが発生した親グループに対応する名称を、エラー情報記憶手段に記録しておく構成とした場合には、名寄せすることができない名称が含まれていても、その他の名称についての名寄せを終えることができるので、全体的な進行を滞らせることなく、あるいは、止めることなく、名寄せ処理を完了させることが可能となる。そして、このような一部の名称を除く部分的な名寄せ処理が可能となるのは、前述したように親グルーピング手段による親グループの作成処理が早い段階で行われているからであるため、この点で、上記の処理は、本発明における親グルーピング手段の設置効果を顕著に示すものとなる。
【００３６】
また、エラー情報記憶手段にエラー情報が記憶されるので、その後、人手による名寄せ作業を行う際に、その作業対象を容易に特定することができるようになるうえ、次回以降の名寄せ処理において、そのエラー情報を利用し、その名称に対応する親グループの処理を最初から回避してエラーの発生を未然に防止することも可能となる。
【００３７】
＜名寄せ処理のアルゴリズムを親グループ単位で切り替える構成＞
【００３８】
さらに、以上に述べた名寄せシステムにおいて、
名寄せ処理のアルゴリズムを親グループ単位で切り替えるための切替対象となる名称を記憶する切替対象記憶手段と、
エラー情報記憶手段に記憶された同一の名称のエラー情報の通算回数または発生頻度が予め定められた回数または頻度に達したか否かを判断し、達したと判断した場合にその名称を切替対象記憶手段に記憶させる処理を実行するか、またはユーザによるアルゴリズム切替対象の名称の入力設定を受け付けて切替対象記憶手段に記憶させる処理を実行する切替対象設定手段とを備え、
子グルーピング手段および／または置換手段は、
切替対象記憶手段に記憶されている名称に対応する親グループについての名寄せ処理について、通常のアルゴリズムとは異なるアルゴリズムを適用して処理を実行する構成としてもよい。
【００３９】
ここで、「通常のアルゴリズムとは異なるアルゴリズムを適用」することには、例えば、不適切な入力状態の属性情報（例えば、使用禁止されている絵文字やブランク等が入っている属性情報や、文字化けしやすい字体が入っている属性情報等）を、適切な入力状態の属性情報に修正する処理（例えば、絵文字等を削除する処理、ブランク等をアンダーバー等に修正する処理、文字化けしやすい字体を簡易な字体に修正する処理等）を含まないアルゴリズムから、そのような修正処理を含むアルゴリズムへ切り替えること、子グループを作成するグルーピング処理のアルゴリズムを切り替えること、同一の主体であることを判定するためのマッチングパターンを切り替えること等が含まれる。
【００４０】
このように名寄せ処理のアルゴリズムを親グループ単位で切り替える構成とした場合には、エラーの発生が多い名称や、ユーザにより入力設定された名称に対応する親グループについて、通常のアルゴリズムとは異なるアルゴリズムを適用して名寄せ処理を実行することが可能となる。このため、名寄せ処理の自動化達成率を高めること、すなわちイレギュラーな事象が発生した場合における人手による作業の介在の度合いを抑えることが可能となる。
【００４１】
＜不適切な入力状態の名称を、適切な入力状態の名称に修正する構成＞
【００４２】
そして、以上に述べた名寄せシステムにおいて、
過去の実際の入力結果として得られた不適切な入力状態の名称とこれに対応する適切な入力状態の名称とを対応付けて記憶する修正情報記憶手段と、
不適切な入力状態の名称および適切な入力状態の名称についてのユーザによる入力設定を受け付けて修正情報記憶手段に記憶させる処理を実行する修正情報設定手段とを備え、
親グルーピング手段は、
修正情報記憶手段に記憶されている不適切な入力状態の名称を、適切な入力状態の名称に修正してから、親グループを作成するグルーピング処理を実行する構成としてもよい。
【００４３】
このように「不適切な入力状態の名称」を「適切な入力状態の名称」に修正する構成とした場合には、データに関与する主体について、毎回または高い頻度で、不適切な状態（例えば、禁止されているブランクが入っている状態や、使用禁止されている文字が使用されている状態等）でその名称が入力されるときに、そのような「不適切な入力状態の名称」に対応する「適切な入力状態の名称」を、ユーザ（本発明のシステムのユーザ）が修正情報記憶手段に予め入力設定しておけば、名称を適切な状態に自動修正することができるので、親グルーピング手段による親グループの作成処理が円滑に行われるようになる。
【００４４】
＜名称以外の属性情報について、その内容を推定してブランクを埋める構成＞
【００４５】
また、以上に述べた名寄せシステムにおいて、
異なる種類の属性情報を用いて予め学習して得られた異なる種類の属性情報間の関係を導くためのパラメータを記憶するモデル記憶手段と、
名称以外の属性情報についてマッチングパターンの構成要素となる属性情報がブランクになっているデータがある場合に、子グルーピング手段により子グループを作成するグルーピング処理よりも前の段階で、モデル記憶手段に記憶されたパラメータを用いて、当該データに含まれる名称および／またはその他の属性情報から、ブランクになっている属性情報の内容を推定し、推定した属性情報の内容をブランクに埋め込む処理を実行する属性情報推定手段と
を備えた構成としてもよい。
【００４６】
ここで、「モデル記憶手段」に記憶されたパラメータを用いて、ブランクになっている属性情報の内容を推定（認識）する「属性情報推定手段」の処理は、いわゆる人工知能（ＡＩ）による認識処理であり、具体的には、例えば、名称から個人・法人の別を示す属性情報を推定する処理（例えば、名称に「株式会社」が含まれていれば、法人と推定される確率が高い。）、名称から男女の別を示す属性情報を推定する処理（例えば、名称の語尾が「〜子」となっていれば、女性と推定される確率が高い。）、名称から年齢層を推定する処理等である。そして、推定処理（認識処理）のアルゴリズムは、入力および出力となる属性情報の種類やその組合せ（入力と出力との組合せ、および入力に複数の属性情報を用いる場合における入力の組合せが含まれる。）に応じ、例えば、ニューラル・ネットワーク等の適宜なアルゴリズムを採用すればよい。この際、推定結果（認識結果）の尤度が閾値以上のときに、ブランクを埋めるようにしてもよい。また、推定（認識）した属性情報の内容をブランクに埋め込む処理を実行したとき、あるいは、推定結果（認識結果）の尤度が閾値よりも低い場合に、そのような埋め込み処理を実行したときには、その埋め込んだ属性情報、またはその埋め込んだ属性情報を含むデータに対し、推定結果（認識結果）であることを示す情報（目印となるマーク等）を付加しておくことが好ましい。
【００４７】
このように名称以外の属性情報について、その内容を推定してブランクを埋める構成とした場合には、マッチングパターンの構成要素となる属性情報がブランクとなっているデータについても、名寄せ処理を行うことが可能となる。この名寄せ処理は、暫定的なものであってもよい。
【００４８】
なお、ここでの推定結果（認識結果）を埋め込む対象（ブランクになっている属性情報）は、マッチングパターンの構成要素となる属性情報であるから、ブランクを埋めなければ、当該データは名寄せ処理を行うことができないデータとなる。
【００４９】
＜プログラムの発明＞
【００５０】
本発明のプログラムは、以上に述べた名寄せシステムとして、コンピュータを機能させるためのものである。
【００５１】
なお、上記のプログラムまたはその一部は、例えば、光磁気ディスク（ＭＯ）、コンパクトディスク（ＣＤ）、デジタル・バーサタイル・ディスク（ＤＶＤ）、フレキシブルディスク（ＦＤ）、磁気テープ、読出し専用メモリ（ＲＯＭ）、電気的消去および書換可能な読出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）、ハードディスク、ソリッドステートドライブ（ＳＳＤ）、フラッシュディスク等の記録媒体に記録して保存や流通等させることが可能であるとともに、例えば、ＬＡＮ、ＭＡＮ、ＷＡＮ、インターネット、イントラネット、エクストラネット等の有線ネットワーク、あるいは無線通信ネットワーク、さらにはこれらの組合せ等の伝送媒体を用いて伝送することが可能であり、また、搬送波に載せて搬送することも可能である。さらに、上記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。
【発明の効果】
【００５２】
以上に述べたように本発明によれば、名寄せの対象となるデータについて、先ず、同一の名称を含むデータの集合からなる親グループを作成し、それぞれの親グループ（名称グループ）の中で、子グループの作成処理や、主体識別情報の置換処理を実行するようにしたので、タスク間の先行制約の少ない並列分散処理に適した名寄せ処理のアルゴリズムにより、効率的な並列分散処理を実現することができ、サーバのスケールアウトによる性能改善を図ることができるという効果がある。
【図面の簡単な説明】
【００５３】
【図１】本発明の一実施形態の名寄せシステムの全体構成図。
【図２】前記実施形態において並列分散処理を行うためのシステム構成の具体例を示す図。
【図３】前記実施形態において並列分散処理を行うためのシステム構成の別の具体例を示す図。
【図４】前記実施形態の名寄せ処理の流れ（その１）を示す図。
【図５】前記実施形態の名寄せ処理の流れ（その２）を示す図。
【図６】前記実施形態の名寄せ処理におけるデータの状態の変遷（その１）を示す図。
【図７】前記実施形態の名寄せ処理におけるデータの状態の変遷（その２）を示す図。
【図８】前記実施形態の名寄せ処理におけるデータの状態の変遷（その３）を示す図。
【図９】本発明の変形の形態を示す図。
【発明を実施するための形態】
【００５４】
以下に本発明の一実施形態について図面を参照して説明する。図１には、本実施形態の名寄せシステム１０の全体構成が示されている。図２および図３には、名寄せシステム１０により並列分散処理を行うためのシステム構成の具体例が示されている。また、図４および図５には、名寄せ処理の流れが示されている。さらに、図６〜図８には、名寄せシステム１０による名寄せ処理におけるデータの状態の変遷が示されている。
【００５５】
この名寄せシステム１０は、例えば、契約、請求、取引等を取り扱うトランザクションシステム９０で作成されたトランザクションデータ（トランザクションに伴って発生する情報や附随する情報であり、例えば、契約情報、請求情報、取引情報等）を対象として名寄せ処理を行うシステムであり、トランザクションデータに含まれるトランザクションに関与した「主体」（本実施形態では、一例として、個人とする。）の呼び名である「名称」（個人の姓名）およびこの名称に対応する属性情報（本実施形態では、一例として、住所バーコード、電話番号等とする。）を用いて、同一の主体（個人）に関するトランザクションデータを、同一の名称（姓名）を有する異なる主体（個人）に関するトランザクションデータと区別しながら、関連付けてまとめる処理を実行するものである。
【００５６】
＜名寄せシステム１０の全体構成＞
【００５７】
図１において、名寄せシステム１０は、１台または複数台のコンピュータにより構成され、名寄せ処理を実行する処理手段２０と、この処理手段２０に接続されて名寄せ処理に必要な各種データを記憶する記憶手段４０と、名寄せ処理の結果等を表示するための表示手段６１（例えば、液晶ディスプレイ等）と、名寄せ処理に必要な設定情報等の入力を行うための入力手段６２（例えば、キーボードやマウス等）とを備えて構成されている。
【００５８】
処理手段２０は、仮主体識別情報付与手段である仮個人番号付与手段２１と、マージ手段２２と、親グルーピング手段２３と、子グルーピング手段２４と、置換手段２５と、名寄せマスタ更新手段２６と、切替対象設定手段２７と、修正情報設定手段２８と、属性情報推定手段２９とを含んで構成されている。この処理手段２０に含まれる各手段２１〜２９は、名寄せシステム１０を構成するコンピュータ本体の内部に設けられた中央演算処理装置（ＣＰＵ）、およびこのＣＰＵの動作手順を規定する１つまたは複数のプログラム、並びに、主メモリやキャッシュメモリ等の作業用メモリなどにより実現される。各手段２１〜２９の機能の詳細は、後述する。
【００５９】
記憶手段４０は、名寄せマスタ記憶手段４１と、更新用データ記憶手段４２と、分割データ記憶手段４３と、エラー情報記憶手段４４と、切替対象記憶手段４５と、修正情報記憶手段４６と、モデル記憶手段４７とを含んで構成されている。各記憶手段４１〜４７は、例えば、ハードディスクドライブやソリッドステートドライブ等により好適に実現されるが、主メモリに一旦読み込めば、その後の頻繁なアクセスは不要である場合等のように、記憶容量やアクセス速度等に問題が生じない範囲であれば、ＤＶＤ等のその他の記録媒体を採用してもよい。なお、分割データ記憶手段４３については、名寄せ処理の実行中に存在していればよいものであるため、主メモリやキャッシュメモリ等の作業用メモリにより実現されてもよいが、名寄せマスタ記憶手段４１等と同様に、長期保管用の不揮発性ストレージにより実現してもよい。各記憶手段４１〜４７の構成の詳細は、後述する。
【００６０】
本実施形態では、名寄せシステム１０は、トランザクションシステム９０で作成されたトランザクションデータを名寄せ処理の対象データとしているが、この際、名寄せ処理の対象データは、１種類のトランザクションデータに限らず、例えば、電話の契約、電気の契約、商品売買契約、旅行契約、賃貸借契約等の如く、複数種類の契約、請求等のトランザクションデータでもよく、複数種類のトランザクションデータを対象データとするほうが、様々な状況（例えば、顧客に応対する場所、顧客に応対する店員や営業員の職種や年齢、顧客の嗜好、顧客の年齢や職業、顧客の保有資産量等についての多様性に基づく状況）で入力された個人データを収集することができるので、名寄せの効果が顕著に得られることになる。但し、複数種類のトランザクションデータを対象データとする場合には、それぞれのトランザクションデータに、名寄せ処理に用いるマッチングパターンの構成要素である「名称」（本実施形態では、一例として「姓名」）およびその名称に対応する属性情報（本実施形態では、一例として「住所バーコード」や「電話番号」等）が含まれていることが前提となる。
【００６１】
なお、本実施形態では、トランザクションデータには、トランザクションに関与した「主体」の呼び名である「名称」の一例として、個人の姓名（氏名）が含まれているが、本発明における「主体」は、個人に限らず、法人等の団体でもよく、個人と法人等の団体との混在状態でもよいので、トランザクションデータには、法人等の団体の名称が含まれていてもよい。また、本発明における名寄せ処理の対象データは、契約、請求、取引、送金、決済、貯蓄、分配、付与、交換、移動、消費、貸借等の狭義のトランザクションデータに限らず、例えば、通信によるコミュニケーション、スポーツの対戦等の各種の行為（必ずしも法律上の行為には限定されない。）についてのデータが含まれ、これらの行為は、営利・非営利を問わない。また、これらの行為は、名寄せ処理の対象データが比較的多く集まりやすいという点で、主として業としての行為であるが、ある程度の量の名寄せ処理の対象データが集まる場合には、私的な行為でもよい。
【００６２】
＜名寄せシステム１０で並列分散処理を行うための具体的なシステム構成＞
【００６３】
名寄せシステム１０は、並列分散処理の実行に適した名寄せ処理アルゴリズム（このアルゴリズムの詳細は後述する。）を採用し、サーバの台数増によるスケールアウト（水平スケール）を可能とする構成とされているため、その性能を十分に発揮させるためには、複数台のサーバで構成することが好ましいが、スケールアウトに対応可能な構成を取っていればよいため、例えば、処理すべきデータ量が少ない場合等には、必ずしも複数台のサーバで構成する必要はなく、１台のサーバで構成してもよく、必要になった場合に、台数増により性能の向上を図る対応をとればよい。この意味で、図１には、物理的なサーバの配置構成およびその配置構成に応じた処理の分散態様を含まない状態で、名寄せシステム１０の全体構成が示されている。
【００６４】
従って、名寄せシステム１０は、並列分散処理に適していれば、どのような具体的なシステム構成（物理的なサーバの配置構成およびその配置構成に応じた処理の分散態様）をとってもよく、その代表例として、図２および図３には、名寄せシステム１０が、２種類の具体的なシステム構成をとった場合の状態が示されている。図２は、分散記憶タイプの場合の名寄せシステム１０Ａであり、図３は、分散型ではない通常のデータべースを利用するデータべースタイプの場合の名寄せシステム１０Ｂである。
【００６５】
なお、名寄せシステム１０は、並列分散処理の実行に適した名寄せ処理アルゴリズムを採用しているので、マルチプロセッサによる効果的な並列分散処理も実現可能であることから、スケールアウト（水平スケール）のみならず、スケールアップ（垂直スケール）にも対応可能な構成を取っていることになる。
【００６６】
図１に示された名寄せシステム１０の処理手段２０は、図２の名寄せシステム１０Ａおよび図３の名寄せシステム１０Ｂでは、管理・制御側のマスタ処理手段２０Ａと、被制御側のスレイブ処理手段２０Ｂとにより構成されている。図１に示したように、処理手段２０は、各手段２１〜２９を含んで構成されているが、これらの各手段２１〜２９のうち、いずれがマスタ処理手段２０Ａに対応し、いずれがスレイブ処理手段２０Ｂに対応するということではなく、各手段２１〜２９の全てについて、指令（制御）およびその指令に基づくタスクの実行が行われるという観点からは、各手段２１〜２９のそれぞれが、マスタ処理手段２０Ａおよびスレイブ処理手段２０Ｂの双方により構成されていることになる。そして、各手段２１〜２９により実行される処理のうちの並列分散処理が可能な部分については、複数のサーバの各々に設けられたスレイブ処理手段２０Ｂで分散して実行されるようになり、マスタ処理手段２０Ａは、各サーバのスレイブ処理手段２０Ｂに対し、そのように分散状態で割り当てられた各タスクの実行指令を出すことになる。
【００６７】
図２において、名寄せシステム１０Ａは、マスタ処理手段２０Ａが設けられたアプリケーション（ＡＰ）サーバ７０と、スレイブ処理手段２０Ｂが設けられた複数台（ここでは、一例として５台とする。）のアプリケーション（ＡＰ）サーバ７１，７２，７３，７４，７５と、本システムのユーザが操作する端末装置６０（図１に示した表示手段６１および入力手段６２を含む。）とを備え、これらがネットワーク７６で接続されて構成されている。いわゆるマスタ／スレイブ方式（ｍａｓｔｅｒ／ｓｌａｖｅ）は、機能や性能等に差がない複数の機器等が並列に接続されている際に全体を協調して動作させる方式の一つであり、各ＡＰサーバ７１〜７５は、通常は、ほぼ同様な機能や性能を有するサーバとすることが好ましいが、ＡＰサーバ７０と、各ＡＰサーバ７１〜７５とは、異なる機能や性能を有するサーバとしてもよい。
【００６８】
ＡＰサーバ７１〜７５には、それぞれに記憶手段４０が設けられている。但し、必ずしも各ＡＰサーバ７１〜７５に設けられた記憶手段４０のそれぞれに、図１に示された記憶手段４０を構成する各記憶手段４１〜４７の全てが配置されている必要はなく、図１に示された各記憶手段４１〜４７が、分散した状態で各ＡＰサーバ７１〜７５の記憶手段４０に配置されていてもよい。また、各ＡＰサーバ７１〜７５の記憶手段４０は、同期をとることにより、全てのＡＰサーバ７１〜７５が同じデータを共有状態で記憶するようにしてもよい。
【００６９】
前者のような分散記憶を行う構成としては、具体的には、例えば、ハドゥープ（Hadoop：大規模データを効率的に分散処理・管理するためのソフトウェア基盤（ミドルウェア）であり、オープンソースソフトウェアである。）による分散ファイルシステムのＨＤＦＳ（Hadoop Distributed File System）等を採用することができる。このＨＤＦＳを採用した場合には、マスタ処理手段２０Ａが設けられたＡＰサーバ７０は、ネームノード（Name Node）と称され、スレイブ処理手段２０Ｂが設けられた各ＡＰサーバ７１〜７５は、データノード（Data Node）と称されるものに相当する。このＨＤＦＳによるデータの分散管理は、１つのファイルを一定サイズのブロックに分割し、その分割されたブロックのそれぞれを複数台（例えば３台）のサーバで保存する（同一のブロックが複数台のサーバで保存される状態となる。）といったブロック単位の分散保存方式であるが、この方式については既存の技術であるため、詳しい説明は省略する。なお、データの分散保存方式は、ＨＤＦＳのような既存の技術を利用するのではなく、今後開発される技術を利用してもよく、あるいは独自に開発してもよい。
【００７０】
さらに、このＨＤＦＳのような分散保存方式のミドルウェアと組み合わせることができるアプリケーションソフトウェアとしては、具体的には、例えば、スパーク（Spark：オープンソースソフトウェアである。）や、マップ・リデュース（MapReduce）等を採用することができる。スパークを採用した場合には、マスタ処理手段２０Ａがspark submitコマンドを実行する部分であり、スレイブ処理手段２０Ｂがそのコマンドに基づいて実際のタスクを実行する部分であるから、マスタ処理手段２０Ａが設けられたＡＰサーバ７０は、マスタノード（Master Node）と称され、スレイブ処理手段２０Ｂが設けられた各ＡＰサーバ７１〜７５は、ワーカノード（Worker Node）と称されるものに相当する。また、マップ・リデュースを採用した場合には、マスタ処理手段２０Ａは、ジョブ・トラッカ（Job Tracker）と称され、スレイブ処理手段２０Ｂは、タスク・トラッカ（Task Tracker）と称されるものに相当する。
【００７１】
上記の組合せのうち、スパークとＨＤＦＳとの組合せでは、ＨＤＦＳに対して特殊なキャッシュ（通常、このキャッシュは揮発性である。）を設け、インメモリで高速な分散処理を行うので、マップ・リデュースとＨＤＦＳとの組合せよりも処理の高速化を図ることができるため、本発明の具体的なシステム構成として採用するのに好適である。この高速化は、繰り返し利用するデータをキャッシュ上に保持することが可能な仕組みであるＲＤＤ（Resillient Distributed Datasets）による効果であるが、この仕組みについては既存の技術であるため、詳しい説明は省略する。
【００７２】
なお、図２において、マスタ処理手段２０Ａが設けられたＡＰサーバ７０には、点線で示された記憶手段４０が記載されているが、これは、マスタ処理手段２０Ａが使用するメタデータ（データの分散保存位置等であり、例えば、ファイル名、ブロック位置情報、所有者、パーミッション等である。）を記憶する手段として記載している。また、マスタ処理手段２０Ａが、指令（制御）だけではなく、タスクも実行する構成としてもよいので（マスタ処理手段２０Ａが設けられたＡＰサーバ７０に、スレイブ処理手段２０Ｂも設けられていると考えてもよい。）、その場合には、ＡＰサーバ７０が、各ＡＰサーバ７１〜７５と同様な情報を記憶していてもよいという趣旨で記載している。
【００７３】
図３において、名寄せシステム１０Ｂは、マスタ処理手段２０Ａが設けられたアプリケーション（ＡＰ）サーバ８０と、スレイブ処理手段２０Ｂが設けられた複数台（ここでは、一例として５台とする。）のアプリケーション（ＡＰ）サーバ８１，８２，８３，８４，８５と、データベース（ＤＢ）サーバ８６と、本システムのユーザが操作する端末装置６０（図１に示した表示手段６１および入力手段６２を含む。）とを備え、これらがネットワーク８８で接続されて構成されている。
【００７４】
ＤＢサーバ８６は、分散型ではない通常のデータベースとして構築されている記憶手段４０と、データベース・マネジメント・システム（ＤＢＭＳ）の機能を有するデータベース管理手段８７とを含んで構成されている。記憶手段４０には、図１に示された記憶手段４０を構成する各記憶手段４１〜４７の全てが配置され、データベースを構成する各テーブルとなっている。
【００７５】
但し、分割データ記憶手段４３については、名寄せ処理の実行中に存在していればよいものであるため、データベース（長期保管用の不揮発性ストレージ）により構成するのではなく、主メモリやキャッシュメモリ等の作業用メモリにより実現してもよい。この場合は、名寄せマスタ記憶手段４１のテーブルから必要データをキーで抽出したものが分割データ（分散処理を行うために分割されたデータ）であり、それらを記憶する作業用メモリが、分割データ記憶手段４３となる。なお、分割データ記憶手段４３をデータベースにより構成する場合には、一時的なテーブルの生成処理を行うのではなく、テーブル自体を予めデータ分割するキーでパーティション物理分割（例えば、ハッシュパーティションが有効である。）しておくことが好ましい。
【００７６】
なお、図３においても、図２の場合と同様に、マスタ処理手段２０Ａが設けられたＡＰサーバ８０に、スレイブ処理手段２０Ｂも設けられている構成としてもよい。
【００７７】
また、名寄せシステム１０は、以上に述べたように、図２の分散記憶タイプの構成も、図３のデータベースタイプの構成も、その他の構成もとり得るが、データの保存形態がデータベース構造をとらない場合においても、説明の便宜上、名寄せマスタを構成する各データの１つ１つや、新規に追加または変更された各更新用データの１つ１つを、「レコード」あるいは「レコード単位のデータ」と呼ぶことがある。
【００７８】
＜処理手段２０の詳細構成＞
【００７９】
仮個人番号付与手段２１は、本発明の仮主体識別情報付与手段に相当するものであり、更新用データ記憶手段４２に記憶された全てのトランザクションデータ（新規に追加され、または変更された更新用データ）の各々に対し、名寄せマスタ記憶手段４１に記憶された前回の名寄せ処理後の名寄せマスタを構成する各データに関連付けられて使用されている個人番号（主体識別情報）と重ならない新規の仮の個人番号（仮の主体識別情報）を付与する処理を実行するものである。
【００８０】
より具体的には、仮個人番号付与手段２１は、（Ａ）更新用データ記憶手段４２に記憶された全ての更新用データの各々に対し、連番（例えば１から始まる整数の連番）で更新用データ識別番号を付与してから、全ての更新用データをデータ単位（レコード単位）で分割した後、（Ｂ）更新用データ識別番号を付与した状態で分割されている更新用データ毎（レコード毎）に、名寄せマスタ記憶手段４１に記憶された前回の名寄せ処理後の名寄せマスタを構成する各データに関連付けられて使用されている個人番号（主体識別情報）の最大値と、更新用データに付与された更新用データ識別番号（付与した連番のうちの１つ）とを加算することにより、仮の個人番号（仮の主体識別情報）を算出し、算出した仮の個人番号を、更新用データに付与する処理を実行する（後述する図４のステップＳ１１，Ｓ１２参照）。この仮個人番号付与手段２１による（Ａ）の処理で分割された各更新用データは、分割データ記憶手段４３に記憶される。そして、分割後に行われる（Ｂ）の処理についてのタスクは、図２の各ＡＰサーバ７１〜７５、または、図３の各ＡＰサーバ８１〜８５で分散して実行される。
【００８１】
なお、個人番号（主体識別情報）に数値以外の部分が含まれている場合には、その部分を除いて最大値を判断するか、またはその部分に対して数値と同様な大小の順位を付けること（例えば、アルファベット順に従って大小の順位を付けること等）により最大値を判断する。
【００８２】
また、仮個人番号付与手段２１は、（Ａ）の処理において、更新用データ識別番号として付与する連番を、０から始まる整数の連番とする場合には、（Ｂ）の処理において、個人番号の最大値と、１以上の整数と、更新用データに付与された更新用データ識別番号（付与した連番のうちの１つ）とを加算することにより、仮の個人番号を算出する必要がある。この場合に「１以上の整数」を加算しないと、前回の名寄せ処理後の名寄せマスタの構成データに付された個人番号（既に使用されている個人番号）と重なってしまうからである。
【００８３】
なお、仮個人番号付与手段２１による処理が行われる前には、トランザクションシステム９０から出力された全てのトランザクションデータ（新規に追加され、または変更された更新用データ）を更新用データ記憶手段４２に格納する処理が、処理手段２０により行われている。この更新用データの格納処理は、例えば、トランザクションシステム９０から出力された更新用データのファイルを記憶した記録媒体（例えば、ＤＶＤやＵＳＢメモリ等）から、ユーザの操作により、名寄せシステム１０へ更新用データのファイルを読み込んで行ってもよく、あるいは、トランザクションシステム９０から名寄せシステム１０へのオンライン送信で行ってもよい。
【００８４】
マージ手段２２は、仮個人番号付与手段２１により仮の個人番号（仮の主体識別情報）を付与された全ての更新用データを、ＫＥＹＩＤをキーとして、名寄せマスタ記憶手段４１に記憶された前回の名寄せ処理後の名寄せマスタに組み込む（レコード単位で反映させる）ことにより、今回の名寄せ処理の対象となる名寄せマスタを作成し、作成した名寄せマスタが名寄せマスタ記憶手段４１に記憶されている状態にするマージ処理を実行するものである（後述する図４のステップＳ１３参照）。このマージ手段２２による処理についてのタスクは、図２の各ＡＰサーバ７１〜７５、または、図３の各ＡＰサーバ８１〜８５で分散して実行される。
【００８５】
親グルーピング手段２３は、名寄せマスタ記憶手段４１に記憶された名寄せマスタを構成する複数のデータについて、各データ（各レコード）に含まれる属性情報のうちの「主体」（本実施形態では、一例として個人とする。）の呼び名を示す「名称」（本実施形態では、一例として姓名とする。）を用いて、同一の名称（姓名）を含むデータの集合からなる親グループを作成するグルーピング処理を実行するものである（後述する図４のステップＳ２１参照）。この親グルーピング手段２３により作成された各親グループは、分割データ記憶手段４３に記憶される。
【００８６】
また、親グルーピング手段２３は、修正情報記憶手段４６に記憶されている「不適切な入力状態の名称（本実施形態では、姓名）」については、それに対応して記憶されている「適切な入力状態の名称（本実施形態では、姓名）」に修正してから、親グループを作成するグルーピング処理を実行する。例えば、禁止されているブランクが入っている場合には、アンダーバー等に修正し、旧字体の文字が使用されている場合には、代替文字に修正する等である。
【００８７】
子グルーピング手段２４は、親グルーピング手段２３により作成された親グループ毎に、同一の主体（ここでは、個人）であることを判定するためのマッチングパターンの構成要素としての「名称（姓名）以外の少なくとも１つの判定用の属性情報」を用いて、同一の名称（姓名）を含み、かつ、「名称（姓名）以外の少なくとも１つの判定用の属性情報」が一致するデータの集合からなる子グループを作成するグルーピング処理を実行するものである。但し、ここでの子グループの作成は、同一の名称（姓名）を含むデータの集合からなる親グループの中で行われるので、子グループの作成の際には、「名称（姓名）以外の少なくとも１つの判定用の属性情報」が一致していれば、同じグループとしてよい。
この子グルーピング手段２４により作成された各子グループは、分割データ記憶手段４３に記憶される。そして、子グルーピング手段２４による処理についてのタスクは、図２の各ＡＰサーバ７１〜７５、または、図３の各ＡＰサーバ８１〜８５で分散して実行される。
【００８８】
この子グルーピング手段２４は、本実施形態では、一例として、２つのマッチングパターンがあるので、第１のマッチングパターンに対応する第１の子グルーピング手段２４Ａと、第２のマッチングパターンに対応する第２の子グルーピング手段２４Ｂとにより構成されている。より一般的には、Ｎ個（Ｎは２以上の整数）のマッチングパターンがある場合には、子グルーピング手段２４は、第１〜第Ｎのマッチングパターンに対応する第１〜第Ｎの子グルーピング手段により構成される。第１〜第Ｎの複数のマッチングパターンは、「必須の構成要素となる名称（ここでは姓名）」と「名称（姓名）以外の判定用の属性情報」との異なる組み合わせによるものである。つまり、各マッチングパターンは、「名称（姓名）以外の判定用の属性情報」が異なっている。
【００８９】
マッチングパターンは、同一の主体（ここでは、個人）であると判定するためのパターンであるから、マッチングパターンが複数ある場合には、いずれかのマッチングパターンに合致したときに（いずれのマッチングパターンに合致したときでも）、同一の主体（ここでは、個人）であると判定される。本実施形態では、一例として、第１のマッチングパターンは、姓名（名称）および住所バーコード（名称以外の属性情報）の双方が一致したときに、同一の主体（ここでは、個人）であると判定するものとする。第２のマッチングパターンは、姓名（名称）および電話番号（名称以外の属性情報）の双方が一致したときに、同一の主体（ここでは、個人）であると判定するものとする。なお、１つのマッチパターンの構成要素となる属性情報の数は、２つに限定されるものではなく、３つ以上であってもよい。
【００９０】
従って、第１の子グルーピング手段２４Ａは、第１のマッチングパターンの構成要素としての姓名（名称）および住所バーコード（名称以外の属性情報）の双方が一致するデータの集合からなる第１の子グループ（住所バーコードグループ）を作成するグルーピング処理を実行するものである（後述する図４のステップＳ３１参照）。但し、子グループの作成は、同一の名称（姓名）を含むデータの集合からなる親グループの中で行われるので、第１の子グループの作成の際には、住所バーコードが一致していれば、同じグループとしてよい。
【００９１】
また、第２の子グルーピング手段２４Ｂは、第１の置換手段２５Ａによる置換処理後のデータについて第１の子グルーピング手段２４Ａによるグルーピングを解除した後に、第２のマッチングパターンの構成要素としての姓名（名称）および電話番号（名称以外の属性情報）の双方が一致するデータの集合からなる第２の子グループ（電話番号グループ）を作成するグルーピング処理を実行するものである（後述する図５のステップＳ４１参照）。但し、子グループの作成は、同一の名称（姓名）を含むデータの集合からなる親グループの中で行われるので、第２の子グループの作成の際には、電話番号が一致していれば、同じグループとしてよい。
【００９２】
より一般化すると、第ｍ（ｍは２〜Ｎの整数）の子グルーピング手段は、第（ｍ−１）の置換手段による置換処理後のデータについて第（ｍ−１）の子グルーピング手段によるグルーピングを解除した後に、第ｍのマッチングパターンの構成要素としての「名称以外の少なくとも１つの判定用の属性情報」を用いて、同一の名称（ここでは姓名）を含み、かつ、「名称（姓名）以外の少なくとも１つの判定用の属性情報」が一致するデータの集合からなる第ｍの子グループを作成するグルーピング処理を実行するものである。但し、子グループの作成は、同一の名称（姓名）を含むデータの集合からなる親グループの中で行われるので、第ｍの子グループの作成の際には、「名称（姓名）以外の少なくとも１つの判定用の属性情報」が一致していれば、同じグループとしてよい。
【００９３】
また、子グルーピング手段２４は、切替対象記憶手段４５に記憶されている名称（本実施形態では、姓名）に対応する親グループについての名寄せ処理については、通常のアルゴリズムとは異なるアルゴリズムを適用して処理を実行する。例えば、不適切な入力状態の属性情報（例えば、使用禁止されている絵文字やブランク等が入っている属性情報や、文字化けしやすい字体が入っている属性情報等）を、適切な入力状態の属性情報に修正する処理（例えば、絵文字等を削除する処理、ブランク等をアンダーバー等に修正する処理、文字化けしやすい字体を簡易な字体に修正する処理等）を含まないアルゴリズムから、そのような修正処理を含むアルゴリズムへ切り替えたり、子グループを作成するグルーピング処理のアルゴリズムを切り替えたり（例えば、後述する変形の形態に記載したグルーピング処理に切り替える等）、同一の主体（ここでは個人）であることを判定するためのマッチングパターンを切り替えたりする。
【００９４】
置換手段２５は、子グルーピング手段２４により作成された子グループ毎に、子グループを構成する全てのデータ（レコード）についての各個人番号（各主体識別情報）を、その中の最小値または最大値で統一するための置換処理を実行するものである。ここでは、一例として、最小値の個人番号（主体識別情報）で統一するものとする。この置換手段２５による処理についてのタスクは、図２の各ＡＰサーバ７１〜７５、または、図３の各ＡＰサーバ８１〜８５で分散して実行される。
【００９５】
この置換手段２５は、本実施形態では、一例として、子グルーピング手段２４が第１の子グルーピング手段２４Ａおよび第２の子グルーピング手段２４Ｂにより構成されていることに対応し、第１の置換手段２５Ａおよび第２の置換手段２５Ｂにより構成されている。より一般的には、子グルーピング手段２４が第１〜第Ｎの子グルーピング手段により構成されている場合には、置換手段２５は、第１〜第Ｎの子グルーピング手段に対応して（すなわち、第１〜第Ｎのマッチングパターンに対応して）第１〜第Ｎの置換手段により構成される。
【００９６】
従って、第１の置換手段２５Ａは、第１の子グルーピング手段２４Ａにより作成された第１の子グループ（住所バーコードグループ）毎に、第１の子グループを構成する全てのデータ（レコード）についての各個人番号（各主体識別情報）を、その中の最小値または最大値（ここでは、一例として最小値とする。）で統一するための置換処理を実行するものである（後述する図４のステップＳ３２参照）。
【００９７】
また、第２の置換手段２５Ｂは、第２の子グルーピング手段２４Ｂにより作成された第２の子グループ（電話番号グループ）毎に、第２の子グループを構成する全てのデータ（レコード）についての各個人番号（各主体識別情報）を、その中の最小値または最大値（ここでは、一例として最小値とする。）で統一するための置換処理を実行するものである（後述する図５のステップＳ４２参照）。なお、第１の置換手段２５Ａで最小値で統一した場合には、第２の置換手段２５Ｂでも最小値で統一し、第１の置換手段２５Ａで最大値で統一した場合には、第２の置換手段２５Ｂでも最大値で統一する。
【００９８】
より一般化すると、第ｅ（ｅは１〜Ｎの整数）の置換手段は、第ｅの子グルーピング手段により作成された第ｅの子グループ毎に、第ｅの子グループを構成する全てのデータ（レコード）についての各個人番号（各主体識別情報）を、その中の最小値または最大値で統一するための置換処理を実行するものである。
【００９９】
また、置換手段２５は、切替対象記憶手段４５に記憶されている名称（本実施形態では、姓名）に対応する親グループについての名寄せ処理については、通常のアルゴリズムとは異なるアルゴリズムを適用して処理を実行する。前述した子グルーピング手段２４におけるアルゴリズム切替に対応させる。
【０１００】
名寄せマスタ更新手段２６は、ＫＥＹＩＤをキーとして、置換手段２５による置換処理後の各親グループに属する各子グループを構成する各データおよびそれらの各データに対応する個人番号（主体識別情報）により、名寄せマスタ記憶手段４１に記憶された名寄せマスタを更新する処理を実行するものである（後述する図５のステップＳ５１参照）。
【０１０１】
また、名寄せマスタ更新手段２６は、いずれかの親グループについての名寄せ処理でエラーが発生した場合には、エラーが発生した親グループを除く置換処理後の各親グループに属する各子グループを構成する各データおよびそれらの各データに対応する個人番号（主体識別情報）により、名寄せマスタ記憶手段４１に記憶された名寄せマスタを更新するとともに、エラーが発生した親グループに対応する名称（本実施形態では、姓名）を、エラー発生日時やその他のエラー情報とともにエラー情報記憶手段４４に記憶させる処理を実行する。
【０１０２】
切替対象設定手段２７は、エラー情報記憶手段４４に記憶された同一の名称（本実施形態では、姓名）のエラー情報の通算回数または発生頻度（直近の一定期間内のエラー発生回数）が予め定められた回数または頻度に達したか否かを判断し、達したと判断した場合にその名称（本実施形態では、姓名）を、切替対象記憶手段４５に記憶させる処理を実行する。
【０１０３】
また、切替対象設定手段２７は、入力手段６２を用いたユーザの入力操作によるアルゴリズム切替対象の名称（本実施形態では、姓名）の入力設定を受け付け（図２、図３の場合には、端末装置６０に設けられた入力手段６２で入力されて端末装置６０からネットワーク７６，８８を介して送信されてくる入力設定情報を受信し）、受け付けた名称（姓名）を、切替対象記憶手段４５に記憶させる処理を実行する。この際、ユーザは、エラー情報記憶手段４４に記憶されたエラー情報を表示手段６１（図２、図３の場合には、端末装置６０に設けられた表示手段６１）で参照することにより、アルゴリズム切替対象の名称（本実施形態では、姓名）を決めることができる。なお、処理手段２０には、エラー情報記憶手段４４に記憶されたエラー情報を画面表示する処理を実行するエラー情報表示処理手段（不図示）も設けられている。
【０１０４】
修正情報設定手段２８は、入力手段６２を用いたユーザの入力操作による「不適切な入力状態の名称（本実施形態では、姓名）」および「適切な入力状態の名称（本実施形態では、姓名）」についての入力設定を受け付け（図２、図３の場合には、端末装置６０に設けられた入力手段６２で入力されて端末装置６０からネットワーク７６，８８を介して送信されてくる入力設定情報を受信し）、受け付けた入力設定情報を、修正情報記憶手段４６に記憶させる処理を実行するものである。この際、ユーザは、エラー情報記憶手段４４に記憶されたエラー情報を表示手段６１（図２、図３の場合には、端末装置６０に設けられた表示手段６１）で参照することにより、「不適切な入力状態の名称（本実施形態では、姓名）」を把握することができる。
【０１０５】
属性情報推定手段２９は、名称（本実施形態では、姓名）以外の属性情報についてマッチングパターンの構成要素となる属性情報（ここでは、住所バーコードや電話番号の他に、例えば、性別が、マッチングパターンの構成要素となる属性情報であるものとする。）がブランクになっているデータがある場合に、子グルーピング手段２４により子グループを作成するグルーピング処理よりも前の段階で、モデル記憶手段４７に記憶されたパラメータを用いて、当該データに含まれる名称（本実施形態では、姓名）および／またはその他の属性情報（ここでは、姓名だけでよいものとする。）から、ブランクになっている属性情報（ここでは、一例として、性別とする。）の内容を推定し、推定した属性情報（性別）の内容をブランクに埋め込む処理を実行するものである。
【０１０６】
＜記憶手段４０の詳細構成＞
【０１０７】
名寄せマスタ記憶手段４１は、名寄せ処理の対象となるトランザクションデータの集合である名寄せマスタを記憶するものである。図６に示すように、この名寄せマスタを構成する各データ（各レコード）には、一例として、トランザクション（例えば、契約、請求、取引等の各種の行為）の識別情報であるＫＥＹＩＤと、トランザクションに関与した主体の名称である個人の姓名（氏名）と、住所バーコードと、電話番号と、主体識別情報である個人番号とが含まれている。本実施形態では、姓名、住所バーコード、電話番号は、いずれもマッチングパターンの構成要素となっている。なお、トランザクションデータには、その他に、例えば、生年月日、性別、銀行コード・支店コード・預金種目・口座番号などが含まれていてもよく、それらをマッチングパターンの構成要素としてもよい。
【０１０８】
この名寄せマスタ記憶手段４１には、名寄せ処理の開始前の状態では、前回の名寄せ処理で得られた名寄せ後のトランザクションデータが記憶されている。但し、名寄せ処理の途中では、名寄せされていないトランザクションデータ（すなわち、新規追加または変更された更新用データ）がマージされて含まれる状態になる。そして、名寄せ処理の完了後の状態では、正常に処理が終了すれば、名寄せされたトランザクションデータが記憶された状態となり、次回の名寄せ処理に使用される。なお、初回の名寄せ処理の開始前は、名寄せ処理を経たトランザクションデータは存在しないので、名寄せマスタ記憶手段４１には、トランザクションデータは記憶されておらず、名寄せ処理の途中で、名寄せ処理の対象となる最初のトランザクションデータが格納されることになる。
【０１０９】
更新用データ記憶手段４２は、トランザクションシステム９０において、前回の名寄せ処理から今回の名寄せ処理までに、新規に追加され、または更新された更新用データであるトランザクションデータ（トランザクションシステム９０から出力された更新用データ）を記憶するものである。図６に示すように、このトランザクションデータ（更新用データ）には、一例として、トランザクションの識別情報であるＫＥＹＩＤと、トランザクションに関与した主体の名称である個人の姓名（氏名）と、住所バーコードと、電話番号とが含まれている。なお、トランザクションデータには、その他に、例えば、生年月日、性別、銀行コード・支店コード・預金種目・口座番号などが含まれていてもよい。
【０１１０】
分割データ記憶手段４３は、名寄せ処理の途中で作成される分割データ（分散されたデータ群）を記憶するものである。例えば、親グループ毎に分割された状態のトランザクションデータや、子グループ毎に分割された状態のトランザクションデータを記憶する。この分割データ記憶手段４３は、主メモリやキャッシュメモリ等の作業用メモリにより実現してもよい。一方、図２の分散記憶タイプの場合において、各ＡＰサーバ７１〜７５の記憶手段４０（不揮発性ストレージとしての記憶手段４０）に、親グループや子グループのデータを記憶させる場合（例えば、ＨＤＦＳの場合等）には、各親グループのデータや、各子グループのデータは、各ＡＰサーバ７１〜７５に分散保存される。例えば、市川一郎グループのデータは、３つのＡＰサーバ７１，７３，７５に保存され、佐藤三郎グループのデータは、３つのＡＰサーバ７２，７３，７４に保存され、武藤六郎グループのデータは、３つのＡＰサーバ７２，７４，７５に保存される等である。
【０１１１】
エラー情報記憶手段４４は、いずれかの親グループについての名寄せ処理でエラーが発生した場合に、その親グループに対応する名称（本実施形態では、姓名）を、エラー発生日時やその他のエラー情報とともに記憶するものである。
【０１１２】
切替対象記憶手段４５は、名寄せ処理のアルゴリズムを親グループ単位で切り替えるための切替対象となる名称（本実施形態では、姓名）を記憶するものである。
【０１１３】
修正情報記憶手段４６は、過去の実際の入力結果として得られた「不適切な入力状態の名称（本実施形態では、姓名）」と、これに対応する「適切な入力状態の名称（本実施形態では、姓名）」とを対応付けて記憶するものである。
【０１１４】
モデル記憶手段４７は、異なる種類の属性情報（例えば、姓名および性別）を用いて予め学習して得られた異なる種類の属性情報間の関係を導くためのパラメータ（例えば、姓名から性別を導くためのパラメータ）を記憶するものである。
【０１１５】
＜名寄せ処理の流れ＞
【０１１６】
このような本実施形態においては、以下のようにして名寄せシステム１０により、トランザクションシステム９０から出力されたトランザクションデータを対象とし、名寄せ処理が行われる。
【０１１７】
図４において、先ず、名寄せ処理を実行するための準備作業として、トランザクションシステム９０から出力されたトランザクションデータ（前回の名寄せ処理から今回の名寄せ処理までに新規に追加され、または変更された更新用データ）を取得し、更新用データ記憶手段４２に格納する（図４のステップＳ０１）。この際、トランザクションデータの取得は、例えば、トランザクションシステム９０から出力されたトランザクションデータのファイルが記録されている記録媒体（例えば、ＤＶＤやＵＳＢメモリ等）からのファイルの読込により行ってもよく、トランザクションシステム９０からのオンライン送信で行ってもよい。
【０１１８】
例えば、トランザクションデータ（更新用データ）は、図６に示すように、ＫＥＹＩＤ（トランザクションの識別情報）と、姓名（名称）と、住所バーコード（名称以外の属性情報）と、電話番号（名称以外の属性情報）とを含んで構成されている。図６中の★印の付いたデータ（レコード）は、新規追加されたトランザクションデータのレコードであり、●印が付いたデータは、変更されたトランザクションデータについての変更部分を示している。
【０１１９】
次に、仮個人番号付与手段２１により、更新用データ記憶手段４２に記憶された全てのトランザクションデータ（新規に追加され、または変更された更新用データ）の各々に対し、連番（ここでは、１から始まる整数の連番とする。）で更新用データ識別番号を付与してから、全ての更新用データをデータ単位（レコード単位）で分割する（図４のステップＳ１１）。
【０１２０】
図６の例では、ＫＥＹＩＤ＝Ａ０００００４のレコード（変更されたレコード）に、更新用データ識別番号＝１を付与し、ＫＥＹＩＤ＝Ａ００００１１のレコード（新規追加されたレコード）に、更新用データ識別番号＝２を付与し、ＫＥＹＩＤ＝Ａ００００１０のレコード（変更されたレコード）に、更新用データ識別番号＝３を付与し、ＫＥＹＩＤ＝Ａ００００１２のレコード（新規追加されたレコード）に、更新用データ識別番号＝４を付与し、ＫＥＹＩＤ＝Ａ００００１３のレコード（新規追加されたレコード）に、更新用データ識別番号＝５を付与し、ＫＥＹＩＤ＝Ａ００００１４のレコード（新規追加されたレコード）に、更新用データ識別番号＝６を付与する。
【０１２１】
このように更新用データ識別番号（図６の例では、１からの連番）を付与した状態で分割されている各更新用データ（各レコード）は、分割データ記憶手段４３に記憶されるが、既に詳述したように、この分割データ記憶手段４３は、例えばハードディスクドライブやソリッドステートドライブ等の不揮発性ストレージで実現してもよく、主メモリやキャッシュメモリで実現してもよい。
【０１２２】
続いて、仮個人番号付与手段２１により、名寄せマスタ記憶手段４１に記憶された前回の名寄せ処理後の名寄せマスタから、その名寄せマスタを構成する各データに関連付けられて使用されている個人番号（主体識別情報）の最大値を取得する。図６の例では、Ｋ０００００８が最大値である。なお、名寄せマスタを構成する各データの個人番号は、同一の個人（同一の主体）について重ならないように付与されていればよいので、図６に示すように、番号が飛んでいてもよく、これは、前回の名寄せ処理において、最後に個人番号を小さい方に詰める処理を行っていないこと意味する。従って、今回の名寄せ処理でも、最後に個人番号を小さい方に詰める処理は行わないが、毎回、個人番号（主体識別情報）を小さい方に詰める処理を行うようにしてもよい。
【０１２３】
そして、仮個人番号付与手段２１により、更新用データ識別番号（図６の例では、１からの連番）を付与した状態で分割されている更新用データ毎（レコード毎）に、名寄せマスタで既に使用されている個人番号の最大値と、更新用データに付与された更新用データ識別番号（付与した連番のうちの１つ）とを加算することにより、仮の個人番号（仮の主体識別情報）を算出し、算出した仮の個人番号を、更新用データに付与する（図４のステップＳ１２）。この仮個人番号付与手段２１によるステップＳ１２の処理は、並列分散処理で実行され（例えば、図２の各ＡＰサーバ７１〜７５、または、図３の各ＡＰサーバ８１〜８５で分散して実行され）、その時の分散数は、トランザクションデータ（更新用データ）の数である。
【０１２４】
図６の例では、個人番号の最大値は、Ｋ０００００８であるから、ＫＥＹＩＤ＝Ａ０００００４のレコード（変更されたレコード）には、更新用データ識別番号＝１が付与されているので、Ｋ０００００８＋１＝Ｋ０００００９が、仮の個人番号として付与される。また、ＫＥＹＩＤ＝Ａ００００１１のレコード（新規追加されたレコード）には、更新用データ識別番号＝２が付与されているので、Ｋ０００００８＋２＝Ｋ００００１０が、仮の個人番号として付与される。図６中の▲印は、新規に付与された仮の個人番号を示している。
【０１２５】
それから、マージ手段２２により、仮の個人番号（仮の主体識別情報）を付与された全ての更新用データを、ＫＥＹＩＤをキーとして、名寄せマスタ記憶手段４１に記憶された前回の名寄せ処理後の名寄せマスタに組み込む（レコード単位で反映させる）ことにより、今回の名寄せ処理の対象となる名寄せマスタを作成し、作成した名寄せマスタを、名寄せマスタ記憶手段４１に記憶させるマージ処理（換言すれば、作成した今回の名寄せ処理の対象となる名寄せマスタが、名寄せマスタ記憶手段４１に記憶されている状態にするマージ処理）を実行する（図４のステップＳ１３）。このマージ手段２２によるステップＳ１３の処理は、並列分散処理で実行され（例えば、図２の各ＡＰサーバ７１〜７５、または、図３の各ＡＰサーバ８１〜８５で分散して実行され）、その時の分散数は、トランザクションデータ（更新用データ）の数である。
【０１２６】
図６の例では、ＫＥＹＩＤ＝Ａ０００００４のレコード（変更されたレコード）については、変更部分（●印）があるとともに、新規な仮の個人番号＝Ｋ０００００９（▲印）があるので、それらが名寄せマスタに反映され、レコードの更新（上書き）が行われる。同様に、ＫＥＹＩＤ＝Ａ００００１０のレコード（変更されたレコード）についても、変更部分（●印）があるとともに、新規な仮の個人番号＝Ｋ００００１１（▲印）があるので、それらが名寄せマスタに反映され、レコードの更新（上書き）が行われる。
【０１２７】
また、ＫＥＹＩＤ＝Ａ００００１１，Ａ００００１２，Ａ００００１３，Ａ００００１４のレコードは、新規追加されたレコード（★印）であるから、新規な仮の個人番号＝Ｋ００００１０，Ｋ００００１２，Ｋ００００１３，Ｋ００００１４（▲印）とともに、そのまま名寄せマスタに追加される。
【０１２８】
一方、ＫＥＹＩＤ＝Ｋ０００００１，Ｋ０００００２，Ｋ０００００５，Ｋ０００００３，Ｋ０００００８，Ｋ０００００６については、変更部分（●印）がなく、かつ、新規追加されたレコード（★印）でもないので、名寄せマスタはそのままである。
【０１２９】
その後、親グルーピング手段２３により、名寄せマスタ記憶手段４１に記憶された名寄せマスタを構成する複数のデータについて、各データ（各レコード）に含まれる属性情報のうちの姓名（名称）、すなわちマッチングパターンの必須の構成要素である姓名（名称）を用いて、同一の姓名（姓名）を含むデータの集合からなる親グループを作成するグルーピング処理を実行する（図４のステップＳ２１）。この親グルーピング手段２３により作成された各親グループは、分割データ記憶手段４３に記憶されるが、既に詳述したように、この分割データ記憶手段４３は、例えばハードディスクドライブやソリッドステートドライブ等の不揮発性ストレージで実現してもよく、主メモリやキャッシュメモリで実現してもよい。
【０１３０】
例えば、図７に示すように、親グループとして、市川一郎グループ、佐藤三郎グループ、武藤六郎グループ、水戸三郎グループが作成される。図７中において太線で囲まれている部分が、親グループである。
【０１３１】
なお、親グルーピング手段２３は、図４のステップＳ２１の処理において、修正情報記憶手段４６に記憶されている「不適切な入力状態の姓名（名称）」があった場合には、その姓名については、それに対応して記憶されている「適切な入力状態の姓名（名称）」に修正してから、親グループを作成するグルーピング処理を実行する。この修正については、前述しているので、ここでは詳しい説明を省略する。
【０１３２】
続いて、本実施形態では、一例として、２つのマッチングパターンがあるものとし、第１のマッチングパターンは、姓名（名称）および住所バーコード（名称以外の属性情報）の双方が一致したときに、第２のマッチングパターンは、姓名（名称）および電話番号（名称以外の属性情報）の双方が一致したときに、それぞれ同一の個人（主体）であると判定するものとする。従って、図４のステップＳ２１の処理で作成した親グループ毎に、子グルーピング手段２４（第１の子グルーピング手段２４Ａ、第２の子グルーピング手段２４Ｂ）およびそれに対応する置換手段２５（第１の置換手段２５Ａ、第２の置換手段２５Ｂ）により、次のような処理を実行する。
【０１３３】
なお、子グルーピング手段２４およびそれに対応する置換手段２５は、切替対象記憶手段４５に記憶されている姓名（名称）に対応する親グループについては、通常のアルゴリズムとは異なるアルゴリズムを適用して処理を実行する。このアルゴリズムの切替については、前述しているので、ここでは詳しい説明を省略する。
【０１３４】
先ず、第１の子グルーピング手段２４Ａにより、親グループ毎に、第１のマッチングパターンの構成要素としての姓名（名称）および住所バーコード（名称以外の属性情報）の双方が一致するデータの集合からなる第１の子グループ（住所バーコードグループ）を作成するグルーピング処理を実行する（図４のステップＳ３１）。この第１の子グループの作成処理は、同一の姓名（名称）を含むデータの集合からなる親グループの中で行われるので、住所バーコードが一致していれば、同じグループとする。この第１の子グルーピング手段２４ＡによるステップＳ３１の処理は、並列分散処理で実行され（例えば、図２の各ＡＰサーバ７１〜７５、または、図３の各ＡＰサーバ８１〜８５で分散して実行され）、その時の分散数は、姓名（名称）の数である。そして、この第１の子グルーピング手段２４Ａにより作成された第１の子グループ（住所バーコードグループ）は、分割データ記憶手段４３に記憶されるが、既に詳述したように、この分割データ記憶手段４３は、例えばハードディスクドライブやソリッドステートドライブ等の不揮発性ストレージで実現してもよく、主メモリやキャッシュメモリで実現してもよい。
【０１３５】
図７の例では、市川一郎グループについては、「１１１１１１１１１１１１」、「４４４４４４４４４４４４」、「５５５５５５５５５５５５」という住所バーコードグループが作成される。市川一郎グループにおいて、太線で囲まれている（仕切られている）部分が、住所バーコードグループ（第１の子グループ）である。同様に、佐藤三郎グループについては、「３３３３３３３３３３３３」、「８８８８８８８８８８８８」という住所バーコードグループが作成され、武藤六郎グループについては、「６６６６６６６６６６６６」、「１０１０１０１０１０１０」という住所バーコードグループが作成され、水戸三郎グループについては、「１３１３１３１３１３１３」という住所バーコードグループが作成される。
【０１３６】
続いて、第１の置換手段２５Ａにより、第１の子グルーピング手段２４Ａにより作成された第１の子グループ（住所バーコードグループ）毎に、第１の子グループを構成する全てのデータ（レコード）についての各個人番号（各主体識別情報）を、その中の最小値または最大値で統一するための置換処理を実行する（図４のステップＳ３２）。ここでは、最小値の個人番号に統一する置換処理を実行する。この第１の置換手段２５ＡによるステップＳ３２の処理は、並列分散処理で実行され（例えば、図２の各ＡＰサーバ７１〜７５、または、図３の各ＡＰサーバ８１〜８５で分散して実行され）、その時の分散数は、姓名（名称）×配下の住所バーコードの数（より正確には、姓名（名称）毎の住所バーコード数の総和）である。
【０１３７】
図７の例では、市川一郎グループ内における「１１１１１１１１１１１１」という住所バーコードグループについては、個人番号＝Ｋ０００００１，Ｋ０００００９があるので、その中の最小値である個人番号＝Ｋ０００００１で統一するために、ＫＥＹＩＤ＝Ａ０００００４についての個人番号＝Ｋ０００００９を、個人番号＝Ｋ０００００１に置き換える。置換後の個人番号は、■印で示されている。なお、市川一郎グループ内における「４４４４４４４４４４４４」、「５５５５５５５５５５５５」という住所バーコードグループについては、それぞれ１レコードしかないので、そのままとする。
【０１３８】
同様に、佐藤三郎グループ内における「３３３３３３３３３３３３」という住所バーコードグループについては、個人番号＝Ｋ０００００３，Ｋ００００１０があるので、その中の最小値である個人番号＝Ｋ０００００３で統一するために、ＫＥＹＩＤ＝Ａ００００１１についての個人番号＝Ｋ００００１０を、個人番号＝Ｋ０００００３に置き換える。なお、佐藤三郎グループ内における「８８８８８８８８８８８８」という住所バーコードグループについては、１レコードしかないので、そのままとする。
【０１３９】
また、武藤六郎グループ内における「１０１０１０１０１０１０」という住所バーコードグループについては、個人番号＝Ｋ００００１１，Ｋ００００１２があるので、その中の最小値である個人番号＝Ｋ００００１１で統一するために、ＫＥＹＩＤ＝Ａ００００１２についての個人番号＝Ｋ００００１２を、個人番号＝Ｋ００００１１に置き換える。なお、武藤六郎グループ内における「６６６６６６６６６６６６」という住所バーコードグループについては、１レコードしかないので、そのままとする。
【０１４０】
さらに、水戸三郎グループ内における「１３１３１３１３１３１３」という住所バーコードグループについては、個人番号＝Ｋ００００１３，Ｋ００００１４があるので、その中の最小値である個人番号＝Ｋ００００１３で統一するために、ＫＥＹＩＤ＝Ａ００００１４についての個人番号＝Ｋ００００１４を、個人番号＝Ｋ００００１３に置き換える。
【０１４１】
それから、第２の子グルーピング手段２４Ｂにより、第１の置換手段２５Ａによる置換処理後のデータについて第１の子グルーピング手段２４Ａによるグルーピングを解除した後に、第２のマッチングパターンの構成要素としての姓名（名称）および電話番号（名称以外の属性情報）の双方が一致するデータの集合からなる第２の子グループ（電話番号グループ）を作成するグルーピング処理を実行する（図５のステップＳ４１）。この第２の子グループの作成処理は、同一の姓名（名称）を含むデータの集合からなる親グループの中で行われるので、電話番号が一致していれば、同じグループとする。この第２の子グルーピング手段２４ＢによるステップＳ４１の処理は、並列分散処理で実行され（例えば、図２の各ＡＰサーバ７１〜７５、または、図３の各ＡＰサーバ８１〜８５で分散して実行され）、その時の分散数は、姓名（名称）の数である。そして、この第２の子グルーピング手段２４Ｂにより作成された第２の子グループ（電話番号グループ）は、分割データ記憶手段４３に記憶されるが、既に詳述したように、この分割データ記憶手段４３は、例えばハードディスクドライブやソリッドステートドライブ等の不揮発性ストレージで実現してもよく、主メモリやキャッシュメモリで実現してもよい。
【０１４２】
図８の例では、市川一郎グループについては、「０８０１１１１１１１１」、「０８０４４４４４４４４」という電話番号グループが作成される。市川一郎グループにおいて、太線で囲まれている（仕切られている）部分が、電話番号グループ（第２の子グループ）である。同様に、佐藤三郎グループについては、「０８０３３３３３３３３」、「０８０８８８８８８８８」という電話番号グループが作成され、武藤六郎グループについては、「０８０６６６６６６６６」、「０８０１０１０１０１０」、「０８０１２１２１２１２」という電話番号グループが作成され、水戸三郎グループについては、「０８０１３１３１３１３」、「０８０１４１４１４１４」という電話番号グループが作成される。
【０１４３】
続いて、第２の置換手段２５Ｂにより、第２の子グルーピング手段２４Ｂにより作成された第２の子グループ（電話番号グループ）毎に、第２の子グループを構成する全てのデータ（レコード）についての各個人番号（各主体識別情報）を、その中の最小値または最大値で統一するための置換処理を実行する（図５のステップＳ４２）。ここでは、最小値の個人番号に統一する置換処理を実行する。この第２の置換手段２５ＢによるステップＳ４２の処理は、並列分散処理で実行され（例えば、図２の各ＡＰサーバ７１〜７５、または、図３の各ＡＰサーバ８１〜８５で分散して実行され）、その時の分散数は、姓名（名称）×配下の電話番号の数（より正確には、姓名（名称）毎の電話番号数の総和）である。
【０１４４】
図８の例では、市川一郎グループ内における「０８０１１１１１１１１」という電話番号グループについては、全て（２つ）のレコードが個人番号＝Ｋ０００００１で既に統一されている状態であるため、そのままとする。一方、市川一郎グループ内における「０８０４４４４４４４４」という電話番号グループについては、個人番号＝Ｋ０００００１，Ｋ０００００４があるので、その中の最小値である個人番号＝Ｋ０００００１で統一するために、ＫＥＹＩＤ＝Ａ０００００２についての個人番号＝Ｋ０００００４を、個人番号＝Ｋ０００００１に置き換える。置換後の個人番号は、◇印で示されている。
【０１４５】
同様に、佐藤三郎グループ内における「０８０８８８８８８８８」という電話番号グループについては、個人番号＝Ｋ０００００３，Ｋ０００００８があるので、その中の最小値である個人番号＝Ｋ０００００３で統一するために、ＫＥＹＩＤ＝Ａ０００００８についての個人番号＝Ｋ０００００８を、個人番号＝Ｋ０００００３に置き換える。なお、佐藤三郎グループ内における「０８０３３３３３３３３」という電話番号グループについては、１レコードしかないので、そのままとする。
【０１４６】
また、武藤六郎グループ内における「０８０６６６６６６６６」、「０８０１０１０１０１０」、「０８０１２１２１２１２」という電話番号グループについては、それぞれ１レコードしかないので、そのままとする。
【０１４７】
さらに、水戸三郎グループ内における「０８０１３１３１３１３」、「０８０１４１４１４１４」という電話番号グループについては、それぞれ１レコードしかないので、そのままとする。
【０１４８】
なお、本実施形態のように複数（ここでは、２つ）のマッチングパターンがある場合には、同一のマッチングパターンに対応する子グルーピング手段２４による処理および置換手段２５による処理を複数回繰り返すようにしてもよい。すなわち、図５のステップＳ４２の処理に続けて、再び、第１の子グルーピング手段２４Ａによる処理（但し、初回ではなく、２回目なので、その前に実行された第２の子グルーピングを解除する処理が含まれる。）および第１の置換手段２５Ａによる処理を行ってもよく、さらに、その後、第２の子グルーピング手段２４Ｂによる処理および第２の置換手段２５Ｂによる処理を行ってもよい。そして、このような同一の手段による処理の繰り返しを３回以上行ってもよい。このように同一のマッチングパターンに対応する子グルーピング手段２４による処理および置換手段２５による処理を複数回繰り返すことにより、マッチングパターンによるデータ間の連鎖が複雑になった場合にも対応することができる。ここでいう複雑な連鎖への対応とは、簡単に言えば、例えば、ＫＥＹＩＤ＝（４）と（３）のデータ（レコード）は、住所バーコードＹが共通しているので、同一主体（同一人物）のものとされ、ＫＥＹＩＤ＝（３）と（２）のデータは、電話番号Ｂが共通しているので、同一主体（同一人物）のものとされ、ＫＥＹＩＤ＝（２）と（１）のデータは、住所バーコードＸが共通しているので、同一主体（同一人物）のものとされる場合に、ＫＥＹＩＤ＝（４）と（１）のデータは、同一主体（同一人物）のものとされる必要があるといった、いわゆる芋ずる状態が生じているケースでも、ＫＥＹＩＤ＝（４）と（１）のデータを名寄せする（ＫＥＹＩＤ＝（４）と（１）のデータについての個人番号を統一する）ことができるようにするという意味である。
【０１４９】
その後、名寄せマスタ更新手段２６により、ＫＥＹＩＤをキーとして、第２の置換手段２５Ｂによる第２の置換処理後の各親グループに属する各電話番号グループ（第２の子グループ）を構成する各データおよびそれらの各データに対応する個人番号（主体識別情報）を、レコード単位で名寄せマスタに反映させることにより、名寄せマスタ記憶手段４１に記憶された名寄せマスタ（今回の名寄せ処理の対象である名寄せマスタ）を更新する（図５のステップＳ５１）。この名寄せマスタ更新手段２６によるステップＳ５１の処理は、並列分散処理で実行され（例えば、図２の各ＡＰサーバ７１〜７５、または、図３の各ＡＰサーバ８１〜８５で分散して実行され）、その時の分散数は、姓名（名称）×配下の電話番号の数（より正確には、姓名（名称）毎の電話番号数の総和）である。
【０１５０】
図６〜図８の例では、今回の名寄せ処理の対象である名寄せマスタ（マージ手段２２によるマージ処理後の名寄せマスタ）は、図６の最下段に示された状態であり、この状態から、名寄せマスタは、図８の最下段に示された状態に更新される。図８の最下段に示された名寄せマスタを構成する各レコードについての個人番号のうち、▲印、■印、◇印が付されている個人番号が、名寄せ処理により得られた最終的な名寄せ結果である。従って、最終的に新規に付与された個人番号は、太線で囲まれたＫ００００１１，Ｋ００００１３である。
【０１５１】
なお、名寄せマスタ更新手段２６は、いずれかの親グループ（姓名グループ）についての名寄せ処理でエラーが発生した場合には、エラーが発生した親グループ（姓名グループ）を除く置換処理後の各親グループに属する各子グループを構成する各データおよびそれらの各データに対応する個人番号（主体識別情報）により、名寄せマスタ記憶手段４１に記憶された名寄せマスタを更新するとともに、エラーが発生した親グループに対応する姓名（名称）を、エラー発生日時やその他のエラー情報とともにエラー情報記憶手段４４に記憶させる。例えば、武藤六郎グループの処理でエラーが発生した場合には、武藤六郎グループを除き、エラーが発生しなかったその他の姓名グループである市川一郎グループ、佐藤三郎グループ、水戸三郎グループにより、名寄せマスタを更新するとともに、武藤六郎を、エラー発生日時やその他のエラー情報とともにエラー情報記憶手段４４に記憶させる。
【０１５２】
＜名寄せシステム１０の効果＞
【０１５３】
このような本実施形態によれば、次のような効果がある。すなわち、名寄せシステム１０は、親グルーピング手段２３を備えているので、名寄せの対象となるデータについて、先ず、同一の名称（本実施形態では、姓名）を含むデータの集合からなる親グループを作成することができ（図４のステップＳ２１参照）、それぞれの親グループ（本実施形態では、姓名グループ）の中で、子グループ（本実施形態では、住所バーコードグループや電話番号グループ）の作成処理（図４のステップＳ３１、図５のステップＳ４１参照）や、主体識別情報（本実施形態では、個人番号）の置換処理（図４のステップＳ３２、図５のステップＳ４２参照）を実行することができる。従って、親グループ単位の処理につき、並列分散処理を実現することができる。換言すれば、ある親グループ内の処理は、別の親グループ内の処理の終了を待つことなく進めることができ、ある親グループ内のいずれの処理についても、別の親グループ内のいずれの処理とのタスク間の先行制約を生じない状態とすることができる。また、このことは、ある親グループ内の処理でエラーが発生しても、別の親グループ内の処理を完了させることができることを意味する。
【０１５４】
このため、名寄せのための一連の処理の中の早い段階で、効果的なグルーピング処理を行っていることになり（図４のステップＳ２１参照）、これにより、全体的に見て、タスク間の先行制約の少ない並列分散処理に適したアルゴリズムを実現しているので、効率的な並列分散処理を実現することができ、サーバのスケールアウトによる性能改善を図ることができる。
【０１５５】
また、各親グループに分かれた後の処理（図４のステップＳ３１以降の処理）においても、子グループ単位（本実施形態では、住所バーコードグループ単位や、電話番号グループ単位）での並列分散処理が行われるので、この点でも、処理性能の向上を図ることができる。
【０１５６】
さらに、名寄せシステム１０は、仮主体識別情報付与手段である仮個人番号付与手段２１、およびマージ手段２２を備えているので、新規に追加されたトランザクションデータのみならず、変更されたトランザクションデータも含め、全ての更新用データの各々に対し、仮の個人番号（仮の主体識別情報）を付与してから、更新用データを名寄せマスタに反映させることができる（図４のステップＳ１１〜Ｓ１３参照）。このため、名寄せに必要な各種の判断処理を行う前に、全ての更新用データの各々に対し、仮の個人番号（仮の主体識別情報）が付与されている状態であるため、途中の段階で付与するよりも、名寄せ処理のアルゴリズムを簡易化することができる。
【０１５７】
そして、仮個人番号付与手段２１は、更新用データの各々に対して連番（本実施形態では、１から始まる整数の連番）で付与した更新用データ識別番号や、名寄せマスタ記憶手段４１に記憶された名寄せマスタ内の個人番号（主体識別情報）の最大値を用いて、仮の個人番号（仮の主体識別情報）を並列分散処理により計算で求める構成とされているので（図４のステップＳ１１，Ｓ１２参照）、名寄せの一連の処理の中で、並列分散処理が行われる部分を、より一層増やすことができるため、この点でも、処理性能の向上を図ることができる。
【０１５８】
また、名寄せシステム１０では、子グルーピング手段２４は、複数（本実施形態では、一例として２つ）のマッチングパターンに対応して第１、第２の子グルーピング手段２４Ａ，２４Ｂにより構成されるとともに、これに対応して、置換手段２５は、第１、第２の置換手段２５Ａ，２５Ｂにより構成されているので、第１の子グループ（本実施形態では、住所バーコードグループ）単位の処理、第２の子グループ（本実施形態では、電話番号グループ）単位の処理のそれぞれにおいて、並列分散処理を実行することができる。例えば、「１１１１１１１１１１１１」、「４４４４４４４４４４４４」、「５５５５５５５５５５５５」という各住所バーコードグループの間で、並列分散処理を実行し（図４のステップＳ３２参照）、次に、「０８０１１１１１１１１」、「０８０４４４４４４４４」という電話番号グループの間で、並列分散処理を実行することができる（図５のステップＳ４２，Ｓ５１参照）。このため、複数のマッチングパターンがある場合でも、効果的な並列分散処理を実行することができる。
【０１５９】
さらに、名寄せシステム１０は、エラー情報記憶手段４４を備え、名寄せマスタ更新手段２６は、エラーが発生した親グループを除き、名寄せの結果を名寄せマスタに反映させるとともに、エラーが発生した親グループに対応する姓名（名称）を、エラー情報記憶手段４４に記録しておく構成とされているので、名寄せすることができない姓名（名称）が含まれていても、その他の姓名（名称）についての名寄せを終えることができる。このため、全体的な進行を滞らせることなく、あるいは、止めることなく、名寄せ処理を完了させることができる。そして、このような一部の姓名（名称）を除く部分的な名寄せ処理を行うことできるのは、前述したように親グルーピング手段２３による親グループの作成処理が早い段階で行われているからであるため（図４のステップＳ２１参照）、この点で、親グルーピング手段２３の設置効果を顕著に示すことができる。
【０１６０】
また、エラー情報記憶手段４４にエラー情報が記憶されるので、その後、人手による名寄せ作業を行う際に、その作業対象を容易に特定することができるうえ、次回以降の名寄せ処理において、そのエラー情報を利用し、その姓名（名称）に対応する親グループの処理を最初から回避してエラーの発生を未然に防止することもできる。
【０１６１】
さらに、名寄せシステム１０は、切替対象設定手段２７および切替対象記憶手段４５を備えているので、エラーの発生が多い姓名（名称）や、ユーザにより入力設定された姓名（名称）に対応する親グループについて、通常のアルゴリズムとは異なるアルゴリズムを適用して名寄せ処理を実行することができる。このため、名寄せ処理の自動化達成率を高めること、すなわちイレギュラーな事象が発生した場合における人手による作業の介在の度合いを抑えることができる。
【０１６２】
そして、名寄せシステム１０は、修正情報設定手段２８および修正情報記憶手段４６を備えているので、データに関与する個人（主体）について、毎回または高い頻度で、不適切な状態（例えば、禁止されているブランクが入っている状態や、使用禁止されている文字が使用されている状態等）でその姓名（名称）が入力されるときに、そのような「不適切な入力状態の姓名（名称）」に対応する「適切な入力状態の姓名（名称）」を、ユーザ（名寄せシステム１０のユーザ）が修正情報記憶手段４６に予め入力設定しておけば、姓名（名称）を適切な状態に自動修正することができる。このため、親グルーピング手段２３による親グループの作成処理を円滑に行うことができる。
【０１６３】
また、名寄せシステム１０は、属性情報推定手段２９およびモデル記憶手段４７を備えているので、姓名（名称）以外の属性情報について、その内容を推定してブランクを埋めることができる。このため、マッチングパターンの構成要素となる属性情報がブランクとなっているデータについても、名寄せ処理を行うことができる。
【０１６４】
＜変形の形態＞
【０１６５】
なお、本発明は前記実施形態に限定されるものではなく、本発明の目的を達成できる範囲内での変形等は本発明に含まれるものである。
【０１６６】
例えば、前記実施形態の名寄せシステム１０は、切替対象設定手段２７、修正情報設定手段２８、属性情報推定手段２９、エラー情報記憶手段４４、切替対象記憶手段４５、修正情報記憶手段４６、およびモデル記憶手段４７を備えていたが、これらの設置は省略してもよい。但し、名寄せ処理の円滑化等の観点からは、これらを設置しておくことが好ましい。
【０１６７】
また、前記実施形態の名寄せシステム１０では、第１の子グルーピング手段２４Ａにより作成される第１の子グループは、住所バーコードグループとされ、第２の子グルーピング手段２４Ｂにより作成される第２の子グループは、電話番号グループとされていたが、これを逆順とし、第１の子グループを、電話番号グループとし、第２の子グループを、住所バーコードグループとしてもよい。このような子グループの作成順序の入替は、切替対象記憶手段４５に記憶されている姓名（名称）に対応する親グループの処理についてのアルゴリズムの切替に利用することができる。
【０１６８】
さらに、前記実施形態の名寄せシステム１０では、子グルーピング手段２４は、複数（２つ）のマッチングパターンに対応して第１、第２の子グルーピング手段２４Ａ，２４Ｂにより構成されるとともに、これに対応して、置換手段２５は、第１、第２の置換手段２５Ａ，２５Ｂにより構成されていたが、本発明における子グルーピング手段や置換手段は、このような構成に限定されるものではなく、例えば、図９に示すような処理を実行する構成とすることができる。図９の例も、切替対象記憶手段４５に記憶されている姓名（名称）に対応する親グループの処理についてのアルゴリズムの切替に利用することができる。
【０１６９】
図９の例では、親グループ（姓名グループ）の作成までの処理は、前記実施形態の親グルーピング手段２３による親グループの作成までの処理（図４のステップＳ２１までの処理）と同様であり、親グループに分けた後の処理が、前記実施形態の場合の処理（図４のステップＳ３１以降の処理）とは異なる。従って、前記実施形態における図６のデータの状態の変遷は、図９の例でも同じであり、さらに、前記実施形態における図７の最上段までは図９の例でも同じであり、図７の中段以降から異なる。
【０１７０】
図９の場合の子グルーピング手段は、親グループ（姓名グループ）毎に、住所バーコード（ある属性情報）による子グループ（住所バーコードグループ）、および電話番号（別の属性情報）による子グループ（電話番号グループ）を同時に作成する。同時に作成するので、住所バーコードグループと電話番号グループとの間で、データ（レコード）は重複している。すなわち、同じＫＥＹＩＤのデータ（レコード）が、いずれかの住所バーコードグループに属し、かつ、いずれかの電話番号グループにも属する状態となる。なお、同時に作成というのは、作成された住所バーコードグループおよび電話番号グループが同時に存在しているときがあるという意味である。
【０１７１】
例えば、市川一郎グループでは、「１１１１１１１１１１１１」、「４４４４４４４４４４４４」、「５５５５５５５５５５５５」という住所バーコードグループが作成されるとともに、「０８０１１１１１１１１」、「０８０４４４４４４４４」という電話番号グループが作成される。
【０１７２】
続いて、図９の場合の置換手段は、各子グループ内（各住所バーコードグループ内、および各電話番号グループ内）で、その子グループを構成するデータ（レコード）についての個人番号（主体識別情報）を、その中の最小値または最大値で統一する置換処理（第１の置換処理）を実行する。ここでは、子グループ内の個人番号のうちの最小値で、その子グループ内の全ての個人番号を統一する。この第１の置換処理の結果は、図９中の「置換」カラムに記載され、この「置換」カラムにおいて、各住所バーコードグループ内で置換された個人番号は、■印で示されている。また、各電話番号グループ内で置換された個人番号は、◇印で示されている。なお、ここで「置換」カラムという場合のカラムとは、置換前の情報が記憶されている領域と別の記憶領域を示しているわけではなく、単に置換の前後の状態を判り易く説明するために図示したものである。
【０１７３】
さらに、図９の場合の置換手段は、前述したように同じＫＥＹＩＤのデータ（レコード）が複数存在することにより、それらのデータ（レコード）についての個人番号（主体識別情報）が一致していない状態を生じ得るので、その状態に対応するため、個人番号を統一する置換処理（第２の置換処理）を実行する。すなわち、図９の例では、同じＫＥＹＩＤのデータ（レコード）が、マッチングパターンの数だけ（前記実施形態と同様に２つ）存在しているので、具体的に言えば、住所バーコードグループ内および電話番号グループ内の双方に存在しているので、ＫＥＹＩＤを用いて、住所バーコードグループ内の個人番号と、電話番号グループ内の個人番号とを結び付け、個人番号を統一する置換処理（第２の置換処理）を実行する。この第２の置換処理の結果は、図９中の「比較選択」カラムに記載されている。この場合のカラムも、前述した「置換」カラムの場合と同様に、別の記憶領域を示すものではなく、単なる説明のための図示である。
【０１７４】
より詳細には、第２の置換処理では、ある１つの電話番号グループ（以下、処理対象の電話番号グループという。）内の処理を実行する際に、その処理対象の電話番号グループ内に存在するＫＥＹＩＤ（その処理対象の電話番号グループを構成する各レコードについてのＫＥＹＩＤ）を用いて、それらのＫＥＹＩＤと同じＫＥＹＩＤが存在する住所バーコードグループ内の個人番号（住所バーコードグループにおける「置換」カラムの個人番号であり、その住所バーコードグループ内において既に統一されている個人番号）を取得する。この際、処理対象の電話番号グループ内に存在するＫＥＹＩＤが複数あれば、それぞれのＫＥＹＩＤと同じＫＥＹＩＤが存在する住所バーコードグループ内の個人番号を取得する。そして、住所バーコードグループから取得した個人番号のうちの最小値（なお、第１の置換処理で最大値を選んでいる場合には、ここは、最大値となる。）が、処理対象の電話番号グループ内の個人番号（処理対象の電話番号グループにおける「置換」カラムの個人番号であり、処理対象の電話番号グループ内において既に統一されている個人番号）よりも小さい場合（なお、第１の置換処理で最大値を選んでいる場合には、ここは、大きい場合となる。）には、処理対象の電話番号グループ内の全ての個人番号を、住所バーコードグループから取得した個人番号のうちの最小値（なお、第１の置換処理で最大値を選んでいる場合には、ここは、最大値となる。）で統一する置換処理を実行する。
【０１７５】
なお、処理対象の電話番号グループ内に存在するＫＥＹＩＤが複数ある場合には、最終的に、上記のような状態（処理対象の電話番号グループ内の個人番号が最小値で統一された状態）になればよいので、一旦、それらの複数のＫＥＹＩＤのうちの１つのＫＥＹＩＤに着目し、そのＫＥＹＩＤと同じＫＥＹＩＤが存在する住所バーコードグループ内の個人番号を取得し、取得した個人番号が、処理対象の電話番号グループ内の個人番号よりも小さい場合には、処理対象の電話番号グループ内の全ての個人番号を、住所バーコードグループから取得した個人番号で統一する置換処理を実行し、次に、別のＫＥＹＩＤに着目し、そのＫＥＹＩＤと同じＫＥＹＩＤが存在する住所バーコードグループ内の個人番号を取得し、取得した個人番号が、処理対象の電話番号グループ内の個人番号よりも小さい場合には、処理対象の電話番号グループ内の全ての個人番号を、住所バーコードグループから取得した個人番号で統一する置換処理を実行するといった処理を繰り返してもよい。
【０１７６】
例えば、市川一郎グループにおける「０８０４４４４４４４４」という電話番号グループの処理において、先ず、この電話番号グループ内のＫＥＹＩＤ＝Ａ０００００２に着目すると、「０８０４４４４４４４４」という電話番号グループ内の個人番号（「置換」カラムに記載された第１の置換処理後の個人番号であるから、当然、当該ＫＥＹＩＤ＝Ａ０００００２に対応する個人番号と同じである。）は、Ｋ０００００４であり、一方、同じＫＥＹＩＤ＝Ａ０００００２は、市川一郎グループにおける「４４４４４４４４４４４４」という住所バーコードグループにあり、この住所バーコードグループ内の個人番号（「置換」カラムに記載された第１の置換処理後の個人番号であるから、当然、当該ＫＥＹＩＤ＝Ａ０００００２に対応する個人番号と同じである。）も、Ｋ０００００４である。従って、個人番号は、Ｋ０００００４で一致しているので、電話番号グループ内の全ての個人番号は、そのまま（「置換」カラムに記載された第１の置換処理後の個人番号のまま）とする。
【０１７７】
続いて、市川一郎グループにおける「０８０４４４４４４４４」という電話番号グループの処理において、この電話番号グループ内の別のＫＥＹＩＤ＝Ａ０００００４に着目すると、「０８０４４４４４４４４」という電話番号グループ内の個人番号（「置換」カラムに記載された第１の置換処理後の個人番号であるから、当然、当該ＫＥＹＩＤ＝Ａ０００００４に対応する個人番号と同じである。）は、Ｋ０００００４であり、一方、同じＫＥＹＩＤ＝Ａ０００００４は、市川一郎グループにおける「１１１１１１１１１１１１」という住所バーコードグループにあり、この住所バーコードグループ内の個人番号（「置換」カラムの第１の置換処理後の個人番号であるから、当然、当該ＫＥＹＩＤ＝Ａ０００００４に対応する個人番号と同じである。）は、Ｋ０００００１である。従って、市川一郎グループにおける「０８０４４４４４４４４」という電話番号グループ内の全ての個人番号を、Ｋ０００００１に置き換える。すなわち、市川一郎グループにおける「０８０４４４４４４４４」という電話番号グループ内において、当該ＫＥＹＩＤ＝Ａ０００００４に対応する個人番号＝Ｋ０００００４を、Ｋ０００００１に置き換える（「比較選択」カラムの◎印）とともに、それ以外のＫＥＹＩＤ＝Ａ０００００２に対応する個人番号＝Ｋ０００００４も、Ｋ０００００１に置き換える（「比較選択」カラムの○印）。
【０１７８】
そして、名寄せマスタ更新手段２６は、電話番号グループ内の各データ（レコード）およびそれに対応する個人番号（「比較選択」カラムの個人番号）を用いて、電話番号グループ内のＫＥＹＩＤをキーとして、名寄せマスタ記憶手段４１に記憶された名寄せマスタを更新する。
【０１７９】
なお、図９の例における第２の置換処理では、以上の説明において、住所バーコードグループと電話番号グループとを逆転させてもよい。すなわち、ある１つの住所バーコードグループ（以下、処理対象の住所バーコードグループという。）内の処理を実行する際に、その処理対象の住所バーコードグループ内に存在するＫＥＹＩＤ（その処理対象の住所バーコードグループを構成する各レコードについてのＫＥＹＩＤ）を用いて、それらのＫＥＹＩＤと同じＫＥＹＩＤが存在する電話番号グループ内の個人番号（電話番号グループにおける「置換」カラムの個人番号であり、その電話番号グループ内において既に統一されている個人番号）を取得する。この際、処理対象の住所バーコードグループ内に存在するＫＥＹＩＤが複数あれば、それぞれのＫＥＹＩＤと同じＫＥＹＩＤが存在する電話番号グループ内の個人番号を取得する。そして、電話番号グループから取得した個人番号のうちの最小値（なお、第１の置換処理で最大値を選んでいる場合には、ここは、最大値となる。）が、処理対象の住所バーコードグループ内の個人番号（処理対象の住所バーコードグループにおける「置換」カラムの個人番号であり、処理対象の住所バーコードグループ内において既に統一されている個人番号）よりも小さい場合（なお、第１の置換処理で最大値を選んでいる場合には、ここは、大きい場合となる。）には、処理対象の住所バーコードグループ内の全ての個人番号を、電話番号グループから取得した個人番号のうちの最小値（なお、第１の置換処理で最大値を選んでいる場合には、ここは、最大値となる。）で統一する置換処理を実行してもよい。この場合には、住所バーコードグループ内の個人番号について、「比較選択」カラムに相当する情報が作成されることになり、名寄せマスタ更新手段２６は、住所バーコードグループ内の各データ（レコード）およびそれに対応する個人番号（「比較選択」カラムの個人番号）を用いて、住所バーコードグループ内のＫＥＹＩＤをキーとして、名寄せマスタ記憶手段４１に記憶された名寄せマスタを更新することになる。
【０１８０】
また、図９の例における第２の置換処理において、上記のように、住所バーコードグループと電話番号グループとを逆転させた状態の処理を両方とも行ってもよい。すなわち、電話番号グループを中心とする置換処理を実行した後に、住所バーコードグループを中心とする置換処理を実行してもよく、あるいは、その逆順で、住所バーコードグループを中心とする置換処理を実行した後に、電話番号グループを中心とする置換処理を実行してもよい。さらには、このような逆転状態の処理を、複数回繰り返してもよく、例えば、電話番号、住所バーコード、電話番号、住所バーコード、電話番号、住所バーコード、…といった具合に、置換処理の中心とするグループ種別を逆転させる処理を繰り返してもよい。
【産業上の利用可能性】
【０１８１】
以上のように、本発明の名寄せシステムおよびプログラムは、例えば、契約、請求、取引等に関するトランザクションデータの名寄せ処理等に用いるのに適している。
【符号の説明】
【０１８２】
１０  名寄せシステム
２１  仮主体識別情報付与手段である仮個人番号付与手段
２２  マージ手段
２３  親グルーピング手段
２４  子グルーピング手段
２４Ａ  第１の子グルーピング手段
２４Ｂ  第２の子グルーピング手段
２５  置換手段
２５Ａ  第１の置換手段
２５Ｂ  第２の置換手段
２６  名寄せマスタ更新手段
２７  切替対象設定手段
２８  修正情報設定手段
２９  属性情報推定手段
４１  名寄せマスタ記憶手段
４２  更新用データ記憶手段
４３  分割データ記憶手段
４４  エラー情報記憶手段
４５  切替対象記憶手段
４６  修正情報記憶手段
４７  モデル記憶手段
【図１】
2019074874.tif 000003
【図２】
2019074874.tif 000004
【図３】
2019074874.tif 000005
【図４】
2019074874.tif 000006
【図５】
2019074874.tif 000007
【図６】
2019074874.tif 000008
【図７】
2019074874.tif 000009
【図８】
2019074874.tif 000010
【図９】
2019074874.tif 000011