(57)【特許請求の範囲】
【請求項１】
コンピュータが、
第１のデータ種別に該当する第１のデータベースの項目の統合対象を、第２のデータベースの項目から検索する際に、文字コードの分類ごとに各分類に含まれる文字コードの範囲を対応付けた対応表を用いて、前記第２のデータベースの項目から、前記第１のデータ種別が属する文字コードの範囲に属さない文字コードの範囲を含むデータ種別に該当する項目を、前記統合対象の項目から除外する
処理を実行することを特徴とする類似文字コード群検索支援方法。
【請求項２】
コンピュータが、
複数の文字コードそれぞれについて、予め定められた複数の範囲のいずれに属するかの判定を行ない、
第１のデータ種別に該当する第１のデータベースの項目の統合対象を、第２のデータベースの項目から検索する際に、前記判定によって生成された、前記文字コードの分類ごとに各分類に含まれる文字コードの範囲を対応付けた対応表を用いて、前記第２のデータベースの項目から、前記第１のデータ種別が属する文字コードの範囲に属さない文字コードの範囲を含むデータ種別に該当する項目を除いた項目を、前記統合対象の項目として抽出する、
処理を実行することを特徴とする類似候補抽出方法。
【請求項３】
前記コンピュータが、
前記判定において、文字コードが前記複数の範囲うちの２以上の範囲に属する場合は、数値範囲がより狭い方の範囲に属すると判定する、
処理をさらに実行することを特徴とする請求項２に記載の類似候補抽出方法。
【請求項４】
前記判定する処理は、数値の小さい範囲から順に並べた前記対応表を生成し、
前記抽出する処理は、前記対応表の先頭から順に、前記統合対象の項目から否かを判定することを特徴とする請求項２又は請求項３に記載の類似候補抽出方法。
【請求項５】
前記コンピュータが、
前記第１のデータベースの項目に対応するデータおよび前記統合対象の項目として抽出された前記第２のデータベースの項目に対応するデータについて、各データを文字ごとに分類し、前記データを形成する文字の最大データ長である最大文字データ長、前記データを形成する文字のデータ長を平均した平均文字データ長、前記データの中に含まれるＮＵＬＬの割合であるＮＵＬＬ率、前記データを形成する文字のうち重複していない文字の数であるユニーク数、前記データを形成する文字数における前記ユニーク数の割合である離散度の少なくとも１つを算出し、算出した最大文字データ長、平均文字データ長、ＮＵＬＬ率、ユニーク数、離散度を用いて、前記第１のデータベースの項目と前記統合対象の項目との類似度を算出する、
処理をさらに実行することを特徴とする請求項２に記載の類似候補抽出方法。
【請求項６】
前記類似度を算出する処理は、前記算出した最大文字データ長、平均文字データ長、ＮＵＬＬ率、ユニーク数、離散度各々について、予め定めた重みを乗算し、乗算した結果を用いて類似度を算出することを特徴とする請求項５に記載の類似候補抽出方法。
【請求項７】
前記類似度を算出する処理は、前記第１のデータベースの項目の名称と前記統合対象の項目の名称との間における編集距離を算出し、算出した編集距離をさらに用いて、前記類似度を算出することを特徴とする請求項５に記載の類似候補抽出方法。
【請求項８】
コンピュータに、
複数の文字コードそれぞれについて、予め定められた複数の範囲のいずれに属するかの判定を行ない、
第１のデータ種別に該当する第１のデータベースの項目の統合対象を、第２のデータベースの項目から検索する際に、前記判定によって生成された、前記文字コードの分類ごとに各分類に含まれる文字コードの範囲を対応付けた対応表を用いて、前記第２のデータベースの項目から、前記第１のデータ種別が属する文字コードの範囲に属さない文字コードの範囲を含むデータ種別に該当する項目を除いた項目を、前記統合対象の項目として抽出する、
処理を実行させることを特徴とする類似候補抽出プログラム。
【請求項９】
第１のデータベースを有する第１のデータベースサーバおよび第２のデータベースを有する第２のデータベースサーバとネットワークを介して接続される類似判定装置であって、
複数の文字コードそれぞれについて、予め定められた複数の範囲のいずれに属するかの判定を実行する判定部と、
第１のデータ種別に該当する前記第１のデータベースの項目の統合対象を、前記第２のデータベースの項目から検索する際に、前記判定によって生成された、前記文字コードの分類ごとに各分類に含まれる文字コードの範囲を対応付けた対応表を用いて、前記第２のデータベースの項目から、前記第１のデータ種別が属する文字コードの範囲に属さない文字コードの範囲を含むデータ種別に該当する項目を除いた項目を、前記統合対象の項目として抽出する抽出部と
を有することを特徴とする類似候補抽出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、類似文字コード群検索支援方法、類似候補抽出方法、類似候補抽出プログラムおよび類似候補抽出装置に関する。
【背景技術】
【０００２】
従来、複数のデータベースを統合して新たなデータベースを作成する場合に、名寄せ処理が実行される。名寄せ処理では、統合対象の各データベースの各データ項目間について類似性を判定して類似するデータ項目を抽出し、抽出したデータ項目から同一のデータ項目を決定する。
【０００３】
具体的な例としては、経理システム、顧客システム、配送システムなどの複数のシステムにおける各マスタデータのデータ項目間について類似度を算出し、類似度の高いデータ項目を抽出する例などが挙げられる。
【０００４】
データ項目の類似性を判定する手法としては、作業者の目視や自動推定が利用される。例えば、作業者の目視を用いた手法では、作業者が、各データベースの設計書上の項目説明を参考にしながら、データベースＡのデータ項目「受注先」とデータベースＢのデータ項目「得意先」とは類似項目であるなどと判定して、類似するデータ項目を特定する。
【０００５】
自動推定を用いた手法では、データ項目をサンプリングしながら類似度を算出して、類似するデータ項目を特定する。例えば、データ項目に対応付けられた属性値の文字列長、データ項目や属性値に出現する特徴文字列の出現頻度、共通する部分文字列の数等を用いて類似度を算出する手法などがある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−２７１６５６号公報
【特許文献２】特開平１１−１４３９０２号公報
【特許文献３】特開平６−３２５０９１号公報
【特許文献４】特開２００１−６７３７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の技術を用いた場合でも、データ項目の数や類似度の算出結果によっては、類似候補を判定する処理時間が増大するという問題がある。
【０００８】
例えば、目視による手法の場合、各データベースのデータ項目名には通常バラツキがあるので、設計書に記載されるデータ項目名や項目説明だけでは判断できないことが多い。また、過去のシステムでは、データベースの設計書自体が残っていないことも多く、残っていても更新部分が未反映である場合もある。これらの場合には、作業者が、データ項目の属性値すなわちデータそのものを確認した上で判断することになるので、データ項目数が多い場合には膨大な時間がかかる。
【０００９】
また、自動推定による手法の場合、データ項目同士の組み合わせについて計算を行なうため、データ項目数が多い場合や予め類似項目が絞り込めていない場合には、かえって時間がかかる。例えば、１０万個のデータ項目がある場合には、１０万×１０万／２＝５０億回の類似度算出を実行することになり現実的でない。
【００１０】
また、自動推定による手法の場合、統合対象の可能性が高いデータ項目として類似度が高いデータ項目同士を自動的に抽出し、類似度が低いデータ項目同士については自動的に対象外となる。したがって、類似度が低くても関連性が高く、統合対象となるデータ項目については、目視による手法を実施することになる。
【００１１】
１つの側面では、類似候補を判定する処理時間の増大を抑制することを目的とする。
【課題を解決するための手段】
【００１２】
第１の案では、コンピュータに、以下の処理を実行させる。すなわち、指定された文字コード群と類似する文字コード群を複数の文字コード群の中から検索する。この際に、該指定された文字コード群に含まれる各文字コードが、所定の数値範囲内である場合に、前記複数の文字コード群から、前記所定の数値範囲内に属さない文字コードを含む文字コード群を除いた文字コード群を抽出する。
【発明の効果】
【００１３】
類似候補を判定する処理時間の増大を抑制できる。
【図面の簡単な説明】
【００１４】
【図１】図１は、実施例１に係る類似判定装置を含むシステムの全体構成例を示す図である。
【図２】図２は、類似対象を除外する処理例を説明する図である。
【図３】図３は、実施例２に係る類似判定装置の構成を示す機能ブロック図である。
【図４】図４は、対応表ＤＢに記憶される対応表の例を示す図である。
【図５】図５は、重みルールＤＢに記憶される情報の例を示す図である。
【図６】図６は、比較元ＤＢに記憶される情報の例を示す図である。
【図７】図７は、比較先ＤＢに記憶される情報の例を示す図である。
【図８】図８は、比較元属性ＤＢに記憶される情報の例を示す図である。
【図９】図９は、比較先属性ＤＢに記憶される情報の例を示す図である。
【図１０】図１０は、比較結果ＤＢに記憶される情報の例を示す図である。
【図１１】図１１は、同一候補ＤＢに記憶される情報の例を示す図である。
【図１２】図１２は、実施例２に係る類似判定装置が実行する処理の流れを示すフローチャートである。
【図１３】図１３は、実施例２に係る類似判定装置が実行する数値化処理の流れを示すフローチャートである。
【図１４】図１４は、実施例２に係る類似判定装置が実行するデータ種別判定処理の流れを示すフローチャートである。
【図１５】図１５は、実施例２に係る類似判定装置が実行する候補抽出処理の流れを示すフローチャートである。
【図１６】図１６は、ネットワークを介して類似判定を実行するシステムの例を示す図である。
【図１７】図１７は、類似判定プログラムを実行するコンピュータのハードウェア構成の例を示す図である。
【発明を実施するための形態】
【００１５】
以下に、本願の開示する類似文字コード群検索支援方法、類似候補抽出方法、類似候補抽出プログラムおよび類似候補抽出装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１６】
図１は、実施例１に係る類似判定装置を含むシステムの全体構成例を示す図である。図１に示すように、データベース統合システム１は、統合元ＤＢ２と、統合先ＤＢ３と、統合結果ＤＢ４と、類似判定装置１０と、データベース統合装置５０とを有する。このデータベース統合システム１は、統合元ＤＢ２と統合先ＤＢ３とを名寄せして、統合する項目を決定し、新たなデータベースである統合結果ＤＢ４を生成する。なお、この例では、統合対象言い換えると類似判定対象のＤＢが２つの場合を例示しているが、これに限定されるものではなく、同じＤＢ間であってもよく、１つ以上のＤＢであればよい。
【００１７】
統合元ＤＢ２は、少なくとも１つの項目と当該項目に対応付けられたデータとを有するデータベースである。同様に、統合先ＤＢ３は、少なくとも１つの項目と当該項目に対応付けられたデータとを有するデータベースである。統合結果ＤＢ４は、データベース統合システム１によって統合元ＤＢ２と統合先ＤＢ３とから生成された新たなデータベースである。
【００１８】
類似判定装置１０は、統合対象のデータベースである統合元ＤＢ２と統合先ＤＢ３との各々の項目について、類似判定を実施するサーバである。この類似判定装置１０は、分割部１０ａと、第１特定部１０ｂと、第２特定部１０ｃと、除外部１０ｄとを有する。
【００１９】
分割部１０ａは、統合元ＤＢ２および統合先ＤＢ３各々の項目について、項目に対応付けられたデータを文字単位に分割する処理部である。第１特定部１０ｂは、統合元ＤＢ２および統合先ＤＢ３各々の項目について、データの種別とデータの種別に属する文字コードの範囲とを対応付けた対応表から、分割部１０ａが分割した各文字の文字コードを特定する。
【００２０】
第２特定部１０ｃは、統合元ＤＢ２の各項目について、第１特定部１０ｂが特定した各文字の文字コードのうち少なくとも１つの文字コードを、属する文字コードの範囲として含まないデータの種別を対応表から特定する。除外部１０ｄは、統合元ＤＢ２の各項目について、第２特定部１０ｃが特定したデータの種別を有する統合先ＤＢ３の項目を当該統合元ＤＢ２の項目の類似対象から除外する。
【００２１】
データベース統合装置５０は、統合元ＤＢ２と統合先ＤＢ３各々に記憶される項目やデータを用いて、新たなデータベースである統合結果ＤＢ４を生成するサーバである。例えば、データベース統合装置５０は、類似判定装置１０から類似しないと判定された項目同士を受け付けて、ディスプレイ等に表示する。そして、データベース統合装置５０は、マウスなどの入力部を介して、作業者から統合元ＤＢ２と統合先ＤＢ３との間で統合対象とする項目同士の指定を受け付ける。その後、データベース統合装置５０は、指定された項目各々に属するデータを用いて、新たな項目およびデータを統合結果ＤＢ４に生成する。
【００２２】
ここで、類似判定装置１０が実行する処理について説明する。図２は、類似対象を除外する処理例を説明する図である。図２の（Ａ）に示すように、類似判定装置１０は、データの種別とデータの種別に属する文字コードの範囲とを対応付けた対応表を保持する。図２の場合、類似判定装置１０は、データ種別１が文字コード範囲Ｂと対応付けられた種別であり、データ種別２が文字コード範囲Ａおよび文字コード範囲Ｂと対応付けられた種別であり、データ種別３が文字コード範囲Ａから文字コード範囲Ｃと対応付けられた種別であることを示す。
【００２３】
そして、分割部１０ａは、統合先ＤＢ３の項目１に属するデータ「ＸＸＸ６あア」を文字単位に分割する。続いて、第１特定部１０ｃは、「ＸＸＸ６あア」から分割された文字ごとに、文字コード範囲Ａ、文字コード範囲Ｂ、文字コード範囲Ｃのいずれに属するかを判定する。ここでは、第１特定部１０ｃは、図２の（Ｂ）に示すように、文字コード範囲Ａと文字コード範囲Ｂと文字コード範囲Ｃとのいずれについても「ＸＸＸ６あア」を形成するいずれかの文字が属すると判定したとする。
【００２４】
同様に、図２に示すように、分割部１０ａは、統合先ＤＢ３の項目２に属するデータ「ＹＹＹＹＹＹ」を文字単位に分割する。続いて、第１特定部１０ｂは、「ＹＹＹＹＹＹ」から分割された文字ごとに、文字コード範囲Ａ、文字コード範囲Ｂ、文字コード範囲Ｃのいずれに属するかを判定する。ここでは、第１特定部１０ｂは、図２の（Ｂ）に示すように、「ＹＹＹＹＹＹ」を形成する各文字が文字コード範囲Ａに属すると判定したとする。
【００２５】
同様に、図２に示すように、分割部１０ａは、統合先ＤＢ３の項目３のデータ「１２３４５６」を文字単位に分割する。続いて、第１特定部１０ｂは、「１２３４５６」から分割された文字ごとに、文字コード範囲Ａ、文字コード範囲Ｂ、文字コード範囲Ｃのいずれに属するかを判定する。ここでは、第１特定部１０ｂは、図２の（Ｂ）に示すように、「１２３４５６」を形成する各文字が文字コード範囲Ｂに属すると判定したとする。
【００２６】
続いて、第２特定部１０ｃは、第１特定部１０ｂによって判定された結果から、項目１のデータ「ＸＸＸ６あア」が属する文字コード範囲うち、文字コード範囲ＡまたはＣを有さない種別としてデータ種別１とデータ種別２とを特定する。すなわち、項目１は、データ種別１に分類される項目の類似候補にも、データ種別２に分類される項目の類似候補にされない項目とする。例えば、データ種別１に分類される項目と比較した場合には、データ種別１ならば文字コード範囲Ａまたは文字コード範囲Ｂに属する文字を含まないので、データ種別１に分類される項目と項目１とは類似でないことが予想される。また、第２特定部１０ｃは、第１特定部１０ｂによって判定された結果から、項目２のデータ「ＹＹＹＹＹＹ」が属する文字コード範囲Ａを有さない種別としてデータ種別１を特定する。また、第２特定部１０ｃは、第１特定部１０ｂによって判定された結果から、項目２のデータ「１２３４５６」が属する文字コード範囲Ｂを有さないデータは存在しないと特定する。
【００２７】
この結果、除外部１０ｄは、図２の（Ｃ）に示すように、データ種別１とデータ種別２を統合先ＤＢの項目１の類似候補外に設定する。また、除外部１０ｄは、図２の（Ｃ）に示すように、データ種別１を統合先ＤＢの項目２の類似候補外に設定する。また、除外部１０ｄは、図２の（Ｃ）に示すように、統合先ＤＢ３の項目３には類似候補外のデータ種別を設定しない。
【００２８】
また、除外部１０ｄは、統合元ＤＢ２の項目のうち、例えば、データ種別２に分類されている項目０が類似判定対象に指定された場合に、統合先ＤＢ３に格納された項目１、項目２および項目３のうち、データ種別２を類似候補外に設定する項目１を類似判定対象から除外する。項目０は、類似判定装置の制御により、項目２および項目３と類似判定される。
【００２９】
一例として、文字コード範囲Ａに属する文字が数字を示し、文字コード範囲Ｂに属する文字が英字を示し、文字コード範囲Ｃがカタカナを示し、項目０に対応付けられたデータが英字で表記されるＩＤの集合であるとすると、項目０が類似判定対象に指定されることでカタカナを含む項目１が項目０の類似候補から除外される。この例では、数字のみを含む項目３は類似候補から除外されない。この例においては、項目０がＩＤの集合であり、カタカナを含まないデータ種別（データ種別２）に分類されていることを、項目０が類似判定対象に指定される前に確認できるものとしている。すなわち、項目０を類似判定対象に指定するユーザは、ＩＤの集合が、英数字を含み、カタカナを含まないデータ種別（データ種別２）であることが妥当か判断したうえで、項目０を類似判定対象に指定する。
【００３０】
このように、実施例１によれば、類似判定装置１０は、統合対象であるＤＢの項目について、従来から実施されている類似度に基づいて類似する項目を抽出する手法と異なり、項目に属するデータの種別により類似としない項目を特定する。つまり、類似判定装置１０は、類似判定対象の項目について、当該項目のデータそのものと関連性がない他の項目を類似候補から除外する。この結果、類似度による類似する項目の絞り込みすぎを抑止でき、類似では図れない関連性のある項目同士を抽出する作業者の作業時間など、類似候補を判定する処理時間の増大を抑制できる。また、類似度による類似候補の絞込みの処理対象を削減できる。
【実施例２】
【００３１】
次に、図３から図１５を用いて、図１に示した類似判定装置の構成例、処理の流れ等について説明する。なお、ここで説明する類似判定装置の構成はあくまで例示であり、これに限定されるものではない。また、類似判定装置が有する各ＤＢに記憶される情報についても、あくまで例示であり、ここで説明する構成に限定されるものではない。
【００３２】
［類似判定装置の構成］
図３は、実施例２に係る類似判定装置の構成を示す機能ブロック図である。図３に示すように、類似判定装置１０は、通信インタフェース部１１と、入力部１２と、表示部１３と、記憶部１４と、制御部３０とを有する。
【００３３】
通信インタフェース部１１は、ネットワークインターフェースカードなどの通信モジュールであり、他の装置との間の通信を制御する。例えば、通信インタフェース部１１は、類似判定装置１０による類似判定結果を管理者の端末や、図１に示したデータベース統合装置５０に出力する。
【００３４】
入力部１２は、例えばキーボードやマウスなどの入力装置であり、類似判定を開始する指示や終了する指示などの各種指示を受け付ける。表示部１３は、例えばディスプレイやタッチパネルなどの表示装置であり、制御部３０によって得られた同一候補の抽出結果などの各種情報を表示する。
【００３５】
記憶部１４は、制御部３０が実行するプログラムや制御部３０が各種処理を実行する際に使用する作業領域などを有する半導体メモリ素子やハードディスクなどの記憶装置である。この記憶部１４は、対応表ＤＢ１５と、重みルールＤＢ１６と、比較元ＤＢ１７と、比較先ＤＢ１８と、比較元属性ＤＢ１９と、比較先属性ＤＢ２０と、比較結果ＤＢ２１と、同一候補ＤＢ２２とを有する。
【００３６】
対応表ＤＢ１５は、データの種別とデータの種別に属する文字コードの範囲とを対応付けた対応表を記憶するデータベースである。図４は、対応表ＤＢに記憶される対応表の例を示す図である。図４に示すように、この対応表ＤＢ１５は、文字コード分類、コード範囲、データ種別を対応付けて記憶する。
【００３７】
文字コード分類は、文字コードの範囲を分類したものである。図４の場合、「半角制御文字」は、「０ｘ００〜０ｘ１Ｆ」の範囲に属する文字のグループであり、「半角記号」は、「０ｘ２１〜０ｘ２Ｆ」の範囲に属する文字のグループであり、「半角数字」は、「０ｘ３０〜０ｘ３９」の範囲に属する文字のグループである。「半角英大」は、「０ｘ４１〜０ｘ５Ａ」の範囲に属する文字のグループであり、「半角英小」は、「０ｘ６１〜０ｘ７Ａ」の範囲に属する文字のグループであり、「半角カナ」は、「０ｘＡ１〜０ｘＤＦ」の範囲に属する文字のグループである。
【００３８】
「全角記号」は、「０ｘ８１４０〜０ｘ８１ＦＣ」の範囲に属する文字のグループであり、「全角数字」は、「０ｘ８２５０〜０ｘ８２５８」の範囲に属する文字のグループである。「全角英大」は、「０ｘ８２６０〜０ｘ８２７９」の範囲に属する文字のグループであり、「全角英小」は、「０ｘ８２８０〜０ｘ８２９Ａ」の範囲に属する文字のグループである。「全角カナ」は、「０ｘ８３４０〜０ｘ８３９６」の範囲に属する文字のグループであり、「全角かな」は、「０ｘ８２９Ｆ〜０ｘ８２Ｆ１」の範囲に属する文字のグループである。「全角漢字」は、「０ｘ８１４０〜０ｘＡ０ＦＣ」の範囲に属する文字のグループである。上記以外の範囲は「全角その他」に属するグループである。なお、ここで文字コードの例として、シフトＪＩＳを用いた例を示したが、これに限定されるものではなく、ＵＮＩＣＯＤＥなどの他の文字コードを用いることもでき、その場合の例として「キリル文字」、「ギリシャ文字」についても例示している。ＵＮＩＣＯＤＥを用いた場合には、対応表にＵＮＩＣＯＤＥに規定に沿ったコード範囲が定義される。
【００３９】
図４を説明すると、「半角制御文字」は、データ種別「未定義」に属する。「半角記号」は、データ種別「記号、数値、識別子、かな、日本語、ロシア語、ギリシャ語、未定義」に属する。「半角数字」は、データ種別「数値、識別子、かな、日本語、ロシア語、ギリシャ語、未定義」に属する。「半角英大」と「半角英小」各々は、データ種別「識別子、かな、日本語、ロシア語、ギリシャ語、未定義」に属する。「半角カナ」は、データ種別「かな、日本語、ロシア語、ギリシャ語、未定義」に属する。
【００４０】
「全角記号」と「全角数字」各々は、データ種別「数値、識別子、かな、日本語、未定義」に属する。「全角英大」と「全角英小」各々は、データ種別「識別子、かな、日本語、未定義」に属する。「全角カナ」と「全角かな」各々は、データ種別「かな、日本語、未定義」に属する。「全角漢字」は、データ種別「日本語、未定義」に属する。「キリル文字」は、データ種別「ロシア語」に属し、「ギリシャ文字」は、データ種別「ギリシャ文字」に属し、「全角その他」は、データ種別「未定義」に属する。
【００４１】
また、図４に示したデータ種別「記号、数値、識別子、かな、日本語、ロシア語、ギリシャ語、未定義」は、この順番で文字コード範囲の包含関係を形成する。すなわち、あるデータ種別に対応する文字コード分布に包含される他の文字コード分布に対応する他のデータ種別には、あるデータ種別よりも先の順番を付与する。例えば、データ種別「数値」は、データ種別「記号」に属する文字コードを包含し、データ種別「識別子」は、データ種別「記号」または「数値」に属する文字コードを包含する。同様に、データ種別「かな」は、データ種別「記号」または「数値」または「識別子」に属する文字コードを包含し、データ種別「日本語」は、データ種別「記号」または「数値」または「識別子」または「かな」に属する文字コードを包含する。また、データ種別「ロシア語」と「ギリシャ語」各々は、データ種別「記号」、「数値」、「識別子」、「かな」、「日本語」の一部の文字コードを包含する。データ種別「未定義」は、データ種別「記号」、「数値」、「識別子」、「かな」、「日本語」、「ロシア語」、「ギリシャ語」の全ての文字コードを包含する。
【００４２】
図３に戻り、重みルールＤＢ１６は、統合元と統合先とを照合する際に使用される照合方法と重み付けとを記憶するデータベースである。図５は、重みルールＤＢに記憶される情報の例を示す図である。図５に示すように。重みルールＤＢ１６は、「照合項目、照合方法、重み付け」を対応付けて記憶する。ここで記憶される「照合項目」は、統合元と統合先との間で照合対象とするデータを示し、「照合方法」は、照合する際の手法を示し、「重み付け」は、照合結果に対して付加する重みを示す。
【００４３】
図５の場合、「項目名」については「編集距離」で照合し、照合結果には重み「１０」を乗算する。「最大長」については「常用対数」で照合し、照合結果には重み「２」を乗算する。「平均長」については「常用対数」で照合し、照合結果には重み「３」を乗算する。「データ種別」については「文字列一致」で照合し、照合結果には重み「９」を乗算する。「ＮＵＬＬ率」については「常用対数」で照合し、照合結果には重み「１」を乗算する。「ユニーク数」については照合対象から除外する。「離散度」については「常用対数」で照合し、照合結果には重み「１」を乗算する。
【００４４】
ここで記憶される「項目名」は、比較元ＤＢ１７または比較先ＤＢ１８の各項目を示す。「最大長」は、項目に属するデータを形成する文字の最大データ長を示し、「平均長」は、項目に属するデータを形成する文字のデータ長の平均値を示す。「データ種別」は、後述するデータ種別判定部３１ｂによって判定された、項目に属するデータの種別を示す。「ＮＵＬＬ率」は、項目に属するデータの中に含まれるＮＵＬＬの割合を示し、「ユニーク数」は、項目に属するデータを形成する文字のうち重複する文字列の数であり、「離散度」は、項目に属するデータを形成する文字列数におけるユニーク数の割合を示す。
【００４５】
比較元ＤＢ１７は、類似項目を決定する比較元のデータベースであり、本実施例ではここに記憶される各項目に対して、比較先ＤＢ１８から類似項目を抽出する。図６は、比較元ＤＢに記憶される情報の例を示す図である。なお、ここでは、一例として家電売上データを図示する。図６に示すように、比較元ＤＢ１７は、「価格、機器種別、型番、売上日」を対応付けて記憶する。図６では、比較元ＤＢ１７は、「価格、機器種別、型番、売上日」として「98,000、冷蔵庫、GAH2000、2009/12/16」、「2,800、イヤフォン、HSZ-1000、2009/12/21」、「24,800、シェーバー、QA87913、2009/12/22」を記憶する。同様に、比較元ＤＢ１７は、「価格、機器種別、型番、売上日」として「980、充電池、A3-7Z19、2010/1/5」、「18,800、ゲーム機、X2AZ4000、2010/3/25」などを記憶する。
【００４６】
ここで記憶される「価格」は、商品の販売価格であり、「機器種別」は、販売された商品の種別であり、「型番」、販売された商品の製造番号や型を示す番号などであり、「売上日」は、商品が販売された日である。
【００４７】
比較先ＤＢ１８は、類似項目を決定する比較先のデータベースであり、本実施例では比較元ＤＢ１７の各項目に類似する項目を、ここに記憶される各項目から抽出する。図７は、比較先ＤＢに記憶される情報の例を示す図である。なお、ここでは、一例として家電仕入れデータを図示する。図７に示すように、「仕入れ日、型番、製品種目、数量」として「2009/12/1、FSX7878、掃除機、20」、「2009/12/8、TZ12-328、パソコン、5」、「2009/12/15、32Z294GY、エアコン、25」、「2009/12/22、HSZ-1000、イヤフォン、10」などを記憶する。
【００４８】
ここで記憶される「仕入れ日」は、商品が仕入れられた日であり、「型番」は、仕入れられた商品の製造番号や型を示す番号などであり、「製品種目」は、仕入れられた製品の種目名であり、「数量」は、仕入れられた商品の数量である。
【００４９】
比較元属性ＤＢ１９は、後述する数値化処理部３１によって生成された情報を記憶するデータベースであり、比較元ＤＢ１７に記憶される情報を数値化した情報を記憶する。図８は、比較元属性ＤＢに記憶される情報の例を示す図である。図８に示すように、比較元属性ＤＢ１９は、「項目名、最大長、平均長、データ種別、ＮＵＬＬ率、ユニーク数、離散度」を対応付けて記憶する。なお、ここで記憶される各情報の説明は、図５と同様なので詳細な説明は省略する。
【００５０】
図８の場合、比較元属性ＤＢ１９は、「項目名、最大長、平均長、データ種別、ＮＵＬＬ率、ユニーク数、離散度」として「価格、6、5、数値、0、5、100」、「機器種別、10、8、日本語、0、5、100」を記憶する。同様に、比較元属性ＤＢ１９は、「項目名、最大長、平均長、データ種別、ＮＵＬＬ率、ユニーク数、離散度」として「型番、8、7、識別子、0、5、100」、「売上日、10、9、数値、0、5、100」などと記憶する。
【００５１】
比較先属性ＤＢ２０は、後述する数値化処理部３１によって生成された情報を記憶するデータベースであり、比較先ＤＢ１８に記憶される情報を数値化した情報を記憶する。図９は、比較先属性ＤＢに記憶される情報の例を示す図である。図９に示すように、比較先属性ＤＢ２０は、「項目名、最大長、平均長、データ種別、ＮＵＬＬ率、ユニーク数、離散度」を対応付けて記憶する。なお、ここで記憶される各情報の説明は、図５と同様なので詳細な説明は省略する。
【００５２】
図９の場合、比較先属性ＤＢ２０は、「項目名、最大長、平均長、データ種別、ＮＵＬＬ率、ユニーク数、離散度」として「仕入れ日、10、9、数値、0、4、100」、「型番、8、7、識別子、0、4、100」を記憶する。同様に、比較先属性ＤＢ２０は、「項目名、最大長、平均長、データ種別、ＮＵＬＬ率、ユニーク数、離散度」として「製品種目、10、8、日本語、0、4、100」、「数量、2、1、数値、0、4、100」などと記憶する。
【００５３】
比較結果ＤＢ２１は、候補抽出部３２によって生成された情報を記憶するデータベースであり、比較元属性ＤＢ１９、比較先属性ＤＢ２０、重みルールＤＢ１６を用いて生成された類似判定結果を記憶する。図１０は、比較結果ＤＢに記憶される情報の例を示す図である。なお、図１０には一例として、比較元属性ＤＢ１９の項目名「機器種別」と比較先属性ＤＢ２０の各項目との類似判定結果を示す。図１０に示すように、比較結果ＤＢ２１は、「項目名、項目名の合致度、最大長の近さ、平均長の近さ、データ種別の一致、ＮＵＬＬ率、ユニーク数、離散度、類似度」を対応付けて記憶する。
【００５４】
ここで記憶される「項目名」は、比較先の項目名であり、ここでは、比較元ＤＢ１７の「機器種別」の比較先となる「仕入れ日、型番、製品種目、数量」が該当する。「項目名の合致度」は、編集距離によって判定された項目名の合致度ある。「最大長の近さ」は、比較元属性ＤＢ１９に記憶される最大長の常用対数から比較先属性ＤＢ２０に記憶される最大長の常用対数を減算した値の絶対値を１から減算した値である。「平均長の近さ」は、比較元属性ＤＢ１９に記憶される平均長の常用対数から比較先属性ＤＢ２０に記憶される平均長の常用対数を減算した値の絶対値を１から減算した値である。「データ種別の一致」は、比較元属性ＤＢ１９に記憶されるデータ種別を形成する文字列と、比較先属性ＤＢ２０に記憶されるデータ種別を形成する文字列とが一致するか否かであり、一致する場合には１、一致しない場合には０が格納される。
【００５５】
「ＮＵＬＬ率」は、比較元属性ＤＢ１９に記憶されるＮＵＬＬ率の常用対数から比較先属性ＤＢ２０に記憶されるＮＵＬＬ率の常用対数を減算した値の絶対値を１から減算した値である。「ユニーク数」は、比較元属性ＤＢ１９に記憶されるユニーク数の常用対数から比較先属性ＤＢ２０に記憶されるユニーク数の常用対数を減算した値の絶対値を１から減算した値である。「離散度」は、比較元属性ＤＢ１９に記憶される離散度の常用対数から比較先属性ＤＢ２０に記憶される離散度の常用対数を減算した値の絶対値を１から減算した値である。「類似度」は、「項目名の合致度、最大長の近さ、平均長の近さ、データ種別の一致、ＮＵＬＬ率、ユニーク数、離散度、類似度」に重みを加えて正規化した値である。
【００５６】
図１０の場合、比較結果ＤＢ２１は、「項目名、項目名の合致度、最大長の近さ、平均長の近さ、データ種別の一致、ＮＵＬＬ率、ユニーク数、離散度、類似度」として「仕入れ日、0、1、0.95、0、1、0、1、0.263」を記憶する。同様に、比較結果ＤＢ２１は、「型番、0、0.90、0.94、0、1、0、1、0.255」、「製品種目、0.25、1、1、1、1、0、1、0.712」、「数量、0、0.30、0.10、0、1、0、1、0.111」を記憶する。
【００５７】
同一候補ＤＢ２２は、抽出された同一候補を記憶するデータベースである。図１１は、同一候補ＤＢに記憶される情報の例を示す図である。図１１に示すように、同一候補ＤＢ２２は、「項目、同一候補１（類似度）、同一候補２（類似度）、・・・」を記憶する。ここで記憶される「項目」は、比較元の項目名すなわち比較元ＤＢ１７に記憶される各項目の名称である。「同一候補（類似度）」は、算出された類似度のうち所定値以上の類似度を値が大きい順に並べたものである。
【００５８】
つまり、図１１の場合、比較元ＤＢ１７の項目「機器種別」については、類似度が「0.712」と算出された比較先ＤＢ１８の項目「製品種目」が最も類似していることを示す。同様に、比較元ＤＢ１７の項目「価格」については、類似度が「0.665」と算出された比較先ＤＢ１８の項目「数量」が最も類似しており、次に、類似度が「0.542」と算出された比較先ＤＢ１８の項目「仕入れ日」が類似していることを示す。なお、所定値は、例えば類似度0.5など任意に設定できる。
【００５９】
制御部３０は、数値化処理部３１と候補抽出部３２とを有し、データベース間の項目について類似判定を実施するＦＰＧＡ（Field−Programmable  Gate  Array）などの集積回路やＣＰＵ（Central  Processing  Unit）などの電子回路である。
【００６０】
数値化処理部３１は、数値化部３１ａとデータ種別判定部３１ｂとを有し、比較元ＤＢ１７と比較先ＤＢ１８との各々について、「項目」に対応付けられた「データ」を数値化する処理部である。例えば、数値化部３１ａは、比較元ＤＢ１７に記憶される「価格」、「機器種別」、「型番」、「売上日」各々のデータについて、「最大長、平均長、データ種別、ＮＵＬＬ率、ユニーク数、離散度」を算出して、比較元属性ＤＢ１９に格納する。同様に、数値化部３１ａは、比較先ＤＢ１８に記憶される「仕入れ日」、「型番」、「製品種目」、「数量」各々のデータについて、「最大長、平均長、データ種別、ＮＵＬＬ率、ユニーク数、離散度」を算出して、比較先属性ＤＢ２０に格納する。
【００６１】
一例を挙げると、数値化部３１ａは、比較元ＤＢ１７に記憶される「機器種別」に対応付けられたデータ「冷蔵庫」、「イヤフォン」、「シェーバー」、「充電池」、「ゲーム機」を抽出する。続いて、数値化部３１ａは、半角などの１バイト文字を「１」として最大長を検出する。つまり、数値化部３１ａは、６バイトである「冷蔵庫」を「６」、１０バイトである「イヤフォン」を「１０」、１０バイトである「シェーバー」を「１０」、６バイトである「充電池」を「６」、８バイトである「ゲーム機」を「８」と検出する。この結果、数値化部３１ａは、比較元ＤＢ１７に記憶される「機器種別」の最大長を「１０」と特定する。
【００６２】
また、数値化部３１ａは、算出した各データの文字長の平均値を算出する。上記例では、数値化部３１ａは、「６＋１０＋１０＋６＋８＝４０」を「５」で除算した「８」を比較元ＤＢ１７に記憶される「機器種別」の平均長と特定する。さらに、数値化部３１ａは、データ「冷蔵庫」、「イヤフォン」、「シェーバー」、「充電池」、「ゲーム機」の中にある空白すなわちＮＵＬＬの数を計数する。この例では、ＮＵＬＬの数が０なので、数値化部３１ａは、比較元ＤＢ１７に記憶される「機器種別」のＮＵＬＬ率を「０」と特定する。
【００６３】
また、数値化部３１ａは、データ「冷蔵庫」、「イヤフォン」、「シェーバー」、「充電池」、「ゲーム機」のうち、重複しているデータを計数する。この例では、重複しているデータの数が０なので、数値化部３１ａは、比較元ＤＢ１７に記憶される「機器種別」のユニーク数を「０」と特定する。なお、数値化部３１ａは、一般的な文字認識等を用いて、重複しているデータを検索することができる。さらに、数値化部３１ａは、データ「冷蔵庫」、「イヤフォン」、「シェーバー」、「充電池」、「ゲーム機」の各データが重複していないことより、比較元ＤＢ１７に記憶される「機器種別」の離散度を「１００」と特定する。
【００６４】
別例を挙げると、数値化部３１ａは、比較先ＤＢ１８に記憶される「仕入れ日」に対応付けられたデータ「2009/12/1」、「2009/12/8」、「2009/12/15」、「2009/12/22」を抽出する。続いて、数値化部３１ａは、半角などの１バイト文字を「１」として最大長を検出する。つまり、数値化部３１ａは、９バイトである「2009/12/1」および「2009/12/8」各々を「９」、１０バイトである「2009/12/15」および「2009/12/22」各々を「１０」と検出する。この結果、数値化部３１ａは、比較先ＤＢ１８に記憶される「仕入れ日」の最大長を「１０」と特定する。
【００６５】
また、数値化部３１ａは、算出した各データの文字長の平均値を算出する。上記例では、数値化部３１ａは、「９＋９＋１０＋１０＝３８」を「４」で除算した値が「９．５」であることから、比較先ＤＢ１８に記憶される「仕入れ日」の平均長を「９」と特定する。さらに、数値化部３１ａは、データ「2009/12/1」、「2009/12/8」、「2009/12/15」、「2009/12/22」の中にある空白すなわちＮＵＬＬの数を計数する。この例では、ＮＵＬＬの数が０なので、数値化部３１ａは、比較先ＤＢ１８に記憶される「仕入れ日」のＮＵＬＬ率を「０」と特定する。
【００６６】
また、数値化部３１ａは、データ「2009/12/1」、「2009/12/8」、「2009/12/15」、「2009/12/22」」のうち、重複しているデータを計数する。この例では、重複しているデータの数が０なので、数値化部３１ａは、比較先ＤＢ１８に記憶される「仕入れ日」のユニーク数を「４」と特定する。さらに、数値化部３１ａは、データ「2009/12/1」、「2009/12/8」、「2009/12/15」、「2009/12/22」」の各データが重複していないことより、比較先ＤＢ１８に記憶される「仕入れ日」の離散度を「１００」と特定する。
【００６７】
なお、例えば、数値化部３１ａは、「機器種別」に対応するデータが「冷蔵庫」、「イヤフォン」、「シェーバー」、「充電池」、「ゲーム機」である場合には、「ユニーク数」を「４」と特定する。そして、数値化部３１ａは、５つのデータのうち、４つが重複していないユニークなデータであることから、４／５×１００＝８０を「ユニーク度」と特定する。
【００６８】
図３に戻り、データ種別判定部３１ｂは、比較元ＤＢ１７に記憶される「価格」、「機器種別」、「型番」、「売上日」各々のデータについて、データ種別を判定して比較元属性ＤＢ１９に格納する処理部である。同様に、データ種別判定部３１ｂは、比較先ＤＢ１８に記憶される「仕入れ日」、「型番」、「製品種目」、「数量」各々のデータについて、データ種別を判定して比較先属性ＤＢ２０に格納する。
【００６９】
一例を挙げると、データ種別判定部３１ｂは、比較元ＤＢ１７に記憶される「機器種別」のデータ「冷蔵庫イヤフォンシェーバー充電池ゲーム機」を文字単位に分割する。つまり、データ種別判定部３１ｂは、「冷」、「蔵」、「庫」、「イ」、「ヤ」、「フ」、「ォ」、「ン」、「シ」、「ェ」、「ー」、「バ」、「ー」、「充」、「電」、「池」、「ゲ」、「ー」、「ム」、「機」と分割する。そして、データ種別判定部３１ｂは、分割した各文字コードを特定し、図４に示したどの文字コード分類に該当するかを判定する。つまり、データ種別判定部３１ｂは、「冷」、「蔵」、「庫」、「イ」、「ヤ」、「フ」、「ォ」、「ン」、「シ」、「ェ」、「ー」、「バ」、「ー」、「充」、「電」、「池」、「ゲ」、「ー」、「ム」、「機」各々がどの文字コード分類に該当するかを判定する。
【００７０】
この例では、データ種別判定部３１ｂは、比較元ＤＢ１７に記憶される「機器種別」のデータ「冷蔵庫イヤフォンシェーバー充電池ゲーム機」が「全角カナ」または「全角漢字」のいずれかに該当すると判定する。この結果、データ種別判定部３１ｂは、文字コード分類「全角カナ」および「全角漢字」が属するデータ属性が「日本語」と「未定義」であることを対応表ＤＢ１５から特定する。そして、データ種別判定部３１ｂは、データ属性「日本語」と「未定義」のうち、文字コード範囲がより小さい方、図４の図では識別子である＃番号が小さい方の「日本語」を、当該「機器種別」のデータ種別と特定して、比較元属性ＤＢ１９に格納する。すなわち、データ種別判定部３１ｂは、データ属性「日本語」より文字コードの範囲が小さい「記号、数値、識別子、かな」について、類似候補の対象外と決定する。
【００７１】
別例を挙げると、データ種別判定部３１ｂは、比較先ＤＢ１８に記憶される「型番」のデータ「FSX7878TZ12-32832Z294GYHSZ-1000」を文字単位に分割する。つまり、データ種別判定部３１ｂは、「F」、「S」、「X」、「7」、「8」、「7」、「8」、「T」、「Z」、「1」、「2」、「-」、「3」と分割する。さらに、データ種別判定部３１ｂは、「2」、「8」、「3」、「2」、「Z」、「2」、「9」、「4」、「G」、「Y」、「H」、「S」、「Z」、「-」、「1」、「0」、「0」、「0」と分割する。そして、データ種別判定部３１ｂは、分割した各文字コードを特定し、図４に示したどの文字コード分類に該当するかを判定する。
【００７２】
この例では、データ種別判定部３１ｂは、比較先ＤＢ１８に記憶される「型番」のデータ「FSX7878TZ12-32832Z294GYHSZ-1000」が「半角記号」または「半角数字」または「半角英大」のいずれかに該当すると判定する。この結果、データ種別判定部３１ｂは、文字コード分類「半角記号」かつ「半角数字」かつ「半角英大」が属するデータ属性が「識別子」、「かな」、「日本語」、「ロシア語」、「ギリシャ語」、「未定義」であることを対応表ＤＢ１５から特定する。そして、データ種別判定部３１ｂは、これらのデータ属性のうち、文字コード範囲がより小さい方、図４の図では識別子である＃番号が小さい方の「識別子」を、当該「型番」のデータ種別と特定して、比較先属性ＤＢ２０に格納する。すなわち、データ種別判定部３１ｂは、データ属性「識別子」より文字コードの範囲が小さい「記号、数値」について、類似候補の対象外と決定する。
【００７３】
候補抽出部３２は、比較テーブル生成部３２ａと編集距離算出部３２ｂと同一候補抽出部３２ｃとを有し、比較元属性ＤＢ１９の各項目と比較先属性ＤＢ２０の各項目とを比較して同一項目を抽出する処理部である。なお、ここでは、比較元属性ＤＢ１９の項目「機器種別」に対する類似項目を比較先属性ＤＢ２０から抽出する例を説明する。
【００７４】
比較テーブル生成部３２ａは、図５に示した照合方法にしたがって、比較元属性ＤＢ１９の各項目と比較先属性ＤＢ２０の各項目とを照合した値を算出して、比較結果ＤＢ２１に格納する。
【００７５】
例えば、比較テーブル生成部３２ａは、１−「（比較元の最大長の常用対数−比較先の最大長の常用対数）の絶対値」を「最大長の近さ」として算出する。一例を挙げると、比較テーブル生成部３２ａは、比較元属性ＤＢ１９の項目「機器種別」の最大長「１０」の常用対数である「１」から比較先属性ＤＢ２０の項目「製品種目」の最大長「１０」の常用対数である「１」を減算した「０」を算出する。そして、比較テーブル生成部３２ａは、１から「０」を減算した「１」を「機器種別」と「製品種目」との「最大長の近さ」として、比較結果ＤＢ２１に格納する。
【００７６】
また、比較テーブル生成部３２ａは、１−「（比較元の平均長の常用対数−比較先の平均長の常用対数）の絶対値」を「平均長の近さ」として算出する。一例を挙げると、比較テーブル生成部３２ａは、比較元属性ＤＢ１９の項目「機器種別」の平均長「８」の常用対数である「０．９０・・・」から比較先属性ＤＢ２０の項目「製品種目」の平均長「８」の常用対数である「０．９０・・・」を減算した「０」を算出する。そして、比較テーブル生成部３２ａは、１から「０」を減算した「１」を「機器種別」と「製品種目」との「平均長の近さ」として、比較結果ＤＢ２１に格納する。
【００７７】
また、比較テーブル生成部３２ａは、データ種別の文字列の一致によって、「１」または「０」を比較結果ＤＢ２１に格納する。一例を挙げると、比較テーブル生成部３２ａは、比較元属性ＤＢ１９の項目「機器種別」のデータ種別「日本語」と、比較先属性ＤＢ２０の項目「製品種目」のデータ種別「日本語」とが一致すると判定する。この結果、比較テーブル生成部３２ａは、「機器種別」と「製品種目」との「データ種別の一致」を「１」として、比較結果ＤＢ２１に格納する。
【００７８】
また、比較テーブル生成部３２ａは、１−「（比較元のＮＵＬＬ率の常用対数−比較先のＮＵＬＬ率の常用対数）の絶対値」を「ＮＵＬＬ率」として算出する。一例を挙げると、比較テーブル生成部３２ａは、比較元属性ＤＢ１９の項目「機器種別」のＮＵＬＬ率「１」の常用対数である「０」から比較先属性ＤＢ２０の項目「製品種目」のＮＵＬＬ率「１」の常用対数である「０」を減算した「０」を算出する。そして、比較テーブル生成部３２ａは、１から「０」を減算した「１」を「機器種別」と「製品種目」との「ＮＵＬＬ率」として、比較結果ＤＢ２１に格納する。
【００７９】
また、比較テーブル生成部３２ａは、ユニーク数は無視することより、「機器種別」と「製品種目」との「ユニーク数」を「０」として、比較結果ＤＢ２１に格納する。
【００８０】
また、比較テーブル生成部３２ａは、１−「（比較元の離散度の常用対数−比較先の離散度の常用対数）の絶対値」を「離散度」として算出する。一例を挙げると、比較テーブル生成部３２ａは、比較元属性ＤＢ１９の項目「機器種別」の離散度「１００」の常用対数である「１０」から比較先属性ＤＢ２０の項目「製品種目」の離散度「１００」の常用対数である「１０」を減算した「０」を算出する。そして、比較テーブル生成部３２ａは、１から「０」を減算した「１」を「機器種別」と「製品種目」との「離散度」として、比較結果ＤＢ２１に格納する。
【００８１】
図３に戻り、編集距離算出部３２ｂは、項目の項目名間における編集距離を算出して、比較結果ＤＢ２１に格納する処理部である。例えば、編集距離算出部３２ｂは、比較元属性ＤＢ１９の項目名「機器種別」と比較先属性ＤＢ２０の項目名「製品種目」との編集距離を、レーベンシュタイン距離などの一般的なアルゴリズムを用いて算出する。なお、レーベンシュタイン距離などの一般的なアルゴリズムについては、詳細な説明は省略する。
【００８２】
同一候補抽出部３２ｃは、比較テーブル生成部３２ａや編集距離算出部３２ｂで生成された比較結果ＤＢ２１に格納される各種情報に対して、重みルールＤＢ１６の重みを与えて類似度を算出し、算出した類似度に基づいて同一候補を特定する処理部である。
【００８３】
一例として、図１０に示した「仕入れ日」と「製品種目」とを例にして説明する。つまり、比較元ＤＢ１７の項目「機器種別」と比較先ＤＢ１８の項目「仕入れ日」との類似度、比較元ＤＢ１７の項目「機器種別」と比較先ＤＢ１８の項目「製品種目」との類似度の算出について説明する。
【００８４】
例えば、同一候補抽出部３２ｃは、図１０の「仕入れ日」の項目名の合致度「０」に図５に示した項目名の重み「１０」を乗算した合算値「０」を算出する。同様に、同一候補抽出部３２ｃは、「仕入れ日」の最大長の近さ「１」に最大長の重み「２」を乗算した値を合算値「２」を算出する。同様に、同一候補抽出部３２ｃは、「仕入れ日」の平均長の近さ「０．９５」に平均長の重み「３」を乗算した値を合算値「２．８５」を算出する。また、同一候補抽出部３２ｃは、「仕入れ日」のデータ種別の一致「０」にデータ種別の重み「９」を乗算した値を合算値「０」を算出する。また、同一候補抽出部３２ｃは、「仕入れ日」のＮＵＬＬ率「１」にＮＵＬＬ率の重み「１」を乗算した値を合算値「１」を算出する。また、同一候補抽出部３２ｃは、「仕入れ日」のユニーク数「０」にユニーク数の重み「０」を乗算した値を合算値「０」を算出する。また、同一候補抽出部３２ｃは、「仕入れ日」の離散度「１」に離散度の重み「１」を乗算した値を合算値「１」を算出する。
【００８５】
その後、同一候補抽出部３２ｃは、上記算出した各合算値を合計した「０＋２＋２．８５＋０＋１＋０＋１＝６．８５」を算出し、さらに、重みの合計値「１０＋２＋３＋９＋１＋０＋１＝２６」を算出する。そして、同一候補抽出部３２ｃは、「６．８５／２６＝０．２６３・・・」を算出する。この結果、同一候補抽出部３２ｃは、比較元ＤＢ１７の項目「機器種別」と比較先ＤＢ１８の項目「仕入れ日」との類似度を「０．２６３」と決定し、比較結果ＤＢ２１に格納する。
【００８６】
別例を説明すると、同一候補抽出部３２ｃは、図１０の「製品種目」の項目名の合致度「０．２５」に図５に示した項目名の重み「１０」を乗算した値を合算値「２．５」を算出する。同様に、同一候補抽出部３２ｃは、「製品種目」の最大長の近さ「１」に最大長の重み「２」を乗算した値を合算値「２」を算出する。同様に、同一候補抽出部３２ｃは、「製品種目」の平均長の近さ「１」に平均長の重み「３」を乗算した値を合算値「３」を算出する。また、同一候補抽出部３２ｃは、「製品種目」のデータ種別の一致「１」にデータ種別の重み「９」を乗算した値を合算値「９」を算出する。また、同一候補抽出部３２ｃは、「製品種目」のＮＵＬＬ率「１」にＮＵＬＬ率の重み「１」を乗算した値を合算値「１」を算出する。また、同一候補抽出部３２ｃは、「製品種目」のユニーク数「０」にユニーク数の重み「０」を乗算した値を合算値「０」を算出する。また、同一候補抽出部３２ｃは、「製品種目」の離散度「１」に離散度の重み「１」を乗算した値を合算値「１」を算出する。
【００８７】
その後、同一候補抽出部３２ｃは、上記算出した各合算値を合計し、「２．５＋２＋３＋９＋１＋０＋１＝１８．５」を算出し、さらに、重みの合計値「２６」を算出する。そして、同一候補抽出部３２ｃは、「１８．５／２６＝０．７１１５・・・」を算出する。この結果、同一候補抽出部３２ｃは、比較元ＤＢ１７の項目「機器種別」と比較先ＤＢ１８の項目「仕入れ日」との類似度を「０．７１２」と決定し、比較結果ＤＢ２１に格納する。
【００８８】
このようにして、同一候補抽出部３２ｃは、各項目間の類似度を算出する。そして、同一候補抽出部３２ｃは、各項目について、所定値以上の類似度を高い順に並び替えて、同一候補ＤＢ２２に格納する。一例を挙げると、同一候補抽出部３２ｃは、図１０に示した比較元ＤＢ１７の項目「機器種別」と比較先ＤＢ１８の各項目との類似度のうち、０．５以上の類似度である項目「製品種目」を特定する。そして、同一候補抽出部３２ｃは、図１１に示すように、項目「機器種別」の同一候補１（類似度）として「製品種目（０．７１２）」を同一候補ＤＢ２２に格納する。
【００８９】
また、同一候補抽出部３２ｃは、図１１に示した格納結果を管理者端末に送信したり、表示部１３に表示したりする。なお、本実施例は、図１０に示した比較結果に重みを乗算した値を用いて類似度を算出する例で説明したが、これに限定されるものではない。例えば、同一候補抽出部３２ｃは、図１０に示した比較結果の合計値や平均値を類似度として算出することもできる。
【００９０】
［処理の流れ］
次に、図１２から図１５を用いて、実施例２に係る類似判定装置が実行する処理の流れについて説明する。ここでは、全体的な処理の流れ、数値化処理の流れ、データ種別判定処理の流れ、候補抽出処理の流れについて説明する。
【００９１】
（全体的な処理の流れ）
図１２は、実施例２に係る類似判定装置が実行する処理の流れを示すフローチャートである。図１２に示すように、類似判定装置１０の制御部３０が類似判定処理の開始指示を受け付けると（Ｓ１０１肯定）、数値化処理部３１は、比較元ＤＢ１７の各項目および各項目に対応付けられているデータを読み込む（Ｓ１０２）。Ｓ１０２において、比較元ＤＢの項目のうち、選択された項目について、項目および項目に対応付けられているデータを読み込むように構成しても良い。そして、数値化処理部３１は、読み込んだ項目とデータごとに数値化処理を実行し（Ｓ１０３）、その結果を比較元属性ＤＢ１９に格納する（Ｓ１０４）。
【００９２】
続いて、数値化処理部３１は、比較先ＤＢ１８の各項目および各項目に対応付けられているデータを読み込む（Ｓ１０５）。そして、数値化処理部３１は、読み込んだ項目とデータごとに数値化処理を実行し（Ｓ１０６）、その結果を比較先属性ＤＢ２０に格納する（Ｓ１０７）。
【００９３】
その後、候補抽出部３２は、比較元属性ＤＢ１９のデータを読み込み（Ｓ１０８）、比較先属性ＤＢ２０のデータを読み込み（Ｓ１０９）、これらを用いて候補抽出処理を実行し（Ｓ１１０）、その結果に基づいて同一候補を表示部１３等に出力する（Ｓ１１１）。Ｓ１０２において項目を選択した場合には、選択された項目についての同一候補が出力される。なお、Ｓ１０２からＳ１０７までの処理の順番は、図示したものに限られず、任意に順番を変更できる。
【００９４】
（数値化処理の流れ）
図１３は、実施例２に係る類似判定装置が実行する数値化処理の流れを示すフローチャートである。なお、この処理は、図１２のＳ１０３やＳ１０６で実行される。
【００９５】
図１３に示すように、数値化処理部３１の数値化部３１ａは、比較元ＤＢ１７または比較先ＤＢ１８の項目に対応付けられているデータを読み込む（Ｓ２０１）。そして、数値化部３１ａは、読み込んだデータを用いて、最大データ長を算出し（Ｓ２０２）、平均データ長を算出し（Ｓ２０３）、ＮＵＬＬ合計値を算出し（Ｓ２０４）、ユニーク数を特定し（Ｓ２０５）、データ種別判定処理を実行する（Ｓ２０６）。
【００９６】
そして、数値化部３１ａは、比較元ＤＢ１７の各項目に対応付けられているデータ各々と、比較先ＤＢ１８の各項目に対応付けられているデータ各々とについて、Ｓ２０１からＳ２０７までの処理を繰り返す（Ｓ２０７否定）。その後、数値化部３１ａは、比較元ＤＢ１７および比較先ＤＢ１８の全項目について数値化処理が終了すると（Ｓ２０７肯定）、数値化処理の結果を比較元属性ＤＢ１９または比較先属性ＤＢ２０に格納する（Ｓ２０８）。なお、数値化部３１ａは、Ｓ２０１からＳ２０７までの処理を繰り返す間は、記憶部１４の作業領域等に一時的に格納しておく。また、Ｓ２０２からＳ２０６までの処理の順番は、図示したものに限られず、任意に順番を変更できる。
【００９７】
（データ種別判定処理の流れ）
図１４は、実施例２に係る類似判定装置が実行するデータ種別判定処理の流れを示すフローチャートである。なお、この処理は、図１３のＳ２０６で実行される。
【００９８】
数値化処理部３１のデータ種別判定部３１ｂは、項目に対応付けられたデータを読み込んで、当該データを文字単位に分割する（Ｓ３０１）。続いて、データ種別判定部３１ｂは、分割した文字を１つ抽出し（Ｓ３０２）、抽出した文字の文字コードを特定する（Ｓ３０３）。そして、データ種別判定部３１ｂは、対応表ＤＢ１５に記憶される対応表に基づいて、特定した文字コードが該当する文字コード分類を特定する（Ｓ３０４）。
【００９９】
データ種別判定部３１ｂは、分割した各文字について、Ｓ３０２からＳ３０４の処理を繰り返す（Ｓ３０５否定）。その後、データ種別判定部３１ｂは、分割した各文字についてＳ３０２からＳ３０４の処理を実行した後（Ｓ３０５肯定）、Ｓ３０６を実行する。すなわち、データ種別判定部３１ｂは、対応表ＤＢ１５に記憶される対応表と、Ｓ３０２からＳ３０４で得られた文字コードの分布から、Ｓ３０１で読み込んだデータのデータ種別を決定する（Ｓ３０６）。データ種別の決定は、例えば、図４の対応表に示すデータ種別を、データ種別に付された番号順に選択し、選択されたデータ種別に対応する文字コードの分布がＳ３０４で得られた文字コードの分布を含む場合に、Ｓ３０１で読み込んだデータのデータ種別を、選択したデータ種別に決定して行う。また、選択されたデータ種別に対応する文字コードの分布がＳ３０４で得られた文字コードの分布を含まない場合には、図４の対応表において、次の番号のデータ種別を再選択して、再選択されたデータ種別に対応する文字コードの分布がＳ３０４で得られた文字コード分布を含むか否かの判断を再度行う。以後、その判断に応じて、順次データ種別を選択し、文字コード分布の包含関係の比較処理を繰り返し行う。
【０１００】
（候補抽出処理の流れ）
図１５は、実施例２に係る類似判定装置が実行する候補抽出処理の流れを示すフローチャートである。なお、この処理は、図１２のＳ１１０で実行される。
【０１０１】
候補抽出部３２の比較テーブル生成部３２ａは、比較元属性ＤＢ１９に格納される情報のうち１つの項目に対応したデータを読み込み（Ｓ４０１）、比較先属性ＤＢ２０に格納される情報のうち１つの項目に対応したデータを読み込む（Ｓ４０２）。
【０１０２】
続いて、比較テーブル生成部３２ａは、読み込んだデータ間で最大長を比較し、その結果を比較結果ＤＢ２１に格納する（Ｓ４０３）。同様に、比較テーブル生成部３２ａは、読み込んだデータ間で平均長を比較し、その結果を比較結果ＤＢ２１に格納する（Ｓ４０４）。同様に、比較テーブル生成部３２ａは、読み込んだデータ間でユニーク数を比較し、その結果を比較結果ＤＢ２１に格納する（Ｓ４０５）。同様に、比較テーブル生成部３２ａは、読み込んだデータ間で離散度を比較し、その結果を比較結果ＤＢ２１に格納する（Ｓ４０６）。同様に、比較テーブル生成部３２ａは、読み込んだデータ間でデータ種別の一致を比較し、その結果を比較結果ＤＢ２１に格納する（Ｓ４０７）。なお、Ｓ４０３からＳ４０７の処理は、図示したものに限られず、任意に順番を変更することもできる。
【０１０３】
そして、比較テーブル生成部３２ａは、比較元属性ＤＢ２９の１つの項目と比較先属性ＤＢ２０の全項目との組み合わせに対して、Ｓ４０３からＳ４０７まで繰り返す（Ｓ４０８否定）。その後、比較テーブル生成部３２ａは、比較元属性ＤＢ１９の１つの項目と比較先属性ＤＢ２０の全項目との組み合わせに対して、Ｓ４０３からＳ４０７を実行した後（Ｓ４０８肯定）、Ｓ４０９を実行する。すなわち、比較テーブル生成部３２ａは、比較元属性ＤＢ１９の全項目についてＳ４０２からＳ４０８を実行したかを判定する。
【０１０４】
そして、比較テーブル生成部３２ａは、比較元属性ＤＢ１９の全項目についてＳ４０２からＳ４０８を実行するまで上記処理を繰り返す（Ｓ４０９否定）。
【０１０５】
一方、比較元属性ＤＢ１９の全項目についてＳ４０２からＳ４０８を実行された場合（Ｓ４０９肯定）、編集距離算出部３２ｂは、比較元属性ＤＢ１９の各項目名と比較先属性ＤＢ２０の各項目名との間の編集距離を算出して比較結果ＤＢ２１に格納する（Ｓ４１０）。
【０１０６】
続いて、同一候補抽出部３２ｃは、比較結果ＤＢ２１の情報と重みルールＤＢ１６との情報を用いて、比較結果ＤＢ２１に対して重みを合算する（Ｓ４１１）。その後、同一候補抽出部３２ｃは、比較元属性ＤＢ１９の各項目と比較先属性ＤＢ２０の各項目との間で、類似度を算出する（Ｓ４１２）。
【０１０７】
そして、同一候補抽出部３２ｃは、比較元属性ＤＢ１９の各項目について、類似度の高い比較先属性ＤＢ２０の項目順に並び替えた同一候補を同一候補ＤＢ２２に格納する（Ｓ４１３）。
【０１０８】
このように、実施例２によれば、データ項目の数に応じた類似候補判定の処理時間増大を抑制できる。
【０１０９】
経営的視点で分析を行う場合、「得意先」と「受注先」といった明らかに人間の目にわかる類似項目の統合だけでは不十分である。例えば一見関連の薄い、出張報告書の「出張先」と売上集計データの「顧客名」について、その中身のデータの類似性が判断できれば、「出張回数」と「その顧客への売上」を関連づけた分析ができる。経営的視点からデータ同士を関連付けることで新たな意味を発生させる可能性もある。
【０１１０】
この点において、実施例２の類似判定装置１０は、項目名や文字列などを比較した一般的な類似度ではなく、項目に属するデータの文字コード分布から特定したデータ種別を用いて類似度を算出する。この結果、実施例２の類似判定装置１０は、類似度の高低に限らず、比較元の項目とは関係性が低い比較先項目を類似候補から除外できる。したがって、より類似度が高い項目を抽出しようとする従来と比較して、無用な絞込みを防止できる。これにより、上記経営的視点等からデータ統合を行う場合など、類似性だけではなく関係性の高い項目同士を抽出することに有用である。
【０１１１】
また、データの言語を自動的に推定できることから、多国籍企業のシステムやクラウドシステムなど多言語データを扱うシステムや、言語特定結果を用いて全てを英語に機械翻訳するなどの場面で効率的なデータ活用が図れる。
【実施例３】
【０１１２】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【０１１３】
（類似度算出の手法）
例えば、上記実施例では、比較元ＤＢ１７の各項目と比較先ＤＢ１８の各項目とを比較して類似度を算出する例について説明したが、これに限定されるものではない。例を挙げると、類似判定装置１０は、同じデータ種別と判定された項目間について、比較テーブルの生成、編集距離の算出、同一候補抽出を実行することもできる。このようにすることで、データ種別が異なる項目間同士の処理を抑止できるので、サーバの処理負荷を軽減できる。また、図４から図１１で示したデータベースの情報は、数値、項目、照合手法等が図示したものに限定されない。
【０１１４】
（適用例）
例えば、上記実施例では、データベースの統合における名寄せの前処理として説明したがこれに限定されるものではない。例えば、新たなデータベースやシステムを作る場合、既存システムをクラウドシステムに移管する場合など、様々な契機でデータ属性およびデータの数値化を実行できる。この結果、実際に類似度を判定するタイミングで、予め特定したデータ属性やデータの数値化を用いて類似度を算出することもできる。
【０１１５】
（ネットワーク）
例えば、上記実施例では、類似判定装置１０に比較元のデータベースと比較先のデータベースとを組み込んだ例について説明したが、これに限定されるものではない。例えば、どちらか一方または両方をネットワーク経由で取得することもできる。図１６は、ネットワークを介して類似判定を実行するシステムの例を示す図である。図１６に示すように、比較元ＤＢを有するデータベースサーバ６０と、比較先ＤＢを有するデータベースサーバ７０と、図３と同様の処理部を有する類似判定装置１０とがネットワークを介して相互に通信可能に接続されている。このような状態において、類似判定装置１０は、データベースサーバ６０およびデータベースサーバ７０各々から項目やデータを受信して、図１２から図１５で説明した処理を実行することもできる。
【０１１６】
（システム）
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１１７】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１１８】
（プログラム）
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。
【０１１９】
図１７は、類似判定プログラムを実行するコンピュータのハードウェア構成の例を示す図である。図１７に示すように、コンピュータ１００は、ＣＰＵ１０２、入力装置１０３、出力装置１０４、通信インタフェース１０５、媒体読み取り装置１０６、ＨＤＤ（Hard  Disk  Drive）１０７、ＲＡＭ（Random  Access  Memory）１０８を有する。また、図１７に示した各部は、バス１０１で相互に接続される。
【０１２０】
入力装置１０３は、マウスやキーボードであり、出力装置１０４は、ディスプレイなどであり、通信インタフェース１０５は、ＮＩＣ（Network  Interface  Card）などのインタフェースである。ＨＤＤ１０７は、類似判定プログラム１０７ａととともに、図３に示した各ＤＢ等を記憶する。記録媒体の例としてＨＤＤ１０７を例に挙げたが、ＲＯＭ（Read  Only  Memory）、ＲＡＭ、ＣＤ−ＲＯＭ等の他のコンピュータ読み取り可能な記録媒体に各種プログラムを格納しておき、コンピュータに読み取らせることとしてもよい。なお、記録媒体を遠隔地に配置し、コンピュータが、その記憶媒体にアクセスすることでプログラムを取得して利用してもよい。また、その際、取得したプログラムをそのコンピュータ自身の記録媒体に格納して用いてもよい。
【０１２１】
ＣＰＵ１０２は、類似判定プログラム１０７ａを読み出してＲＡＭ１０８に展開することで、図３等で説明した各機能を実行する類似判定プロセス１０８ａを動作させる。すなわち、類似判定プロセス１０８ａは、図３に記載した数値化部３１ａ、データ種別判定部３１ｂ、比較テーブル生成部３２ａ、編集距離算出部３２ｂ、同一候補抽出部３２ｃと同様の機能を実行する。このようにコンピュータ１００は、プログラムを読み出して実行することで類似判定方法を実行する情報処理装置として動作する。
【０１２２】
例えば、コンピュータ１００は、媒体読み取り装置１０６によって記録媒体から類似判定プログラムを読み出し、読み出された類似判定プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、コンピュータ１００によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【０１２３】
１  データベース統合システム
２  統合元ＤＢ
３  統合先ＤＢ
４  統合結果ＤＢ
１０  類似判定装置
１０ａ  分割部
１０ｂ  第１特定部
１０ｃ  第２特定部
１０ｄ  除外部
１１  通信インタフェース部
１２  入力部
１３  表示部
１４  記憶部
１５  対応表ＤＢ
１６  重みルールＤＢ
１７  比較元ＤＢ
１８  比較先ＤＢ
１９  比較元属性ＤＢ
２０  比較先属性ＤＢ
２１  比較結果ＤＢ
２２  同一候補ＤＢ
３０  制御部
３１  数値化処理部
３１ａ  数値化部
３１ｂ  データ種別判定部
３２  候補抽出部
３２ａ  比較テーブル生成部
３２ｂ  編集距離算出部
３２ｃ  同一候補抽出部
【図１】
0005884293.tif 000002
【図２】
0005884293.tif 000003
【図３】
0005884293.tif 000004
【図４】
0005884293.tif 000005
【図５】
0005884293.tif 000006
【図６】
0005884293.tif 000007
【図７】
0005884293.tif 000008
【図８】
0005884293.tif 000009
【図９】
0005884293.tif 000010
【図１０】
0005884293.tif 000011
【図１１】
0005884293.tif 000012
【図１２】
0005884293.tif 000013
【図１３】
0005884293.tif 000014
【図１４】
0005884293.tif 000015
【図１５】
0005884293.tif 000016
【図１６】
0005884293.tif 000017
【図１７】
0005884293.tif 000018