JP2020123210A - データ検索装置、方法およびプログラム - Google Patents

データ検索装置、方法およびプログラム Download PDF

Info

Publication number
JP2020123210A
JP2020123210A JP2019015479A JP2019015479A JP2020123210A JP 2020123210 A JP2020123210 A JP 2020123210A JP 2019015479 A JP2019015479 A JP 2019015479A JP 2019015479 A JP2019015479 A JP 2019015479A JP 2020123210 A JP2020123210 A JP 2020123210A
Authority
JP
Japan
Prior art keywords
data name
name
master data
list
input data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019015479A
Other languages
English (en)
Other versions
JP7228083B2 (ja
Inventor
まな美 小川
Manami Ogawa
まな美 小川
正崇 佐藤
Masataka Sato
正崇 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2019015479A priority Critical patent/JP7228083B2/ja
Priority to PCT/JP2020/003465 priority patent/WO2020158871A1/ja
Priority to US17/426,748 priority patent/US11687599B2/en
Publication of JP2020123210A publication Critical patent/JP2020123210A/ja
Application granted granted Critical
Publication of JP7228083B2 publication Critical patent/JP7228083B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2468Fuzzy queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3346Query execution using probabilistic model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/338Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9035Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9038Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/907Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Fuzzy Systems (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Library & Information Science (AREA)
  • Automation & Control Theory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)

Abstract

【課題】入力データ名に対応する適切なマスタデータ名を検索する。【解決手段】一実施形態に係るデータ検索装置は、プロセッサと、入力部と、マスタデータで管理されるマスタデータ名を記憶する記憶部とを具備し、プロセッサは、記憶部に記憶されたマスタデータ名と、入力部において入力された入力データ名との間の編集距離を算出し、マスタデータ名と入力データ名とに係る単語の出現頻度および逆文書頻度に基づいて、マスタデータ名と入力データ名との類似度を算出し、算出結果、およびマスタデータ名と入力データ名との隣接関係を示す隣接情報に基づいて、マスタデータ名における検索対象のデータ名の候補の絞り込み処理を行ない、絞り込み処理により得られた検索対象のデータ名の候補に基づいて、マスタデータ名と入力データ名との対応を表す情報を出力する。【選択図】図1

Description

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

Claims (5)

  1. プロセッサと、入力部と、マスタデータと関連付けて管理されるマスタデータ名を記憶する記憶部とを具備し、
    前記プロセッサは、
    前記記憶部に記憶されたマスタデータ名と、前記入力部において入力された入力データ名との間の編集距離を算出する第1の算出処理を行ない、
    前記マスタデータ名と前記入力データ名とに係る単語の出現頻度および逆文書頻度に基づいて、前記マスタデータ名と前記入力データ名との類似度を算出する第2の算出処理を行ない、
    前記第1および第2の算出処理による算出結果、および前記マスタデータ名と前記入力データ名との隣接関係を示す隣接情報に基づいて、前記マスタデータ名における検索対象のデータ名の候補の絞り込み処理を行ない、
    前記絞り込み処理により得られた検索対象のデータ名の候補に基づいて、マスタデータ名と入力データ名との対応を表す情報を出力する、ように構成される、
    データ検索装置。
  2. 前記プロセッサは、
    前記絞り込み処理として、
    前記記憶部に記憶されたマスタデータ名のうち、前記入力データ名との間で前記第1の算出処理により算出された編集距離が最小であるマスタデータ名を、検索対象のマスタデータ名の候補として選択し、この選択されたマスタデータ名と当該マスタデータ名の選択に係る入力データ名との組を示す第1のリストを作成し、
    前記第1のリストにおける入力データ名のうち、複数の候補と対応付けられる入力データ名、および同じ表記でないマスタデータ名と対応付けられる入力データ名を示す第2のリストを作成し、
    前記第1のリストにおける、1つのマスタデータ名と1つの入力データ名との組を示すリストである第3のリストを作成し、
    前記第1のリストにおける、複数のマスタデータ名と1つの入力データ名との組を示すリストである第4のリストを作成し、
    前記第2のリストにおける入力データ名ごとに、当該入力データ名との隣接関係を有する入力データ名を、複数の前記入力データ名の間の隣接関係を示す隣接情報から抽出し、
    前記第3のリストにおけるマスタデータ名から、前記抽出された入力データ名との対応関係を有するマスタデータ名である第1のマスタデータ名を抽出し、
    前記第2のリストにおける入力データ名ごとに、前記抽出された第1のマスタデータ名であって、前記第3のリストにおいて同一表記の入力データ名と対応付けられるマスタデータ名である第2のマスタデータ名を、前記記憶部に記憶される複数のマスタデータ名の間の隣接関係を示す隣接情報から抽出し、
    前記第2のリストにおける入力データ名ごとに、前記抽出された第1のマスタデータ名であって、前記第3のリストにおいて同一表記でない入力データ名と対応付けられるマスタデータ名である第3のマスタデータ名を、前記記憶部に記憶される複数のマスタデータ名の間の隣接関係を示す隣接情報から抽出し、
    前記第2のリストにおける入力データ名ごとに、前記抽出された第2および第3のマスタデータ名の共通集合により得られるデータ名を前記第2のリストで示される入力データ名に対応するマスタデータ名の候補として作成し、
    前記マスタデータ名の候補の作成に応じて前記第2、第3および第4のリストを更新する処理を行なう、ように構成され、
    前記プロセッサは、
    前記第1の算出処理として、
    前記第2のリストにおける入力データ名ごとに、当該入力データ名と前記抽出されたマスタデータ名の候補との編集距離を算出する処理を行なう、ように構成され、
    前記プロセッサは、
    前記絞り込み処理として、
    前記算出された編集距離と当該マスタデータ名の候補の文字数との関係が条件を満たすときに、前記マスタデータ名の候補のうち入力データ名と共通する文字を有しない候補を削除し、削除後のマスタデータ名および当該マスタデータ名について前記編集距離の算出に用いた入力データ名を前記第3のリストに追加する処理を行なう、ように構成される、
    請求項1に記載のデータ検索装置。
  3. 前記プロセッサは、
    前記絞り込み処理として、
    前記記憶部に記憶されるマスタデータ名のうち、前記入力データ名との間で前記第2の算出処理により算出された類似度が最大であるマスタデータ名を、検索対象のマスタデータ名の候補として選択し、この選択されたマスタデータ名と当該マスタデータ名の選択に係る入力データ名との組を示す第1のリストを作成し、
    前記第1のリストにおける入力データ名のうち、複数の候補と対応付けられる入力データ名、および同じ表記でないマスタデータ名と対応付けられる入力データ名を示す第2のリストを作成し、
    前記第1のリストにおける、1つのマスタデータ名と1つの入力データ名との組を示すリストである第3のリストを作成し、
    前記第1のリストにおける、複数のマスタデータ名と1つの入力データ名との組を示すリストである第4のリストを作成し、
    前記第2のリストにおける入力データ名ごとに、当該入力データ名との隣接関係を有する入力データ名を、複数の前記入力データ名の間の隣接関係を示す隣接情報から抽出し、
    前記第3のリストにおけるマスタデータ名から、前記抽出された入力データ名との対応関係を有するマスタデータ名である第1のマスタデータ名を抽出し、
    前記第2のリストにおける入力データ名ごとに、前記抽出された第1のマスタデータ名であって、前記第3のリストにおいて同一表記の入力データ名と対応付けられるマスタデータ名である第2のマスタデータ名を、前記記憶部に記憶される複数のマスタデータ名の間の隣接関係を示す隣接情報から抽出し、
    前記第2のリストにおける入力データ名ごとに、前記抽出された第1のマスタデータ名であって、前記第3のリストにおいて同一表記でない入力データ名と対応付けられるマスタデータ名である第3のマスタデータ名を、前記記憶部に記憶される複数のマスタデータ名の間の隣接関係を示す隣接情報から抽出し、
    前記第2のリストにおける入力データ名ごとに、前記抽出された第2および第3のマスタデータ名の共通集合により得られるデータ名を前記第2のリストで示される入力データ名に対応するマスタデータ名の候補として作成し、
    前記マスタデータ名の候補の作成に応じて前記第2、第3および第4のリストを更新する処理を行なう、ように構成され、
    前記プロセッサは、
    前記第1の算出処理として、
    前記第2のリストにおける入力データ名ごとに、当該入力データ名と前記抽出されたマスタデータ名の候補との編集距離を算出する処理を行なう、ように構成され、
    前記プロセッサは、
    前記絞り込み処理として、
    前記算出された編集距離と当該マスタデータ名の候補の文字数との関係が条件を満たすときに、前記マスタデータ名の候補のうち入力データ名と共通する文字を有しない候補を削除し、削除後のマスタデータ名および当該マスタデータ名について前記編集距離の算出に用いた入力データ名を前記第3のリストに追加する処理を行なう、ように構成される、
    請求項1に記載のデータ検索装置。
  4. プロセッサと、入力部と、マスタデータと関連付けて管理されるマスタデータ名を記憶する記憶装置とを具備するデータ検索装置が行なうデータ検索方法であって、
    前記プロセッサは、前記記憶装置に記憶されるマスタデータ名と、前記入力部により入力された入力データ名との間の編集距離を算出し、
    前記プロセッサは、前記マスタデータ名と前記入力データ名とに係る単語の出現頻度および逆文書頻度に基づいて、前記マスタデータ名と前記入力データ名との類似度を算出し、
    前記プロセッサは、前記編集距離および類似度の算出結果、および前記マスタデータ名と前記入力データ名との隣接関係を示す隣接情報に基づいて、前記マスタデータ名における検索対象のデータ名の候補の絞り込み処理を行ない、
    前記プロセッサは、前記絞り込み処理により得られた検索対象のデータ名の候補に基づいて、マスタデータ名と入力データ名との対応を表す情報を出力する、
    データ検索方法。
  5. 請求項1乃至3のいずれか1項に記載のデータ検索装置の前記各処理として前記プロセッサを機能させるデータ検索処理プログラム。
JP2019015479A 2019-01-31 2019-01-31 データ検索装置、方法およびプログラム Active JP7228083B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2019015479A JP7228083B2 (ja) 2019-01-31 2019-01-31 データ検索装置、方法およびプログラム
PCT/JP2020/003465 WO2020158871A1 (ja) 2019-01-31 2020-01-30 データ検索装置、方法およびプログラム
US17/426,748 US11687599B2 (en) 2019-01-31 2020-01-30 Data retrieving apparatus, method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019015479A JP7228083B2 (ja) 2019-01-31 2019-01-31 データ検索装置、方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2020123210A true JP2020123210A (ja) 2020-08-13
JP7228083B2 JP7228083B2 (ja) 2023-02-24

Family

ID=71840355

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019015479A Active JP7228083B2 (ja) 2019-01-31 2019-01-31 データ検索装置、方法およびプログラム

Country Status (3)

Country Link
US (1) US11687599B2 (ja)
JP (1) JP7228083B2 (ja)
WO (1) WO2020158871A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004062893A (ja) * 2002-06-28 2004-02-26 Microsoft Corp 重み付き編集距離に基づく例文の自動検索用システムおよび方法
JP2006053866A (ja) * 2004-08-16 2006-02-23 Advanced Telecommunication Research Institute International カタカナ文字列の表記ゆれの検出方法
JP2010123005A (ja) * 2008-11-20 2010-06-03 Kddi Corp 文書データ検索装置
CN102760134A (zh) * 2011-04-28 2012-10-31 北京百度网讯科技有限公司 一种同义词的挖掘方法和装置
US20170024657A1 (en) * 2015-07-21 2017-01-26 Yp Llc Fuzzy autosuggestion for query processing services
CN109101493A (zh) * 2018-08-01 2018-12-28 东北大学 一种基于对话机器人的智能购房助手

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4950755B2 (ja) 2007-05-16 2012-06-13 日本電信電話株式会社 文書検索方法及び装置並びにそのコンピュータプログラム
JP5203324B2 (ja) 2009-09-16 2013-06-05 日本電信電話株式会社 誤字脱字対応テキスト解析装置及び方法及びプログラム
JP5961586B2 (ja) 2013-05-30 2016-08-02 日本電信電話株式会社 読み仮名修正モデル学習装置と読み仮名修正装置とそれらの方法とプログラム
US11003655B2 (en) * 2016-09-22 2021-05-11 Hartford Fire Insurance Company System for uploading information into a metadata repository

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004062893A (ja) * 2002-06-28 2004-02-26 Microsoft Corp 重み付き編集距離に基づく例文の自動検索用システムおよび方法
JP2006053866A (ja) * 2004-08-16 2006-02-23 Advanced Telecommunication Research Institute International カタカナ文字列の表記ゆれの検出方法
JP2010123005A (ja) * 2008-11-20 2010-06-03 Kddi Corp 文書データ検索装置
CN102760134A (zh) * 2011-04-28 2012-10-31 北京百度网讯科技有限公司 一种同义词的挖掘方法和装置
US20170024657A1 (en) * 2015-07-21 2017-01-26 Yp Llc Fuzzy autosuggestion for query processing services
CN109101493A (zh) * 2018-08-01 2018-12-28 东北大学 一种基于对话机器人的智能购房助手

Also Published As

Publication number Publication date
US11687599B2 (en) 2023-06-27
JP7228083B2 (ja) 2023-02-24
US20220100804A1 (en) 2022-03-31
WO2020158871A1 (ja) 2020-08-06

Similar Documents

Publication Publication Date Title
JP5603250B2 (ja) 近似文字列マッチングのためのアーカイブ管理法
KR101242245B1 (ko) 데이터베이스 질의를 형성하기 위한 컴퓨터 판독가능 기록 매체 및 방법
KR101511656B1 (ko) 퍼스널 아이덴티티를 기술하는 데이터에 대한 액셔너블 속성의 애스클라이빙
JP5187308B2 (ja) 変換プログラム探索システムおよび変換プログラム探索方法
CN112596719B (zh) 一种生成前后端代码的方法和系统
JP2024019575A (ja) 文書処理プログラム
JP7228083B2 (ja) データ検索装置、方法およびプログラム
JP2012247948A (ja) 辞書管理装置、辞書管理方法、辞書管理プログラム
JP2009093581A (ja) 類義語検索管理システム
KR102523807B1 (ko) 사용자 입력 조건에 기초하여 기계 번역 엔진의 구축에 사용될 학습용 문장 세트를 생성하는 학습용 문장 세트 생성 서버 및 그 동작 방법
JP2019219724A (ja) 評価プログラム、評価方法および情報処理装置
CN114118078A (zh) 制作辅助装置、制作辅助方法及记录介质
JP4469818B2 (ja) データ管理装置、データプログラム及びデータ管理方法
JP2022050169A (ja) 情報処理システム及びプログラム
KR20190084370A (ko) 지능형 법률정보 검색 방법
JP2006072705A (ja) 文書検索装置および方法
JP2001092830A (ja) 文字列の照合装置およびその方法
JP4049543B2 (ja) 文書検索装置、文書検索プログラム、記録媒体
JP4778466B2 (ja) データ管理装置及びデータ管理方法並びにプログラム
CN113641783B (zh) 基于关键语句的内容块检索方法、装置、设备和介质
JP4703705B2 (ja) 構造化データ検索プログラム及び構造化データ検索装置
JP2001325293A (ja) 全文検索方法及び装置及び全文検索プログラムを格納した記憶媒体
JP2024098283A (ja) 文書管理システム
CN118657143A (zh) 一种开放式信息抽取方法、系统、设备及存储介质
Yahya Instal: Jurnal Komputer

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210513

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220901

TRDD Decision of grant or rejection written
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20230104

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230110

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230116

R150 Certificate of patent or registration of utility model

Ref document number: 7228083

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150