(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-28
(45)【発行日】2023-12-06
(54)【発明の名称】名称データ対応付け装置、名称データ対応付け方法及びプログラム
(51)【国際特許分類】
G06F 16/25 20190101AFI20231129BHJP
G06F 16/215 20190101ALI20231129BHJP
【FI】
G06F16/25
G06F16/215
(21)【出願番号】P 2022518539
(86)(22)【出願日】2020-04-30
(86)【国際出願番号】 JP2020018272
(87)【国際公開番号】W WO2021220463
(87)【国際公開日】2021-11-04
【審査請求日】2022-09-02
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】小川 まな美
(72)【発明者】
【氏名】佐藤 正崇
【審査官】三橋 竜太郎
(56)【参考文献】
【文献】特開2010-134828(JP,A)
【文献】特開2001-187477(JP,A)
【文献】特開2009-69972(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
複数の名称データ及びそれら名称データの隣接関係を示す隣接情報を保持する第1のデータベースと、複数の名称データ、それら名称データの隣接情報及びそれら名称データが属するパスを表すパス識別情報を保持する第2のデータベースとの間で異なる表記を有する同義の名称データを対応付ける名称データ対応付け装置であって、
前記第1のデータベースと前記第2のデータベースとの間で同じ表記である名称データを共通データとして抽出する共通データ抽出部と、
前記第2のデータベースが保持する情報に基づいて、前記共通データ抽出部が抽出した前記共通データのうち1つを始点とし、前記第2のデータベースが保持する前記名称データを頂点とする、全てのパスを生成し、それらのパスそれぞれについて、頂点数、含まれる共通データ及びその位置を含むパス情報を抽出するパス情報抽出部と、
前記第1のデータベースが保持する情報に基づいて、前記パス情報抽出部が抽出した各パスの前記パス情報に含まれる前記始点の名称データ、前記頂点数、前記含まれる共通データ及び前記位置と一致する全てのパスを生成するパス作成部と、
前記パス作成部が生成した各パスから、通過する頂点数がより多く且つ重複する箇所がより少ないパスの組み合わせを抽出し、その抽出された各パスの頂点と前記パス情報抽出部が生成した各パスの頂点とを対応付けることで、前記第1のデータベースが保持する前記名称データと前記第2のデータベースが保持する前記名称データとを対応付ける対応付け部と、
を具備し、
前記対応付け部は、前記第1のデータベースの前記名称データと前記第2のデータベースの前記名称データとの対応付け結果として複数の結果が得られた場合、各結果における名称データ同士の文字列類似度を計算し、より類似している方の結果を選択する、名称データ対応付け装置。
【請求項2】
前記第1及び第2のデータベースが保持する前記情報に基づいて、前記名称データを頂点とする無向グラフを作成するグラフ作成部と、
前記グラフ作成部が作成した前記無向グラフが含む頂点の中から、そこを2度通るが、辺は少なくとも1度しか通らない頂点である、スルー頂点を抽出するスルー頂点抽出部と、
をさらに具備し、
前記パス情報抽出部は、前記グラフ作成部が作成した前記無向グラフと前記第2のデータベースが保持する前記パス識別情報とに基づいて、前記共通データのうち1つを前記始点とし、前記第2のデータベースが保持する前記名称データを頂点とする、全てのパスを生成し、それらのパスそれぞれについて、前記パス情報を抽出し、
前記パス作成部は、前記グラフ作成部が作成した前記無向グラフに基づいて、前記パス情報抽出部が抽出した前記各パスの前記パス情報に含まれる前記始点の前記名称データ、前記頂点数、前記含まれる共通データ及び前記位置が一致する全てのパスを生成すると共に、それら生成したパスから前記スルー頂点を始点とするパスを作成して、前記全てのパスと前記スルー頂点を始点とするパスとを結合する、請求項1に記載の名称データ対応付け装置。
【請求項3】
前記グラフ作成部は、前記無向グラフとして、前記第1及び第2のデータベースが保持する前記隣接情報に基づいて、前記名称データを頂点とする閉路グラフを作成する、閉路グラフ作成部を含み、
スルー頂点抽出部は、前記閉路グラフ作成部が作成した前記閉路グラフが含む頂点の中から前記スルー頂点を抽出し、
前記パス情報抽出部は、前記パスとして、前記閉路グラフ作成部が作成した前記閉路グラフと前記第2のデータベースが保持する前記パス識別情報である閉路識別情報とに基づいて、前記共通データのうち1つを前記始点且つ終点とし、前記第2のデータベースが保持する前記名称データを頂点とする、全ての閉路を生成し、前記パス情報として、前記生成した全ての閉路それぞれについて、前記頂点数、前記含まれる共通データ及び前記位置を含む閉路情報を抽出する、閉路情報抽出部を含み、
前記パス作成部は、前記パスとして、前記閉路グラフ作成部が作成した前記閉路グラフに基づいて、前記閉路情報抽出部が抽出した前記各閉路の前記閉路情報に含まれる前記始点且つ前記終点の前記名称データ、前記頂点数、前記含まれる共通データ及び前記位置が一致する全ての閉路を生成すると共に、それら生成した閉路から前記スルー頂点を始点とする閉路を作成して、前記全ての閉路と前記スルー頂点を始点とする閉路とを結合する閉路作成部を含み、
前記対応付け部は、前記閉路作成部が生成した各閉路から、通過する頂点数がより多く且つ重複する箇所がより少ない閉路の組み合わせを抽出し、その抽出された各閉路の頂点と前記閉路情報抽出部が生成した各閉路の頂点とを対応付けることで、前記第1のデータベースが保持する前記名称データと前記第2のデータベースが保持する前記名称データとを対応付ける、請求項2に記載の名称データ対応付け装置。
【請求項4】
前記対応付け部は、前記閉路作成部が生成した閉路が1つだけであるとき、その閉路の頂点と前記閉路情報抽出部が抽出した各閉路の頂点とを対応付けることで、前記第1のデータベースが保持する前記名称データと前記第2のデータベースが保持する前記名称データとを対応付ける、請求項3に記載の名称データ対応付け装置。
【請求項5】
前記対応付け部は、前記閉路作成部が生成した閉路が複数あるとき、それら複数の閉路の中から、前記閉路情報抽出部が生成した閉路の個数ずつ閉路の組み合わせを選択し、それぞれの閉路の組み合わせについて、通過する頂点数及び重複する箇所を判別することで、前記通過する頂点数がより多く且つ前記重複する箇所がより少ない前記閉路の組み合わせを抽出する最適組み合わせ抽出部を含む、請求項3に記載の名称データ対応付け装置。
【請求項6】
前記対応付け部による対応付けの結果に基づいて、名称データの対応表を含む出力情報を生成する出力部をさらに具備する、請求項1乃至5のいずれかに記載の名称データ対応付け装置。
【請求項7】
プロセッサと、複数の名称データ及びそれら名称データの隣接関係を示す隣接情報を保持する第1のデータベースと、複数の名称データ、それら名称データの隣接情報及びそれら名称データが属するパスを表すパス識別情報を保持する第2のデータベースとを記憶したメモリと、を備え、前記第1のデータベースと前記第2のデータベースとの間で異なる表記を有する同義の名称データを対応付ける名称データ対応付け装置における名称データ対応付け方法であって、
前記プロセッサにより、前記メモリに記憶されている前記第1のデータベースと前記第2のデータベースとの間で同じ表記である名称データを共通データとして抽出し、
前記プロセッサにより、前記第2のデータベースが保持する情報に基づいて、前記抽出した前記共通データのうち1つを始点とし、前記第2のデータベースが保持する前記名称データを頂点とする、全てのパスを生成し、
前記プロセッサにより、前記第2のデータベースが保持する情報に基づいて生成したパスそれぞれについて、頂点数、含まれる共通データ及びその位置を含むパス情報を抽出し、
前記プロセッサにより、前記第1のデータベースが保持する情報に基づいて、前記抽出した各パスの前記パス情報に含まれる前記始点の名称データ、前記頂点数、前記含まれる共通データ及び前記位置と一致する全てのパスを生成し、
前記プロセッサにより、前記第1のデータベースが保持する情報に基づいて生成した各パスから、通過する頂点数がより多く且つ重複する箇所がより少ないパスの組み合わせを抽出し、
前記プロセッサにより、前記抽出されたパスの組み合わせにおける各パスの頂点と、前記第2のデータベースが保持する情報に基づいて生成した各パスの頂点とを対応付けることで、前記第1のデータベースが保持する前記名称データと前記第2のデータベースが保持する前記名称データとを対応付け、
前記第1のデータベースの前記名称データと前記第2のデータベースの前記名称データとの対応付け結果として複数の結果が得られた場合、前記プロセッサにより、各結果における名称データ同士の文字列類似度を計算し、より類似している方の結果を選択する、
名称データ対応付け方法。
【請求項8】
請求項1乃至6のいずれかに記載の名称データ対応付け装置の前記各部としてプロセッサを機能させる名称データ対応付け処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明の実施形態は、名称データ対応付け装置、名称データ対応付け方法及びプログラムに関する。
【背景技術】
【0002】
データベースを用いた業務には、異なる管理下にあるデータベースを統合し、格納されていた名称データを横並びで使用することで、より多角的・包括的な分析を行うことがある。そのためには、統合するデータベースの間で同一の事柄を表している名称データに対し、同一の識別情報を付与するなどして、名称データを統合する、所謂「名寄せ」という作業が必要になる。
【0003】
しかしながら、名称データの入力方法は、データベースの管理元に依る。そのため、統合するデータベースの間で同一の事柄を表しているにもかかわらず、その表記が異なるという状況(表記ゆれ)はしばしば存在する。表記ゆれを含むデータベースを統合してしまうと、前述のような分析を行う際に、一つの事柄に関連する情報が表記ゆれを起こした部分だけ不足してしまう事態が発生してしまう。
【0004】
このような表記ゆれに対処する技術として、特許文献1及び特許文献2は、検索対象の文字列同士の類似度を定量的に計算することで、最も似ている文字列を検索する手法を提案している。また、特許文献3は、TF-IDF(Term Frequency - Inverse Document Frequency)を用いて検索文字列から特徴量を算出することで、一定閾値以上の類似度を持つ文字列と対応付ける手法を提案している。さらに、特許文献4は、検索文字列に対応する測定日時や測定値といった文字列別データを比較することにより文字列同士の対応関係を判定して検索用の辞書を作成することで、正確且つ効率良く同一の事柄を表す文字列を探し出す方法を提案している。
【先行技術文献】
【特許文献】
【0005】
【文献】日本国特開2005-11078号公報
【文献】日本国特開平8-069474号公報
【文献】日本国特開2006-244105号公報
【文献】日本国特開2014-232389号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
表記のゆれ方には、登録データ名を省略した表記と、使用者同士でのローカルルールに基づく呼び名(通称)による表記と、が存在する。
【0007】
特許文献1及び2に開示されているような手法は、前者の省略表記のみが表記ゆれとして存在する場合には、ポピュラー且つ有効な手段である。しかしながら、後者の通称表記が混在している状況下では、各通称に対してその通称と文字列的に類似した名称が紐付けられるため、誤った結果を提示する可能性が高い。なぜならば、通称表記は、本来紐付けられるべき名称と著しくかけ離れているケースが多いためである。
【0008】
また、前者の省略表記のみを扱う場合であっても、特許文献1及び2に開示の手法は、日本語に対して使用されることを想定して作られているので、技術の適用範囲が限定的である。日本語における省略表記の特徴と他言語における特徴は全てが一致するわけではないので、特許文献1及び2に開示の手法が、他言語で入力された名称データに対して問題なく適用可能とは限らないためである。
【0009】
同様に、特許文献3に開示されているような形態素を用いた手法も、通称に対しては、有効であるとはいえない。なぜならば、前述の理由に加え、TF-IDFのような類似度算出手法は、「頻出する単語(形態素)は重要度が低い(高い)」という極めて一般的な思考を元にしている一方で、通称とは、局所的規則によって名付けられているため、形態素による通称の検索は非常に相性が悪いからである。
【0010】
よって、通称表記に対しては、特許文献4に開示されているような辞書を作成することが最適な手法だと考えられている。しかしながら、この辞書の作成については、特許文献4に開示の手法は、名称データに対応する文字列別データが、統合するデータベース間で対応関係を有していることが前提となっており、そのような対応関係を有していない場合には辞書を作成することができない。よって、統合するデータベース間で文字列別データが対応関係を有していない同義の名称データであっても対応付けすることができる技術が望まれている。
【0011】
この発明は、統合するデータベース間で表記ゆれが存在する同義の名称データを、名称データに対応する文字列別データがデータベース間で対応関係を有していなくとも、人的稼働を掛けず正確に対応付けることができる技術を提供しようとするものである。
【課題を解決するための手段】
【0012】
上記課題を解決するために、この発明の一態様に係る名称データ対応付け装置は、複数の名称データ及びそれら名称データの隣接関係を示す隣接情報を保持する第1のデータベースと、複数の名称データ、それら名称データの隣接情報及びそれら名称データが属するパスを表すパス識別情報を保持する第2のデータベースとの間で異なる表記を有する同義の名称データを対応付ける名称データ対応付け装置であって、前記第1のデータベースと前記第2のデータベースとの間で同じ表記である名称データを共通データとして抽出する共通データ抽出部と、前記第2のデータベースが保持する情報に基づいて、前記共通データ抽出部が抽出した前記共通データのうち1つを始点とし、前記第2のデータベースが保持する前記名称データを頂点とする、全てのパスを生成し、それらのパスそれぞれについて、頂点数、含まれる共通データ及びその位置を含むパス情報を抽出するパス情報抽出部と、前記第1のデータベースが保持する情報に基づいて、前記パス情報抽出部が抽出した各パスの前記パス情報に含まれる前記始点の名称データ、前記頂点数、前記含まれる共通データ及び前記位置と一致する全てのパスを生成するパス作成部と、前記パス作成部が生成した各パスから、通過する頂点数がより多く且つ重複する箇所がより少ないパスの組み合わせを抽出し、その抽出された各パスの頂点と前記パス情報抽出部が生成した各パスの頂点とを対応付けることで、前記第1のデータベースが保持する前記名称データと前記第2のデータベースが保持する前記名称データとを対応付ける対応付け部と、を具備し、前記対応付け部は、前記第1のデータベースの前記名称データと前記第2のデータベースの前記名称データとの対応付け結果として複数の結果が得られた場合、各結果における名称データ同士の文字列類似度を計算し、より類似している方の結果を選択する。
【発明の効果】
【0013】
この発明の一態様によれば、パス識別情報を保持する第2のデータベースの情報から生成される、第1のデータベースと第2のデータベースとの共通データのうち1つを始点とし、第2のデータベースが保持する名称データを頂点とする全てのパスそれぞれについて、パス情報を抽出し、そのパス情報と同条件のパスを、第1のデータベースが保持する情報から全て生成し、これら生成したパスの中から、通過する頂点数がより多く且つ重複する箇所がより少ないパスの組み合わせを最適なパスとして選択することで、第1のデータベースの名称データと第2のデータベースの名称データとを対応付け、ここで対応付け結果として複数の結果が得られた場合には、各結果における名称データ同士の文字列類似度を計算し、より類似している方の結果を選択するようにしているので、統合するデータベース間で表記ゆれが存在する同義の名称データを、名称データに対応する文字列別データがデータベース間で対応関係を有していなくとも、人的稼働を掛けず正確に対応付けることができる技術を提供することができる。
【図面の簡単な説明】
【0014】
【
図1】
図1は、この発明の一実施形態に係る名称データ対応付け装置の構成の一例を示すブロック図である。
【
図2】
図2は、名称データ対応付け装置のハードウェア構成の一例を示す図である。
【
図3】
図3は、基礎データベース記憶部に記憶される基礎データベースが保持する情報の一例を示す図である。
【
図4】
図4は、派生データベース記憶部に記憶される派生データベースが保持する情報の一例を示す図である。
【
図5】
図5は、名称データ対応付け装置における名称データの対応付けに係わる処理動作の一例を示すフローチャートである。
【
図6】
図6は、
図5中の基礎DBの閉路グラフからの閉路作成処理の詳細の一例を示すフローチャートである。
【
図7】
図7は、
図5中の最適組み合わせ抽出処理の詳細の一例を示すフローチャートである。
【
図8】
図8は、
図5中の名称データ対応付け処理の詳細の一例を示すフローチャートである。
【
図9】
図9は、動作例において基礎データベースが保持する情報の一例を示す図である。
【
図10】
図10は、動作例において派生データベースが保持する情報の一例を示す図である。
【
図11】
図11は、動作例においてグラフ作成部によって派生データベースが保持する情報から作成された閉路グラフの一例を示す模式図である。
【
図12】
図12は、動作例においてグラフ作成部によって基礎データベースが保持する情報から作成された閉路グラフの一例を示す模式図である。
【
図13】
図13は、動作例においてパス情報抽出部によって作成された閉路の例を示す模式図である。
【
図14】
図14は、動作例においてスルー頂点抽出のために作成された省略グラフの一例を示す模式図である。
【
図15A】
図15Aは、動作例においてパス作成部によって生成された閉路の一例を示す模式図である。
【
図15B】
図15Bは、動作例においてパス作成部によって生成された閉路の一例を示す模式図である。
【
図15C】
図15Cは、動作例においてパス作成部によって生成された閉路の一例を示す模式図である。
【
図15D】
図15Dは、動作例においてパス作成部によって生成された閉路の一例を示す模式図である。
【
図15E】
図15Eは、動作例においてパス作成部によって生成された閉路の一例を示す模式図である。
【
図15F】
図15Fは、動作例においてパス作成部によって生成された閉路の一例を示す模式図である。
【
図16】
図16は、動作例においてパス作成部によって作成されたスルー頂点を始点とした閉路の例を示す模式図である。
【
図17A】
図17Aは、動作例においてパス作成部によって結合された閉路の一例を示す模式図である。
【
図17B】
図17Bは、動作例においてパス作成部によって結合された閉路の一例を示す模式図である。
【
図18】
図18は、対応付け結果に基づく閉路グラフの一例を示す模式図である。
【
図19】
図19は、動作例において出力情報記憶部に記憶される出力情報の一例を示す図である。
【発明を実施するための形態】
【0015】
以下、図面を参照して、この発明に係わる実施形態を説明する。
【0016】
本実施形態において、複数のデータベースは、異なる表記を有する同義の名称データを保持しており、これらデータベースで名称データを対応付けしたいデータカラムは、既知であるとする。各データカラムは、名称データと、例えば測定値や測定日時、売上日時や売上金額、などといった、名称データに対応する文字列別データを含むことができる。また、各データベースは、名称データの隣接関係を示す論理的あるいは物理的な隣接情報を保持していることを想定する。ここで、名称データの隣接関係を示す隣接情報とは、例えば、人脈(人物Aと人物Bが知り合いである)や、ネットワーク上の接続関係(ビルAとビルBがケーブルによって接続されている)といった、データ同士の繋がり方の情報を指す。また、各データベース内の名称データ間には、ネットワーク上の接続関係があるとする。具体的には、各データベースに「上位ビル」「下位ビル」という名前のカラムがあり、「上位ビル」に格納された名称データと「下位ビル」に格納された名称データは、あるネットワーク上で隣接していることを表す。加えて、複数のデータベースのうち少なくとも1つには、隣接情報に加えて、名称データが属するパスを表すパス識別情報が追加されていると想定する。
【0017】
(構成例)
図1は、この発明の一実施形態に係る名称データ対応付け装置の構成の一例を示すブロック図である。なお、この発明は、名称データを対応付けするデータベースの個数に制限は特にないが、本一実施形態では、説明の簡単化のため、対象とするデータベースは2つであるとしている。
【0018】
名称データ対応付け装置は、基礎データベース(図では、データベースをDBと略記する。)1、派生データベース2、グラフ作成部3、共通データ抽出部4、パス情報抽出部5、スルー頂点抽出部6、パス作成部7、対応付け部8及びデータ出力部9を有する。
【0019】
基礎データベース1は、複数の名称データと、それら名称データの隣接関係を示す隣接情報と、を保持する第1のデータベースである。また、派生データベース2は、複数の名称データと、それら名称データの隣接情報と、それら名称データが属するパスを表すパス識別情報と、を保持する第2のデータベースである。
【0020】
グラフ作成部3は、基礎データベース1及び派生データベース2が保持する情報に基づいて、名称データを頂点とする無向グラフを作成する。
【0021】
共通データ抽出部4は、基礎データベース1と派生データベース2との間で同じ表記である名称データを、共通データとして抽出する。
【0022】
パス情報抽出部5は、派生データベース2が保持する情報に基づいて、共通データ抽出部4が抽出した共通データのうち1つを始点とし、派生データベース2が保持する名称データを頂点とする、全てのパスを生成し、それらのパスそれぞれについて、頂点数、含まれる共通データ及びその位置を含むパス情報を抽出する。例えば、パス情報抽出部5は、グラフ作成部3が作成した無向グラフと派生データベース2が保持するパス識別情報とに基づいて、パス情報を抽出することができる。
【0023】
スルー頂点抽出部6は、グラフ作成部3が作成した無向グラフの頂点の中からスルー頂点を抽出する。スルー頂点とは、無向グラフにおいて、そこを2度通るが、辺は少なくとも1度しか通らないような頂点を指す。
【0024】
パス作成部7は、基礎データベース1が保持する情報に基づいて、パス情報抽出部5が抽出した各パスのパス情報に含まれる始点の名称データ、頂点数、含まれる共通データ及び位置と一致する全てのパスを生成する。例えば、パス作成部7は、グラフ作成部3が作成した無向グラフに基づいて、パスを生成することができる。さらに、パス作成部7は、生成したパスからスルー頂点を始点とするパスを作成して、両方のパスを結合する。
【0025】
対応付け部8は、パス作成部7が生成して結合した各パスから、通過する頂点数がより多く且つ重複する箇所がより少ないパスの組み合わせを抽出し、その抽出された各パスの頂点とパス情報抽出部5が生成した各パスの頂点とを対応付けることで、基礎データベース1が保持する名称データと派生データベース2が保持する名称データとを対応付ける。
【0026】
データ出力部9は、対応付け部8での対応付けの結果に基づいて、出力情報を生成し、それを出力する。例えば、データ出力部9は、対応付け部8での対応付けの結果に基づいて、名称データの対応関係を表す対応表を、出力情報として生成することができる。また、データ出力部9は、対応付け部8での対応付けの結果に基づいて基礎データベース1が保持している情報について名称データを変換して、新たなデータベースを作成し、これを出力情報とするようにしても良い。あるいは、データ出力部9は、対応付け部8での対応付けの結果に基づいて基礎データベース1及び派生データベース2が保持している情報を統合して、新たなデータベースを作成し、これを出力情報とするようにしても良い。
【0027】
以下、説明の簡単化のために、パスは、始点と終点が同一の頂点である閉路であると想定して説明する。
【0028】
この場合、グラフ作成部3は、無向グラフとして閉路グラフを作成する閉路グラフ作成部となる。すなわち、グラフ作成部3は、基礎データベース1及び派生データベース2が保持する隣接情報に基づいて、名称データを頂点とする閉路グラフを作成する。
【0029】
パス情報抽出部5は、パスとして閉路を生成し、パス情報として閉路情報を生成する閉路情報抽出部となる。すなわち、パス情報抽出部5は、グラフ作成部3が作成した閉路グラフと派生データベース2が保持するパス識別情報である閉路識別情報とに基づいて、共通データのうち1つを始点且つ終点とし、派生データベース2が保持する名称データを頂点とする、全ての閉路を生成し、その生成した全ての閉路それぞれについて、頂点数、含まれる共通データ及び位置を含む閉路情報を抽出する。
【0030】
パス作成部7は、パスとして閉路を生成する閉路作成部となる。すなわち、パス作成部7は、グラフ作成部3が作成した閉路グラフに基づいて、パス情報抽出部5が抽出した各閉路の閉路情報に含まれる始点且つ終点の名称データ、頂点数、含まれる共通データ及び位置が一致する全ての閉路を生成する。
【0031】
対応付け部8は、パス作成部7が生成した各閉路から、通過する頂点数がより多く且つ重複する箇所がより少ない閉路の組み合わせを抽出し、その抽出された各閉路の頂点とパス情報抽出部5が生成した各閉路の頂点とを対応付けることで、基礎データベース1が保持する名称データと派生データベース2が保持する名称データとを対応付ける。
【0032】
図2は、名称データ対応付け装置のハードウェア構成の一例を示す図である。
【0033】
名称データ対応付け装置は、
図2に示すように、例えばサーバコンピュータ(Server computer)やパーソナルコンピュータ(Personal computer)などのコンピュータにより構成され、CPU(Central Processing Unit)等のハードウェアプロセッサ101を有する。そして、名称データ対応付け装置では、このプロセッサ101に対し、プログラムメモリ102と、データメモリ103と、通信インタフェース104と、入出力インタフェース(
図2では入出力IFと記す)105とが、バス106を介して接続される。
【0034】
通信インタフェース104は、例えば一つ以上の有線または無線の通信モジュールを含むことができる。通信インタフェース104は、基礎データベース1及び/または派生データベース2が、LAN(Local Area Network)やインターネットなどのネットワークを介して接続されるデータサーバなどに構成される場合には、そのデータサーバなどとの間で通信を行い、それらデータサーバからデータを取得することができる。また、通信インタフェース104は、外部のデータ処理装置などと通信して、そのデータ処理装置からの要求を受信したり、その要求に応じたデータ処理結果をデータ処理装置に返信したりすることもできる。
【0035】
入出力インタフェース105には、入力部107及び表示部108が接続されている。入力部107及び表示部108は、例えば液晶または有機EL(Electro Luminescence)を使用した表示デバイスの表示画面上に、静電方式または圧力方式を採用した入力検知シートを配置した、いわゆるタブレット型の入力・表示デバイスを用いたものが用いられることができる。なお、入力部107及び表示部108は独立するデバイスにより構成されてもよい。入出力インタフェース105は、上記入力部107において入力された操作情報をプロセッサ101に入力すると共に、プロセッサ101で生成された表示情報を表示部108に表示させる。
【0036】
なお、入力部107及び表示部108は、入出力インタフェース105に接続されていなくてもよい。入力部107及び表示部108は、通信インタフェース104と直接またはネットワークを介して接続するための通信ユニットを備えることで、プロセッサ101との間で情報の授受を行い得る。
【0037】
また、入出力インタフェース105は、フラッシュメモリなどの半導体メモリといった記録媒体のリード/ライト機能を有しても良いし、あるいは、そのような記録媒体のリード/ライト機能を持ったリーダライタとの接続機能を有しても良い。これにより、名称データ対応付け装置に対して着脱自在な記録媒体を、名称データを保持するデータベースとすることができる。入出力インタフェース105は、さらに、他の機器との接続機能を有して良い。
【0038】
プログラムメモリ102は、非一時的な有形のコンピュータ可読記憶媒体として、例えば、HDD(Hard Disk Drive)またはSSD(Solid State Drive)等の随時書込み及び読出しが可能な不揮発性メモリと、ROM等の不揮発性メモリとが組合せて使用されたものである。このプログラムメモリ102には、プロセッサ101が一実施形態に係る各種制御処理を実行するために必要なプログラムが格納されている。すなわち、上記のグラフ作成部3、共通データ抽出部4、パス情報抽出部5、スルー頂点抽出部6、パス作成部7、対応付け部8及びデータ出力部9の各部における処理機能部は、いずれも、プログラムメモリ102に格納されたプログラムを上記プロセッサ101により読み出させて実行させることにより実現され得る。なお、これらの処理機能部の一部または全部は、特定用途向け集積回路(ASIC:Application Specific Integrated Circuit)またはFPGA(field-programmable gate array)などの集積回路を含む、他の多様な形式によって実現されても良い。
【0039】
データメモリ103は、有形のコンピュータ可読記憶媒体として、例えば、上記の不揮発性メモリと、RAM(Random Access Memory)等の揮発性メモリとが組合せて使用されたものである。このデータメモリ103は、各種処理が行われる過程で取得及び作成された各種データが記憶されるために用いられる。すなわち、データメモリ103には、各種処理が行われる過程で、適宜、各種データを記憶するための領域が確保される。そのような領域として、データメモリ103には、例えば、基礎データベース記憶部1031、派生データベース記憶部1032、一時記憶部1033及び出力情報記憶部1034を設けることができる。
【0040】
基礎データベース記憶部1031は、基礎データベース1の情報を記憶し、派生データベース記憶部1032は、派生データベース2の情報を記憶する。すなわち、基礎データベース1及び派生データベース2が、この基礎データベース記憶部1031及び派生データベース記憶部1032に構成されることができる。
【0041】
図3は、基礎データベース記憶部1031に記憶される基礎データベース1が保持する情報の一例を示す図であり、
図4は、派生データベース記憶部1032に記憶される派生データベース2が保持する情報の一例を示す図である。ここでは、名称データがビルの名称である例を示す。基礎データベース記憶部1031に記憶される基礎データベース1では、上位ビルと下位ビルは、隣接関係にある。派生データベース記憶部1032に記憶される派生データベース2では、同一の閉路識別子(図では、識別子をIDと略記する)を持つビルの組み合わせが、1つの閉路(新宿ビル→南新宿ビル→外苑ビル→四ツ谷ビル→新宿ビル)を構成している。以降、派生データベース2にあるビル名をc
i(i∈{1,2,…,n})で表し、基礎データベース1にあるビル名をd
j(j∈{1,2,…,m})で表す。ここで、n及びmは、それぞれのデータベースにおけるビル名数である。
【0042】
これら基礎データベース記憶部1031及び派生データベース記憶部1032に記憶される情報は、例えば、プロセッサ101が入出力インタフェース105を介して受け取った、入力部107から入力された基礎データベース1及び派生データベース2の情報とすることができる。すなわち、基礎データベース1及び派生データベース2が、データメモリ103に構築されることができる。また、外部のデータサーバに構築された基礎データベース1及び派生データベース2が保持する情報の全部または一部を、基礎データベース記憶部1031及び派生データベース記憶部1032に記憶させるようにしても良い。この場合は、例えば、プロセッサ101は、入力部107からのユーザ操作による指示に応じて、データベースサーバに蓄積された情報を通信インタフェース104を介して取得して、それらを記憶部1031、1032に記憶させる。あるいは、プロセッサ101は、記録媒体に記録された情報を、入出力インタフェース105を介して取得しても良い。また、プロセッサ101は、外部のデータ処理装置などから基礎データベース1及び派生データベース2の情報と名称データの対応付け要求とを通信インタフェース104を介して受信して、それら受信したデータベースの情報を、処理対象の情報として記憶部1031、1032に記憶させるようにしても良い。
【0043】
一時記憶部1033は、プロセッサ101が、上記グラフ作成部3としての動作を実施した際に作成する無向グラフ、上記共通データ抽出部4としての動作を実施した際に抽出した共通データ、上記パス情報抽出部5としての動作を実施した際に作成した全ての閉路及びそれらの閉路それぞれについて抽出した閉路情報、上記パス作成部7としての動作を実施した際に生成した閉路、上記対応付け部8としての動作を実施した際に得られる名称データの対応付け結果、などを記憶する。
【0044】
出力情報記憶部1034は、プロセッサ101が上記データ出力部9としての動作を実施した際に得られる出力情報を記憶する。
【0045】
(動作)
次に、名称データ対応付け装置の動作を説明する。
【0046】
図5は、名称データ対応付け装置における名称データの対応付けに係わる処理動作の一例を示すフローチャートである。ここでは、すでに、基礎データベース記憶部1031には基礎データベース1の情報が記憶され、派生データベース記憶部1032には派生データベース2の情報が記憶されているものとする。入出力インタフェース105を介して入力部107から、あるいは、通信インタフェース104を介して外部のデータ処理装置から、名称データの対応付けの実施を指示されると、名称データ対応付け装置のプロセッサ101は、このフローチャートに示す動作を開始する。
【0047】
まず、プロセッサ101は、グラフ作成部3としての動作を実行する。すなわち、プロセッサ101は、基礎データベース記憶部1031に記憶された基礎データベース1の情報と派生データベース記憶部1032に記憶された派生データベース2の情報のそれぞれについて、隣接情報を使用して、名称データを頂点とする閉路グラフGc及びGdを生成する(ステップS1)。生成された閉路グラフGc及びGdは、データメモリ103の一時記憶部1033に記憶される。
【0048】
ci及びdjをそれぞれ頂点とし、隣接関係にある頂点同士は辺で結ばれていると解釈すると、以下のように、無向グラフである閉路グラフGc及びGdが構築できる。
【0049】
【0050】
Ec: 派生データベース2の隣接情報から得られる辺の集合
gc:Ec→P(Vc) Ecの元に頂点集合Vcの部分集合を対応させる写像。ただし、P(Vc)はVcの冪集合である
Gc :=(gc,Vc,Ec)
【0051】
【0052】
Ed: 基礎データベース1の隣接情報から得られる辺の集合
gd: Ed→P(Vd) Edの元に頂点集合Vdの部分集合を対応させる写像。ただし、P(Vd)はVdの冪集合である
Gd :=(gd,Vd,Ed)
【0053】
また、プロセッサ101は、パス情報抽出部5としての動作を実行する。すなわち、プロセッサ101は、共通する名称データに基づいて、派生データベース2の閉路グラフGcから閉路Γk(k∈{1,2,…,K}、Kは閉路グラフGc内の閉路の総数)を生成し、それら生成した閉路Γkそれぞれについて閉路情報を抽出する(ステップS2)。生成された閉路Γk及び抽出された閉路情報は、データメモリ103の一時記憶部1033に記憶される。
【0054】
ここで、閉路Γkとは、閉路グラフGcの部分グラフであり、始点と終点が同一頂点であるようなパスを指す。すなわち、閉路Γkは、閉路グラフGcにおける頂点sk∈Vcを始点とする閉路である。
Γk[l]: Γkを構成する頂点のうちl番目の頂点 (第l要素)
|Γk|: ベクトルΓkの長さ (Γkを構成する頂点の個数)
Γk=(sk,…,sk)
(Γk[l],Γk[l+1])∈Ec
l∈{1,2,…,|Γk|}
【0055】
閉路グラフGcに対し閉路はいくつあっても良いとするが、いずれの閉路も、以下の3条件を満たすとする。
1.全てのskに対してsk=djを満たすdj∈Vdが存在する。
2.閉路を構成する全ての辺は、Ecに存在する。
3.∀ci∈Vcは、いずれかの閉路に所属している。
【0056】
次に、名称データ対応付け装置のプロセッサ101は、スルー頂点抽出部6としての動作を実行する。すなわち、プロセッサ101は、データメモリ103の一時記憶部1033に記憶された基礎データベース1の閉路グラフGdの頂点の中からスルー頂点候補Vtを抽出する(ステップS3)。抽出されたスルー頂点候補Vtは、データメモリ103の一時記憶部1033に記憶される。
【0057】
閉路グラフGcにおいて同一の頂点を2度通るが、辺は少なくとも1度しか通らない閉路が存在すると想定する。ただし、派生データベース2における閉路情報は、1度通った頂点は省略するため、どの頂点が複数回使用されたかは判らないとする。スルー頂点は、この2度通る頂点を指す。プロセッサ101は、閉路グラフGdの頂点Vdからスルー頂点候補Vtを選択する。
【0058】
閉路グラフGdにおいて、スルー頂点Vtは、少なくとも次数が4以上である必要がある。なぜならば、パスの経路は同一の辺を2度通らないので、スルー頂点に入る辺と出る辺が重複せずにそれぞれ2本ずつ必要であるからである。
【0059】
一方で、閉路グラフGdで次数4以上の頂点すべてを候補にすると、候補数が膨大になり得るので、頂点の絞り込みを行う。まず、閉路グラフGdで次数が2の頂点を省略する。具体的には、次数が2の頂点を取り除き、その頂点の両端辺を1つの辺にまとめる。この操作で得られるグラフを、以下、省略グラフと称する。
【0060】
プロセッサ101は、この省略グラフにおいて、次の2条件のいずれか1つを満たす頂点集合を、スルー頂点候補Vtとして抽出する。
条件1: 自己ループを持つ
条件2: 頂点を省略してできた辺が2本以上接続されており、次数が4以上
【0061】
次に、名称データ対応付け装置のプロセッサ101は、共通データ抽出部4としての動作を実行する。すなわち、プロセッサ101は、基礎データベース記憶部1031に記憶された基礎データベース1の情報と派生データベース記憶部1032に記憶された派生データベース2の情報とで、共通する名称データを抽出する(ステップS4)。抽出され共通する名称データは、データメモリ103の一時記憶部1033に記憶される。
【0062】
ここで、ステップS4で抽出された、VcとVdで同一表記であるようなビル名の集合をS :={ci∈Vc|∃dj∈Vd s.t. ci=dj}とする。名称データ対応付け装置は、この集合Sの要素ではない各ci,djに対し、以下のようにして、閉路グラフGc及びGdを用いた対応付けを行う。ここで、閉路グラフGcにおける頂点skを始点とする閉路Γkを構成する頂点のうち、集合Sに含まれる頂点のインデックス集合をIkとし、以下で定義する。
Ik :={x|Γk[x]∈S,Γk[x]≠sk}
【0063】
次に、プロセッサ101は、パス作成部7としての動作を実行する。すなわち、プロセッサ101は、抽出された閉路情報に基づいて、基礎データベース1の閉路グラフGdから閉路集合を作成する、基礎DBの閉路グラフからの閉路作成処理を実行する(ステップS5)。
【0064】
図6は、上記ステップS5で実行される基礎DBの閉路グラフからの閉路作成処理の詳細の一例を示すフローチャートである。
【0065】
この基礎DBの閉路グラフからの閉路作成処理において、プロセッサ101は、まず、閉路グラフGdにおいて始点が、閉路グラフGcにおける頂点skであるような閉路をすべて作成する(ステップS501)。ただし、原則として同じ頂点及び辺を2回通ることはないが、次数が1である頂点(接合する辺が1本である頂点)が存在する場合には、接続辺を2度通る閉路を許容する。作成された閉路αiの集合をAkと表記する。作成された閉路αiは、データメモリ103の一時記憶部1033に記憶される。
【0066】
次に、プロセッサ101は、上記ステップS501において作成した各閉路αi∈Ak(i∈{1,2,…,|Ak|})において、閉路αiを構成する頂点にスルー頂点候補Vtの要素vk∈Vtが含まれているか否か判断する(ステップS502)。なお、|Ak|は、閉路集合Akの要素数である。ここで、閉路αiを構成する頂点にスルー頂点候補要素vkが含まれていないと判断した場合(ステップS502のNO)には、プロセッサ101は、後述するステップS506の処理へ進む。
【0067】
これに対して、閉路αiを構成する頂点にスルー頂点候補要素vkが含まれていると判断した場合(ステップS502のYES)には、プロセッサ101は、そのスルー頂点候補要素vkを始点とする閉路を作成する(ステップS503)。ただし、作成される閉路は、
条件1: 次数が1である頂点を除き、同じ頂点及び辺は2回以上通らない
条件2: 始点skを通過しない
を満たす必要がある。ここで、作成された閉路の集合をBiと表記する。作成された閉路は、データメモリ103の一時記憶部1033に記憶される。
【0068】
次に、プロセッサ101は、スルー頂点候補要素vkが重複しないように、閉路αiと上記ステップS503で得られた閉路集合Biの各閉路bjとを結合する(ステップS504)。結合された閉路は、データメモリ103の一時記憶部1033に記憶される。ここで、以下のように、閉路αiにおいて頂点候補要素vkが出現するインデックスをIjとする。
αi[Ij]=vk
【0069】
プロセッサ101は、各閉路bj∈Bi,j∈{1,2,…,|Bi|}において、始点と終点が頂点候補要素vkであり、同じ頂点は2度表示しないことから頂点候補要素vkが重複しないように以下の結合した閉路bj1'~bj4'を得る。
bj1'=αi[1:Ij-1]+bj[2:]+αi[Ij+1:]
bj2'=αi[1:Ij-1]+rev(bj)[2:]+αi[Ij+1:]
bj3'=rev(bj1')
bj4'=rev(bj2')
ここで、+はパスを結合させる演算子、rev(b')はパスb'を逆順にする関数である。また、αi[x:y]及びαi[x:]は、
αi[x:y]=αiの第x要素から第y要素までの配列(x≦y)
αi[x:]=αiの第x要素から第|αi|要素までの配列(|αi|:αiの要素数)
である。
【0070】
プロセッサ101は、上記ステップS504で得られた閉路bj1'~bj4'のうち、同一の頂点及び辺を2度通らない閉路を選択して、閉路集合Akに追加する(ステップS505)。
【0071】
そして、プロセッサ101は、上記ステップS501で作成した閉路αiの全てに対して上記ステップS502乃至ステップS505の処理を行ったか否か判断する(ステップS506)。ここで、未だ処理していない閉路が存在する場合(ステップS506のNO)には、プロセッサ101は、未処理の閉路について上記ステップS502の処理から繰り返す。
【0072】
これに対して、未処理の閉路がない場合(ステップS506のYES)には、プロセッサ101は、閉路集合Akの要素である各閉路αiで以下の2条件を見たす閉路を抽出し、その抽出した閉路の集合をAk'とする(ステップS507)。
条件1: |αi|=|Γk|
条件2: αi[x]=Γk[x] x∈Ik
そして、プロセッサ101は、この基礎DBの閉路グラフからの閉路作成処理を終了して、上位のルーチンに戻る。
【0073】
プロセッサ101は、対応付け部8としての動作を実行する。すなわち、プロセッサ101は、上記ステップS5で作成された閉路集合Ak'の中から、通過する頂点数がより多く且つ重複する箇所がより少ない組み合わせを最適組み合わせとして抽出する、最適組み合わせ抽出処理を実行する(ステップS6)。
【0074】
図7は、上記ステップS6で実行される最適組み合わせ抽出処理の詳細の一例を示すフローチャートである。
【0075】
この最適組み合わせ抽出処理において、プロセッサ101は、まず、作成された閉路集合Ak'において閉路が1つであるか否か判断する(ステップS601)。作成された閉路集合Ak'が複数の閉路を含むと判断した場合(ステップS601のNO)には、プロセッサ101は、重複する箇所を以下のようにして算出する。
【0076】
まず、プロセッサ101は、算出すべき個数分の閉路を選択する(ステップS602)。すなわち、プロセッサ101は、上記ステップS5で作成された閉路集合Ak'から、始点skを持つ閉路の個数分、閉路を任意に選択する。例えば、始点skを持つ閉路が2つならば、異なる閉路集合Ak'から2つの閉路を選択する。プロセッサ101は、選択された閉路の集合を、cycle setとして、データメモリ103の一時記憶部1033に記憶する。
【0077】
集合cycle setが通る頂点数unionを、以下のように定義する。プロセッサ101は、この頂点数unionを求め、データメモリ103の一時記憶部1033に記憶する(ステップS603)。
union :=|{∪iαi │αi∈cycle set}|
ただし、∪iαiは、閉路αiを構成する頂点dlの集合のiについての和集合を表す。
αi :={dl |dl∈αi,αi∈cycle set}
∪iαi :=∪i{dl |dl∈αi,αi∈cycle set}
【0078】
次に、プロセッサ101は、以下のようにして、集合cycle set間で重複する頂点数insertを定義する。
まず、プロセッサ101は、初期値として、集合cycle setから異なる2つの閉路αi及びαjを選択する(ステップS604)。
αi,αj∈cycle set
【0079】
次に、プロセッサ101は、閉路αi及びαjが共に通過する頂点集合をshared vertexとして求め、これをデータメモリ103の一時記憶部1033に記憶する(ステップS605)。
shared vertex :=αi∩αj
αi∩αj :={dl |dl∈αi,dl∈αj}
【0080】
次に、プロセッサ101は、その頂点集合shared vertexの要素数が1以下であるか判断する(ステップS606)。
【0081】
頂点集合shared vertexの要素数が1以下でないと判断した場合(ステップS606のNO)は、プロセッサ101は、頂点集合shared vertexから任意の2頂点a_point及びz_pointを選択し、このとき、それら2頂点a_point及びz_pointを繋ぐパスは、閉路αi及びαjのそれぞれに2通り存在するので、以下のように4本のパスpを作成する(ステップS607)。プロセッサ101は、選択された2頂点a_point及びz_pointと作成した4本のパスpを、データメモリ103の一時記憶部1033に記憶する。
∃xai,xzi s.t. αi[xai]=a_point, αi[xzi]=z_point
∃xaj,xzj s.t. αj[xaj]=a_point, αj[xzj]=z_point
pi1 :=αi[xai: xzi]
pi2 :=αi[xzi: xai]
pj1 :=αj[xaj: xzj]
pj2 :=αj[xzj: xaj]
ただし、αl[x:y]は以下の通りである。ここで、l∈{i,j}である。
【0082】
【0083】
なお、x>yの場合に、第2要素からの配列を結合するのは、各αlにおいて第1要素と最後の要素は重複しているからである。
【0084】
次に、プロセッサ101は、上記ステップS607で作成した4本のパスpについて、頂点集合shared vertexに含まれる頂点を全て通過する組み合わせのうち、頂点数が最小となるようなパスpのインデックスinsert_x,insert_yを求め、それに基づいて、2本のパスを結合して、新たな閉路insert cycleijを作成する(ステップS608)。プロセッサ101は、作成した新たな閉路insert cycleijを、データメモリ103の一時記憶部1033に記憶する。
insert_x,insert_y=argminx,y{|px∪py| |shared vertex⊆px∩py∩sk}, x,y∈{i1,i2,j1,j2}
insert cycleij :=pinsert_x+pinsert_y
pinsert_x+pinsert_y: pinsert_xとpinsert_yの第2要素以降の部分を結合させた配列
【0085】
また、上記ステップS606において、頂点集合shared vertexの要素数が1以下であると判断した場合(ステップS606のYES)には、プロセッサ101は、空である新たな閉路insert cycleijを生成して、データメモリ103の一時記憶部1033に記憶する(ステップS609)。
【0086】
こうして、上記ステップS608または上記ステップS609で新たな閉路insert cycleijを生成したならば、プロセッサ101は、上記ステップS602で選択した閉路の集合cycle setの全ての要素を選択して処理したか判断する(ステップS610)。
【0087】
未だ全ての要素を処理していないと判断した場合(ステップS610のNO)には、プロセッサ101は、上記ステップS604の処理に戻り、集合cycle setの要素でαi及びαj以外の閉路を2つ新たに選択して、上記ステップS605乃至ステップS609の処理を繰り返す。ただし、未選択の要素が残り1つのみの場合には、上記ステップS604において、プロセッサ101は、ステップS608またはステップS609で生成した閉路insert cycleijと未選択の閉路を選択して、上記ステップS605乃至ステップS609の処理を繰り返す。
【0088】
こうして、閉路の集合cycle setの全ての要素について処理が行われると、上記ステップS610で集合cycle setの全ての要素を選択して処理したと判断される。この場合(ステップS610のYES)には、プロセッサ101は、得られた閉路insert cycleijについて、頂点数insertを、以下の定義に従い計算し、その結果をデータメモリ103の一時記憶部1033に記憶する(ステップS611)。
insert cycleijが1つである場合は、
insert :=|insert cycleij|
であり、insert cycleijが複数ある場合は、
insert :=|∪ijinsert cycleij|
である。ただし、∪ijinsert cycleijは、閉路insert cycleijを構成する頂点集合のijについての和集合である。
【0089】
そして、プロセッサ101は、閉路の集合cycle setに関する評価値scoreを、集合cycle setが通る頂点数unionと閉路insert cycleijについての頂点数insertとより、
score :=union-insert
として得、得られた評価値scoreをデータメモリ103の一時記憶部1033に記憶する(ステップS612)。
【0090】
その後、プロセッサ101は、上記ステップS5で作成された閉路集合Ak'の全ての閉路について処理したか判断する(ステップS613)。そして、未だ全ての閉路について処理していないと判断した場合(ステップS613のNO)には、プロセッサ101は、上記ステップS602の処理に戻り、算出すべき個数分の未処理の閉路を選択して、上記ステップS603乃至ステップS612の処理を繰り返す。
【0091】
そして、作成された閉路集合Ak'の閉路の全てについての処理が行われると、プロセッサ101は、ステップS613において、閉路の全てについて処理したと判断する(ステップS613のYES)。この場合、プロセッサ101は、データメモリ103の一時記憶部1033に記憶している全ての評価値scoreを参照して、全ての閉路の集合cycle setの中で最大の評価値scoreを示すcycle setを、最適な閉路の組み合わせとして選択する(ステップS614)。選択される最適な閉路の組み合わせは、最大の評価値scoreを示すcycle setが1つの場合は1つの閉路であり、最大の評価値scoreを示すcycle setが複数ある場合には複数の閉路の組み合わせとなる。プロセッサ101は、選択した最適な閉路の組み合わせを、抽出された最適組み合わせとして、データメモリ103の一時記憶部1033に記憶する。そして、プロセッサ101は、この最適組み合わせ抽出処理を終了する。
【0092】
また、上記ステップS601において、作成された閉路集合Ak'が1つの閉路のみを含むと判断した場合(ステップS601のYES)には、プロセッサ101は、その閉路集合Ak'の閉路Aを、最適な閉路の組み合わせとして選択する(ステップS615)。そして、プロセッサ101は、この最適組み合わせ抽出処理を終了する。
【0093】
こうして、最適組み合わせ抽出処理を終了したならば、プロセッサ101は、最適組み合わせ抽出処理によって抽出された最適組み合わせに従って、基礎データベース1の名称データと派生データベース2の名称データとを対応付ける、名称データ対応付け処理を実行する(ステップS7)。
【0094】
図8は、上記ステップS7で実行される名称データ対応付け処理の詳細の一例を示すフローチャートである。
【0095】
すなわち、プロセッサ101は、最適組み合わせ抽出処理によって抽出された閉路の組み合わせ(1つの閉路のみの場合を含む)と、上記ステップS2で派生データベース2の閉路グラフGcから生成した閉路Γkと、を照らし合わせることで、名称データの対応付けを得る(ステップS701)。プロセッサ101は、対応付け結果を、データメモリ103の一時記憶部1033に記憶する。
【0096】
【0097】
ここで、上記ステップS6の最適組み合わせ抽出処理によって抽出された候補の閉路の組み合わせ(または閉路)が複数ある場合は、複数の名称の組み合わせが得られてしまう。そこで、プロセッサ101は、候補の閉路と閉路Γkとを照らし合わせることでできる名称の組み合わせ同士の文字列類似度をそれぞれ計算し、その総和が最も小さくなる組み合わせを選択する。
【0098】
すなわち、プロセッサ101は、名称の組み合わせが複数有るか否かを判断する(ステップS702)。ここで、名称の組み合わせが1つだけである場合(ステップS702のNO)には、プロセッサ101は、この名称データ対応付け処理を終了する。
【0099】
これに対して、名称の組み合わせが複数有る場合(ステップS702のYES)には、プロセッサ101は、名称の組み合わせ同士の文字列類似度をそれぞれ計算する(ステップS703)。この文字列類似度としては、これに限定しないが、例えば、D. Gusfield. "Algorithms on strings, trees and sequences: computer science and computational biology." Cambridge university press, 1998.に開示されているような、編集距離を採用することができる。
【0100】
プロセッサ101は、この計算した名称の組み合わせ同士の文字列類似度の総和が最も小さくなる組み合わせを、名称データの対応付け結果として選択して、データメモリ103の一時記憶部1033に記憶する(ステップS704)。そして、プロセッサ101は、この名称データ対応付け処理を終了する。
【0101】
こうして名称データ対応付け処理を終了したならば、プロセッサ101は、上記ステップS2において派生データベース2の閉路グラフGcから生成した閉路Γk(k={1,2,…,K})の全てについて処理が終了したか否か判断する(ステップS8)。ここで、未処理の閉路が有る場合(ステップS8のNO)には、プロセッサ101は、その未処理の閉路について、上記ステップS4乃至ステップS7の処理を繰り返す。
【0102】
そして、派生データベース2の閉路グラフGcから生成した閉路Γkの全てについて処理が終了した(ステップS8のYES)ならば、プロセッサ101は、データ出力部9としての動作を実行することで、名称データの対応付け結果を出力する(ステップS9)。すなわち、プロセッサ101は、入力部107からまたは外部のデータ処理装置から指示された形態の出力情報をデータメモリ103の一時記憶部1033に記憶された対応付け結果から生成し、その生成した出力情報をデータメモリ103の出力情報記憶部1034に記憶させる。そして、プロセッサ101は、この出力情報を、入出力インタフェース105を介して表示部108により表示したり、通信インタフェース104を介して外部のデータ処理装置に送信したりする。
【0103】
以上に説明した一実施形態に係る名称データ対応付け装置は、対象とする2つのデータベースにおいて、各隣接情報を使用して、名称データを頂点とする閉路グラフが描画できるので、閉路識別情報が付与されていない基礎データベース1の閉路グラフ上で、派生データベース2の閉路グラフから得られた閉路情報と同条件(頂点数、始点、終点が同一)の閉路を作成し、その中から最適な閉路を選択することで、名称データの対応付けを行い、この際に、複数の対応付け結果が得られた場合には、各結果における名称データ同士の文字列類似度を計算し、より類似している方の結果を選択する。これにより、統合するデータベース間で表記ゆれが存在する同義の名称データを、名称データに対応する文字列別データがデータベース間で対応関係を有していなくとも、人的稼働を掛けず正確に対応付けることができる。よって、人的稼働の削減により業務効率を上げる効果が期待できる。
【0104】
また、一実施形態に係る名称データ対応付け装置は、閉路識別情報が付与されていない基礎データベース1の閉路グラフ上で、派生データベース2の閉路グラフから得られた閉路情報と同条件の閉路を全て作成するだけでなく、それら生成した閉路からスルー頂点を始点とする閉路を作成して、それら全ての閉路とこれらスルー頂点を始点とする閉路とを結合するようにしている。これにより、同じ頂点(始点とは異なっても良い)を2回以上通るパス(例えば、八の字(8)や九の字(9)の形)も含めた中から最適な閉路を選択して、名称データの対応付けを行うことが可能となる。
【0105】
また、一実施形態に係る名称データ対応付け装置は、抽出した閉路情報に一致する閉路が基礎データベース1の情報から1つだけしか生成できなかった場合には、直ちに、それを最適な閉路の組み合わせとして利用するので、処理の高速化が図れる。
【0106】
一方、抽出した閉路情報に一致する閉路が基礎データベース1の情報から複数生成された場合には、一実施形態に係る名称データ対応付け装置は、それら複数の閉路の中から、閉路情報抽出の際に派生データベース2の情報から生成した閉路の個数ずつ、閉路の組み合わせを選択し、それぞれの閉路の組み合わせについて、通過する頂点数及び重複する箇所を判別することで、通過する頂点数がより多く且つ重複する箇所がより少ない閉路の組み合わせを選択する。これにより、最適な閉路の組み合わせを抽出することができる。
【0107】
また、一実施形態に係る名称データ対応付け装置は、名称データの対応付けの結果に基づいて、名称データの対応表を含む出力情報を生成する。よって、この出力情報を利用して、データベースの統合処理を実施することが可能となる。また、一実施形態に係る名称データ対応付け装置は、出力情報として、統合したデータベースの情報を生成しても良い。
【0108】
[動作例]
本実施形態の動作例として、適用した名称データの概要と結果を説明する。
【0109】
図9は、動作例において基礎データベース記憶部1031に記憶される基礎データベース1が保持する情報の一例を示す図であり、
図10は、動作例において派生データベース記憶部1032に記憶される派生データベース2が保持する情報の一例を示す図である。この例では、閉路ID=2の名称データに関して、頂点集合V
c及びV
dは、以下の通りである。
V
c={いわきビル、沼ノ内ビル、常磐ビル、小名浜ビル、内郷ビル、窪田ビル、泉ビル、小川ビル、若葉台ビル、江名ビル、田人ビル}
V
d={いわきビル、沼之内ビル、いわき常磐ビル、小名浜ビル、梨花の里ビル、いわき窪田ビル、いわき泉ビル、いわき小川ビル、いわき若葉台ビル、江名ビル、田人ビル}
【0110】
この例では、名称データの正確な表記の組み合わせ、すなわち名称データの対応付けは次の通りであり、実施形態に係る名称データ対応付け装置がこの対応付けを正しく行うことができるか確認した。
{(いわきビル、いわきビル)、(沼ノ内ビル、沼之内ビル)、(常磐ビル、いわき常磐ビル)、(小名浜ビル、小名浜ビル)、(内郷ビル、梨花の里ビル)、(窪田ビル、いわき窪田ビル)、(泉ビル、いわき泉ビル)、(小川ビル、いわき小川ビル)、(若葉台ビル、いわき若葉台ビル)、(江名ビル、江名ビル)、(田人ビル、田人ビル)}
【0111】
名称データ対応付け装置のプロセッサ101は、ステップS1において、グラフ作成部3としての動作を実施し、閉路グラフを作成する。
図11は、動作例において派生データベース2が保持する情報から作成された閉路グラフの一例を示す模式図であり、
図12は、動作例において基礎データベース1が保持する情報から作成された閉路グラフの一例を示す模式図である。
【0112】
各データベースの隣接情報から得られる辺集合Ec,Edは、以下の通りである。
Ec={(いわきビル、沼ノ内ビル)、(沼ノ内ビル、小川ビル)、(小川ビル、江名ビル)、(江名ビル、いわきビル)、(いわきビル、若葉台ビル)、(若葉台ビル、小名浜ビル)、(小名浜ビル、窪田ビル)、(窪田ビル、田人ビル)、(田人ビル、常磐ビル)、(常磐ビル、泉ビル)、(泉ビル、小名浜ビル)、(小名浜ビル、内郷ビル)、(内郷ビル、いわきビル)}
Ed={(いわきビル、沼之内ビル)、(いわきビル、江名ビル)、(いわきビル、いわき小川ビル)、(沼之内ビル、いわき小川ビル)、(江名ビル、いわき小川ビル)、(いわきビル、いわき若葉台ビル)、(小名浜ビル、いわき若葉台ビル)、(梨花の里ビル、小名浜ビル)、(梨花の里ビル、いわきビル)、(梨花の里ビル、いわき常磐ビル)、(いわき泉ビル、いわき常磐ビル)、(田人ビル、いわき常磐ビル)、(小名浜ビル、いわき窪田ビル)、(田人ビル、いわき窪田ビル)、(小名浜ビル、いわき泉ビル)}
【0113】
また、プロセッサ101は、ステップS2において、パス情報抽出部5としての動作を実施し、データベース2と基礎データベース1で共通する一つの頂点、例えばs
1=s
2=いわきビルを始点として、派生データベース2から作成した閉路グラフにおける閉路を生成して、閉路情報を抽出する。この場合、以下のような頂点数が9の閉路Γ
1と頂点数が5の閉路Γ
2が得られる。
図13は、動作例においてパス情報抽出部5によって作成された閉路の例を示す模式図である。
Γ
1=(いわきビル、内郷ビル、小名浜ビル、窪田ビル、田人ビル、常磐ビル、泉ビル、若葉台ビル、いわきビル)
Γ
2=(いわきビル、沼ノ内ビル、小川ビル、江名ビル、いわきビル)
【0114】
この場合、各閉路の始点は、s1=s2=いわきビルであり。2回通る頂点は、小名浜ビルである。
【0115】
また、プロセッサ101は、ステップS3において、スルー頂点抽出部6としての動作を実施し、基礎データベース1の閉路グラフG
dの頂点の中からスルー頂点候補V
tを抽出する。
図14は、この動作例においてスルー頂点抽出のために作成された省略グラフの一例を示す模式図である。
省略グラフにおける頂点:{いわきビル、梨花の里ビル、いわき常磐ビル、小名浜ビル、いわき小川ビル}
辺:{(いわきビル、梨花の里ビル)、(梨花の里ビル、小名浜ビル)、(小名浜ビル、いわき常磐ビル)、(小名浜ビル、いわき常磐ビル)、(小名浜ビル、いわきビル)、(梨花の里ビル、いわき常磐ビル)、(いわきビル、いわき小川ビル)、(いわきビル、いわき小川ビル)、(いわきビル、いわき小川ビル)}
頂点の省略により作成された辺:{(いわきビル、いわき小川ビル)、(いわきビル、いわき小川ビル)、(いわき常磐ビル、小名浜ビル)、(いわき常磐ビル、小名浜ビル)、(いわきビル、小名浜ビル)}
【0116】
ここで、重複している辺は多重辺である。また、
図14では、頂点の省略により作成された辺を太線で示している。
【0117】
この動作例においては、プロセッサ101は、スルー頂点の候補Vtとして、
Vt :={小名浜ビル}
を抽出する。
【0118】
また、プロセッサ101は、ステップS4において、共通データ抽出部4としての動作を実施し、共通する名称データを抽出する。ここで、同一表記であるような名称データつまりビル名の集合Sは、以下の通りである。
図11乃至
図14、及び後述する各図では、これら共通のビル名にハッチングをして示している。
S={いわきビル、小名浜ビル、江名ビル、田人ビル}
【0119】
また、閉路Γ1,Γ2において集合Sの要素が出現するインデックスI1,I2は、以下の通りである。
I1={3,5}
I2={4}
【0120】
次に、プロセッサ101は、ステップS5において、パス作成部7としての動作を実施し、基礎データベース1から作成した閉路グラフG
dから閉路集合を作成する。まず、プロセッサ101は、ステップS501において、閉路グラフG
dにおける始点が「いわきビル」であるような閉路α
iを作成する。
図15A乃至
図15Fは、生成された閉路α
1~α
6を示す模式図である。
α
1=(いわきビル、江名ビル、いわき小川ビル、いわきビル)
α
2=(いわきビル、沼之内ビル、いわき小川ビル、江名ビル、いわきビル)
α
3=(いわきビル、沼之内ビル、いわき小川ビル、いわきビル)
α
4=(いわきビル、いわき若葉台ビル、小名浜ビル、梨花の里ビル、いわきビル)
α
5=(いわきビル、いわき若葉台ビル、小名浜ビル、いわき泉ビル、いわき常磐ビル、梨花の里ビル、いわきビル)
α
6=(いわきビル、いわき若葉台ビル、小名浜ビル、いわき窪田ビル、田人ビル、いわき常磐ビル、梨花の里ビル、いわきビル)
【0121】
以上の閉路からなる集合がA1=Α2={α1,…,α6}である。
【0122】
ここで、作成した閉路α
i(i={4,5,6})に対してはスルー頂点「小名浜ビル」を含む。
図15D乃至
図15Fでは、このスルー頂点「小名浜ビル」を格子のハッチングを付して示している。このように、閉路α
iを構成する頂点にスルー頂点が含まれているので、プロセッサ101は、ステップS503において、この頂点を始点とする閉路を作成する。
図16は、作成されたスルー頂点を始点とした閉路b
1,b
2の例を示す模式図である。
b
1=(小名浜ビル、いわき泉ビル、いわき常磐ビル、田人ビル、いわき窪田ビル、小名浜ビル)
b
2=(小名浜ビル、いわき泉ビル、いわき常磐ビル、梨花の里ビル、小名浜ビル)
【0123】
ステップS503では、この2経路が得られる。よって、Bi={b1,b2}、i={4,5,6}である。
【0124】
次に、プロセッサ101は、ステップS504において、αi(i={4,5,6})に対し閉路集合Biの各要素を結合する。スルー頂点が共通しているので、全i,jについて、結合された閉路は、以下のようになる。
【0125】
まず、i=4,j=1であり、l
i=3の場合は、結合した閉路b
j1'~b
j4'は、
b
j1'=(いわきビル、いわき若葉台ビル、いわき泉ビル、いわき常磐ビル、田人ビル、いわき窪田ビル、小名浜ビル、梨花の里ビル、いわきビル)
b
j2'=(いわきビル、いわき若葉台ビル、小名浜ビル、いわき窪田ビル、田人ビル、いわき常磐ビル、いわき泉ビル、梨花の里ビル、いわきビル)
b
j3'=rev(b
j1')
b
j4'=rev(b
j2')
となる。
図17Aは結合された閉路b
j1'を、また、
図17Bは結合された閉路b
j2'を、それぞれ示す模式図である。
【0126】
これに対して、i=4,j=2であり、li=3の場合には、いずれの閉路も(小名浜ビル、梨花の里ビル)が重複してしまう。
【0127】
また、i=5,j=1及びli=3の場合は、いずれの閉路も(小名浜ビル、いわき泉ビル)、(いわき泉ビル、いわき常磐ビル)が重複してしまう。
【0128】
また、i=5,j=2及びli=3の場合は、いずれの閉路も(小名浜ビル、いわき泉ビル)、(いわき泉ビル、いわき常磐ビル)、(いわき常磐ビル、梨花の里ビル)が重複してしまう。
【0129】
また、i=6,j=1及びli=3の場合は、いずれの閉路も(小名浜ビル、いわき窪田ビル)、(いわき窪田ビル、いわき常磐ビル)が重複してしまう。
【0130】
また、i=6,j=2及びli=3の場合は、いずれの閉路も(いわき常磐ビル、梨花の里ビル)が重複してしまう。
【0131】
以上より、プロセッサ101は、ステップS505において、同一の頂点及び辺を2度通らない閉路である、i=4,j=1における閉路bj1'~bj4'を、閉路集合A1,Α2に追加する。
【0132】
そして、プロセッサ101は、ステップS507において、閉路集合Akの要素である各閉路αiで以下の2つの条件
条件1: |αi|=|Γk|
条件2: αi[x]=Γk[x] x∈Ik
を見たす閉路を抽出する。
【0133】
すなわち、閉路集合A1においては、
|αi|=|Γ1|=9
且つ
αi[3]=小名浜ビル、αi[5]=田人ビル
を満たすような要素を抽出し、それを閉路A1'とする。
A1'={(いわきビル、梨花の里ビル、小名浜ビル、いわき窪田ビル、田人ビル、いわき常磐ビル、いわき泉ビル、いわき若葉台ビル、いわきビル),(いわきビル、いわき若葉台ビル、小名浜ビル、いわき窪田ビル、田人ビル、いわき常磐ビル、いわき泉ビル、梨花の里ビル、いわきビル)}
【0134】
同様に、閉路集合Α2においては、
|αi|=|Γ2|=5
且つ
αi[4]=江名ビル
を満たすような要素を抽出し、それを閉路Α2'とする。
Α2'={(いわきビル、沼之内ビル、いわき小川ビル、江名ビル、いわきビル)}
【0135】
次に、プロセッサ101は、ステップS6において、対応付け部8としての動作を実施し、最適組み合わせを抽出する。例えば、プロセッサ101は、ステップS602において、2つの閉路A1',A2'を選択する。ここで、|A1'|=2より、閉路A1'の各要素をそれぞれA10',A11'と表記すると、プロセッサ101は、閉路A1'の要素A10'と閉路A2'の要素A20'及び閉路A1'の要素A11'と閉路A2'の要素A20'を選択する。
cycle set=A10'∪A20'
cycle set=A11'∪A20'
【0136】
そして、プロセッサ101は、ステップS603において、cycle set=A10'∪A20'に対し、
union :=|{(いわきビル、梨花の里ビル、小名浜ビル、いわき窪田ビル、田人ビル、いわき常磐ビル、いわき泉ビル、いわき若葉台ビル、沼之内ビル、いわき小川ビル、江名ビル)}|=11
を得、cycle set=A11'∪A20'に対し、
union :=|{(いわきビル、梨花の里ビル、小名浜ビル、いわき窪田ビル、田人ビル、いわき常磐ビル、いわき泉ビル、いわき若葉台ビル、沼之内ビル、いわき小川ビル、江名ビル)}|=11
【0137】
すなわち、閉路A1'のいずれの閉路に対しても、
union=11
を得、ステップS605において、
shared vertex={いわきビル}
を得ることができる。
【0138】
ここで、shared vertexの要素数が1以下なので、プロセッサ101は、ステップS609において、
insert cycleij=φ
を生成する。
【0139】
この作成した閉路insert cycleより、プロセッサ101は、ステップS611及びステップS612において、
insert :=|insert cycleij|=0
score :=union-insert=11
を求めることができる。
【0140】
そして、プロセッサ101は、ステップS7において、ステップS6の処理で得られた閉路A1'、Α2'の要素と、ステップS2で生成した閉路Γ1、Γ2とを照らし合わせることで、名称データの組み合わせを得る。
【0141】
すなわち、プロセッサ101は、ステップS701において、k=1について、閉路A1'の要素A10'である
(いわきビル、梨花の里ビル、小名浜ビル、いわき窪田ビル、田人ビル、いわき常磐ビル、いわき泉ビル、いわき若葉台ビル、いわきビル))
と、
Γ1=(いわきビル、内郷ビル、小名浜ビル、窪田ビル、田人ビル、常磐ビル、泉ビル、若葉台ビル、いわきビル)
より、
{(内郷ビル、梨花の里ビル)、(窪田ビル、いわき窪田ビル)、(常磐ビル、いわき常磐ビル)、(泉ビル、いわき泉ビル)、(若葉台ビル、いわき若葉台ビル)}
を得る。
【0142】
一方、閉路A1'の要素A11'である
(いわきビル、いわき若葉台ビル、小名浜ビル、いわき窪田ビル、田人ビル、いわき常磐ビル、いわき泉ビル、梨花の里ビル、いわきビル))
と、
Γ1=(いわきビル、内郷ビル、小名浜ビル、窪田ビル、田人ビル、常磐ビル、泉ビル、若葉台ビル、いわきビル)
より、
{(内郷ビル、いわき若葉台ビル)、(窪田ビル、いわき窪田ビル)、(常磐ビル、いわき常磐ビル)、(泉ビル、いわき泉ビル)、(若葉台ビル、梨花の里ビル)}
を得る。
【0143】
どちらも{(窪田ビル、いわき窪田ビル)、(常磐ビル、いわき常磐ビル)、(泉ビル、いわき泉ビル)}の組み合わせは共通しているので、プロセッサ101は、ステップS703及びステップS704において、
{(内郷ビル、梨花の里ビル)、(若葉台ビル、いわき若葉台ビル)}
と、
{(若葉台ビル、梨花の里ビル)、(内郷ビル、いわき若葉台ビル)}
のうち、文字列類似度の総和が小さい方を選択する。
【0144】
本動作例では、文字列類似度として、編集距離を使用する。ここで、
「内郷ビル」と「梨花の里ビル」の距離=1.0
「若葉台ビル」と「いわき若葉台ビル」の距離=0.5
より、総和は1.5が求められる。これに対して、
「若葉台ビル」と「梨花の里ビル」の距離=1.0
「内郷ビル」と「いわき若葉台ビル」の距離=1.0
より、総和は2.0となる。
【0145】
よって、プロセッサ101は、
{(内郷ビル、梨花の里ビル)、(若葉台ビル、いわき若葉台ビル)}
を含む、
{((内郷ビル、梨花の里ビル)、(窪田ビル、いわき窪田ビル)、(常磐ビル、いわき常磐ビル)、(泉ビル、いわき泉ビル)、(若葉台ビル、いわき若葉台ビル)}
を選択する。
【0146】
また、プロセッサ101は、k=2については、閉路Α2'の要素A20'である
(いわきビル、沼之内ビル、いわき小川ビル、江名ビル、いわきビル)
と、
Γ2=(いわきビル、沼ノ内ビル、小川ビル、江名ビル、いわきビル)
より、
{(沼ノ内ビル、沼之内ビル)、(小川ビル、いわき小川ビル)}
を得る。
【0147】
図18は、この対応付け結果に基づく閉路グラフの一例を示す模式図である。すなわち、対応付け結果に基づいて、
図12の閉路グラフを書き換えると、
図18のようになり、
図11の閉路グラフにおける頂点と比較して、全頂点の正確な対応付けが得られていることが判る。
【0148】
その後、プロセッサ101は、データメモリ103の一時記憶部1033に記憶された上記対応付けの結果に基づいて出力情報を生成し、データメモリ103の出力情報記憶部1034に記憶させる。
図19は、この出力情報記憶部1034に記憶される出力情報の一例を示す図である。なお、ここでは、出力情報を名称データの対応関係を表す対応表として示しているが、これに限定されないことは勿論である。
【0149】
以上より、名称データ対応付け装置により、閉路情報を使用することで、正確な名称データの対応付けが可能であることが検証できた。
【0150】
[比較例]
比較として、既存の文字列検索手法(特許文献1または2)を使用した対応付けを、動作例で扱ったデータに対して行った。
【0151】
使用手法: 編集距離(Levenshitein距離)
比較実験概要: 頂点集合Vc,Vdを単なる名称データの集合と見なし、Vdの各データからVcのデータの編集距離をそれぞれ計算し、距離が最小となるデータを選択する
結果: 11頂点中5頂点の正確な対応付けに成功(いわきビル、小名浜ビル、江名ビル、田人ビル、沼之内ビル)
【0152】
この結果より、正確な対応付け可能であったのは、ほぼデータベース間で同一表記の名称だけであった(5頂点中4頂点)。「内郷ビル」と「梨花の里ビル」のような互いに著しく異なる文字列の対応付けや、「いわき泉ビル」と「泉ビル」のように一方の文字列の大部分が省略(「いわき泉ビル」にとって「いわきビル」は4文字中3文字を占める)されている文字列に対して、高い類似度を示すことは困難であった。
【0153】
[他の実施形態]
前記一実施形態では、始点と終点が同一の頂点である閉路を例に説明したが、始点と終点が異なる頂点であるパスを利用しても良い。すなわち、名称データ対応付け装置では、対象とする2つのデータベースにおいて、各隣接情報を使用して、名称データを頂点とするパスを描画することができるので、パス識別情報が付与されていない基礎データベース1のパス上で、派生データベース2のパスから得られたパス情報と同条件(頂点数、始点が同一)のパスを作成し、その中から最適なパスを選択することで、名称データの対応付けを行う。これにより、統合するデータベース間で表記ゆれが存在する同義の名称データを、名称データに対応する文字列別データがデータベース間で対応関係を有していなくとも、人的稼働を掛けず正確に対応付けることができる。またこの場合、データベースの情報に基づいて、名称データを頂点とする無向グラフを作成し、この無向グラフを利用することで、容易にパスを生成することができる。
【0154】
また、対象とするデータベースも2つの場合を例に説明したが、3つ以上であっても良い。すなわち、3つ以上のデータベースのうち、少なくとも1つのデータベースがパス識別情報(閉路識別情報)を保持していれば、残りの2つ以上のデータベースとの間で名称データの対応付けを行うことが可能となる。
【0155】
また、前記一実施形態では、データメモリ103の基礎データベース記憶部1031及び派生データベース記憶部1032に基礎データベース1及び派生データベース2が保持する情報の全部または一部を記憶して処理を進める例を説明したが、それに限定するものではない。プロセッサ101は、通信インタフェース104により外部のデータサーバに適宜アクセスして、そこに構築された基礎データベース1及び派生データベース2に蓄積されている情報を使用して処理を進め、各ステップの処理結果のみを一時記憶部1033に記憶するようにしても良い。これにより、名称データ対応付け装置が備えるデータメモリ103の容量を抑えることができ、安価に名称データ対応付け装置を構成することが可能となる。
【0156】
また、前記一実施形態では、出力情報を生成して、表示部108または外部のデータ処理装置に出力する例を説明したが、出力情報を生成することなく、一時記憶部1033に記憶した対応付け結果を出力するようにしても良い。これにより、名称データ対応付け装置が備えるデータメモリ103の容量を抑えることができ、安価に名称データ対応付け装置を構成することが可能となる。また、データベースの統合処理を行うデータ処理装置に対して、名称データの対応付けのみを行うサービスを提供することが可能となる。
【0157】
また、フローチャートに示したステップS2の処理とステップS3の処理とは、処理の順番を入れ替えても良いし、並行して実行しても良い。これに限らず、
図5乃至
図8に示したフローチャートの各処理は、当該処理がそれ以前の処理の結果を利用しない限りは、順番を入れ替えたり、並行して処理したりするようにしてもかまわない。
【0158】
また、各実施形態に記載した手法は、計算機(コンピュータ)に実行させることができるプログラム(ソフトウェア手段)として、例えば磁気ディスク(フロッピー(登録商標)ディスク、ハードディスク等)、光ディスク(CD-ROM、DVD、MO等)、半導体メモリ(ROM、RAM、フラッシュメモリ等)等の記録媒体に格納し、また通信媒体により伝送して頒布することもできる。なお、媒体側に格納されるプログラムには、計算機に実行させるソフトウェア手段(実行プログラムのみならずテーブル、データ構造も含む)を計算機内に構成させる設定プログラムをも含む。本装置を実現する計算機は、記録媒体に記録されたプログラムを読み込み、また場合により設定プログラムによりソフトウェア手段を構築し、このソフトウェア手段によって動作が制御されることにより上述した処理を実行する。なお、本明細書でいう記録媒体は、頒布用に限らず、計算機内部あるいはネットワークを介して接続される機器に設けられた磁気ディスク、半導体メモリ等の記憶媒体を含むものである。
【0159】
要するに、この発明は上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は可能な限り適宜組合せて実施してもよく、その場合組合せた効果が得られる。さらに、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適当な組み合わせにより種々の発明が抽出され得る。
【符号の説明】
【0160】
1…基礎データベース
2…派生データベース
3…グラフ作成部
4…共通データ抽出部
5…パス情報抽出部
6…スルー頂点抽出部
7…パス作成部
8…対応付け部
9…データ出力部
101…プロセッサ
102…プログラムメモリ
103…データメモリ
104…通信インタフェース
105…入出力インタフェース
106…バス
107…入力部
108…表示部
1031…基礎データベース記憶部
1032…派生データベース記憶部
1033…一時記憶部
1034…出力情報記憶部