(57)【特許請求の範囲】
【請求項１】
データセットのレコードを検索するための構造データを生成する構造データ生成装置であって、
前記データセットに含まれる属性及び当該属性の組み合わせについて、当該データセットの各レコードの属性値を特定文字列に置換した新たなレコードを、当該データセットに追加して新たなデータセットを生成する生成部と、
前記新たなデータセットに対応する検索用の木構造データを構築する構築部と、を備える構造データ生成装置。
【請求項２】
請求項１に記載の構造データ生成装置により生成された前記木構造データを用いて、前記データセットのレコードを検索する検索装置であって、
前記データセットに含まれる属性又は当該属性の組み合わせからなる検索キーの入力を受け付ける入力部と、
前記検索キーに含まれない属性を前記特定文字列として当該検索キーに挿入した、前記データセットに含まれる全ての属性の連結文字列によって、前記木構造データを検索する検索部と、を備える検索装置。
【請求項３】
データセットのレコードを検索するための構造データをコンピュータが生成する構造データ生成方法であって、
前記データセットに含まれる属性及び当該属性の組み合わせについて、当該データセットの各レコードの属性値を特定文字列に置換した新たなレコードを、当該データセットに追加して新たなデータセットを生成する生成ステップと、
前記新たなデータセットに対応する検索用の木構造データを構築する構築ステップと、を前記コンピュータが実行する構造データ生成方法。
【請求項４】
データセットのレコードを検索するための構造データをコンピュータに生成させるための構造データ生成プログラムであって、
前記データセットに含まれる属性及び当該属性の組み合わせについて、当該データセットの各レコードの属性値を特定文字列に置換した新たなレコードを、当該データセットに追加して新たなデータセットを生成する生成ステップと、
前記新たなデータセットに対応する検索用の木構造データを構築する構築ステップと、を前記コンピュータに実行させるための構造データ生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、木構造を用いてデータセットを検索するための装置、方法及びプログラムに関する。
【背景技術】
【０００２】
従来、集合（データセット）内から文字列を検索するためのデータ構造として、木構造が用いられることが多い。木構造の一種である基数木（Ｒａｄｉｘ  Ｔｒｅｅ）を用いて文字列を検索する場合、レコード内の検索したい文字列に対応した一部の文字列を抜き取って基数木が構築される（例えば、非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Ａ．  Ｂａｓｕ，  Ｔ．  Ｎａｋａｍｕｒａ，  Ｓ．  Ｈｉｄａｎｏ  ａｎｄ  Ｓ．  Ｋｉｙｏｍｏｔｏ，  ｋ−ａｎｏｎｙｍｉｔｙ：  ｒｉｓｋｓ  ａｎｄ  ｔｈｅ  ｒｅａｌｉｔｙ，  Ａｃｃｅｐｔｅｄ  ｆｏｒ  ｐｕｂｌｉｃａｔｉｏｎ  ｉｎ  ｔｈｅ  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｒｅｃｅｎｔ  Ａｄｖａｎｃｅｓ  ｏｆ  Ｔｒｕｓｔ，  Ｓｅｃｕｒｉｔｙ  ａｎｄ  Ｐｒｉｖａｃｙ  ｉｎ  Ｃｏｍｐｕｔｉｎｇ  ａｎｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  （ＲＡＴＳＰ，  ｃｏｌｌｏｃａｔｅｄ  ｗｉｔｈ  ｔｈｅ  ＩＥＥＥ  ＴｒｕｓｔＣｏｍ），  Ｈｅｌｓｉｎｋｉ，  ２０１５．
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、基数木を用いて検索する場合、検索対象のデータセットが同一であったとしても、検索するデータの属性が異なれば、その都度、属性に合わせた基数木を構築する必要があった。
【０００５】
例えば、図６のように場所、年齢、性別を属性（カラム）として持つデータセットに対して検索を行う場合を説明する。
属性の組み合わせが「東京」、「２５−３０」、「男」のレコードの件数を得る場合、図７のように３つの属性値を連結した文字列に基づいて基数木を構築した後、４番目のリーフノードに割り振られたレコード件数を確認する。また、属性の組み合わせが「愛媛」、「女」のレコードの件数を得る場合、図８のように２つの属性値を連結した文字列に基づいて図７とは異なる基数木を構築した後、２番目のリーフノードに割り振られたレコード件数を確認する。
【０００６】
このように、異なる属性の組み合わせで検索を繰り返す場合、基数木の構築処理が繰り返し実行されることになるため、高速処理が難しかった。
【０００７】
本発明は、高速にデータセットを繰り返し検索できる構造データ生成装置、検索装置、構造データ生成方法及び構造データ生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る構造データ生成装置は、データセットのレコードを検索するための構造データを生成する構造データ生成装置であって、前記データセットに含まれる属性及び当該属性の組み合わせについて、当該データセットの各レコードの属性値を特定文字列に置換した新たなレコードを、当該データセットに追加して新たなデータセットを生成する生成部と、前記新たなデータセットに対応する検索用の木構造データを構築する構築部と、を備える。
【０００９】
本発明に係る検索装置は、前記構造データ生成装置により生成された前記木構造データを用いて、前記データセットのレコードを検索する検索装置であって、前記データセットに含まれる属性又は当該属性の組み合わせからなる検索キーの入力を受け付ける入力部と、前記検索キーに含まれない属性を前記特定文字列として当該検索キーに挿入した、前記データセットに含まれる全ての属性の連結文字列によって、前記木構造データを検索する検索部と、を備える。
【００１０】
本発明に係る構造データ生成方法は、データセットのレコードを検索するための構造データをコンピュータが生成する構造データ生成方法であって、前記データセットに含まれる属性及び当該属性の組み合わせについて、当該データセットの各レコードの属性値を特定文字列に置換した新たなレコードを、当該データセットに追加して新たなデータセットを生成する生成ステップと、前記新たなデータセットに対応する検索用の木構造データを構築する構築ステップと、を前記コンピュータが実行する。
【００１１】
本発明に係る構造データ生成プログラムは、データセットのレコードを検索するための構造データをコンピュータに生成させるための構造データ生成プログラムであって、前記データセットに含まれる属性及び当該属性の組み合わせについて、当該データセットの各レコードの属性値を特定文字列に置換した新たなレコードを、当該データセットに追加して新たなデータセットを生成する生成ステップと、前記新たなデータセットに対応する検索用の木構造データを構築する構築ステップと、を前記コンピュータに実行させる。
【発明の効果】
【００１２】
本発明によれば、高速にデータセットを繰り返し検索できる。
【図面の簡単な説明】
【００１３】
【図１】実施形態に係る検索システムの構成を示すブロック図である。
【図２】実施形態に係る生成部により生成される新たなデータセットを例示する図である。
【図３】実施形態に係る構築部により生成される基数木を例示する図である。
【図４】実施形態に係る検索システムにおける処理の流れを示すフローチャートである。
【図５】実施形態に係る検索装置による検索時のデータセットの変換例を示す図である。
【図６】データセットを例示する図である。
【図７】データセットに基づく基数木の第１の例を示す図である。
【図８】データセットに基づく基数木の第２の例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態の一例について説明する。
図１は、本実施形態に係る検索システム１の構成を示すブロック図である。
【００１５】
本実施形態に係る検索システム１は、データセットのレコードを検索するための構造データを生成する構造データ生成装置１０と、生成された構造データを用いて、データセットのレコードを検索する検索装置２０とを備える。
なお、本実施形態では、検索システム１は、構造データとして基数木を用いることとするが、これには限られない。
【００１６】
構造データ生成装置１０は、生成部１１と、構築部１２とを備える。
生成部１１は、データセットに含まれる属性及び属性の組み合わせについて、このデータセットの各レコードの属性値を特定文字列に置換した新たなレコードを、元のデータセットに追加して新たなデータセットを生成する。
特定文字列は、例えば「＊」等、データセットに含まれる属性値と区別できる文字列である。
【００１７】
図２は、本実施形態に係る生成部１１により生成される新たなデータセットを例示する図である。
ここでは、符号Ａで示す図６と同一のデータセットに対して、符号Ｂで示す新たなレコードが追加されている。
【００１８】
具体的には、生成部１１は、元レコードそれぞれについて、属性の組み合わせを特定文字列（例えば、「＊」）に置換した複数の新たなレコードを追加する。
例えば、「愛知／２１−２４／男」から、複数の新たなレコード「愛知／２１−２４／＊」、「愛知／＊／男」、「＊／２１−２４／男」、「愛知／＊／＊」、「＊／２１−２４／＊」、「＊／＊／男」が生成される。
【００１９】
構築部１２は、新たなデータセットに対応する検索用の木構造データとして、基数木を構築する。
【００２０】
図３は、本実施形態に係る構築部１２により生成される基数木を例示する図である。
生成部１１により生成された新たなデータセット（図２）は、特定文字列「＊」で名寄せすると、元のデータセット（図２のＡ）に比べて、該当の属性の値を問わずに他の属性の値でグループ化したレコード数が新たに追加されている（図２のＢ）。
【００２１】
したがって、構築部１２は、この新たなデータセット（図２）を用いて基数木を構築することにより、図３のように、特定文字列をワイルドカードとした検索用の木構造データを生成できる。
【００２２】
この例では、「愛知／２１−２４／男」（１）のように、全属性の値を検索キーとした検索結果（レコード数）の他、例えば、「愛媛／２１−２４／＊」（６）、「東京／＊／＊」（１７）、「＊／２５−３０／＊」（２３）のように、いずれかの属性をワイルドカードとした検索キーによる検索結果（レコード数）が単一の基数木から得られる。
【００２３】
検索装置２０は、入力部２１と、検索部２２とを備える。
入力部２１は、データセットに含まれる属性又は属性の組み合わせからなる検索キーの入力を受け付ける。
例えば、入力部２１は、「愛知／２１−２４／男」のような全属性の組み合わせの他、「愛知」、「２１−２４」、「男」のような単一の属性、又は「愛知／２１−２４」、「愛媛／女」、「２５−３０／男」のような属性の組み合わせを、入力として受け付ける。
【００２４】
検索部２２は、入力された検索キーに含まれない属性を特定文字列として検索キーに挿入した、データセットに含まれる全ての属性の連結文字列によって、木構造データを検索する。
具体的には、例えば、性別の属性が含まれない場所及び年齢のような属性の組み合わせが検索キーとして入力された場合、検索部２２は、性別の属性があるべき３番目の位置に特定文字列「＊」を挿入した連結文字列（例えば、「愛知２１−２４＊」）によって基数木を検索する。そして、検索部２２は、性別の属性をワイルドカードとした検索結果として、場所及び年齢の属性値が同一のレコード数を得る。
【００２５】
図４は、本実施形態に係る検索システム１における処理の流れを示すフローチャートである。
本処理では、検索システム１は、データセットに含まれる複数の属性のうち、指定された属性の組み合わせの値が同一であるレコード数を、各レコードの匿名性を示す指標として検索する。
【００２６】
ステップＳ１において、構造データ生成装置１０（生成部１１）は、処理対象となるデータセットの入力を受け付ける。
【００２７】
ステップＳ２において、構造データ生成装置１０（生成部１１）は、入力されたデータセットに対して特定文字列を用いたレコードを追加し、新たなデータセットを生成する。
【００２８】
ステップＳ３において、構造データ生成装置１０（構築部１２）は、生成された新たなデータセットに基づいて、検索用の木構造データである基数木を生成する。
【００２９】
ステップＳ４において、検索装置２０（入力部２１）は、検索キーとして検索対象とする属性の組み合わせの入力を受け付ける。
【００３０】
ステップＳ５において、検索装置２０（検索部２２）は、ステップＳ１で入力された元のデータセットの各レコードに対して、検索対象外の属性の位置に特定文字列を挿入した連結文字列を生成する。
このとき、検索部２２は、元のデータセットに含まれる複数の属性のうち、検索に不要な属性の値を特定文字列に変換、又は読み替えることにより、各レコードから検索用の連結文字列を取得する。
【００３１】
図５は、本実施形態に係る検索装置２０による検索時のデータセットの変換例を示す図である。
この例では、場所及び年齢の属性値が同一のレコード数を検索する場合を示しており、検索に不要な性別の属性値が全て特定文字列「＊」に変換されている。
【００３２】
ステップＳ６において、検索装置２０（検索部２２）は、ステップＳ５で生成された連結文字列を用いて基数木を検索し、元のデータセットの全レコードに対して順に検索結果を出力する。
【００３３】
ステップＳ７において、検索装置２０は、検索処理を終了するか否かを判定する。この判定がＮＯの場合、処理はステップＳ４に戻り、検索装置２０は、新たな検索キーの入力を受け付ける。この場合、検索装置２０は、既に生成済みの基数木を用いて検索が可能であり、構造データ生成装置１０による処理（ステップＳ１〜Ｓ３）は不要である。
【００３４】
本実施形態によれば、検索システム１は、検索キーが異なる複数の検索が想定される場合に、検索対象のデータセットについて、これら異なる検索キーのいずれにも対応した基数木を、検索前に一度だけ構築する。したがって、検索システム１は、検索の都度、基数木を構築することなく、全属性及び任意の一部の属性を対象として高速にデータセットを繰り返し検索できる。
また、検索システム１は、データセットの属性値を特定文字列に置き換えることで、既存の検索アルゴリズムを利用して容易に基数木の構築、及び検索処理を実行できる。
【００３５】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。
【００３６】
本実施形態では、検索システム１は、構造データ生成装置１０及び検索装置２０が独立に設けられた構成として説明したが、これには限られず、単一の情報処理装置が構造データ生成装置１０及び検索装置２０の機能を備えた構成であってもよい。
【００３７】
検索システム１による構造データ生成方法及び検索方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置（構造データ生成装置１０及び検索装置２０）にインストールされる。また、これらのプログラムは、ＣＤ−ＲＯＭのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したＷｅｂサービスとしてユーザのコンピュータ（構造データ生成装置１０及び検索装置２０）に提供されてもよい。
【符号の説明】
【００３８】
１  検索システム
１０  構造データ生成装置
１１  生成部
１２  構築部
２０  検索装置
２１  入力部
２２  検索部
【図１】
0006509719.tif 000002
【図２】
0006509719.tif 000003
【図３】
0006509719.tif 000004
【図４】
0006509719.tif 000005
【図５】
0006509719.tif 000006
【図６】
0006509719.tif 000007
【図７】
0006509719.tif 000008
【図８】
0006509719.tif 000009