"所定の文字列との間の編集距離が所定数以下の文字列を文字列群から抽出する抽出プログラムであって、前記所定の文字列内の連続する文字列である1または複数の部分文字列であって、前記所定の文字列において連続する文字数が前記所定の文字列の文字数を前記所定数で除算した商よりも小さい、1または複数の部分文字列を抽出し、抽出された前記1または複数の部分文字列のいずれかを含む文字列を前記文字列群から抽出し、前記文字列群から抽出された文字列について、前記所定の文字列との間の編集距離が所定の距離以下であるか否か判定する、処理をコンピュータに実行させる抽出プログラム。前記所定の文字列との間の編集距離が前記所定数以下の文字列は、前記所定の文字列に対して前記所定数以下の編集回数の編集を行なうことにより得られる文字列である、ことを特徴とする請求項1に記載の抽出プログラム。前記コンピュータに、前記1または複数の部分文字列のうち、前記所定の文字列の文字数及び1の和から、前記所定数及び1の和と前記商よりも小さい自然数との積を引いた差以下の部分文字列を含む文字列を、前記文字列群から抽出する、ことを実行させることを特徴とする請求項1に記載の抽出プログラム。所定の文字列との間の編集距離が所定数以下の文字列を文字列群から抽出する抽出方法であって、前記所定の文字列内の連続する文字列である1または複数の部分文字列であって、前記所定の文字列において連続する文字数が前記所定の文字列の文字数を前記所定数で除算した商よりも小さい、1または複数の部分文字列を抽出し、抽出された前記1または複数の部分文字列のいずれかを含む文字列を前記文字列群から抽出し、前記文字列群から抽出された文字列について、前記所定の文字列との間の編集距離が所定の距離以下であるか否か判定する、処理をコンピュータに実行させる抽出方法。所定の文字列との間の編集距離が所定数以下の文字列を文字列群から抽出する抽出装置であって、前記所定の文字列内の連続する文字列である1または複数の部分文字列であって、前記所定の文字列において連続する文字数が前記所定の文字列の文字数を前記所定数で除算した商よりも小さい、1または複数の部分文字列を抽出する第1の抽出手段と、抽出された前記1または複数の部分文字列のいずれかを含む文字列を前記文字列群から抽出する第2の抽出手段と、前記文字列群から抽出された文字列について、前記所定の文字列との間の編集距離が所定の距離以下であるか否か判定する判定手段と、を含むことを特徴とする抽出装置。情報処理の1つとして、複数のデータが集まっている状況において、データ同士を照合してその関連性を導き出す名寄せという処理がある。名寄せにおいては、ある文字列と類似する文字列を抽出する処理が行なわれる。類似する文字列を抽出する処理は、同一の文字列を抽出する処理よりも条件判断処理を多く含むため、処理負荷が大きい。名寄せを行う対象のデータ量が膨大である場合には、名寄せの処理量も膨大なものとなる。そこで、本願の開示内容の一側面として、類似文字列の抽出対象のデータの増大による抽出処理負荷の増大を抑制することを目的とする。本願に開示する抽出技術は、所定の文字列との間の編集距離が所定数以下の文字列を文字列群から抽出する技術である。本技術においては、前記所定の文字列内の連続する文字列である1または複数の部分文字列であって、前記所定の文字列において連続する文字数が前記所定の文字列の文字数を前記所定数で除算した商よりも小さい、1または複数の部分文字列を抽出し、抽出された前記1または複数の部分文字列のいずれかを含む文字列を前記文字列群から抽出し、前記文字列群から抽出された文字列について、前記所定の文字列との間の編集距離が所定の距離以下であるか否か判定する。本願の開示内容の一側面として、類似文字列の抽出対象のデータの増大による抽出処理負荷の増大を抑制することができる。[1.名寄せの概要]値の集合を含んだレコードについて、レコード間を照合し、レコード間の同一性、類似性及び関連性を判定する機能として名寄せ機能がある。名寄せ機能では、例えば、名寄せするレコードの集合を名寄せ元、名寄せ相手となるレコードの集合を名寄せ先と称する。図1は、名寄せ機能を説明する図である。図示しているように、名寄せ機能を実現する名寄せ処理は、名寄せ元と同じレコード、名寄せ元と類似するレコードまたは名寄せ元と関連するレコードを名寄せ先から検出し、検出結果を名寄せ結果として出力する。近年、データベースの大容量大規模化に伴い、名寄せを高速に行う手法が求められている。従来の名寄せ機能の動作について、図2を参照しながら説明する。図2は、名寄せ機能の動作を説明する図である。図示しているように、名寄せ元が取引先表であり、名寄せ先が顧客表である。そして、名寄せ元である取引先表に含まれる複数のレコードのうち、1つのレコードJ1のみが図示されている。また、名寄せ先である顧客表については、全レコードMM1~Mnが図示されている。名寄せ元のレコードJ1は、ID、会社名、郵便番号、住所、電話番号という5つのカラムを含んでいる。他方、名寄せ先のレコードMM1~Mnは、ID、顧客名、郵便番号、顧客住所、電話番号という5つのカラムを含んでいる。名寄せ機能を実現する名寄せ処理は、名寄せ元の1レコードJ1について、名寄せ先のレコードMM1~Mnとの名寄せを実行する。まず、名寄せ処理は、名寄せ元のレコードJ1及び名寄せ先のレコードM1の各名寄せ対象の項目名寄せ対象項目という。の値について、予め名寄せ対象項目毎に定義した評価関数を適用して照合を行う。ここでは、名寄せ元の会社名と名寄せ先の顧客名とを第1の名寄せ対象項目とし、名寄せ元の郵便番号と名寄せ先の郵便番号とを第2の名寄せ対象項目とする。さらに、名寄せ元の住所と名寄せ先の顧客住所とを第3の名寄せ対象項目とし、名寄せ元の電話番号と名寄せ先の電話番号とを第4の名寄せ対象項目とする。名寄せ処理は、第1の名寄せ対象項目をfa、第2の名寄せ対象項目をfb、第3の名寄せ対象項目をfc、第4の名寄せ対象項目をfdとする各評価関数を適用して照合を行う。そして、名寄せ処理は、照合の結果として導出される各名寄せ対象項目の評価値に重みA~Dを用いて名寄せ対象項目毎に重み付けを行い、得られた各値を加算することによって、総合評価値hを導出する。さらに、名寄せ処理は、名寄せ元のレコードJ1に対する残り全ての名寄せ先のレコードM2~Mnについて、総合評価値をそれぞれ導出する。名寄せ処理は、これら名寄せ元のレコードJ1及び名寄せ先のレコードM1~Mnの組についての総合評価値を含む名寄せ候補集合を作成する。そして、名寄せ処理は、予め定義した閾値や判定ルールに基づいて、名寄せ候補集合に属するレコードの組について名寄せに関する判定を行う。例えば、名寄せ処理は、総合評価値hを閾値と比較して、一致していると判定されたレコードの組をWhite、一致していないと判定されたレコードの組をBlackとし、名寄せ結果を出力する。名寄せ処理は、White、Blackのいずれにも該当しない組をGrayとして候補リストに出力する。そして、候補リストに出力された組の関連性の判定が人により行われる。なお、人による設定が必要な名寄せ定義103aとして、名寄せ対象項目の選定、評価関数の選定、重み及び閾値の設定がある。名寄せ定義103aの具体例を図3に示している。図3は、名寄せ定義のデータ構造の一例を示す図であり、図3Aが、名寄せ定義の内容を示し、図3Bが、名寄せ定義の具体例を示す。図3Aに示すように、名寄せ定義は、名寄せ方法d1、名寄せ元指定d2、名寄せ先指定d3、名寄せ対象項目指定d4および閾値d5を対応付けて定義される。名寄せ方法d1には、名寄せの方法が指定される。例えば、名寄せの方法には、1つのレコード集合を対象として集合内のレコード間の総当りで名寄せを行い、一致しているレコードを検出して重複するレコードを除去する自己名寄せがある。自己名寄せは、名寄せ元と名寄せ先が同じレコード集合なので、その構造レコードの項目も同じであるという特徴を有する。また、名寄せの方法には、名寄せ及び名寄せ先として異なるレコード集合を対象として名寄せ元レコードと名寄せ先レコードの組み合わせによる名寄せを行い、一致しているレコードを検出して該当レコード間の関連付けを行う他者名寄せがある。他者名寄せは、名寄せ元と名寄せ先が異なる集合なので、一般的にその構造レコードの項目が異なるという特徴を有する。名寄せ元指定d2には、名寄せ元のデータベース名等のアクセス情報および名寄せ元のレコードの項目が指定される。名寄せ先指定d3には、名寄せ先のデータベース名等のアクセス情報および名寄せ先のレコードの項目が指定される。名寄せ対象項目指定d4には、名寄せ対象項目が名寄せ元の項目と名寄せ先の項目の組み合わせとして指定され、名寄せ対象項目毎に適用される評価関数および重みが指定される。閾値d5には、White判定用の上位の閾値およびBlack判定用の下位の閾値が指定される。図3Bに示すように、例えば、名寄せ方法d1には、他者名寄せが指定されている。名寄せ元指定d2のアクセス情報には、取引先表が指定され、名寄せ元指定d2のレコード情報には、IDidentification、会社名、郵便番号、住所および電話番号の項目が指定されている。名寄せ先指定d3のアクセス情報には、顧客表が指定され、名寄せ先指定d3のレコード情報には、IDidentification、顧客名、郵便番号、顧客住所および電話番号の項目が指定されている。名寄せ対象項目指定d4には、名寄せ対象項目を会社名:顧客名、郵便番号:郵便番号、住所:顧客住所および電話番号:電話番号として指定されている。これは、名寄せ元の項目:名寄せ先の項目の組として名寄せ対象項目を指定してするものである。この名寄せ対象項目に対して、適用する評価関数と重みを指定する。例えば名寄せ対象項目が会社名:顧客名の場合には、評価関数に編集距離1字違い以内、重みに0.2が指定されている。名寄せ対象項目が郵便番号:郵便番号の場合には、評価関数に完全一致、重みに0.2が指定されている。閾値d5には、上位の閾値に0.72、下位の閾値に0.26が指定されている。なお、編集距離とは、名寄せ元と名寄せ先との名寄せ対象項目の値の照合において名寄せ先の値を名寄せ元の値に変形させる際の最小編集回数を距離として表す評価関数である。例えば、編集距離1字違い以内を評価関数としたときに、編集距離が1字違い以内の場合には当該評価関数は1.0を返し、その他の場合には当該評価関数は0を返す。また、完全一致とは、名寄せ元と名寄せ先との名寄せ対象項目の値の照合において2つの値が完全に一致するか否かを表す評価関数である。2つの値が完全に一致する場合には1.0を返し、それ以外は0を返す。なお、図3Bに示した編集距離及び完全一致はあくまで評価関数の一例である。図1~図3を参照して説明した名寄せ処理において、名寄せに係る照合処理の対象となるレコードの組み合わせの数は、名寄せ元のレコード数と名寄せ先のレコード数とを乗ずることにより求められる。例えば、図2において、名寄せ元である取引先表のレコード数が10万件、名寄せ先である顧客表のレコード数が200万件である場合には、2000億組の照合処理が必要となる。このような大規模な名寄せは、膨大な時間を要することとなる。[2.粗絞りによる名寄せの高速化]名寄せ元のレコードおよび名寄せ先のレコードについて、レコード同士を照合する照合処理の前に、照合するレコードの組を減らし、大規模な名寄せを高速化する技術がある。ここでは、照合処理の前に、名寄せ元と一致する可能性のある名寄せ先のレコードを粗く絞り込む粗絞りの技術について説明する。以下、粗絞りを事前検索とも呼び、続いて行う照合処理を本検索とも呼ぶ。図4は、粗絞りによる名寄せを説明する図である。図示しているように、粗絞り処理102では、名寄せ元100のレコード毎に生成される検索条件を用いて、名寄せ先101からレコードを検索し、検索した結果を検索結果102bとして出力する。この検索条件は、後述する粗絞り定義102aに基づいて生成される。ここで、名寄せ先候補となる検索結果102bの件数が名寄せ元100の1レコードに対して平均100件であると仮定すると、名寄せ処理103による照合では、名寄せ元100の10万件×名寄せ先候補の平均100件=1000万組の照合となり、名寄せ先101のレコード全件を対象とする名寄せに係る照合の2000億組に比べて大幅な削減となる。次に、粗絞りによる名寄せの処理手順について、図5及び図6を参照しながら説明する。図5及び図6は、粗絞りによる名寄せの処理手順を示すフローチャートである。まず、粗絞り処理102は、粗絞り定義102aを読み込んで動作環境を設定しステップS100、名寄せ元100から名寄せする対象となる名寄せ元のレコード以降、名寄せ元レコードという。を順に取り出すステップS101。そして、粗絞り処理102は、粗絞り定義102aに定義される粗絞り対象項目毎に名寄せ元レコードの該当する項目の値を条件にして、名寄せ先101を粗く検索するステップS102。具体的には、粗絞り処理102は、粗絞り対象項目毎に名寄せ元レコードの該当する項目の値を条件とした各条件をORした検索条件で名寄せ先101を曖昧検索する。ここで、曖昧検索とはn-gram等による検索である。そして、粗絞り処理102は、検索したレコードを検索結果102bとして格納する。次に、名寄せ処理103は、検索結果102bに格納された各レコードを名寄せ先として順に取り出しステップS103、名寄せ元レコードと名寄せ先との照合処理を行うステップS104。このステップS104の詳細は図6を参照して後述する。そして、名寄せ処理103は、照合結果を名寄せ候補集合に格納するステップS105。なお、照合結果には、総合評価値が含まれる。続いて、名寄せ処理103は、検索結果102bに残りの検索結果レコードが有るか否かを判定するステップS106。検索結果102bに残りの検索結果レコードが有ると判定された場合にはステップS106;Yes、名寄せ処理103は、残りの検索結果レコードを取り出すべく、ステップS103に移行する。一方、検索結果102bに残りの検索結果レコードが無いと判定された場合にはステップS106;No、名寄せ処理103は、名寄せ候補集合に格納された各総合評価値について閾値による判定を実行して判定結果を出力するステップS107。例えば、名寄せ処理103は、総合評価値が上位閾値以上である場合には、照合した名寄せ元レコードと名寄せ先レコードの組について、一致しているレコードの組であると判断してWhiteと判定する。また、名寄せ処理103は、総合評価値が上位閾値未満且つ下位閾値以上である場合には、照合した名寄せ元レコードと名寄せ先レコードの組について、一致しているとも一致していないとも判定できないと判断してGrayと判定する。また、名寄せ処理103は、総合評価値が下位閾値未満である場合には、照合した名寄せ元レコードと名寄せ先レコードの組について、不一致であるレコードの組であると判断してBlackと判定する。そして、White及びBlackと判定されたレコードの組が名寄せ結果として出力され、Grayと判定されたレコードの組は候補リストとして出力される。この候補リストにあるレコードの組についての一致または不一致の判断は人により行われる。そして、粗絞り処理102は、名寄せ元100に残りの名寄せ元レコードが有るか否かを判定するステップS108。そして、名寄せ元100に残りの名寄せ元レコードが有ると判定された場合にはステップS108;Yes、粗絞り処理102は、残りの名寄せ元レコードを取り出すべく、ステップS101に移行する。一方、名寄せ元100に残りの名寄せ元レコードが無いと判定された場合にはステップS108;No、粗絞り処理102は、粗絞りによる名寄せ処理を終了する。次に、図5に示すステップS104の処理手順について、図6を参照しながら説明する。図6は、照合処理の手順を示すフローチャートである。照合処理は、名寄せ元レコードと名寄せ先レコードの1組毎に、照合を行い総合評価値を導出する処理である。まず、名寄せ処理103は、名寄せ定義103aに定義された名寄せ対象項目を順に選択するステップS110。なお、名寄せ対象項目は、名寄せ元の項目と名寄せ先の項目で構成される比較の対象とする項目の対として予め名寄せ定義103aに定義されている。そして、名寄せ処理103は、名寄せ元レコードおよび名寄せ先レコードについて、それぞれ選択した名寄せ対象項目に対応した各値を指定しステップS111、指定した2つの値に評価関数を適用しステップS112、評価値を算出する。なお、評価関数は、名寄せ定義103aにおいて名寄せ対象項目につき予め定義されている関数である。続いて、名寄せ処理103は、残りの名寄せ対象項目が有るか否かを判定するステップS113。残りの名寄せ対象項目が有ると判定された場合にはステップS113;Yes、名寄せ処理103は、残りの名寄せ対象項目について評価関数を適用すべく、ステップS110に移行する。一方、残りの名寄せ対象項目が無いと判定された場合にはステップS113;No、名寄せ処理103は、各名寄せ対象項目の評価値に名寄せ対象項目毎の重み付けを行い、重み付けを行った結果の各評価値を加算するステップS114。そして、名寄せ処理103は、加算結果の値を対象のレコード組に対する総合評価値として出力しステップS115、1組に対する照合処理を終える。粗絞り定義のデータ構造の一例を図7に示している。図7Aが粗絞り定義の内容を示し、図7Bが粗絞り定義の具体例を示している。この粗絞り定義の作成は、名寄せ定義の作成と同様に人により行われる。図7Aに示すように、粗絞り定義は、対象項目と検索条件を対応付けて定義し、必要に応じて最大検出数も定義することができる。対象項目は、粗絞り処理において検索条件を適用する名寄せ元の項目と名寄せ先の項目とを対として複数指定することができ、対応する検索条件が指定される。最大検出数は、1つの名寄せ元レコードについて名寄せ先を検索した結果として残す名寄せ先レコードの最大件数である。図7Bに示すように、粗絞り定義102aにおいては、粗絞り対象項目d11毎に対象とする名寄せ元の項目と名寄せ元の項目および適用する検索条件が定義され、前述の最大検出数d12も必要に応じて定義される。粗絞り対象項目d11には、元先および検索条件が対応付けられている。元先は、名寄せ元レコード及び名寄せ先レコードそれぞれの粗絞り対象項目となる項目の名称を名寄せ元項目:名寄せ先項目として示す。検索条件は、各対象項目について、名寄せ元の該当項目の値により名寄せ先の該当項目を検索する際の検索方法を指定する。例えば、検索条件には、名寄せ元レコードの対象項目について値の連続する何れかのN文字を対象項目に含む名寄せ先レコードを検索するn-gramや、名寄せ先レコードの対象項目の値が完全に一致している対象項目を有する名寄せ先レコードを検索する完全一致がある。n-gramを用いる場合には、インデックス一致数cを指定することもできる。ここで、n-gramにおけるインデックスとは、名寄せ元レコードの対象項目においてn文字にわたって連続した文字列のことである。例えば、Bi-gram/インデックス一致数4という検索条件である場合には、名寄せ元レコードの対象項目において2文字にわたって連続した文字列のうち、4個以上を対象項目に含むレコードを名寄せ先レコードから検索することになる。図7Bの例では、対象項目が会社名:顧客名の検索条件は、Bi-Gram/一致数2であることを示している。また、住所:顧客住所の検索条件は、Bi-Gram/一致数4であることを示している。対象項目が郵便番号:郵便番号及び電話番号:電話番号の検索条件は完全一致であることを示す。これら4つの検索条件により検索される各集合の和集合が、図4の検索結果102bに相当する。また、各名寄せ元レコードに対する名寄せ先レコードの最大検出数は、1000件である。[3.粗絞り定義の作成]これまで、図4~図7を参照して粗絞りを伴う名寄せについて説明した。名寄せ処理に用いる名寄せ定義、粗絞り処理に用いる粗絞り定義はいずれも人により作成されることは、上述したとおりである。通常、名寄せ定義がまず作成され、続いて粗絞り定義が作成される。このうちの粗絞り定義の作成の流れを図8に示している。手順T11では、ユーザが名寄せ元データと、名寄せ先データと、既に作成した名寄せ定義とを参照しながら、名寄せ先データのうち照合する必要がないとして除外できるレコードを考慮し、初期の粗絞り定義を作成する。手順T12では、名寄せ元のレコードをいくつかサンプリングし、サンプリングしたレコードを元に、手順T11で作成した初期の粗絞り定義を用いて粗絞り処理を試行する。手順T13では、使用するコンピュータの処理速度を踏まえて、名寄せ先データの絞込みレコード件数を評価する。十分に絞込みができていると評価されれば、後述の手順T14に進む。さもなければ、粗絞り定義を修正し、手順T12に戻る。手順T14では、上記手順T12でサンプリングしたレコードについて、名寄せ処理を試行する。手順T15では、上記手順T14の名寄せ処理の試行結果を確認し、既に作成されている名寄せ定義に基づいて、名寄せ元レコードと照合すべき名寄せ先レコードが粗絞り処理により除外されていないかを調査する。除外されている場合には、上記手順T12に戻る。以上のように、試行錯誤しながら手順T12~T15を繰り返すことにより、手順T16にて粗絞り定義が完成する。この粗絞り定義を作成するにあたり、使用するコンピュータの処理速度を考慮して名寄せ先のレコードを絞り込み過ぎると、後続の名寄せ処理に必要なデータが漏れてしまうため、名寄せの精度が低くなる。一方で、名寄せの精度を重視し過ぎると、十分な粗絞りができないため、名寄せ処理に膨大な時間を要することになる。そのため、粗絞り定義の作成には試行錯誤を伴う。粗絞り定義の作成を人により行う場合の工数は、数人月にも及ぶことが一般的である。[4.粗絞り定義を効率的に作成する技術]以下、粗絞り定義を効率的に作成する技術について述べる。本技術は、事前に作成されている名寄せ定義に基づいて粗絞り定義を効率的に作成するものである。まず、名寄せ処理と粗絞り処理とについて図9を参照してさらに詳しく説明する。図9には、名寄せ元の1つのレコードJ1と名寄せ先のレコードの集合Mを示している。これらは図2に示した名寄せ元のレコードJ1及び名寄せ先のレコードの集合Mにそれぞれ相当する。そして、名寄せ先のレコードの集合Mに対して粗絞り処理を行うことにより、検索されたレコードの集合Maが作成される。この粗絞り処理を行うにあたっては、図示しているように、検索用関数を用いて、集合Mから特定の文字列を含んだレコードを検索する。この粗絞り処理は、粗い精度で良い一方で高速に行う必要がある。検索用関数の例としては、既に述べたような完全一致、Uni-gramやBi-gramといったn-gram、前方一致、後方一致などがある。検索されたレコードの集合Maが作成されると、次に名寄せ元のレコードJ1と集合Maとの名寄せ処理を行う。このとき、レコードJ1との関係で、名寄せ定義にて定義されている照合ルールの少なくとも1つを満たすレコードの集合ができる。この集合を名寄せ集合Mbとして図示している。この名寄せ処理を行うにあたっては、図示しているように、比較用関数を用いて、レコードJ1と集合Ma内の各レコードとを比較する。この比較は、きめ細かく行う必要があるために処理に時間がかかるという点において、粗絞り処理とは対照的である。比較用関数の例としては、完全一致、編集距離がある。さらに、編集距離の具体例として、比較する2つの文字列において異なる字数を見る関数がある。くわえて、比較する2つの文字列において異なる字数を、これら2つの文字列の一方の文字数で割ることにより得られる値を編集の比率として見る関数もある。このような粗絞り処理を行うにあたっては以下の点に留意する必要がある。レコードJ1との名寄せ結果がWhiteまたはGrayとなるレコードの集合Mbが、検索されたレコードの集合Maに含まれるようにする。その一方で、集合Maを極力小さな集合とする。粗絞り処理自体のコスト処理時間、使用する計算資源などを抑える。そして、図10には、名寄せ処理の比較条件と粗絞り処理の検索条件との対応関係を示している。図示しているように、名寄せ処理における比較条件として完全一致を用いる場合は、粗絞り処理における検索条件も完全一致となる。完全一致は、明確な文字列比較関数であり、そのまま粗絞り用としても利用できるためである。次に、名寄せ処理における比較条件としてあいまい一致すなわち編集距離に基づく条件を用いる場合を説明する。編集距離は、あいまい比較用の評価関数であり、比較する2つの文字列の並び順が一部変更されている場合にも有効に評価できる特徴を持つ。この比較条件を包含する検索条件としては、n-gram及びインデックス一致数に基づく検索条件が妥当である。続いて、名寄せ処理における編集距離に基づいた比較条件を、粗絞り用検索条件であるn-gramに変換する具体的な方法について説明する。なお、n-gramのn及びインデックスの一致数に基づいて評価するためには、比較元の文字列の最小字数を考慮する必要がある。まず、比較条件が編集距離で1文字違い以内である場合を説明する。比較元がABCという3文字の文字列である場合に、名寄せ先のレコードの集合Mから検索する必要のあるレコードを図11に示している。ただし、は、A、B、Cのいずれでもない文字とする。つまり、図11に示している文字列パターンは、比較元の文字列ABCから抽出される文字列パターンである。図11に示しているように、名寄せ先から検索する必要のあるレコードは、比較元の値ABCにおける文字数1のインデックスつまり、A、B、Cのうち、2個以上を含むレコードである。したがって、図示したようなレコードを名寄せ先から検索するための検索条件は、1uni-gram、インデックスの一致数2以上である。次に、比較条件が同じく編集距離で1文字違い以内であって、比較元がABCDという4文字の文字列である場合に、名寄せ先のレコードの集合Mから検索する必要のあるレコードを図12に示している。ただし、は、A、B、C、Dのいずれでもない文字とする。つまり、図12に示している文字列パターンは、比較元の文字列ABCDから抽出される文字列パターンである。図12に示しているように、名寄せ先から検索する必要のあるレコードは、比較元の値ABCDにおける文字数2のインデックスつまり、AB、BC、CDのうち、1個以上を含むレコードである。したがって、図示したようなレコードを名寄せ先から検索するための検索条件は、2bi-gram、インデックスの一致数1以上である。あるいは、比較元の値ABCDにおける文字数1のインデックスつまり、A、B、C、Dのうち、3個以上を含むレコードを名寄せ先から検索することとしてもよい。この場合の検索条件は1uni-gram、インデックスの一致数3以上となる。図11及び図12に示した例から、名寄せ時の比較条件編集距離d字違い以内を、粗絞り時の検索条件n-gram、インデックスの一致数cへと変換するための式は以下のようになる。n=F1d,mc=F2d,m,nただし、mは比較元の文字列の最小字数であり、F1及びF2は互いに異なる関数である。また、比較条件が編集距離で2文字違い以内であって、比較元がABCという3文字の文字列である場合に、名寄せ先のレコードの集合Mから検索する必要のあるレコードを図13に示している。ただし、は、A、B、Cのいずれでもない文字とする。つまり、図13に示している文字列パターンは、比較元の文字列ABCから抽出される文字列パターンである。図13に示しているように、名寄せ先から検索する必要のあるレコードは、比較元の値ABCにおける文字数1のインデックスつまり、A、B、Cのうち、1個以上を含むレコードである。したがって、図示したようなレコードを名寄せ先から検索するための検索条件は、1uni-gram、インデックスの一致数1以上である。図11~図13に示したような例は一例であるが、さらに範囲を広げた結果を図14Aに示している。図14Aは、名寄せの比較条件d及びmと、粗絞りの検索条件n及びcとの関係を示している。既に述べたとおり、dは名寄せの比較条件編集距離d字違い以内のdに相当し、mは比較元の文字列の最小字数である。また、n及びcは、粗絞りの検索条件n-gram、インデックスの一致数cのn及びcにそれぞれ相当する。そして、図14Aには、dについてはd=1,2,3の3パターン、mについてはm=1,2,,10の10パターンを組み合わせた計30パターンについてnとcのとりうる値を示している。例えば、d=1かつm=3のときは、n=1/c=2となっている。これは、図11に示した例に相当する。そして、d=1かつm=4のときは、n=1/c=3またはn=2/c=1となっている。これは、図12に示した例に相当する。また、d=2かつm=3のときは、n=1/c=1となっている。これは、図13に示した例に相当する。なお、d=1かつm=1のときはNoneallとなっているが、これは、名寄せ先の全レコードが検索されてしまうために粗絞りの意義がなくなることを示している。図14Bは、名寄せの比較条件r及びmと、粗絞りの検索条件n及びcとの関係を示している。ここで、rは名寄せの比較条件編集距離比率r以内のrに相当する。その他は図14Aと同様であるので、説明を省略する。なお、r=0.33かつm=1のときはNone=0となっているが、これは、r=0を指定したことと同じになってしまうために粗絞りの意義がなくなることを示している。図14A及びBから、dあるいはr及びmとn及びcとの関係を図15に示したような式で表すことができる。つまり、名寄せ定義で定義された比較条件に基づいて粗絞りの検索条件が作成できることになる。以下、m、n、c、dをそれぞれ第1の数、第2の数、第3の数、第4の数とも呼ぶ。図15Aは、d及びmに基づいてn及びcを求める式を示している。図15Bは、r及びmに基づいてn及びcを求める式を示しているが、図15Aに示した式と結果的に同じとなる。これは、d=r×m小数点切捨てという式に基づいて、rをdに変換することができるためである。また、図15A及びBの両方に共通していえることとして、実際に粗絞りを行う際には、nを大きくすると検索用インデックスが巨大化するため、nの最大値を決めておく必要がある。これまで図9~図15を参照して、名寄せの比較条件から粗絞りの検索条件を定める点について説明してきた。このようにして、従来では試行錯誤を繰り返しながら作成していた粗絞り定義を効率的に作成することができる。具体的には、従来行われている粗絞り定義の作成時に生じうる人為的ミスや本来定義すべき粗絞り条件の漏れを低減することができる。また、粗絞りの精度とコンピュータの処理速度とのバランスを考慮するための専門知識の習得や経験が不要となる。さらに、粗絞り定義の作成に必要な人的コストを大幅に削減することができる。その一方で、ユーザは、粗絞りの検索条件を考慮せずに、実際の名寄せ元データ及び名寄せ先データを見て直観的に名寄せ定義を作成することができる。そして、図15に示したような式を用いることにより、比較元の最小字数に該当するカラム内にどんな文字列が入っていても、図9の集合Mbに相当する名寄せされた集合が、同じく図9の集合Maに相当する粗絞りにより検索されたレコードの集合に含まれることになる。しかし、実際に名寄せをする際に、名寄せ元及び名寄せ先のレコードに含まれる文字列によっては、粗絞り条件のnあるいはcを、図15に示したような式により求められる値よりも大きくすることにより、さらに小さな集合へと絞り込める可能性がある。このようにn及びcを大きくすることを粗絞り定義のチューニングと呼ぶ。[5.粗絞り定義のチューニング]以下、粗絞り定義のチューニングについて図16及び図17を参照して説明する。前提として、名寄せ定義と、図15に示したような式に基づく粗絞り定義初期の粗絞り定義とも呼ぶとが作成されているものとする。この粗絞り定義のn及びcをチューニングするにあたり、まず名寄せ元のレコードをいくつかサンプリングする。このときのサンプリング率sは0.1であるとする。このサンプリングにおいては、名寄せ元のレコードを分析して、サンプリングされたレコードになるべく偏りがないようにする必要がある。例えば、統計学に基づいた手法を用いてサンプリングを行うことができる。また、図16Aに示しているように、名寄せ先のレコードの集合Pは、レコードR1~R14という14個のレコードを含んでいる。このことを図16Aにてv=14と表現している。次に、名寄せ定義に定義された比較条件に基づいて、名寄せ元からサンプリングしたレコードと名寄せ先との、粗絞りを伴わない名寄せを行う。これを名寄せ試行と呼ぶ。この名寄せ試行により、名寄せ元からサンプリングしたレコードとの関係で、名寄せ定義に定義された比較条件の少なくとも1つを満たす名寄せ先のレコードをその比較条件ごとに記録しておく。このようにして記録されるレコードの集合を名寄せ集合Pcとして図16Aに示している。集合PcはレコードR11~R14という4個のレコードを含んでいる。このことを図16Aにてx=4と表現している。続いて、名寄せ元からサンプリングしたレコードと、名寄せ先の全レコードとに対して、事前に作成されている粗絞り定義を用いて粗絞りを行う。これを粗絞り試行と呼ぶ。この粗絞り試行により検索された名寄せ先のレコードはカラム毎に記録しておく。粗絞り試行により作成された集合Paを図16Aに示している。集合PaはレコードR3~R14という12個のレコードを含んでいる。つまり、粗絞り試行によりレコードR1及びR2が除外されたことになる。このことを図16Aにてw=12と表現している。次に、名寄せ試行によりWhiteまたはGrayと判定された名寄せ先のレコードの集合Pcが、粗絞り試行により検索された名寄せ先のレコードの集合Paに含まれているかどうかをチェックする。具体的には以下のように行う。まず、集合Paと集合Pcとの積集合には、レコードR11~R14という4個のレコードが含まれている。このことを図16Aにてy=4と表現している。また、集合Pcが集合Paに含まれる割合を粗絞り適合率と呼ぶ。粗絞り適合率はy/w=4/12=33と計算される。また、集合Pcが集合Paから漏れている割合を漏れ率と呼ぶ。漏れ率は1-y/x=1-4/4=0と計算される。なお、名寄せ元の全レコードに関して名寄せ先を粗絞りした場合の検索される予測レコード数を予測粗絞り数と呼ぶ。予測粗絞り数はw/s=12/0.1=120以内と予測される。また、名寄せ元の全レコードに関して名寄せした場合にWhiteまたはGrayと判定されるであろう名寄せ先のレコード数を予測名寄せ数と呼ぶ。予測名寄せ数は、x/s=4/0.1=40以内と予測される。つまり、前記チェックでは、漏れ率が0かどうかが判断される。漏れ率が0であれば、もう少し粗絞りの検索条件を狭くすることができると予想されるため、後述する検索条件変更に進む。なお、図15に示したような式に基づいた粗絞り定義に基づく粗絞り試行を行った後の漏れ率は必ず0となる。漏れ率が0となるようにn及びcの値が定められているからである。検索条件変更においては、粗絞りにより検索されるレコードの集合をより小さなものにするために、粗絞りの検索条件すなわちn及びcの値を変更する。例えば、cの値だけをc’=c1に変更する。あるいは、nをn’=n1へ変更し、cをc’へ変更する。このときのn’とc’との関係を図17に示している。つまり、c’=c-n’-n×d1となる。この式により、nをn’=n1に変更した場合のc’を求めることができる。そして、n’が図15を参照して説明したn-gramのnの最大値以下であり、かつc’が0より大きい値であれば、n’及びc’による検索条件を用いて、前記粗絞り試行と前記チェックと前記検索条件変更とを繰り返す。そして、チェックの結果、例えば図16Bに示すように漏れ率が0ではなかった場合には、n’及びc’ではなく、n及びcの値を最終的な値として決定する。あるいは、検索条件変更の結果、c’が0以下の値となった場合にも、n’及びc’ではなく、n及びcの値を最終的な値として決定する。このように、検索条件をn’及びc’に変更し、それらを用いて粗絞り試行を行い、この粗絞り試行の結果と前記名寄せ試行の結果をチェックするという一連の処理を繰り返す。これにより、初期の値nより一定量大きい最終的な値nが定まる。一例として、初期の値n=1、初期の値c=3であったときの検索条件変更の流れを説明する。まずn’を求める。n’がnよりも1だけ大きい値とすれば、n’=n1=11=2である。次に、このn’を用いてc’を求める。つまり、c’=c-n’-n×d1=3-2-1×11=1となる。これらn’=2及びc’=1による検索条件を用いて、粗絞り試行とチェックと検索条件変更とを繰り返す。これまで図16及び図17を参照して粗絞り定義のチューニングについて説明してきた。このチューニングにより、粗絞り定義にて定義される検索条件を、実際の名寄せ元データ及び名寄せ先データに応じてより範囲の狭い検索条件に変更し、粗絞りをさらに効率的に行うことができるようになる。[6.実施例]続いて、粗絞り定義の作成とチューニングの実施例について図18~図20を参照して説明する。図18は、名寄せを行う情報処理装置1の機能構成例を示している。情報処理装置1は、制御部11と不揮発性記憶部12と揮発性記憶部13とを備えている。不揮発性記憶部12は、名寄せ元データを格納した名寄せ元DB121と、名寄せ先データを格納した名寄せ先DB122とを有している。さらに、不揮発性記憶部12には、事前にユーザによって作成された名寄せ定義123が保存されている。加えて、不揮発性記憶部12には、後述する粗絞り定義生成部111によって作成される粗絞り定義124が保存される。制御部11は、粗絞り定義生成部111と、粗絞り処理部113と、名寄せ部114とを有している。粗絞り定義生成部111は、名寄せ定義123を元にチューニング済みの粗絞り定義124を作成して不揮発性記憶部12に保存する。粗絞り処理部113は、名寄せ元DB121にあるレコードと粗絞り定義124とを参照し、名寄せ先DB122にあるレコードの粗絞りを行う。粗絞りの結果は粗絞り処理結果131として揮発性記憶部13に保存される。名寄せ部114は、粗絞り処理結果131に基づいて、名寄せ元DB121の各レコードと、名寄せ先DB122のレコードのうちの絞り込まれたレコードとの名寄せを行う。名寄せの結果は、名寄せ処理結果132として揮発性記憶部13に保存される。図19は、名寄せを行う情報処理装置1のハードウェア構成例を示している。情報処理装置1は、CPU1010と、インタフェース装置1020と、表示装置1030と、入力装置1040と、ドライブ装置1050と、補助記憶装置1060と、メモリ装置1070とを備えており、これらがバス1080により相互に接続されている。情報処理装置1の機能を実現するプログラムは、CD-ROM等の記録媒体1090によって提供される。プログラムを記録した記録媒体1090がドライブ装置1050にセットされると、プログラムが記録媒体1090からドライブ装置1050を介して補助記憶装置1060にインストールされる。あるいは、プログラムのインストールは必ずしも記録媒体1090により行う必要はなく、ネットワークを介して他のコンピュータからダウンロードすることもできる。補助記憶装置1060は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。メモリ装置1070は、プログラムの起動指示があった場合に、補助記憶装置1060からプログラムを読み出して格納する。CPU1010は、メモリ装置1070に格納されたプログラムに従って情報処理装置1の機能を実現する。インタフェース装置1020は、ネットワークを通して他のコンピュータに接続するためのインタフェースとして用いられる。表示装置1030はプログラムによるGUIGraphicalUserInterface等を表示する。入力装置1040はキーボード及びマウス等であり、名寄せのユーザが様々な指示を入力するために用いるものである。図20は、情報処理装置1により行われる粗絞り定義124を作成する処理の流れを示している。まずステップS400にて粗絞り定義生成部111は、不揮発性記憶部12に事前に保存されている名寄せ定義123を読み込む。名寄せ定義123の具体例は図3に示したとおりである。続いて粗絞り定義生成部111は、読み込んだ名寄せ定義123を元に図示しない初期の粗絞り定義現粗絞り定義とも呼ぶを生成し、不揮発性記憶部1に保存する。このときの初期の粗絞り定義の生成の方法は、図10~図15を参照して説明したとおりである。すなわち、名寄せ定義123に定義された1つ以上の比較条件のそれぞれについて、比較条件が完全一致であれば粗絞りの検索条件も完全一致とし、比較条件があいまい一致であれば、n-gram及びインデックス一致数cを用いた粗絞りのあいまい検索条件を定義する。ステップS401にて粗絞り定義生成部111は、生成した初期の粗絞り定義にあいまい条件が含まれているか否かを判断する。この判断結果がNOであれば処理を終了し、初期の粗絞り定義をそのまま最終的な粗絞り定義124とする。ステップS401の判断結果がYESであった場合には、ステップS402にて名寄せ部114が名寄せ元DB121にあるレコードをいくつかサンプリングする。上述したようにサンプリングは、名寄せ元のレコードを分析して、サンプリングされたレコードになるべく偏りがないように行う。図示していないが、サンプリングされた名寄せ元のレコードは揮発性記憶部13に保存される。ステップS403にて名寄せ部114が、サンプリングしたいくつかのレコードについての粗絞りを伴わない名寄せ、つまり名寄せ試行を行う。名寄せ部114は、サンプリングしたレコードとの関係で、名寄せ定義に定義された比較条件の少なくとも1つを満たす名寄せ先のレコードをその比較条件ごとに名寄せ試行結果図示せずとして揮発性記憶部13に保存する。ステップS404にて粗絞り処理部113は、名寄せ部114によりサンプリングされたレコードと、現粗絞り定義とを参照し、粗絞り試行を行う。粗絞り試行の結果は、図示しない粗絞り試行結果として揮発性記憶部13に保存される。ステップS405にて粗絞り定義生成部111は、揮発性記憶部13に保存されている名寄せ試行結果と粗絞り試行結果とを参照する。そして、粗絞り定義生成部111は、図16A及びBに示したような粗絞り適合率及び漏れ率を算出する。ステップS406にて粗絞り定義生成部111はステップS405にて算出した漏れ率が0か否かをチェックする。チェック結果がYESであればステップS407に進む。チェック結果がNOであればステップS409に進み、現粗絞り定義の1つ前の粗絞り定義を現粗絞り定義として、ステップS410に進む。なお、初期の粗絞り定義に関しては漏れ率が必ず0となるため、ステップS406のチェック結果は必ずYESとなる。ステップS407にて粗絞り定義生成部111は、ステップS405にて算出した粗絞り適合率が100か否かをチェックする。このチェック結果がYESであればステップS410に進み、さもなければステップS408に進む。ステップS408にて粗絞り定義生成部111は、現粗絞り定義に定義されているあいまい検索条件の中でチューニング対象となっているものがあるか否かを判断する。この判断結果がYESであればステップS412に進み、さもなければステップS410に進む。ステップS410にて粗絞り定義生成部111は、現粗絞り定義に定義されているあいまい検索条件の中でまだチューニングがなされていないものがあるか否かを判断する。この判断結果がYESであればステップS411に進む。ステップS411にて粗絞り定義生成部111は、まだチューニングがなされていないあいまい検索条件のうちの1つをチューニング対象として選ぶ。ステップS412にて粗絞り定義生成部111は、チューニング対象のあいまい検索条件を、より絞り込める条件に変更する。具体的には、図17を参照して説明したように、チューニング対象のあいまい検索条件に含まれるn-gramのnに1を加えてn’を算出する。続いて、このn’及びインデックス一致数cを元にしてc’を算出する。ステップS413にて粗絞り定義生成部111は、あいまい検索条件を変更することができるか否かを判断する。具体的にはn’=n1が、図15を参照して説明したn-gramのnの最大値以下であり、かつc’が0より大きい場合に、変更可能と判断する。この場合は、n’及びc’を新たなn及びcとして新たなあいまい検索条件を作成する。もし変更が不可能な場合には、c’=c1として新たなあいまい検索条件を作成する。そして、この新たなあいまい検索条件を含んだ新たな粗絞り定義を作成し、ステップS404以降を繰り返す。つまり、初期の粗絞り定義におけるnやcをどの程度大きくできるかは、ステップS403における名寄せ試行結果とステップS404における粗絞り試行結果とに基づいて定められる。そして、ステップS413の判断結果がいずれNOとなり、ステップS410に進む。そして、ステップS410の判断結果がいずれNOとなり、処理を終了する。このときの粗絞り定義がそのまま最終的な粗絞り定義124となる。[7.他の実施形態]図3に示した名寄せ定義においては、比較する名寄せ元のカラムと名寄せ先のカラムの組み合わせ1つにつき、1つの比較条件を定義した。しかし、他の形態では、比較する名寄せ元のカラムと名寄せ先のカラムの組み合わせ1つにつき、複数の比較条件を定義することができる。図20のステップS412では、nを1だけ大きくすることに限られず、nを2だけ、3だけあるいはそれ以上の値だけ大きくしてもよい。前述した情報処理装置の機能的構成及び物理的構成は、前述の態様に限られるものではなく、例えば、各機能や物理資源を統合して実装したり、逆に、さらに分散して実装したりすることも可能である。以上の実施形態に関し、さらに以下の付記を開示する。付記1所定の文字列との間の編集距離が所定数以下の文字列を文字列群から抽出する抽出プログラムであって、前記所定の文字列内の連続する文字列である1または複数の部分文字列であって、前記所定の文字列において連続する文字数が前記所定の文字列の文字数を前記所定数で除算した商よりも小さい、1または複数の部分文字列を抽出し、抽出された前記1または複数の部分文字列のいずれかを含む文字列を前記文字列群から抽出し、前記文字列群から抽出された文字列について、前記所定の文字列との間の編集距離が所定の距離以下であるか否か判定する、処理をコンピュータに実行させる抽出プログラム。付記2前記所定の文字列との間の編集距離が前記所定数以下の文字列は、前記所定の文字列に対して前記所定数以下の編集回数の編集を行なうことにより得られる文字列である、ことを特徴とする付記1に記載の抽出プログラム。付記3前記コンピュータに、前記1または複数の部分文字列のうち、前記所定の文字列の文字数及び1の和から、前記所定数及び1の和と前記商よりも小さい自然数との積を引いた差以下の部分文字列を含む文字列を、前記文字列群から抽出する、ことを実行させることを特徴とする付記1に記載の抽出プログラム。付記4所定の文字列との間の編集距離が所定数以下の文字列を文字列群から抽出する抽出方法であって、前記所定の文字列内の連続する文字列である1または複数の部分文字列であって、前記所定の文字列において連続する文字数が前記所定の文字列の文字数を前記所定数で除算した商よりも小さい、1または複数の部分文字列を抽出し、抽出された前記1または複数の部分文字列のいずれかを含む文字列を前記文字列群から抽出し、前記文字列群から抽出された文字列について、前記所定の文字列との間の編集距離が所定の距離以下であるか否か判定する、処理をコンピュータに実行させる抽出方法。付記5前記所定の文字列との間の編集距離が前記所定数以下の文字列は、前記所定の文字列に対して前記所定数以下の編集回数の編集を行なうことにより得られる文字列である、ことを特徴とする付記4に記載の抽出方法。付記6前記コンピュータに、前記1または複数の部分文字列のうち、前記所定の文字列の文字数及び1の和から、前記所定数及び1の和と前記商よりも小さい自然数との積を引いた差以下の部分文字列を含む文字列を、前記文字列群から抽出する、ことを実行させることを特徴とする付記4に記載の抽出方法。付記7所定の文字列との間の編集距離が所定数以下の文字列を文字列群から抽出する抽出装置であって、前記所定の文字列内の連続する文字列である1または複数の部分文字列であって、前記所定の文字列において連続する文字数が前記所定の文字列の文字数を前記所定数で除算した商よりも小さい、1または複数の部分文字列を抽出する第1の抽出手段と、抽出された前記1または複数の部分文字列のいずれかを含む文字列を前記文字列群から抽出する第2の抽出手段と、前記文字列群から抽出された文字列について、前記所定の文字列との間の編集距離が所定の距離以下であるか否か判定する判定手段と、を含むことを特徴とする抽出装置。付記8前記所定の文字列との間の編集距離が前記所定数以下の文字列は、前記所定の文字列に対して前記所定数以下の編集回数の編集を行なうことにより得られる文字列である、ことを特徴とする付記7に記載の抽出装置。付記9前記第2の抽出手段が、前記1または複数の部分文字列のうち、前記所定の文字列の文字数及び1の和から、前記所定数及び1の和と前記商よりも小さい自然数との積を引いた差以下の部分文字列を含む文字列を、前記文字列群から抽出する、ことを特徴とする付記7に記載の抽出装置。"