(57)【要約】【課題】入力データ名に対応する適切なマスタデータ名を検索する。【解決手段】一実施形態に係るデータ検索装置は、プロセッサと、入力部と、マスタデータで管理されるマスタデータ名を記憶する記憶部とを具備し、プロセッサは、記憶部に記憶されたマスタデータ名と、入力部において入力された入力データ名との間の編集距離を算出し、マスタデータ名と入力データ名とに係る単語の出現頻度および逆文書頻度に基づいて、マスタデータ名と入力データ名との類似度を算出し、算出結果、およびマスタデータ名と入力データ名との隣接関係を示す隣接情報に基づいて、マスタデータ名における検索対象のデータ名の候補の絞り込み処理を行ない、絞り込み処理により得られた検索対象のデータ名の候補に基づいて、マスタデータ名と入力データ名との対応を表す情報を出力する。【選択図】図１
2020123210.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、入力部と、マスタデータと関連付けて管理されるマスタデータ名を記憶する記憶部とを具備し、
前記プロセッサは、
前記記憶部に記憶されたマスタデータ名と、前記入力部において入力された入力データ名との間の編集距離を算出する第１の算出処理を行ない、
前記マスタデータ名と前記入力データ名とに係る単語の出現頻度および逆文書頻度に基づいて、前記マスタデータ名と前記入力データ名との類似度を算出する第２の算出処理を行ない、
前記第１および第２の算出処理による算出結果、および前記マスタデータ名と前記入力データ名との隣接関係を示す隣接情報に基づいて、前記マスタデータ名における検索対象のデータ名の候補の絞り込み処理を行ない、
前記絞り込み処理により得られた検索対象のデータ名の候補に基づいて、マスタデータ名と入力データ名との対応を表す情報を出力する、ように構成される、
データ検索装置。
【請求項２】
前記プロセッサは、
前記絞り込み処理として、
前記記憶部に記憶されたマスタデータ名のうち、前記入力データ名との間で前記第１の算出処理により算出された編集距離が最小であるマスタデータ名を、検索対象のマスタデータ名の候補として選択し、この選択されたマスタデータ名と当該マスタデータ名の選択に係る入力データ名との組を示す第１のリストを作成し、
前記第１のリストにおける入力データ名のうち、複数の候補と対応付けられる入力データ名、および同じ表記でないマスタデータ名と対応付けられる入力データ名を示す第２のリストを作成し、
前記第１のリストにおける、１つのマスタデータ名と１つの入力データ名との組を示すリストである第３のリストを作成し、
前記第１のリストにおける、複数のマスタデータ名と１つの入力データ名との組を示すリストである第４のリストを作成し、
前記第２のリストにおける入力データ名ごとに、当該入力データ名との隣接関係を有する入力データ名を、複数の前記入力データ名の間の隣接関係を示す隣接情報から抽出し、
前記第３のリストにおけるマスタデータ名から、前記抽出された入力データ名との対応関係を有するマスタデータ名である第１のマスタデータ名を抽出し、
前記第２のリストにおける入力データ名ごとに、前記抽出された第１のマスタデータ名であって、前記第３のリストにおいて同一表記の入力データ名と対応付けられるマスタデータ名である第２のマスタデータ名を、前記記憶部に記憶される複数のマスタデータ名の間の隣接関係を示す隣接情報から抽出し、
前記第２のリストにおける入力データ名ごとに、前記抽出された第１のマスタデータ名であって、前記第３のリストにおいて同一表記でない入力データ名と対応付けられるマスタデータ名である第３のマスタデータ名を、前記記憶部に記憶される複数のマスタデータ名の間の隣接関係を示す隣接情報から抽出し、
前記第２のリストにおける入力データ名ごとに、前記抽出された第２および第３のマスタデータ名の共通集合により得られるデータ名を前記第２のリストで示される入力データ名に対応するマスタデータ名の候補として作成し、
前記マスタデータ名の候補の作成に応じて前記第２、第３および第４のリストを更新する処理を行なう、ように構成され、
前記プロセッサは、
前記第１の算出処理として、
前記第２のリストにおける入力データ名ごとに、当該入力データ名と前記抽出されたマスタデータ名の候補との編集距離を算出する処理を行なう、ように構成され、
前記プロセッサは、
前記絞り込み処理として、
前記算出された編集距離と当該マスタデータ名の候補の文字数との関係が条件を満たすときに、前記マスタデータ名の候補のうち入力データ名と共通する文字を有しない候補を削除し、削除後のマスタデータ名および当該マスタデータ名について前記編集距離の算出に用いた入力データ名を前記第３のリストに追加する処理を行なう、ように構成される、
請求項１に記載のデータ検索装置。
【請求項３】
前記プロセッサは、
前記絞り込み処理として、
前記記憶部に記憶されるマスタデータ名のうち、前記入力データ名との間で前記第２の算出処理により算出された類似度が最大であるマスタデータ名を、検索対象のマスタデータ名の候補として選択し、この選択されたマスタデータ名と当該マスタデータ名の選択に係る入力データ名との組を示す第１のリストを作成し、
前記第１のリストにおける入力データ名のうち、複数の候補と対応付けられる入力データ名、および同じ表記でないマスタデータ名と対応付けられる入力データ名を示す第２のリストを作成し、
前記第１のリストにおける、１つのマスタデータ名と１つの入力データ名との組を示すリストである第３のリストを作成し、
前記第１のリストにおける、複数のマスタデータ名と１つの入力データ名との組を示すリストである第４のリストを作成し、
前記第２のリストにおける入力データ名ごとに、当該入力データ名との隣接関係を有する入力データ名を、複数の前記入力データ名の間の隣接関係を示す隣接情報から抽出し、
前記第３のリストにおけるマスタデータ名から、前記抽出された入力データ名との対応関係を有するマスタデータ名である第１のマスタデータ名を抽出し、
前記第２のリストにおける入力データ名ごとに、前記抽出された第１のマスタデータ名であって、前記第３のリストにおいて同一表記の入力データ名と対応付けられるマスタデータ名である第２のマスタデータ名を、前記記憶部に記憶される複数のマスタデータ名の間の隣接関係を示す隣接情報から抽出し、
前記第２のリストにおける入力データ名ごとに、前記抽出された第１のマスタデータ名であって、前記第３のリストにおいて同一表記でない入力データ名と対応付けられるマスタデータ名である第３のマスタデータ名を、前記記憶部に記憶される複数のマスタデータ名の間の隣接関係を示す隣接情報から抽出し、
前記第２のリストにおける入力データ名ごとに、前記抽出された第２および第３のマスタデータ名の共通集合により得られるデータ名を前記第２のリストで示される入力データ名に対応するマスタデータ名の候補として作成し、
前記マスタデータ名の候補の作成に応じて前記第２、第３および第４のリストを更新する処理を行なう、ように構成され、
前記プロセッサは、
前記第１の算出処理として、
前記第２のリストにおける入力データ名ごとに、当該入力データ名と前記抽出されたマスタデータ名の候補との編集距離を算出する処理を行なう、ように構成され、
前記プロセッサは、
前記絞り込み処理として、
前記算出された編集距離と当該マスタデータ名の候補の文字数との関係が条件を満たすときに、前記マスタデータ名の候補のうち入力データ名と共通する文字を有しない候補を削除し、削除後のマスタデータ名および当該マスタデータ名について前記編集距離の算出に用いた入力データ名を前記第３のリストに追加する処理を行なう、ように構成される、
請求項１に記載のデータ検索装置。
【請求項４】
プロセッサと、入力部と、マスタデータと関連付けて管理されるマスタデータ名を記憶する記憶装置とを具備するデータ検索装置が行なうデータ検索方法であって、
前記プロセッサは、前記記憶装置に記憶されるマスタデータ名と、前記入力部により入力された入力データ名との間の編集距離を算出し、
前記プロセッサは、前記マスタデータ名と前記入力データ名とに係る単語の出現頻度および逆文書頻度に基づいて、前記マスタデータ名と前記入力データ名との類似度を算出し、
前記プロセッサは、前記編集距離および類似度の算出結果、および前記マスタデータ名と前記入力データ名との隣接関係を示す隣接情報に基づいて、前記マスタデータ名における検索対象のデータ名の候補の絞り込み処理を行ない、
前記プロセッサは、前記絞り込み処理により得られた検索対象のデータ名の候補に基づいて、マスタデータ名と入力データ名との対応を表す情報を出力する、
データ検索方法。
【請求項５】
請求項１乃至３のいずれか１項に記載のデータ検索装置の前記各処理として前記プロセッサを機能させるデータ検索処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、データ検索装置、方法およびプログラムに関する。
【背景技術】
【０００２】
ＤＢ（データベース）に格納されたデータを使用する業務において、マスタデータに登録されているデータの名前を検索し、その検索結果から関連する情報を使用、照会することがある。
【０００３】
しかし、ヒューマンエラー、システムの仕様といった様々な理由から、マスタデータに登録されたデータ名と、実際に入力されたデータ名の表記とに差異がある場合、いわゆる表記ゆれがしばしば発生する。表記ゆれが発生すると、前述のようにデータ名から検索を行なった際に、該当するデータ名は存在しない、という誤った結果が表示されてしまうことがある。
【０００４】
このような表記ゆれに対処する技術として、用語ごとに表記のゆれ方を予め辞書登録しておく手法（例えば特許文献１又は２を参照）、あるいは適当に分割した文字列の組み合わせから表記ゆれの候補を作成する手法（例えば特許文献３を参照）がある。
【０００５】
また、既存のデータベース、文章データを機械に学習させることで、ユーザが検索のために入力した単語と意味レベルで類似している結果を提示する手法（例えば非特許文献１又は２を参照）、およびＵＩ（ユーザインタフェース）拡張により、データ入力手段においてプルダウンメニューを導入することで、入力表記ゆれを防ぐ（例えば非特許文献３を参照）、という手法も存在する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−０６５３８４号公報
【特許文献２】特開２００８−２８７３９４号公報
【特許文献３】特開２０１４−２３２５１０号公報
【非特許文献】
【０００７】
【非特許文献１】中川 裕志, 湯本 紘彰, 森 辰則, 「出現頻度と連接頻度に基づく専門用語抽出」, 自然言語処理, Vol. 10, No. 1, pp. 27-45, 2003.
【非特許文献２】関口裕一郎, 佐藤吉秀, 川島晴美, 奥田英範, 「ブログ文書集合を用いた省略語抽出手法の検討」, 日本データベース学会Letters, Vol. 6, No. 2, pp. 21-24, 2007.
【非特許文献３】西川健一, 増田健, 足立洋之, 井上晃, 「Webベースの業務システムへのユーザインタフェース拡張方式の適用」, 信学技報, Vol. 116, No. 507, pp. 81-85, 2017.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
データ名の表記のゆれ方には、i)登録データ名を省略した表記、ii)使用者同士でのローカルルールに基づく呼び名、いわゆる通称による表記、が存在する。このとき、省略による表記に対しては上記の特許文献１乃至３に開示された手段は確かに有効な手段である。
【０００９】
しかしながら通称にも有効とは言えない。なぜならば、特許文献３では元の名前を構成する文字から省略表記を推測するが、通称とは省略表記とは異なり、元となった名前とかけ離れた名称である場合が多いため、元となったデータ名を紐づけることが困難であるからである。
【００１０】
また、表記ゆれを予め辞書に登録しておく既存手法、例えば特許文献１、２では、ローカルルールを把握している人材に通称を辞書登録させることが必須である。この方法では、辞書にローカルルールを全て網羅されているかの判定が困難であることに加え、未登録の通称に対して対処することができない、という欠点がある。
【００１１】
プルダウンメニューによる選択方式等のようなＵＩ拡張による通称表記の入力を禁止する技術、例えば非特許文献３も存在するが、これは、この技術を導入した地点から表記ゆれを防止することができるものであって、既に省略、通称表記が混在しているＤＢに対して有効な手段ではない。
【００１２】
いずれにせよ、前述のようにデータ名による検索、照会を行なう業務において、通称表記が混在してしまった場合、通称に対応する登録データ名は見つけることができない。そこでローカルルールを把握している人を尋ねる、あるいはそれらしきデータ名を自力で探し出すという方法を取らざるを得ない。
【００１３】
さらに通称が把握できたならば、その通称をマスタデータに登録されているデータ名に訂正する作業が必要になる。これらには時間と労力がかかり、本来行なうべき業務を妨げ、業務効率を下げている。
【００１４】
この発明は、上記事情に着目してなされたもので、その目的とするところは、入力データ名に対応する適切なマスタデータ名を検索することができるようにしたデータ検索装置、方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１５】
上記目的を達成するために、この発明の一実施形態に係るデータ検索装置の第１の態様は、データ検索装置が、プロセッサと、入力部と、マスタデータと関連付けて管理されるマスタデータ名を記憶する記憶部とを具備し、前記プロセッサは、前記記憶部に記憶されたマスタデータ名と、前記入力部において入力された入力データ名との間の編集距離を算出する第１の算出処理を行ない、前記マスタデータ名と前記入力データ名とに係る単語の出現頻度および逆文書頻度に基づいて、前記マスタデータ名と前記入力データ名との類似度を算出する第２の算出処理を行ない、前記第１および第２の算出処理による算出結果、および前記マスタデータ名と前記入力データ名との隣接関係を示す隣接情報に基づいて、前記マスタデータ名における検索対象のデータ名の候補の絞り込み処理を行ない、前記絞り込み処理により得られた検索対象のデータ名の候補に基づいて、マスタデータ名と入力データ名との対応を表す情報を出力する、ように構成される、ようにしたものである。
【００１６】
この発明のデータ検索装置の第２の態様は、第１の態様において、前記プロセッサは、前記絞り込み処理として、前記記憶部に記憶されたマスタデータ名のうち、前記入力データ名との間で前記第１の算出処理により算出された編集距離が最小であるマスタデータ名を、検索対象のマスタデータ名の候補として選択し、この選択されたマスタデータ名と当該マスタデータ名の選択に係る入力データ名との組を示す第１のリストを作成し、前記第１のリストにおける入力データ名のうち、複数の候補と対応付けられる入力データ名、および同じ表記でないマスタデータ名と対応付けられる入力データ名を示す第２のリストを作成し、前記第１のリストにおける、１つのマスタデータ名と１つの入力データ名との組を示すリストである第３のリストを作成し、前記第１のリストにおける、複数のマスタデータ名と１つの入力データ名との組を示すリストである第４のリストを作成し、前記第２のリストにおける入力データ名ごとに、当該入力データ名との隣接関係を有する入力データ名を、複数の前記入力データ名の間の隣接関係を示す隣接情報から抽出し、前記第３のリストにおけるマスタデータ名から、前記抽出された入力データ名との対応関係を有するマスタデータ名である第１のマスタデータ名を抽出し、前記第２のリストにおける入力データ名ごとに、前記抽出された第１のマスタデータ名であって、前記第３のリストにおいて同一表記の入力データ名と対応付けられるマスタデータ名である第２のマスタデータ名を、前記記憶部に記憶される複数のマスタデータ名の間の隣接関係を示す隣接情報から抽出し、前記第２のリストにおける入力データ名ごとに、前記抽出された第１のマスタデータ名であって、前記第３のリストにおいて同一表記でない入力データ名と対応付けられるマスタデータ名である第３のマスタデータ名を、前記記憶部に記憶される複数のマスタデータ名の間の隣接関係を示す隣接情報から抽出し、前記第２のリストにおける入力データ名ごとに、前記抽出された第２および第３のマスタデータ名の共通集合により得られるデータ名を前記第２のリストで示される入力データ名に対応するマスタデータ名の候補として作成し、前記マスタデータ名の候補の作成に応じて前記第２、第３および第４のリストを更新する処理を行なう、ように構成され、前記プロセッサは、前記第１の算出処理として、前記第２のリストにおける入力データ名ごとに、当該入力データ名と前記抽出されたマスタデータ名の候補との編集距離を算出する処理を行なう、ように構成され、前記プロセッサは、前記絞り込み処理として、前記算出された編集距離と当該マスタデータ名の候補の文字数との関係が条件を満たすときに、前記マスタデータ名の候補のうち入力データ名と共通する文字を有しない候補を削除し、削除後のマスタデータ名および当該マスタデータ名について前記編集距離の算出に用いた入力データ名を前記第３のリストに追加する処理を行なう、ように構成される、ようにしたものである。
【００１７】
この発明のデータ検索装置の第３の態様は、第１の態様において、前記プロセッサは、前記絞り込み処理として、前記記憶部に記憶されるマスタデータ名のうち、前記入力データ名との間で前記第２の算出処理により算出された類似度が最大であるマスタデータ名を、検索対象のマスタデータ名の候補として選択し、この選択されたマスタデータ名と当該マスタデータ名の選択に係る入力データ名との組を示す第１のリストを作成し、前記第１のリストにおける入力データ名のうち、複数の候補と対応付けられる入力データ名、および同じ表記でないマスタデータ名と対応付けられる入力データ名を示す第２のリストを作成し、前記第１のリストにおける、１つのマスタデータ名と１つの入力データ名との組を示すリストである第３のリストを作成し、前記第１のリストにおける、複数のマスタデータ名と１つの入力データ名との組を示すリストである第４のリストを作成し、前記第２のリストにおける入力データ名ごとに、当該入力データ名との隣接関係を有する入力データ名を、複数の前記入力データ名の間の隣接関係を示す隣接情報から抽出し、前記第３のリストにおけるマスタデータ名から、前記抽出された入力データ名との対応関係を有するマスタデータ名である第１のマスタデータ名を抽出し、前記第２のリストにおける入力データ名ごとに、前記抽出された第１のマスタデータ名であって、前記第３のリストにおいて同一表記の入力データ名と対応付けられるマスタデータ名である第２のマスタデータ名を、前記記憶部に記憶される複数のマスタデータ名の間の隣接関係を示す隣接情報から抽出し、前記第２のリストにおける入力データ名ごとに、前記抽出された第１のマスタデータ名であって、前記第３のリストにおいて同一表記でない入力データ名と対応付けられるマスタデータ名である第３のマスタデータ名を、前記記憶部に記憶される複数のマスタデータ名の間の隣接関係を示す隣接情報から抽出し、前記第２のリストにおける入力データ名ごとに、前記抽出された第２および第３のマスタデータ名の共通集合により得られるデータ名を前記第２のリストで示される入力データ名に対応するマスタデータ名の候補として作成し、前記マスタデータ名の候補の作成に応じて前記第２、第３および第４のリストを更新する処理を行なう、ように構成され、前記プロセッサは、前記第１の算出処理として、前記第２のリストにおける入力データ名ごとに、当該入力データ名と前記抽出されたマスタデータ名の候補との編集距離を算出する処理を行なう、ように構成され、前記プロセッサは、前記絞り込み処理として、前記算出された編集距離と当該マスタデータ名の候補の文字数との関係が条件を満たすときに、前記マスタデータ名の候補のうち入力データ名と共通する文字を有しない候補を削除し、削除後のマスタデータ名および当該マスタデータ名について前記編集距離の算出に用いた入力データ名を前記第３のリストに追加する処理を行なう、ように構成される、ようにしたものである。
【００１８】
本発明の一実施形態に係るデータ検索方法の一つの態様は、プロセッサと、入力部と、マスタデータと関連付けて管理されるマスタデータ名を記憶する記憶装置とを具備するデータ検索装置が行なうデータ検索方法であって、前記プロセッサは、前記記憶装置に記憶されるマスタデータ名と、前記入力部により入力された入力データ名との間の編集距離を算出し、前記プロセッサは、前記マスタデータ名と前記入力データ名とに係る単語の出現頻度および逆文書頻度に基づいて、前記マスタデータ名と前記入力データ名との類似度を算出し、前記プロセッサは、前記編集距離および類似度の算出結果、および前記マスタデータ名と前記入力データ名との隣接関係を示す隣接情報に基づいて、前記マスタデータ名における検索対象のデータ名の候補の絞り込み処理を行ない、前記プロセッサは、前記絞り込み処理により得られた検索対象のデータ名の候補に基づいて、マスタデータ名と入力データ名との対応を表す情報を出力する、ようにしたものである。
【００１９】
本発明の一実施形態に係るデータ検索処理プログラムの一つの態様は、第１乃至第３の態様のいずれか１つにおけるデータ検索装置の前記各処理として前記プロセッサを機能させるものである。
【発明の効果】
【００２０】
この発明の一実施形態に係るデータ検索装置の第１の態様によれば、マスタデータ名と、入力データ名との間の編集距離、マスタデータ名と入力データ名との類似度、およびマスタデータ名と入力データ名との隣接関係を示す隣接情報に基づいて、マスタデータ名における検索対象のデータ名の候補の絞り込み処理を行なうので、例えばマスタデータとの乖離が大きい、入力データ名に対する正確なマスタデータ名を特定することができる。
【００２１】
この発明の一実施形態に係るデータ検索装置の第２および第３の態様によれば、検索対象の複数の候補と対応付けられる入力データ名、および同じ表記でないマスタデータ名と対応付けられる入力データ名を示すリストを作成し、このリストおよび隣接情報を用いて、マスタデータ名における検索対象のデータ名の候補の絞り込み処理を行なうので、例えば通称が入力データ名であっても、入力データ名に対する正確なマスタデータ名を特定することができる。
【００２２】
すなわち、本発明の各態様によれば、入力データ名に対応する適切なマスタデータ名を検索することが可能になる。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施形態に係るデータ検索装置の適用例を示す図。
【図２】本発明の一実施形態に係るデータ検索装置による処理手順の一例を示すフローチャート。
【図３】本発明の一実施形態に係るデータ検索装置による処理手順の一例を示すフローチャート。
【図４】本発明の一実施形態に係るデータ検索装置による処理手順の一例を示すフローチャート。
【図５】本発明の一実施形態に係るデータ検索装置による処理手順の一例を示すフローチャート。
【図６】本発明の一実施形態に係るデータ検索装置による処理手順の一例を示すフローチャート。
【発明を実施するための形態】
【００２４】
以下、図面を参照しながら、この発明に係わる一実施形態を説明する。  
本発明の一実施形態に係るデータ検索装置は、マスタデータ名と入力データ名との間で、編集距離として代表的なLevenshtein（レーベンシュタイン）距離の算出、およびＴＦ（Term Frequency、単語の出現頻度）−ＩＤＦ（Inverse Document Frequency、逆文書頻度）によるデータ名の類似度の算出を行ない、これらの算出結果に加えて、各データの論理的あるいは物理的な隣接情報を使用する。ＴＦ−ＩＤＦは、例えば文書中に含まれる単語の重要度を評価するために用いられる。
【００２５】
まず、データ検索装置は、既存の算出結果を用いてによりマスタデータ内のデータ名を検索し、該当データ名が特定できなかったデータの名前に関しては、データ名間の隣接関係を示す隣接情報を用いてマスタデータからの検索対象のデータ名の候補を絞り込む。
【００２６】
本発明の一実施形態に係るデータ検索装置は、使用者同士でのローカルルールに基づく呼び名、いわゆる通称による表記であっても、隣接関係にあるデータを用いることで、マスタデータから適切なデータ名の候補を提示することができる。これにより、ローカルルールを知らないユーザが通称名を調べ、訂正するために必要だった時間と稼働が必要なくなる。
【００２７】
図１は、本発明の一実施形態に係るデータ検索装置の適用例を示す図である。  
図１に示すように、本発明の一実施形態に係るデータ検索装置１０は、Levenshtein距離算出部１１、ＴＦ−ＩＤＦ算出部１２、データ入力部１３、計算部１４、絞り込み部１５、データ出力部１６を備える。図１に示すデータ検索装置１０の機能は、プログラムを実行するＣＰＵ（Central Processing Unit）等のプロセッサ、キーボードなどの入力装置、ディスプレイなどの出力装置、およびＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等の記憶媒体を用いて実現される。各部の動作については後述する。
論理的あるいは物理的な隣接情報が付属しているデータとして、ビル名およびビル間の接続情報を具体例として使用する。  
ここでは、「マスタデータにあるビル名のリスト」、「実際にデータに入力されたビル名のリスト」、「マスタデータに存在する各ビルの接続情報」、および「実際にデータに入力されたビルの接続情報」が内部メモリに格納されているとする。
【００２８】
以下、マスタデータにあるビル名を原名、入力装置への操作により実際に入力されたビル名を略名と呼び、ｉ番目の原名を
【００２９】
【数１】
2020123210.tif 000003
【００３０】
と表記し、ｊ番目の略名を
【００３１】
【数２】
2020123210.tif 000004
【００３２】
と表記し、原名の集合を
【００３３】
【数３】
2020123210.tif 000005
【００３４】
と表記し、略名の集合を
【００３５】
【数４】
2020123210.tif 000006
【００３６】
と表記する。
【００３７】
まず、Levenshtein距離算出部１１は、略名に対して各原名とのLevenshtein距離を算出し、Levenshtein距離算出部１１は、この距離が最短距離となる原名を候補として選択する。ただし、最短距離となる原名が複数の原名である場合は、該当するすべての原名を上記の候補とする。この処理によって得られた略名-原名候補のリストを、下記の式に示すLevenリストと呼び、この原名、略名の対応関係をΑからΥへの関数としてＬ：Α→Υと表記する。
【００３８】
【数５】
2020123210.tif 000007
【００３９】
また、ＴＦ−ＩＤＦ算出部１２は、全ての略名、原名を形態素ごとに分割し、各形態素の出現頻度、回数によって、この形態素の重要度をＴＦとＩＤＦの積から算出する。ただし、包含関係にある形態素が存在する場合(包含関係：「秋田大」と「秋田」のように一方が他方の形態素に含まれている状態にあるとき「秋田大」は「秋田」を包含していると表現する。ただし「秋冬田」と「秋田」のような場合は包含とは呼ばない。)、ＴＦ−ＩＤＦ算出部１２は、包含している形態素を、包含されている形態素で分割する(「秋田大」と「秋田」が存在した場合、「秋田大」を「秋田」と「大」に分割する)。
【００４０】
ＴＦ−ＩＤＦ算出部１２は、各原名、略名を構成形態素の重要度からベクトル化する。ベクトル化した略名とベクトル化した原名との類似度を、下記の式により算出する。ただし
【００４１】
【数６】
2020123210.tif 000008
【００４２】
はユークリッドノルムを表す。
【００４３】
【数７】
2020123210.tif 000009
【００４４】
ＴＦ−ＩＤＦ算出部１２は、略名に対する類似度が最大となった原名を候補として選択する。ただし最大値を与える原名が複数存在する場合は、ＴＦ−ＩＤＦ算出部１２は、これらを全て原名の候補として選択する。また、いずれの原名との類似度が0である略名に対しては、「該当ビル名なし」とする。これらの処理によって得られた略名-原名候補のリストを下記の式に示すＴＦ−ＩＤＦリストと呼び、その対応関係をΑからΥへの関数としてＴ：Α→Υと表記する。ただし該当ビル名がない場合、T(ai)は空である。
【００４５】
【数８】
2020123210.tif 000010
【００４６】
データ入力部１３は、Levenshtein距離算出部１１、ＴＦ−ＩＤＦ算出部１２による算出結果である２つのリストを入力して、計算部１４に渡す。計算部１４は、これらの２つのリストが得られた下で、接続情報を用いた絞り込みに係る計算を、各リストを用いて次の手順で行なう。図２、図３、図４、図５、図６は、本発明の一実施形態に係るデータ検索装置による処理手順の一例を示すフローチャートである。  
・接続情報を用いた絞り込み手法（１）(Levenリストと接続情報)
（ステップ１）  (S01)Levenリストに対しては、複数の原名候補を持つ略名、および略名と原名の名前が異なる（同一でない）略名を、[原名不明]と呼び、下記の式で定義する。
【００４７】
【数９】
2020123210.tif 000011
【００４８】
そして原名の候補が一つである略名-原名の組み合わせを[原略対応表]と呼び、下記のように定義する。  
【００４９】
【数１０】
2020123210.tif 000012
【００５０】
さらに原名の候補が複数ある略名-原名の組み合わせを[原略対応表(複)]と呼び、下記のように定義する。
【００５１】
【数１１】
2020123210.tif 000013
【００５２】
（ステップ２）  計算部１４は、[原名不明]内の全略名に対する処理を開始し、ある略名aj∈[原名不明]に対して、この略名と直接接続しているビル名を、「実際にデータに入力されたビルの接続情報」から、リストアップする(S02)。これを略名ajに対する相方略名とし、下記のように定義する[相方略名]jと表記する。下記のakのkは、1から#{Α}まで(ただしjを除く)の値を取り得る。#{Α}は集合Αの要素数を表す。
【００５３】
【数１２】
2020123210.tif 000014
【００５４】
（ステップ３）  計算部１４は、[相方略名]jに存在する略名のうち、[原略対応表]にて原名が判明しているビル名を全て原名に戻す。計算部１４は、これにより得られる原名のリストを略名ajに対する相方原名とし、下記のように定義する[相方原名]jとする(S03)。[相方原名]jが空であるときは(S04: No)S01に戻り、空でないときは(S04: Yes)下記のステップ４に移る。
【００５５】
【数１３】
2020123210.tif 000015
【００５６】
（ステップ４）  計算部１４は、[相方原名]jに含まれる各原名とそれぞれ接続しているビル名を、「マスタデータに存在する各ビルの接続情報」から得る。このとき計算部１４は、[相方原名]jにある任意のビルと接続している原名をリスト化する。ただし、リストを作成する際には、まず[相方原名]jのうち略名と原名が同一のものから得られるビル情報を優先する。すなわち、計算部１４は、略名と原名が同一であるビルのいずれとも接続している原名のリストを始めに作成し(S11)、この原名を略名ajに対する共通原名と呼び、下記のように定義する[共通原名]jとする。ただし、Ｌ−１：Υ→Αは各原名に対し、Levenリストにおいて対応する略名を返す関数である。下記のrlは、[相方原名]jの要素、すなわちajに接続関係にある原名を指す。当該rlのlは、1から#{Υ}までの値(ただしjを除く)を取り得る。#{Υ}は集合Υの要素数を表す。
【００５７】
【数１４】
2020123210.tif 000016
【００５８】
そして計算部１４は、残りの[相方原名]jの各原名に接続しているビルと[共通原名]jとの共通集合（共通部分（intersection）とも呼ばれ、与えられた集合の集まり全てに共通に含まれる元を全て含み、それ以外の元は含まない集合を指す）を得る。今度は、計算部１４は、この集合を略名ajに対する原名候補とし、下記のように定義する[原名候補]jとする。[原名候補]jを作成するには、始めに[原名候補]j＝[共通原名]jとし(S12)、以降は、[相方原名]jの各原名のうち原名と略名が一致しないものに対する処理を開始し、[原名候補]jと、[相方原名]jに含まれる各原名に接続している原名からなる集合との共通集合を下記のように取る(S13)ことで[原名候補]jを更新していく。
【００５９】
【数１５】
2020123210.tif 000017
【００６０】
この更新において共通集合が空になってしまった場合(S14: No)、計算部１４は、[原名候補]jには[共通原名]jを代入し(S15)、共通集合が空になった原因の[相方原名]jの原名(rn,L-1(rn))を、[相方原名]j及び[原略対応表]から削除する(S16)。これは、[相方原名]jのうち、[相方略名]jとの対応が誤っている組み合わせが存在している場合、[原名候補]jが空になることを防ぐためである。上記の更新において共通集合が空でない場合(S14:Yes)、またはS16の後は、[相方原名]jのうち原名と略名が一致しないものについての処理が終了するまでS13からの処理を繰り返す。
【００６１】
ここで、[原名候補]jが一つの原名からなる場合(S17: =1)、計算部１４は、次の条件分岐i)、ii)、iii)に従って、この原名と略名の組み合わせを新たに[原略対応表]に追加し(S21)、S21の後は[原名不明]のリストから略名ajを削除する(S22)。
i)  ajと[原名候補]jとは異なる原名の組み合わせが、[原略対応表]に存在した場合(S18: =1)、計算部１４は、既に存在した方(L(aj), aj)を誤りとして削除し(S19-1)、接続情報を用いて選択した原名との組み合わせ、([原名候補]j,aj)を正解とする(S21)。
【００６２】
ii)  ajと[原名候補]jとは異なる原名の組み合わせが[原略対応表(複)]に存在した場合(S18: >1)、計算部１４は、既に存在した方(L(aj), aj)を誤りとして削除し(S19-2)、[原名候補]j∈L(aj)ならば(S20: Yes)、([原名候補]j, aj)を正解とする(S21)。一方、
【００６３】
【数１６】
2020123210.tif 000018
【００６４】
ならば(S20: No)、計算部１４は、ajは原名不明のままとし、上記のように(L(aj), aj)を削除する(S19-2)が、S21, S22はスキップする。  
iii)  ajと[原名候補]jの組み合わせが、[原略対応表]にも[原略対応表(複)]にも存在しない場合(S18: =0)、計算部１４は、ajと[原名候補]jを[原略対応表]に追加する(S21)。
【００６５】
また、[原名候補]jが複数候補であり(S17: >1)、かつ該当する略名が[原略対応表]に含まれていた場合(S24: =1)、計算部１４は、[原略対応表]内の組み合わせ(L(aj), aj)を誤りとして削除する(S23)。加えて、計算部１４は、[原名候補]jとL(ai)との和集合を新たな[原名候補]jとする(S25)。
【００６６】
一方、該当する略名が[原略対応表(複)]に含まれていた場合(S24: >1)、計算部１４は、[原略対応表(複)]から(L(aj), aj)を削除する(S23)。そして、計算部１４は、[原名候補]jとL(ai)との共通集合を新たな[原名候補]jとする(S26)。
【００６７】
[原名候補]jが空であるとき(S17: =0)は、計算部１４は、L(aj)が存在する場合のみ(S27: ≧1)、組み合わせ(L(aj), aj)を誤りとして[原略対応表]あるいは[原略対応表(複)]から削除する(S28)。
【００６８】
S27: ≧1でないとき、S20: Noのとき、またはS22, S25, S26, S28の後は、[原名不明]内の全略名に対する処理が完了するまで、S02からの処理を繰り返す。この処理が完了すると、計算部１４は、ステップ３、４を「原名不明」に含まれる略名の個数が変化しなくなる(S29: No)まで繰り返す。当該略名の個数が変化しなくなると、以下のステップ５に移る。
【００６９】
（ステップ５）  この後は、残った[原名不明]に含まれる各略名と対応する[原名候補]の絞り込みを、Levenshtein距離を用いて行なう。  
Levenshtein距離算出部１１は、aj∈[原名不明]と、[原名候補]jの各原名とのLevenshtein距離を算出する。ここでは、「置換コスト：1000000、追加コスト：1000、削除コスト：1」と設定する。この下で算出された距離の下3桁が、[原名候補]jの各原名を略名ajへ変換するためにそれぞれ必要な削除回数に相当する。[原名候補]jの原名ｒiにおいて、その削除回数がｒiの文字数以上であれば(S30: Yes)、絞り込み部１５は、ｒiは略名ajと共通する文字を持たないとして[原名候補]jから削除する(S31)。S30でNoのとき、又はS31の後は、aj∈[原名不明]と、[原名候補]jの全原名とのLevenshtein距離を計算が完了するまでS30, S31の処理を繰り返す。
【００７０】
ここまでの操作によって[原名候補]jの要素数が１になった場合（S31-2: Yes）は、絞り込み部１５は、これを[原略対応表]に追加する。ただし、[原名候補]jが空集合になってしまった場合（S31-2: No）は、aj通称である可能性があるので、絞り込み部１５は、ステップ５を行なう前の[原名候補]jを維持する(S32)。S31-2: Yesのとき又はS32の後は、[原名不明]内の全略名に対する処理が完了するまで、S30以降の処理を繰り返す。
【００７１】
以上の操作により、データ検索装置１０は、原名-略名の対応リスト[原略対応表]と、物理的および名称的に原名が一意に定まらない[原名不明]と、対応する候補[原名候補]を得ることができ、マスタデータ名と実際に入力されたデータ名との対応表をデータ出力部１６により出力することができる。
【００７２】
・接続情報を用いた絞り込み手法（２）(ＴＦ−ＩＤＦリストと接続情報)
ＴＦ−ＩＤＦリストに対しても、データ検索装置１０は、上記のステップ１〜５と同様の操作を行なうことで[原名不明]及び対応する[原名候補]を得ることができる。ただし、全過程において上記で用いた関数Ｌを関数Ｔに読み替え、ステップ１において、原名が不明である略名、複数の原名候補を持つ略名、および略名と原名の名前が異なる（同一でない）略名を、[原名不明]としてリスト化する。その他の操作はLevenリストに対するステップ１から５と同様である。
【００７３】
次に、この手法の動作例として、適用したデータの概要と結果を紹介する。  
データ：
Υ＝{福島、山田小湊、いわき泉、いわき三坂、会津若松吾妻、福島相馬、いわき、会津若松、須賀川、郡山}
Α={福島、小湊、泉、三阪、吾妻、相馬、いわき、会津若松、第二矢吹、郡山}
通称表記：あり(「須賀川」というビル名が「第二矢吹」という通称で入力されている)
正確な原名と略名の組み合わせ：
{((福島、福島)、(山田小湊、小湊)、(福島相馬、相馬)、(いわき、いわき)、(郡山、郡山)、(いわき泉、泉)、(会津若松、会津若松)、(いわき三坂、三阪)、(須賀川、第二矢吹)、(会津若松吾妻、吾妻))}
このようにして、データ検索装置１０は、マスタデータ名と実際に入力されたデータ名との対応表をデータ出力部１６により出力することができる。
【００７４】
次に、Levenリストを用いた計算過程として以下のステップ１〜５を説明する。  
（ステップ１）
Levenshtein距離算出部１１は、Levenshtein距離を用いて各略名と最小距離にある原名を選択する。このとき得られたLevenリストは、
Levenリスト={((福島、福島)、(山田小湊、小湊)、(福島相馬、相馬)、(いわき、いわき),(会津若松、会津若松)、(郡山、郡山)、((福島、いわき泉、郡山)、泉)、((福島、郡山)、三阪)、((福島、会津若松吾妻、郡山)、吾妻)、((福島、郡山)、第二矢吹))}
であった。これより[原名不明]および[原略対応表]、[原略対応表(複)]は、
[原名不明]={小湊、泉、三阪、吾妻、相馬、第二矢吹}
[原略対応表]={((福島、福島)、(山田小湊、小湊)、(福島相馬、相馬)、(いわき、いわき)、(会津若松、会津若松)、(郡山、郡山))}
[原略対応表(複)]={(((福島、いわき泉、郡山)、泉)、((福島、郡山)、三阪)、((福島、会津若松吾妻、郡山)、吾妻)、((福島、郡山)、第二矢吹))}
となる。
【００７５】
（ステップ２）
「実際にデータに入力されたビルの接続情報」としては次のようなBrを想定した。  
Br={((吾妻、会津若松)、(吾妻、いわき)、(吾妻、福島)、(吾妻、泉)、(小湊、泉)、(泉、第二矢吹)、(泉、福島)、(福島、相馬)、(福島、三阪)、(郡山、第二矢吹)、(相馬、三阪))}
計算部１４は、[原名不明]の各略名に対して接続情報Brを用いて相方略名をリストアップする。  
j=2(略名：小湊)  [相方略名]2={泉}
j=3(略名：泉)  [相方略名]3={吾妻、小湊、第二矢吹、福島}
j=4(略名：三阪)  [相方略名]4={福島、相馬}
j=5(略名：吾妻)  [相方略名]5={会津若松、いわき、福島、泉}
j=6(略名：相馬)  [相方略名]6={福島、三阪}
j=9(略名：第二矢吹)  [相方略名]9={郡山}
このようにして相方略名を得ることができる。
【００７６】
（ステップ３）
計算部１４は、各相方原名を得る。  
j=2(略名：小湊)  [相方原名]2={  }
j=3(略名：泉)  [相方原名]3={山田小湊、福島}
j=4(略名：三阪)  [相方原名]4={福島、福島相馬}
j=5(略名：吾妻)  [相方原名]5={会津若松、いわき、福島}
j=6(略名：相馬)  [相方原名]6={福島}
j=9(略名：第二矢吹)  [相方原名]9={郡山}
このようにして相方原名を得ることができる。
【００７７】
（ステップ４）
「マスタデータに存在する各ビルの接続情報」として、次のようなBmを想定した。  
Bm={((会津若松吾妻、会津若松)、(会津若松吾妻、いわき)、(会津若松吾妻、福島)、(会津若松吾妻、いわき泉)、(山田小湊、いわき泉)、(いわき泉、郡山)、(いわき泉、福島)、(福島、福島相馬)、(福島、いわき三坂)、(郡山、須賀川)、(福島相馬、いわき三坂))}
計算部１４は、Bmを用いて各共通原名を得る。  
・j=2(略名：小湊)
[相方原名]2は空であるので、略名「小湊」は原名不明のままにする。
【００７８】
・j=3(略名：泉)
[相方原名]3の要素かつ、原名と略名が同一である略名は「福島」のみである。よって[共通原名]3は
[共通原名]3={会津若松吾妻、いわき泉、福島相馬、いわき三坂}
となる。[相方原名]3の要素には、「福島」のほかにもう一つ「山田小湊」がある。Bmにおいて「山田小湊」と接続関係にある原名は「いわき泉」のみである。これより[原名候補]3={いわき泉}である。よって[原略対応表(複)]には((福島、いわき泉、郡山)、泉)と「いわき泉」が含まれることから、計算部１４は、[原略対応表(複)]から((福島、いわき泉、郡山)、泉)を削除し、[原略対応表]に新たな組み合わせである(いわき泉、泉)を追加する。
【００７９】
・j=4(略名：三阪)
同様に[共通原名]4は、Bmにおいて「福島」と接続関係にある原名により下記のように構成される。  
[共通原名]4={会津若松吾妻、いわき泉、いわき三坂、福島相馬}
[相方原名]4の要素には「福島相馬」も含まれる。計算部１４は、このビルと接続関係にあるビル名と、[共通原名]4との共通集合をとり、[原名候補]5は下記のように構成される。  
[原名候補]4={いわき三坂}
今、[原略対応表(複)]には((福島、郡山)、三阪)が存在し、いわき三坂はL(a4)の要素ではないことから、計算部１４は、[原略対応表(複)]から((福島、郡山)、三阪)を誤りとして削除し、[原略対応表]には何も追加しない。
【００８０】
・j=5(略名：吾妻)
[相方原名]5が全て原名と略名が同一のものから構成されるので、[共通原名]5および[原名候補]5は、Bmにおいて「会津若松」、「いわき」、「福島」のいずれとも接続関係にある原名により下記のように構成される。  
[原名候補]5=[共通原名]5={会津若松吾妻}
これより、計算部１４は、[原略対応表(複)]から((福島、会津若松吾妻、郡山)、吾妻)を削除し、[原略対応表]に新たな組み合わせである(会津若松吾妻、吾妻)を追加する。
【００８１】
・j=6(略名：相馬)
[共通原名]6は、Bmにおいて「福島」と接続関係にある原名により下記のように構成される。  
[共通原名]6={会津若松吾妻、いわき泉、福島相馬、いわき三坂}
[相方原名]6で原名と略名が同一である原名は「福島」のみなので、[原名候補]6=[共通原名]6である。ここで、計算部１４は、[原略対応表]から(福島相馬、相馬)を削除する。
【００８２】
・j=9(略名：第二矢吹)
[相方原名]9の要素かつ、原名と略名が同一である原名は「郡山」のみである。よって[共通原名]9は、下記のようにBmにおいて「郡山」と接続関係にある原名「須賀川」からなる。  
[原名候補]9=[共通原名]9={須賀川}
略名「第二矢吹」に対して((福島、郡山)、第二矢吹)が[原略対応表(複)]に存在し、かつ原名「須賀川」は[原略対応表(複)]に含まれないことから、計算部１４は、[原略対応表(複)]から((福島、郡山)、第二矢吹)を削除する。
【００８３】
この時点で、
[原名不明]={小湊、三阪、相馬、第二矢吹}
[原略対応表]={((福島、福島)、(山田小湊、小湊)、(いわき、いわき)、(会津若松、会津若松)、(郡山、郡山)、(いわき泉、泉)、(会津若松吾妻、吾妻))}
[原略対応表(複)]={  }
である。計算部１４は、これらの残りの原名不明の各略名に対して下記のように再びステップ３，４の操作を行なう。
【００８４】
（ステップ３）(２回目)
j=2(略名：小湊)  [相方原名]2={いわき泉}
j=4(略名：三阪)  [相方原名]4={福島}
j=6(略名：相馬)  [相方原名]6={福島}
j=9(略名：第二矢吹)  [相方原名]9={郡山}
（ステップ４）(２回目)
・j=2(略名：小湊)
[相方原名]2で原名と略名が同一である原名はないので、[原名候補]2として「いわき泉」と接続関係のある原名が相当する。すなわち、
[原名候補]2={会津若松吾妻、山田小湊、須賀川、福島}
である。今、(山田小湊、小湊)の組み合わせが[原略対応表]に存在し、[共通原名]2の要素数が複数であるので、計算部１４は、(山田小湊、小湊)を[原略対応表]から削除する。
【００８５】
・j=4(略名：三阪)
[相方原名]4のうち「福島相馬」が[原略対応表]から削除されたので、
[原名候補]4={会津若松吾妻、いわき泉、福島相馬、いわき三坂}
である。
【００８６】
・j=6(略名：相馬)
[共通原名]6には（ステップ３）(２回目)での変化はないので、下記のように、[共通原名]6は、Bmにおいて「福島」と接続関係にある原名により下記のように構成される。  
[共通原名]6={会津若松吾妻、いわき泉、福島相馬、いわき三坂}
・j=9(略名：第二矢吹)
[相方原名]9にも（ステップ３）(２回目)での変化はないので、原名と略名が同一である原名は「郡山」のみである。よって
[原名候補]9=[共通原名]9={須賀川}
である。略名「第二矢吹」と対応する原名の組み合わせは[原略対応表]、[原略対応表(複)]のいずれにも存在しないので、計算部１４は、[原略対応表]に新たな組み合わせである(須賀川、第二矢吹)を追加する。
【００８７】
この時点で、
[原名不明]={小湊、三阪、相馬}
[原略対応表]={((福島、福島)、(いわき、いわき)、(会津若松、会津若松)、(郡山、郡山)、(いわき泉、泉)、(会津若松吾妻、吾妻)、(須賀川、第二矢吹))}
[原略対応表(複)]={  }
であり、対応する原名の候補は、
[原名候補]2={会津若松吾妻、山田小湊、須賀川、福島}
[原名候補]4={会津若松吾妻、いわき泉、福島相馬、いわき三坂}
[原名候補]6={会津若松吾妻、いわき泉、福島相馬、いわき三坂}
である。これ以上操作を行っても原名不明の略名の数に変化はないので、ステップ５へ進む。
【００８８】
（ステップ５）
Levenshtein距離算出部１１は、j=2, 4, 6に対して略名ajと[原名候補]jの各原名とのLevenshtein距離を算出する。
【００８９】
・j=2(略名：小湊)
このとき算出される、各原名との距離は、
会津若松吾妻：2006、須賀川：2003、福島：2002、山田小湊：2
であり、距離の下一桁の値がその原名の文字数よりも小さくなるのは「山田小湊」のみである。これにより、絞り込み部１５は、[原略対応表]に新たな組み合わせである(山田小湊、小湊)を追加する。
【００９０】
・j=4(略名：三阪)
算出される、各原名との距離は、
会津若松吾妻：2006、いわき泉：2004、福島相馬：2004、いわき三坂：1004
であり、これより距離の下一桁の値がその原名の文字数よりも小さくなるのは「いわき三坂」のみである。よって絞り込み部１５は、[原略対応表]に新たな組み合わせである(いわき三坂、三阪)を追加する。
【００９１】
・j=6(略名：相馬)
算出される、各原名との距離は、
会津若松吾妻：2006、いわき泉：2004、福島相馬：2、いわき三坂：2005
であり、これより距離の下一桁の値がその原名の文字数よりも小さくなるのは「福島相馬」のみである。よって絞り込み部１５は、[原略対応表]に新たな組み合わせである(福島相馬、相馬)を追加する。  
以上より原名が判明していない略名はなくなったため、絞り込みに係る操作を終了する。得られた原名-略名の組み合わせは、
[原略対応表]={((福島、福島)、(山田小湊、小湊)、(福島相馬、相馬)、(いわき、いわき)、(郡山、郡山)、(いわき泉、泉)、(会津若松、会津若松)、(いわき三坂、三阪)、(須賀川、第二矢吹)、(会津若松吾妻、吾妻))}
となり、全略名に対する原名が特定されている。
【００９２】
（ＴＦ−ＩＤＦリストを用いた計算）
（ステップ１）
ＴＦ−ＩＤＦを用いた場合、[原名不明]はLevenリストを用いたときと違いはないが、[原略対応表]はLevenリストを用いたときと異なる結果を示す。まず、ＴＦ−ＩＤＦリストは、
ＴＦ−ＩＤＦリスト={((福島、福島)、(山田小湊、小湊)、(福島相馬、相馬)、(いわき、いわき)、(郡山、郡山)、(いわき泉、泉)、(会津若松、会津若松)、(会津若松吾妻、吾妻))}
となった。よって[原名不明]と[原略対応表]として、
[原名不明]={小湊、泉、三阪、吾妻、相馬、第二矢吹}
[原略対応表]={((福島、福島)、(山田小湊、小湊)、(福島相馬、相馬)、(いわき泉、泉)、(いわき、いわき)、(会津若松吾妻、吾妻)、(福島相馬、相馬)、(会津若松、会津若松)、(郡山、郡山))}
を得た。ただし略名「三阪」と「第二矢吹」については、該当する原名が存在しなかったので、[原略対応表(複)]は空である。
【００９３】
（ステップ２）
計算部１４は、原名不明の各略名に対して接続情報Brを用いて相方略名をリストアップする。  
j=2(略名：小湊)  [相方略名]2={泉}
j=3(略名：泉)  [相方略名]3={吾妻、小湊、第二矢吹、福島}
j=4(略名：三阪)  [相方略名]4={福島、相馬}
j=5(略名：吾妻)  [相方略名]5={会津若松、いわき、福島、泉}
j=6(略名：相馬)  [相方略名]6={福島、三阪}
j=9(略名：第二矢吹)  [相方略名]9={郡山}
このようにして相方略名を得ることができる。
【００９４】
（ステップ３）
計算部１４は、[原略対応表]より各相方原名を得る。  
j=2(略名：小湊)  [相方原名]2={いわき泉}
j=3(略名：泉)  [相方原名]3={会津若松吾妻、山田小湊、福島}
j=4(略名：三阪)  [相方原名]4={福島、福島相馬}
j=5(略名：吾妻)  [相方原名]5={会津若松、いわき、福島、いわき泉}
j=6(略名：相馬)  [相方原名]6={福島}
j=9(略名：第二矢吹)  [相方原名]9={郡山}
このようにして相方原名を得ることができる。
【００９５】
（ステップ４）
Bm={((会津若松吾妻、会津若松)、(会津若松吾妻、いわき)、(会津若松吾妻、福島)、(会津若松吾妻、いわき泉)、(山田小湊、いわき泉)、(いわき泉、郡山)、(いわき泉、福島)、(福島、福島相馬)、(福島、いわき三坂)、(郡山、須賀川)、(福島相馬、いわき三坂))}
計算部１４は、Bmを用いて各共通原名を得る。  
・j=2(略名：小湊)
[相方原名]2に原名と略名が同一である原名はないので、[原名候補]2には「いわき泉」と接続関係のある原名が相当する。すなわち、
[原名候補]2={会津若松吾妻、山田小湊、須賀川、福島}
である。今、(山田小湊、小湊)の組み合わせが[原略対応表]に存在し、[共通原名]3の素数が複数あるので、計算部１４は、(山田小湊、小湊)を[原略対応表]から削除する。
【００９６】
・j=3(略名：泉)
[相方原名]3の要素かつ、原名と略名が同一である原名は「福島」である。よって[共通原名]3は[共通原名]3={会津若松吾妻、いわき泉、福島相馬、いわき三坂}となる。他の[相方原名]3の要素には「会津若松吾妻」と「山田小湊」がある。Bmにより、これらの２つのビルと接続関係にある原名は「いわき泉」のみである。これより、
[原名候補]3={いわき泉}
である。これは[原略対応表]にすでにある組み合わせ、(いわき泉、泉)に一致する。
【００９７】
・j=4(略名：三阪)
同様に[共通原名]4は、Bmにおいて「福島」と接続関係にある原名により下記のように構成される。  
[共通原名]4={会津若松吾妻、いわき泉、いわき三坂、福島相馬}
[相方原名]4の要素には「福島相馬」も含まれる。計算部１４は、このビルと接続関係にあるビル名と[共通原名]4との共通集合をとり、下記の[原名候補]4を求める。  
[原名候補]4={いわき三坂}
よって、計算部１４は、[原略対応表]に新たな組み合わせである、(いわき三坂、三阪)を追加する。
【００９８】
・j=5(略名：吾妻)
[相方原名]5が全て原名と略名が同一の原名から構成されるので、[共通原名]5および[原名候補]5は、Bmにおいて「会津若松」、「いわき」、「福島」のいずれとも接続関係にある原名により構成される。すなわち、
[原名候補]5=[共通原名]5={会津若松吾妻}
である。これは[原略対応表]にすでにある組み合わせ、(会津若松吾妻、吾妻)に一致する。
【００９９】
・j=6(略名：相馬)
[共通原名]6は、Bmにおいて「福島」と接続関係にある原名により下記のように構成される。  
[共通原名]6={会津若松吾妻、いわき泉、福島相馬、いわき三坂}
[相方原名]6で原名と略名が同一である原名は「福島」のみなので、[原名候補]6=[共通原名]6である。今、(福島相馬、相馬)の組み合わせが[原略対応表]に存在し、[共通原名]6の要素数が複数であるので、計算部１４は、(福島相馬、相馬)を[原略対応表]から削除する。
【０１００】
・j=9(略名：第二矢吹)
[相方原名]9の要素かつ、原名と略名が同一である原名は「郡山」のみである。よって[共通原名]9は、下記のようにBmにおいて「郡山」と接続関係にある原名「須賀川」からなる。  
[原名候補]9=[共通原名]9={須賀川}
よって計算部１４は、[原略対応表]に新たな組み合わせである、(第二矢吹、須賀川)を追加する。
【０１０１】
この時点で、
[原略対応表]={((福島、福島)、(いわき泉、泉)、(いわき、いわき)、(会津若松吾妻、吾妻)、(いわき三坂、三阪)、(会津若松、会津若松)、(郡山、郡山)、(第二矢吹、須賀川))}
[原略対応表(複)]={  }
[原名不明]={小湊、相馬}
である。計算部１４は、この原名不明の各略名である２つのビル名に対して再びステップ３，４の操作を行なう。
【０１０２】
（ステップ３）(２回目)
j=2(略名：小湊)  [相方原名]2={いわき泉}
j=6(略名：相馬)  [相方原名]6={福島、いわき三坂}
（ステップ４）（2回目)
・j=2(略名：小湊)
[相方原名]2で原名と略名が同一である原名はないので、[原名候補]2として「いわき泉」と接続関係のある原名が相当する。すなわち、
[原名候補]2={会津若松吾妻、山田小湊、須賀川、福島}
である。
【０１０３】
・j=6(略名：相馬)
[共通原名]6は、Bmにおいて「福島」と接続関係にある原名により下記のように構成される。  
[共通原名]6={会津若松吾妻、いわき泉、福島相馬、いわき三坂}
[相方原名]6の要素にはさらに「いわき三坂」が含まれる。計算部１４は、このビルと接続関係にあるビル名と[共通原名]6との共通集合をとり、下記の[原名候補]6を求める。
[原名候補]6={福島相馬}
これにより、計算部１４は、[原略対応表]に、(福島相馬、相馬)を追加する。
【０１０４】
この時点で、
[原略対応表]={((福島、福島)、(いわき泉、泉)、(いわき、いわき)、(会津若松吾妻、吾妻)、(いわき三坂、三阪)、(会津若松、会津若松)、(郡山、郡山)、(第二矢吹、須賀川)、(福島相馬、相馬))}
[原略対応表(複)]={  }
[原名不明]={小湊}
であり、対応する原名の候補は、
[原名候補]2={会津若松吾妻、山田小湊、須賀川、福島}
である。これ以上操作を行っても原名不明の略名の数に変化はないので、ステップ５へ進む。
【０１０５】
（ステップ５）
Levenshtein距離算出部１１は、略名「小湊」と[原名候補]2の各原名とのLevenshtein距離を算出する。
【０１０６】
・j=2(略名：小湊)
このとき算出される各原名との距離は、
会津若松吾妻：2006、須賀川：2003、福島：2002、山田小湊：2
であった。よって最小距離をあたえる原名は「山田小湊」である。これより、絞り込み部１５は、[原略対応表]に組み合わせ、(山田小湊、小湊)を追加する。
【０１０７】
以上より原名が判明していない略名はなくなったため、操作を終了する。得られた原名-略名の組み合わせは、  
[原略対応表]={((福島、福島)、(山田小湊、小湊)、(福島相馬、相馬)、(いわき、いわき)、(郡山、郡山)、(いわき泉、泉)、(会津若松、会津若松)、(いわき三坂、三阪)、(須賀川、第二矢吹)、(会津若松吾妻、吾妻))}
となり、全略名が特定されている。
【０１０８】
以上より、Leven, ＴＦ−ＩＤＦいずれのリストを用いた場合であっても全ビルの特定に成功した。一方で、接続情報を使用せずに、Levenshtein距離、またはＴＦ−ＩＤＦのみを用いて原名の特定を行った場合、正確に原名を特定できた略名の数は、
・Levenshtein
10ビル中6ビル(福島、小湊、相馬、いわき、会津若松、郡山)
・ＴＦ−ＩＤＦ
10ビル中8ビル(福島、小湊、泉、吾妻、相馬、いわき、会津若松、郡山)
であった。いずれの手法であっても「三阪」や「第二矢吹」のような、原名との乖離が著しい略名に対して正確な原名を対応付けることは困難であった。
【０１０９】
なお、本願発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は可能な限り適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、上記実施形態には種々の発明が含まれており、開示される複数の構成要件から選択された組み合わせにより種々の発明が抽出され得る。
【０１１０】
また、各実施形態に記載した手法は、計算機（コンピュータ）に実行させることができるプログラム（ソフトウエア手段）として、例えば磁気ディスク（フロッピー（登録商標）ディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ、ＭＯ等）、半導体メモリ（ＲＯＭ、ＲＡＭ、フラッシュメモリ等）等の記録媒体に格納し、また通信媒体により伝送して頒布することもできる。なお、媒体側に格納されるプログラムには、計算機に実行させるソフトウエア手段（実行プログラムのみならずテーブル、データ構造も含む）を計算機内に構成させる設定プログラムをも含む。本装置を実現する計算機は、記録媒体に記録されたプログラムを読み込み、また場合により設定プログラムによりソフトウエア手段を構築し、このソフトウエア手段によって動作が制御されることにより上述した処理を実行する。なお、本明細書でいう記録媒体は、頒布用に限らず、計算機内部あるいはネットワークを介して接続される機器に設けられた磁気ディスク、半導体メモリ等の記憶媒体を含むものである。
【符号の説明】
【０１１１】
１０…データ検索装置、１１…Levenshtein距離算出部、１２…ＴＦ−ＩＤＦ算出部、１３…データ入力部、１４…計算部、１５…絞り込み部、１６…データ出力部。
【図１】
2020123210.tif 000019
【図２】
2020123210.tif 000020
【図３】
2020123210.tif 000021
【図４】
2020123210.tif 000022
【図５】
2020123210.tif 000023
【図６】
2020123210.tif 000024