(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-09
(45)【発行日】2024-12-17
(54)【発明の名称】名称データ対応付け装置、名称データ対応付け方法及び名称データ対応付けプログラム
(51)【国際特許分類】
G06F 16/215 20190101AFI20241210BHJP
【FI】
G06F16/215
(21)【出願番号】P 2023527147
(86)(22)【出願日】2021-06-07
(86)【国際出願番号】 JP2021021548
(87)【国際公開番号】W WO2022259303
(87)【国際公開日】2022-12-15
【審査請求日】2023-10-11
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】小川 まな美
(72)【発明者】
【氏名】佐藤 正崇
【審査官】原 秀人
(56)【参考文献】
【文献】特開2017-123062(JP,A)
【文献】特開2005-011049(JP,A)
【文献】特開2020-064417(JP,A)
【文献】特開2010-134828(JP,A)
【文献】特開2001-187477(JP,A)
【文献】特表2019-502995(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
複数の名称データ及びそれら名称データの論理的または物理的な隣接関係を示す隣接情報を保持する第1のデータベースと、複数の名称データ、それら名称データの隣接情報及びそれら名称データが属するパスを表すパス識別情報を保持する第2のデータベースとの間で異なる表記を有する同義の名称データを対応付ける名称データ対応付け装置であって、
前記第1のデータベースと前記第2のデータベースとの間で同じ表記である名称データを共通データとして抽出する共通データ抽出部と、
前記第2のデータベースが保持する前記パス識別情報で表される前記パスから、前記共通データ抽出部が抽出した前記共通データを端点とし且つ非共通データを前記端点間の頂点とする部分パスを抽出し、前記第1のデータベースが保持する情報に基づいて、前記部分パスそれぞれについて、前記部分パスの前記端点と同じ共通データの端点を持ち且つ前記部分パスの長さ以上の長さを持つパスを作成するパス作成部と、
前記パス作成部が抽出した前記部分パスそれぞれについて、前記部分パス上の各頂点と前記パス作成部が作成した前記パス上の頂点との組み合わせを探索することで、前記第1のデータベースが保持する前記名称データと前記第2のデータベースが保持する前記名称データとを対応付ける対応付け部と、
を具備する、名称データ対応付け装置。
【請求項2】
前記第1のデータベース及び前記第2のデータベースが保持する情報に基づいて、前記名称データを頂点とする前記第1のデータベース及び前記第2のデータベースの無向グラフを作成するグラフ作成部と、
前記グラフ作成部が作成した前記第2のデータベースの前記無向グラフと前記第2のデータベースが保持する前記パス識別情報とに基づいて、前記共通データ抽出部が抽出した前記共通データを端点とし且つ前記第2のデータベースが保持する前記名称データを頂点とする全てのパスを生成し、それらのパスそれぞれについて、頂点数、含まれる頂点の名称データ及びそのパス上の位置を含むパス情報を抽出するパス情報抽出部と、
をさらに具備し、
前記パス作成部は、前記パス情報抽出部が生成したパスの1つに対し、前記パス情報に基づいて、前記グラフ作成部が作成した前記第2のデータベースの前記無向グラフから前記部分パスを抽出し、前記部分パスそれぞれについて、前記第1のデータベースの前記無向グラフから、前記部分パスの前記端点と同じ共通データの端点を持ち且つ前記部分パスが有する頂点の頂点数以上の頂点を含むパスを作成する、請求項1に記載の名称データ対応付け装置。
【請求項3】
前記パス作成部は、前記パスとして、前記頂点数以上であり且つ前記頂点数に対してユーザが指定した個数以下の頂点数を含むパスを作成する、請求項2に記載の名称データ対応付け装置。
【請求項4】
前記対応付け部は、前記パス作成部が作成した前記パス上の前記頂点それぞれについて、
前記パス上の位置が前記部分パス上の前記頂点に対応する場合には、前記第1のデータベースが保持する前記名称データのうちの前記パス上の前記頂点に対応する名称データを、前記第2のデータベースが保持する前記名称データのうちの前記部分パス上の前記頂点の前記名称データに対応付け、
前記パス上の位置が前記部分パス上の前記頂点に対応しない場合には、名称データ同士の文字列類似度に基づいて、前記第1のデータベースが保持する前記名称データのうちの前記パス上の前記頂点に対応する名称データと、前記第2のデータベースが保持する前記名称データのうちの前記部分パス上の前記頂点の前記名称データとを対応付ける、
請求項1乃至3のいずれかに記載の名称データ対応付け装置。
【請求項5】
前記パス作成部及び前記対応付け部は、前記パス情報抽出部が生成したパスの全てに対する処理が終了するまで、処理を繰り返す、請求項2または3に記載の名称データ対応付け装置。
【請求項6】
前記対応付け部による対応付けの結果に基づいて、名称データの対応表を含む出力情報を生成する出力部をさらに具備する、請求項1乃至5のいずれかに記載の名称データ対応付け装置。
【請求項7】
プロセッサと、複数の名称データ及びそれら名称データの論理的または物理的な隣接関係を示す隣接情報を保持する第1のデータベースと、複数の名称データ、それら名称データの隣接情報及びそれら名称データが属するパスを表すパス識別情報を保持する第2のデータベースとを記憶したメモリと、を備え、前記第1のデータベースと前記第2のデータベースとの間で異なる表記を有する同義の名称データを対応付ける名称データ対応付け装置における名称データ対応付け方法であって、
前記プロセッサにより、前記メモリに記憶されている前記第1のデータベースと前記第2のデータベースとの間で同じ表記である名称データを共通データとして抽出し、
前記プロセッサにより、前記メモリに記憶されている前記第2のデータベースが保持する前記パス識別情報で表される前記パスから、前記抽出した前記共通データを端点とし且つ非共通データを前記端点間の頂点とする部分パスを抽出し、
前記プロセッサにより、前記メモリに記憶されている前記第1のデータベースが保持する情報に基づいて、前記抽出した前記部分パスそれぞれについて、前記部分パスの前記端点と同じ共通データの端点を持ち且つ前記部分パスの長さ以上の長さを持つパスを作成し、
前記プロセッサにより、前記抽出した前記部分パスそれぞれについて、前記部分パス上の各頂点と前記作成した前記パス上の頂点との組み合わせを探索することで、前記メモリに記憶されている前記第1のデータベースが保持する前記名称データと前記メモリに記憶されている前記第2のデータベースが保持する前記名称データとを対応付ける、
名称データ対応付け方法。
【請求項8】
請求項1乃至6のいずれかに記載の名称データ対応付け装置の前記各部としてプロセッサを機能させる名称データ対応付けプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明の実施形態は、名称データ対応付け装置、名称データ対応付け方法及び名称データ対応付けプログラムに関する。
【背景技術】
【0002】
データベースを用いた業務には、異なる管理下にあるデータベースを統合し、格納されていた名称データを横並びで使用することで、より多角的・包括的な分析を行うことがある。そのためには、統合するデータベースの間で同一の事柄を表している名称データに対し、同一の識別情報を付与するなどして、名称データを統合する、所謂「名寄せ」という作業が必要になる。
【0003】
しかしながら、名称データの入力方法は、データベースの管理元に依る。そのため、統合するデータベースの間で同一の事柄を表しているにもかかわらず、その表記が異なるという状況(表記ゆれ)はしばしば存在する。表記ゆれを含むデータベースを統合してしまうと、前述のような分析を行う際に、一つの事柄に関連する情報が表記ゆれを起こした部分だけ不足してしまう事態が発生してしまう。
【0004】
このような表記ゆれに対処する技術として、非特許文献1及び非特許文献2は、検索対象の文字列同士の類似度を定量的に計算することで、最も似ている文字列を検索する手法を提案している。また、非特許文献3は、検索用の辞書を作成することで正確且つ効率良く同一の事柄を表す文字列を探し出す方法を提案している。また、特許文献1は、名寄せをしたいデータの周辺情報を用いた紐づけ方法を開示している。
【先行技術文献】
【非特許文献】
【0005】
【文献】中川 裕志, 他, 「出現頻度と連接頻度に基づく専門用語抽出」, 自然言語処理, 2003, 10巻, 1号, p.27-45
【文献】田淵裕章, 他, 「N-gram に基づく用例対訳検索手法」, 信学技報, 人工知能と知識処理研究会, Vol.108, No.441, pp.43-48, 2009.
【文献】Surajit Chaudhuri, Venkatesh Ganti, and Dong Xin. 2009. "Mining document collections to facilitate accurate approximate entity matching". Proc. VLDB Endow. 2, 1 (August 2009), 395-406. DOI: https://doi.org/10.14778/1687627.1687673
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
表記のゆれ方には、登録データ名を省略した表記と、使用者同士でのローカルルールに基づく呼び名(通称)による表記と、が存在する。
【0008】
非特許文献1及び2に開示されているような手法は、前者の省略表記のみが表記ゆれとして存在する場合には、ポピュラー且つ有効な手段である。しかしながら、後者の通称表記が混在している状況下では、各通称に対してその通称と文字列的に類似した名称が紐付けられるため、誤った結果を提示する可能性が高い。なぜならば、通称表記は、本来紐付けられるべき名称と著しくかけ離れているケースが多いためである。
【0009】
また、前者の省略表記のみを扱う場合であっても、非特許文献1及び2に開示の手法は、日本語に対して使用されることを想定して作られているので、技術の適用範囲が限定的である。日本語における省略表記の特徴と他言語における特徴は全てが一致するわけではないので、非特許文献1及び2に開示の手法が、他言語で入力された名称データに対して問題なく適用可能とは限らないためである。
【0010】
よって、通称表記に対しては、非特許文献3に開示されているような、辞書を作成することが最適な手法だと考えられている。しかしながら、統合するデータベースの個数が増加すると、それに伴い辞書を拡張する必要が発生するため、表記ゆれに対処可能になるまでに時間が掛かるという欠点がある。
【0011】
そこで、特許文献1では、辞書に頼らず、名寄せの対象データ周辺の情報(同データベースのデータAとデータBは繋がりがある、など)を用いて、通称を名寄せ可能とする技術を提案している。しかしながら、この特許文献1に開示されているような技術は、それぞれのデータベースの名称データから構築できるグラフが、一種の包含関係(一方のグラフの辺に対応する辺が、他方のグラフに必ず存在する)を満たしている必要がある。そのため、包含関係が保たれていない構造のグラフが得られてしまう名称データを名寄せすることは困難か、できたとしても候補となる名称が大量に出てきてしまう、という問題があった。
【0012】
この発明は、統合するデータベース間で表記ゆれが存在する同義の名称データを、人的稼働を掛けず正確に対応付けることができる技術を提供しようとするものである。
【課題を解決するための手段】
【0013】
上記課題を解決するために、この発明の一態様に係る名称データ対応付け装置は、複数の名称データ及びそれら名称データの論理的または物理的な隣接関係を示す隣接情報を保持する第1のデータベースと、複数の名称データ、それら名称データの隣接情報及びそれら名称データが属するパスを表すパス識別情報を保持する第2のデータベースとの間で異なる表記を有する同義の名称データを対応付ける名称データ対応付け装置であって、共通データ抽出部と、パス作成部と、対応付け部と、を備える。共通データ抽出部は、第1のデータベースと第2のデータベースとの間で同じ表記である名称データを共通データとして抽出する。パス作成部は、第2のデータベースが保持するパス識別情報で表されるパスから、共通データ抽出部が抽出した共通データを端点とし且つ非共通データを端点間の頂点とする部分パスを抽出し、第1のデータベースが保持する情報に基づいて、部分パスそれぞれについて、部分パスの端点と同じ共通データの端点を持ち且つ部分パスの長さ以上の長さを持つパスを作成する。対応付け部は、パス作成部が抽出した部分パスそれぞれについて、部分パス上の各頂点とパス作成部が作成したパス上の頂点との組み合わせを探索することで、第1のデータベースが保持する名称データと第2のデータベースが保持する名称データとを対応付ける。
【発明の効果】
【0014】
この発明の一態様によれば、統合するデータベース間で表記ゆれが存在する同義の名称データを人的稼働を掛けず正確に対応付けることができる技術を提供することができる。
【図面の簡単な説明】
【0015】
【
図1】
図1は、この発明の一実施形態に係る名称データ対応付け装置の構成の一例を示すブロック図である。
【
図2】
図2は、名称データ対応付け装置のハードウェア構成の一例を示す図である。
【
図3】
図3は、基礎データベース記憶部に記憶される基礎データベースが保持する情報の一例を示す図である。
【
図4】
図4は、派生データベース記憶部に記憶される派生データベースが保持する情報の一例を示す図である。
【
図5】
図5は、名称データ対応付け装置における名称データの対応付けに係わる処理動作の一例を示すフローチャートである。
【
図6】
図6は、名称の対応付け方法を説明するための模式図である。
【
図7】
図7は、動作例において基礎データベースが保持する情報の一例を示す図である。
【
図8】
図8は、動作例において派生データベースが保持する情報の一例を示す図である。
【
図9】
図9は、動作例においてグラフ作成部によって基礎データベースが保持する情報から作成された閉路グラフの一例を示す模式図である。
【
図10】
図10は、動作例においてグラフ作成部によって派生データベースが保持する情報から作成された閉路グラフから生成されたパスの一例を示す模式図である。
【
図11】
図11は、動作例において出力情報記憶部に記憶される出力情報の一例を示す図である。
【発明を実施するための形態】
【0016】
以下、図面を参照して、この発明に係わる実施形態を説明する。
【0017】
本実施形態において、複数のデータベースは、異なる表記を有する同義の名称データを保持しており、これらデータベースで名称データを対応付けしたいデータカラムは、既知であるとする。各データカラムは、名称データと、例えば測定値や測定日時、売上日時や売上金額、などといった、名称データに対応する文字列別データを含むことができる。また、各データベースは、名称データの隣接関係を示す論理的あるいは物理的な隣接情報を保持していることを想定する。ここで、名称データの隣接関係を示す隣接情報とは、例えば、人脈(人物Aと人物Bが知り合いである)や、ネットワーク上の接続関係(ビルAとビルBがケーブルによって接続されている)といった、データ同士の繋がり方の情報を指す。この発明は、名称データを対応付けするデータベースの個数に制限は特にないが、本一実施形態では、説明の簡単化のため、対象とするデータベースは2つであるとする。また、各データベース内の名称データ間には、ネットワーク上の接続関係があるとする。具体的には、各データベースに「上位ビル」「下位ビル」という名前のカラムがあり、「上位ビル」に格納された名称データと「下位ビル」に格納された名称データは、あるネットワーク上で隣接していることを表す。加えて、複数のデータベースのうち少なくとも1つには、隣接情報に加えて、名称データが属するパスを表すパス識別情報が追加されていると想定する。
【0018】
(構成例)
図1は、この発明の一実施形態に係る名称データ対応付け装置の構成の一例を示すブロック図である。名称データ対応付け装置は、基礎データベース(図では、データベースをDBと略記する。)1、派生データベース2、グラフ作成部3、共通データ抽出部4、パス情報抽出部5、パス作成部6、対応付け部7及びデータ出力部8を有する。
【0019】
基礎データベース1は、複数の名称データと、それら名称データの隣接関係を示す隣接情報と、を保持する第1のデータベースである。また、派生データベース2は、複数の名称データと、それら名称データの隣接情報と、それら名称データが属するパスを表すパス識別情報と、を保持する第2のデータベースである。
【0020】
グラフ作成部3は、基礎データベース1及び派生データベース2が保持する情報に基づいて、名称データを頂点とする無向グラフを作成する。
【0021】
共通データ抽出部4は、基礎データベース1と派生データベース2との間で同じ表記である名称データを、共通データとして抽出する。
【0022】
パス情報抽出部5は、派生データベース2が保持するパス識別情報に基づいて、共通データ抽出部4が抽出した共通データのうち1つを始点とし、派生データベース2が保持する名称データを頂点とする、全てのパスを生成する。パスの終点は、始点と同じ共通データとなる場合もあるし、始点と異なる共通データとなる場合もある。そして、パス情報抽出部5は、それらのパスそれぞれについて、頂点数、含まれる頂点の名称データ及びそのパス上の位置を含むパス情報を抽出する。例えば、パス情報抽出部5は、グラフ作成部3が作成した無向グラフと派生データベース2が保持するパス識別情報とに基づいて、パス情報を抽出することができる。
【0023】
パス作成部6は、パス情報抽出部5が抽出したパス情報で示される各パスについて、各共通データを端点とする、すなわち始点及び終点とする、部分パスを抽出する。そして、パス作成部6は、基礎データベース1が保持する情報に基づいて、各部分パスと一致する共通データを端点とし且つ規定の長さである全てのパスを数え上げる。例えば、パス作成部6は、グラフ作成部3が基礎データベース1から作成した無向グラフに基づいて、パスを列挙することができる。
【0024】
対応付け部7は、例えば、編集距離等の文字列類似度に基づいて、パス作成部6が抽出した部分パスと数え上げたパスとから、頂点の名称データの組み合わせを探索する。そして、対応付け部7は、探索した組み合わせに基づいて、基礎データベース1が保持する名称データと派生データベース2が保持する名称データとを対応付ける。
【0025】
データ出力部8は、対応付け部7での対応付けの結果に基づいて、出力情報を生成し、それを出力する。例えば、データ出力部8は、対応付け部7での対応付けの結果に基づいて、名称データの対応関係を表す対応表を、出力情報として生成することができる。また、データ出力部8は、対応付け部7での対応付けの結果に基づいて基礎データベース1が保持している情報について名称データを変換して、新たなデータベースを作成し、これを出力情報とするようにしても良い。あるいは、データ出力部8は、対応付け部7での対応付けの結果に基づいて基礎データベース1及び派生データベース2が保持している情報を統合して、新たなデータベースを作成し、これを出力情報とするようにしても良い。
【0026】
図2は、名称データ対応付け装置のハードウェア構成の一例を示す図である。
【0027】
名称データ対応付け装置は、
図2に示すように、例えばサーバコンピュータ(Server computer)やパーソナルコンピュータ(Personal computer)などのコンピュータにより構成され、CPU(Central Processing Unit)等のハードウェアプロセッサ101を有する。そして、名称データ対応付け装置では、このプロセッサ101に対し、プログラムメモリ102と、データメモリ103と、通信インタフェース104と、入出力インタフェース(
図2では入出力IFと記す)105とが、バス106を介して接続される。
【0028】
通信インタフェース104は、例えば一つ以上の有線または無線の通信モジュールを含むことができる。通信インタフェース104は、基礎データベース1及び/または派生データベース2が、LAN(Local Area Network)やインターネットなどのネットワークを介して接続されるデータサーバなどに構成される場合には、そのデータサーバなどとの間で通信を行い、それらデータサーバからデータを取得することができる。また、通信インタフェース104は、外部のデータ処理装置などと通信して、そのデータ処理装置からの要求を受信したり、その要求に応じたデータ処理結果をデータ処理装置に返信したりすることもできる。
【0029】
入出力インタフェース105には、入力部107及び表示部108が接続されている。入力部107及び表示部108は、例えば液晶または有機EL(Electro Luminescence)を使用した表示デバイスの表示画面上に、静電方式または圧力方式を採用した入力検知シートを配置した、いわゆるタブレット型の入力・表示デバイスを用いたものが用いられることができる。なお、入力部107及び表示部108は独立するデバイスにより構成されても良い。入出力インタフェース105は、上記入力部107において入力された操作情報をプロセッサ101に入力すると共に、プロセッサ101で生成された表示情報を表示部108に表示させる。
【0030】
なお、入力部107及び表示部108は、入出力インタフェース105に接続されていなくても良い。入力部107及び表示部108は、通信インタフェース104と直接またはネットワークを介して接続するための通信ユニットを備えることで、プロセッサ101との間で情報の授受を行い得る。
【0031】
また、入出力インタフェース105は、フラッシュメモリなどの半導体メモリといった記録媒体のリード/ライト機能を有しても良いし、あるいは、そのような記録媒体のリード/ライト機能を持ったリーダライタとの接続機能を有しても良い。これにより、名称データ対応付け装置に対して着脱自在な記録媒体を、名称データを保持するデータベースとすることができる。入出力インタフェース105は、さらに、他の機器との接続機能を有して良い。
【0032】
プログラムメモリ102は、非一時的な有形のコンピュータ可読記憶媒体として、例えば、HDD(Hard Disk Drive)またはSSD(Solid State Drive)等の随時書込み及び読出しが可能な不揮発性メモリと、ROM等の不揮発性メモリとが組合せて使用されたものである。このプログラムメモリ102には、プロセッサ101が一実施形態に係る各種制御処理を実行するために必要なプログラムが格納されている。すなわち、上記のグラフ作成部3、共通データ抽出部4、パス情報抽出部5、パス作成部6、対応付け部7及びデータ出力部8の各部における処理機能部は、いずれも、プログラムメモリ102に格納されたプログラムを上記プロセッサ101により読み出させて実行させることにより実現され得る。なお、これらの処理機能部の一部または全部は、特定用途向け集積回路(ASIC:Application Specific Integrated Circuit)またはFPGA(field-programmable gate array)などの集積回路を含む、他の多様な形式によって実現されても良い。
【0033】
データメモリ103は、有形のコンピュータ可読記憶媒体として、例えば、上記の不揮発性メモリと、RAM(Random Access Memory)等の揮発性メモリとが組合せて使用されたものである。このデータメモリ103は、各種処理が行われる過程で取得及び作成された各種データが記憶されるために用いられる。すなわち、データメモリ103には、各種処理が行われる過程で、適宜、各種データを記憶するための領域が確保される。そのような領域として、データメモリ103には、例えば、基礎データベース記憶部1031、派生データベース記憶部1032、一時記憶部1033及び出力情報記憶部1034を設けることができる。
【0034】
基礎データベース記憶部1031は、基礎データベース1の情報を記憶し、派生データベース記憶部1032は、派生データベース2の情報を記憶する。すなわち、基礎データベース1及び派生データベース2が、この基礎データベース記憶部1031及び派生データベース記憶部1032に構成されることができる。
【0035】
図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は、それぞれのデータベースにおけるビル名数である。
【0036】
これら基礎データベース記憶部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に記憶させるようにしても良い。
【0037】
一時記憶部1033は、プロセッサ101が、上記グラフ作成部3としての動作を実施した際に作成する無向グラフ、上記共通データ抽出部4としての動作を実施した際に抽出した共通データ、上記パス情報抽出部5としての動作を実施した際に抽出した全てのパスについてのパス情報、上記パス作成部6としての動作を実施した際に抽出した部分パス及び数え上げたパス、上記対応付け部7としての動作を実施した際に得られる名称データの対応付け結果、などを記憶する。
【0038】
出力情報記憶部1034は、プロセッサ101が上記データ出力部8としての動作を実施した際に得られる出力情報を記憶する。
【0039】
(動作)
次に、名称データ対応付け装置の動作を説明する。
【0040】
図5は、名称データ対応付け装置における名称データの対応付けに係わる処理動作の一例を示すフローチャートである。ここでは、既に、基礎データベース記憶部1031には基礎データベース1の情報が記憶され、派生データベース記憶部1032には派生データベース2の情報が記憶されているものとする。入出力インタフェース105を介して入力部107から、あるいは、通信インタフェース104を介して外部のデータ処理装置から、名称データの対応付けの実施を指示されると、名称データ対応付け装置のプロセッサ101は、このフローチャートに示す動作を開始する。
【0041】
まず、プロセッサ101は、グラフ作成部3としての動作を実行する。すなわち、プロセッサ101は、派生データベース記憶部1032に記憶された派生データベース2の情報と基礎データベース記憶部1031に記憶された基礎データベース1の情報とのそれぞれについて、隣接情報を使用して、名称データを頂点とする閉路グラフGc及びGdを生成する(ステップS1)。生成された閉路グラフGc及びGdは、データメモリ103の一時記憶部1033に記憶される。
【0042】
派生データベース2にあるビル名ci及び基礎データベース1にあるビル名djをそれぞれ頂点とし、隣接関係にある頂点同士は辺で結ばれていると解釈すると、以下のように、無向グラフである閉路グラフGc及びGdが構築できる。ここで、閉路とは、閉路グラフGcの部分グラフであり、始点と終点が同一頂点であるようなパスを指す。
【0043】
【0044】
Ed: 基礎データベース1の隣接情報から得られる辺の集合
gd: Ed→P(Vd) Edの元に頂点集合Vdの部分集合を対応させる写像。ただし、P(Vd)は頂点集合Vdの冪集合である
Gd :=(gd,Vd,Ed)
【0045】
【0046】
Ec: 派生データベース2の隣接情報から得られる辺の集合
gc: Ec→P(Vc) Ecの元に頂点集合Vcの部分集合を対応させる写像。ただし、P(Vc)は頂点集合Vcの冪集合である
Gc :=(gc,Vc,Ec)
【0047】
また、名称データ対応付け装置のプロセッサ101は、共通データ抽出部4としての動作を実行する。すなわち、プロセッサ101は、基礎データベース記憶部1031に記憶された基礎データベース1の情報と派生データベース記憶部1032に記憶された派生データベース2の情報とで、共通する名称データを抽出する(ステップS2)。抽出され共通する名称データは、データメモリ103の一時記憶部1033に記憶される。
【0048】
次に、プロセッサ101は、パス情報抽出部5としての動作を実行する。すなわち、プロセッサ101は、共通する名称データと派生データベース2が格納するパス識別情報とに基づいて、派生データベース2の閉路グラフGcからパスΓk(k∈{1,2,…,K}、Kは閉路グラフGc内のパスの総数)を抽出する(ステップS3)。抽出されたパスΓkを示すパス情報は、データメモリ103の一時記憶部1033に記憶される。パス情報は、抽出されたパスΓkの頂点数、含まれる頂点の名称データ及びそのパス上の位置を含むことができる。
【0049】
ここで、パスΓkとは、派生データベース2の閉路グラフGcにおける頂点sk∈Vcを始点とするk番目のパスである。
Γk[l]: Γkを構成する頂点のうちl番目の頂点 (第l要素)
|Γk|: パスΓkの長さ (パスΓkを構成する頂点の個数)
Γk=(sk,…,tk),
(Γk[l],Γk[l+1])∈Ec,
l∈{1,2,…,|Γk|}
【0050】
閉路グラフGcに対しパスはいくつあっても良いとするが、いずれのパスも、以下の3条件を満たすとする。
1.全てのskに対してsk=dj,tk=dlを満たすdj∈Vd,dlが存在する。
2.パスΓkを構成する全ての辺は、Ecに存在する。
3.∀ci∈Vcは、いずれかのパスΓkに所属している。
【0051】
ここで、ステップS2で抽出された、VcとVdで同一表記であるようなビル名の集合をS :={ci∈Vc|∃dj∈Vd s.t. ci=dj}とする。名称データ対応付け装置は、この集合Sの要素ではない各ci,djに対し、以下のようにして、閉路グラフGc及びGdを用いた対応付けを行う。
【0052】
ここで、閉路グラフGcを構成するパスの一つをΓkと表記し、パスΓkを構成する頂点のうち、集合Sに含まれる頂点の配列をIkとし、以下で定義する。
Ik :=(Γk[i]|Γk[i]∈S,Γk[i]≠sk,i=1,2,…,|Γk|)
【0053】
次に、プロセッサ101は、パス作成部6としての動作を実行する。
すなわち、プロセッサ101は、まず、上記ステップS3で抽出されたパス情報に基づいて、一つのパスΓkに対して、閉路グラフGcから集合Sの各要素を端点とする部分パス
【0054】
【0055】
を抽出する(ステップS4)。すなわち、Lk
iとは、パスΓkにおいて、頂点lk[i]から頂点lk[i+1]までの部分パスのことである。また、lk[i]は、配列lkのi番目の要素である。
【0056】
次に、プロセッサ101は、抽出された部分パスに基づいて、基礎データベース1の閉路グラフGdにおいて始点がlk[i]、終点がlk[i+1]であるようなパスのうち、長さが、|Lk
i|以上(i=1,2,…,|Γk})且つ|Lk
i|+x以下であるものを全て数え上げる(ステップS5)。ここで、xはユーザが指定した0以上の正整数である。なお、このパスを列挙する際に、同じ頂点及び辺を2回通ることはない。列挙された部分パスの集合を
【0057】
【0058】
と表記する。
【0059】
次に、プロセッサ101は、対応付け部7としての動作を実行する。
すなわち、プロセッサ101は、まず、上記ステップS5で数え上げられた、パスの集合Ak
iの中で、長さが|Lk
i|のものがある場合、そのパスをαとする。この下で、以下のように名称の組み合わせを選出する(ステップS6)。
(Lk
i[j],α[j]),j=1,2,…,|Lk
i|
ただし、Lk
i[j],α[j]は、各パスのj番目の頂点である。
【0060】
さらに、プロセッサ101は、それら選出した組み合わせの中で、長さが|L
k
i|より長く且つ|L
k
i|+x以下のものがある場合、
図6のように文字列類似度(例えば、編集距離)に基づく名称検索技術を用いて、名称データの組み合わせを探索して対応付け、その結果をデータメモリ103の一時記憶部1033に記憶する(ステップS7)。編集距離は、例えば、D. Gusfield. "Algorithms on strings, trees and sequences: computer science and computational biology." Cambridge university press, 1997.に開示されている。
【0061】
図6は、名称の対応付け方法を説明するための模式図である。基礎データベース1に格納されたビルBL
dの名称データ(Aビル、Bビル、…nビル)と派生データベース2に格納されたビルBL
cの名称(αビル、βビル、…νビル)があり、同図に一点鎖線で示すように、同一名称または別のパスにより、Aビルとαビル、nビルとνビルが既に対応付けがされているとする。このような場合、プロセッサ101は、以下の手順で、名称データの組み合わせを探索することができる。
【0062】
1.x=0と初期化する。
2.長さ|Lk
i|+xのパスを数え上げる。
3.数え上げた1パスの頂点の中から、既に対応付けできている名称を除く。
4.得られたパスの長さが|Lk
i|より大きい場合、派生データベース2のビルBLcの内、未だ対応付けできていないビル(γビル)から、基礎データベース1のビルBLdへ、編集距離が最短であるビルを求める。例えば、γビルから編集距離が最短のビルとして、実線矢印で示すように、Cビルが探索され、対応付けされることができる。
5.x=x+1として、予めユーザが指定したxの上限値になるまで、上記2~4を繰り返す。
なお、編集距離が最短のビルBLdを探索する際には、破線矢印で示すように、既に対応付けされたビルBLdの次のビルから探索が開始される。
【0063】
以上のようにして、組み合わせが1通りしかないものについてはそのまま出力結果とし、それ以外のものについては、既に出力結果が得られている名称データを候補から除外する。除外して残った候補のうち、整合性のとれるものを残して対応付け結果とする。ここでの整合性とは、ある名称Aについて複数の候補名がある下で、候補名の中で前述の操作で除外された名称Bがあるときには、除外された名称Bと、名称Aの組み合わせ(A,B)を出力する根拠となったパスPが必ず存在する。このパスPからは、名称Aとは別の名称Cに対しても、名称の組み合わせ(C,D)を与えている。名称組み合わせ(A,B)が除外されたことで、組み合わせ(C,D)もまた除外する。より具体的な例は、動作例として、後述する。
【0064】
こうして、一つのパスΓkについての処理が終了したならば、プロセッサ101は、上記ステップS3で抽出されたパス情報に基づくパスΓkの全てを処理したか否か判断する(ステップS8)。すなわち、全てのパスΓkの全ての頂点について処理を終了したか判断する。未だ処理していないパスΓkが存在すると判断した場合には、プロセッサ101は、kを更新して、上記ステップS4の処理に移行して、上記ステップS4乃至ステップS7の処理を繰り返す。
【0065】
そして、上記ステップS8においてパスΓkの全てを処理したと判断した場合、プロセッサ101は、データ出力部8としての動作を実行することで、名称データの対応付け情報を出力する(ステップS9)。すなわち、プロセッサ101は、入力部107からまたは外部のデータ処理装置から指示された形態の出力情報をデータメモリ103の一時記憶部1033に記憶された対応付け結果から生成し、その生成した出力情報をデータメモリ103の出力情報記憶部1034に記憶させる。そして、プロセッサ101は、この出力情報を、入出力インタフェース105を介して表示部108により表示したり、通信インタフェース104を介して外部のデータ処理装置に送信したりすることができる。
【0066】
以上に説明した一実施形態に係る名称データ対応付け装置は、パス作成部6により、共通データを端点とし且つ非共通データを端点間の頂点とする部分パスを抽出し、部分パスそれぞれについて、端点と同じ共通データの端点を持ち且つ部分パスの長さ以上の長さを持つパスを作成し、対応付け部7により、この部分パスそれぞれについて、部分パス上の各頂点とパス上の頂点との組み合わせを探索することで、基礎データベース1が保持する名称データと派生データベース2が保持する名称データとを対応付ける。これにより、統合するデータベース間で表記ゆれが存在する同義の名称データを、名称データに対応する文字列別データがデータベース間で対応関係を有していなくとも、人的稼働を掛けず正確に対応付けることができる。よって、異なるデータベース間で、ある事柄に対して漏れのない情報収集を行うことが可能となる。また、人的稼働の削減により、業務効率を上げる効果が期待できる。
【0067】
なお、一実施形態に係る名称データ対応付け装置は、グラフ作成部3により、名称データを頂点とする基礎データベース1及び派生データベース2の無向グラフである閉路グラフGd及びGcを作成し、パス情報抽出部5によって、共通データを端点とし且つ派生データベース2が保持する名称データを頂点とする全てのパスΓkを生成し、それらのパスΓkそれぞれについて、頂点数、含まれる頂点の名称データ及びそのパス上の位置を含むパス情報を抽出する。そして、パス作成部6は、このパスΓkの1つに対して、前記パス情報に基づいて、閉路グラフGcから部分パスを抽出し、この部分パスそれぞれについて、閉路グラフGdから、部分パスの端点と同じ共通データの端点を持ち且つ部分パスが有する頂点の頂点数以上の頂点を含むパスを作成する。よって、基礎データベース1が保持している名称データのうち、派生データベース2が保持している名称データと対応付けできる可能性がある頂点を含む、換言すれば、派生データベース2が保持している名称データと対応付けできる可能性の無い頂点を除外した、パスを作成することができる。
【0068】
さらにここで、パス作成部6は、作成するパスとして、パスΓkの頂点数以上であり且つ頂点数に対してユーザが指定した個数以下の頂点数を含むパスを作成する。よって、パスが含む頂点数を制限することで、処理時間の短縮化を図れる。
【0069】
また、一実施形態に係る名称データ対応付け装置においては、対応付け部7は、パス作成部6によって作成したパス上の頂点それぞれについて、パス上の位置が部分パス上の頂点に対応する場合には、基礎データベース1が保持する名称データのうちのパス上の頂点に対応する名称データを、派生データベース2が保持する名称データのうちの部分パス上の頂点の名称データに対応付ける。また、パス上の位置が部分パス上の頂点に対応しない場合には、対応付け部7は、名称データ同士の文字列類似度に基づいて、基礎データベース1が保持する名称データのうちのパス上の頂点に対応する名称データと、派生データベース2が保持する名称データのうちの部分パス上の頂点の名称データとを対応付ける。よって、基礎データベース1が保持する名称データを、派生データベース2が保持する名称データに容易に対応付けすることができる。
【0070】
また、一実施形態に係る名称データ対応付け装置は、パス情報抽出部5が生成したパスΓkの全てに対する処理が終了するまで、パス作成部6及び対応付け部7の処理を繰り返す。よって、派生データベース2が保持する名称データが基礎データベース1が保持する名称データと対応付けし損なう確率を減少させることができる。
【0071】
また、一実施形態に係る名称データ対応付け装置は、データ出力部8により、名称データの対応付けの結果に基づいて、名称データの対応表を含む出力情報を生成する。よって、この出力情報を利用して、データベースの統合処理を実施することが可能となる。また、一実施形態に係る名称データ対応付け装置は、出力情報として、統合したデータベースの情報を生成しても良い。
【0072】
[動作例]
本実施形態の動作例として、適用した名称データの概要と結果を説明する。
【0073】
図7は、動作例において基礎データベース記憶部1031に記憶される基礎データベース1が保持する情報の一例を示す図である。この基礎データベースから得られる隣接情報は、以下の通りである。ここで、(A,B)という表記は、データ名Aとデータ名Bとは繋がりがあることを示すものとする。
・(福岡花園ビル、立子山ビル)
・(立子山ビル、福山伊達ビル)
・(福山伊達ビル、桑原ビル)
・(桑原ビル、福井藤田ビル)
・(福井藤田ビル、福地梁川ビル)
・(福地梁川ビル、保科ビル)
・(保科ビル、恐山ビル)
・(保科ビル、福岡花園ビル)
・(恐山ビル、福岡花園ビル)
・(恐山ビル、月舘ビル)
・(月舘ビル、福島川俣ビル)
・(福島川俣ビル、福岡花園ビル)
【0074】
図8は、動作例において派生データベース記憶部1032に記憶される派生データベース2が保持する情報の一例を示す図である。この派生データベースから得られる隣接情報は、以下の通りである。この隣接情報のパスがΓ
kであり、本動作例で扱うパスは一本なのでk=1とする。ここで、(A→B)という表記は、データ名Aからデータ名Bへパスがあることを示すものとする。
・(花園ビル→伊達ビル)
・(伊達ビル→桑原ビル)
・(桑原ビル→藤田ビル)
・(藤田ビル→梁川ビル)
・(梁川ビル→保科ビル)
・(保科ビル→恐山ビル)
・(恐山ビル→月館ビル)
・(月館ビル→川俣ビル)
・(川俣ビル→花園ビル)
【0075】
この動作例では、パスID=2の名称データに関して、頂点集合Vc及びVdは、以下の通りである。
Vc={福岡花園ビル、立子山ビル、福山伊達ビル、桑原ビル、福井藤田ビル、福地梁川ビル、保科ビル、恐山ビル、月舘ビル、福島川俣ビル}
Vd={花園ビル、伊達ビル、桑原ビル、藤田ビル、梁川ビル、保科ビル、恐山ビル、月館ビル、川俣ビル}
【0076】
そして、名称データの正確な表記の組み合わせ、すなわち名称データの対応付けは、この動作例では、次の通りである。
{(月舘ビル、月館ビル),(福島川俣ビル、川俣ビル),(福岡花園ビル、花園ビル),(福山伊達ビル、伊達ビル),(福井藤田ビル、藤田ビル),(福地梁川ビル、梁川ビル)}
【0077】
実施形態に係る名称データ対応付け装置がこの対応付けを正しく行うことができるか確認した。
【0078】
名称データ対応付け装置のプロセッサ101は、ステップS1において、グラフ作成部3としての動作を実施し、閉路グラフを作成する。
図9は、動作例において基礎データベース1が保持する情報から作成された閉路グラフG
dの一例を示す模式図である。
【0079】
また、プロセッサ101は、ステップS2において、共通データ抽出部4としての動作を実施し、閉路グラフGcと閉路グラフGdとで共通する名称データを抽出する。ここで、同一表記であるような名称データつまりビル名集合Sは、以下の通りである。
S :={桑原ビル、保科ビル、恐山ビル}
【0080】
そこで、プロセッサ101は、ステップS3において、パス情報抽出部5としての動作を実施して派生データベース2からパス情報を抽出し、ステップS4において、パス作成部6としての動作を実施して部分パスを抽出する。
図10は、動作例において派生データベース2が保持する情報から作成された閉路グラフG
cから生成されたパスΓ1の一例を示す模式図である。プロセッサ101は、閉路グラフG
cからビル名集合Sの各要素を端点とする部分パス
【0081】
【0082】
を抽出する。
L1
1 :=(桑原ビル、藤田ビル、梁川ビル、保科ビル)
L1
2 :=(保科ビル、恐山ビル)
L1
3 :=(恐山ビル、月館ビル、川俣ビル、花園ビル、伊達ビル、桑原ビル)
【0083】
そして、プロセッサ101は、ステップS5において、部分パスL1
1について、閉路グラフGd上で、「桑原ビル」と「保科ビル」を端点に持つ、長さ3以上、3+x以下のパスを数え上げる。
【0084】
今回は動作例のため、パラメータx=1とする。すると、
長さ3: (桑原ビル、福井藤田ビル、福地梁川ビル、保科ビル)
長さ4: (桑原ビル、福山伊達ビル、立子山ビル、福岡花園ビル、保科ビル)
となる。
【0085】
長さ3の場合について、数え上げたパスと部分パスL1
1との対応する頂点名を組合せると、
(福井藤田ビル、藤田ビル)、(福地梁川ビル、梁川ビル)
の候補を得る。
【0086】
長さ4の場合は、どの組み合わせも編集距離が1であるので、
「藤田ビル」に対し、候補:「福山伊達ビル」、「立子山ビル」、「福井藤田ビル」
「梁川ビル」に対し、候補:「福岡花園ビル」、「立子山ビル」、「福地梁川ビル」
が考えられる。
【0087】
部分パスL1
2については、長さ1なので、省略する。
【0088】
部分パスL1
3について、プロセッサ101は、閉路グラフGd上で、「恐山ビル」と「桑原ビル」を端点に持つ、長さ5以上、5+x=6以下のパスを数え上げる。すると、
長さ5:該当なし
長さ6:(恐山ビル、月舘ビル、福島川俣ビル、福岡花園ビル、立子山ビル、福山伊達ビル、桑原ビル)
を得る。
【0089】
長さ6のパスから、部分パスL1
3の各頂点と編集距離が最短である点を選択すると、
(月舘ビル、月館ビル)、(福島川俣ビル、川俣ビル)、(福岡花園ビル、花園ビル)、(福山伊達ビル、伊達ビル)
の候補を得る。
【0090】
以上より、候補数が1つである組み合わせ=回答、とするので、
(月舘ビル、月館ビル)、(福島川俣ビル、川俣ビル)、(福岡花園ビル、花園ビル)、(福山伊達ビル、伊達ビル)
は回答となる。
【0091】
そして、この「花園ビル」と「伊達ビル」の回答から、「藤田ビル」及び「梁川ビル」の候補は、
「藤田ビル」に対し、候補:「立子山ビル」、「福井藤田ビル」
「梁川ビル」に対し、候補:「立子山ビル」、「福地梁川ビル」
になる。ここで、「福岡花園ビル」と「福山伊達ビル」の候補がなくなったことから、
パス:(桑原ビル、福山伊達ビル、立子山ビル、福岡花園ビル、保科ビル)
は、部分パスL1
1の閉路グラフGdにおける対応パスにはなりえない。よって、「藤田ビル」及び「梁川ビル」の候補から「立子山ビル」も除外されるので、
(福井藤田ビル、藤田ビル)、(福地梁川ビル、梁川ビル)
を回答として得る。
【0092】
その後、プロセッサ101は、データメモリ103の一時記憶部1033に記憶された上記対応付けの結果に基づいて出力情報を生成し、データメモリ103の出力情報記憶部1034に記憶させる。
図11は、この出力情報記憶部1034に記憶される出力情報の一例を示す図である。なお、ここでは、出力情報を名称データの対応関係を表す対応表として示しているが、これに限定されないことは勿論である。
【0093】
以上より、名称データ対応付け装置により、部分パスを使用することで、正確な名称データの対応付けが可能であることが検証できた。
【0094】
[他の実施形態]
前記一実施形態では、対象とするデータベースも2つの場合を例に説明したが、3つ以上であっても良い。すなわち、3つ以上のデータベースのうち、少なくとも1つのデータベースがパス識別情報を保持していれば、残りの2つ以上のデータベースとの間で名称データの対応付けを行うことが可能となる。
【0095】
また、前記一実施形態では、パスを例に説明したが、パスではなく閉路である場合(始点と終点が同一の頂点)であっても対応可能なことは勿論である。
【0096】
また、前記一実施形態では、データメモリ103の基礎データベース記憶部1031及び派生データベース記憶部1032に基礎データベース1及び派生データベース2が保持する情報の全部または一部を記憶して処理を進める例を説明したが、それに限定するものではない。プロセッサ101は、通信インタフェース104により外部のデータサーバに適宜アクセスして、そこに構築された基礎データベース1及び派生データベース2に蓄積されている情報を使用して処理を進め、各ステップの処理結果のみを一時記憶部1033に記憶するようにしても良い。これにより、名称データ対応付け装置が備えるデータメモリ103の容量を抑えることができ、安価に名称データ対応付け装置を構成することが可能となる。
【0097】
また、前記一実施形態では、出力情報を生成して、表示部108または外部のデータ処理装置に出力する例を説明したが、出力情報を生成することなく、一時記憶部1033に記憶した対応付け結果を出力するようにしても良い。これにより、名称データ対応付け装置が備えるデータメモリ103の容量を抑えることができ、安価に名称データ対応付け装置を構成することが可能となる。また、データベースの統合処理を行うデータ処理装置に対して、名称データの対応付けのみを行うサービスを提供することが可能となる。
【0098】
また、各実施形態に記載した手法は、計算機(コンピュータ)に実行させることができるプログラム(ソフトウェア手段)として、例えば磁気ディスク(フロッピー(登録商標)ディスク、ハードディスク等)、光ディスク(CD-ROM、DVD、MO等)、半導体メモリ(ROM、RAM、フラッシュメモリ等)等の記録媒体に格納し、また通信媒体により伝送して頒布することもできる。なお、媒体側に格納されるプログラムには、計算機に実行させるソフトウェア手段(実行プログラムのみならずテーブル、データ構造も含む)を計算機内に構成させる設定プログラムをも含む。本装置を実現する計算機は、記録媒体に記録されたプログラムを読み込み、また場合により設定プログラムによりソフトウェア手段を構築し、このソフトウェア手段によって動作が制御されることにより上述した処理を実行する。なお、本明細書でいう記録媒体は、頒布用に限らず、計算機内部あるいはネットワークを介して接続される機器に設けられた磁気ディスク、半導体メモリ等の記憶媒体を含むものである。
【0099】
要するに、この発明は上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は可能な限り適宜組合せて実施しても良く、その場合組合せた効果が得られる。さらに、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適当な組み合わせにより種々の発明が抽出され得る。
【符号の説明】
【0100】
1…基礎データベース
2…派生データベース
3…グラフ作成部
4…共通データ抽出部
5…パス情報抽出部
6…パス作成部
7…対応付け部
8…データ出力部
101…プロセッサ
102…プログラムメモリ
103…データメモリ
104…通信インタフェース
105…入出力インタフェース
106…バス
107…入力部
108…表示部
1031…基礎データベース記憶部
1032…派生データベース記憶部
1033…一時記憶部
1034…出力情報記憶部