JP6773115B2 - 類似データ検索装置、類似データ検索方法および記録媒体 - Google Patents

類似データ検索装置、類似データ検索方法および記録媒体 Download PDF

Info

Publication number
JP6773115B2
JP6773115B2 JP2018527568A JP2018527568A JP6773115B2 JP 6773115 B2 JP6773115 B2 JP 6773115B2 JP 2018527568 A JP2018527568 A JP 2018527568A JP 2018527568 A JP2018527568 A JP 2018527568A JP 6773115 B2 JP6773115 B2 JP 6773115B2
Authority
JP
Japan
Prior art keywords
search
inverted index
similarity
data
inverted
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.)
Active
Application number
JP2018527568A
Other languages
English (en)
Other versions
JPWO2018012413A1 (ja
Inventor
潔 山端
潔 山端
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of JPWO2018012413A1 publication Critical patent/JPWO2018012413A1/ja
Application granted granted Critical
Publication of JP6773115B2 publication Critical patent/JP6773115B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/901Indexing; Data structures therefor; Storage structures
    • 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/9032Query formulation
    • G06F16/90324Query formulation using system suggestions
    • G06F16/90328Query formulation using system suggestions using search space presentation or visualization, e.g. category or range presentation and selection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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
    • 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/90335Query processing
    • G06F16/90348Query processing by searching ordered data, e.g. alpha-numerically ordered data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、集合間の類似度に基づき情報を検索する技術に関する。
集合間の類似度に基づき情報を検索する技術が知られている。
例えば、非特許文献1に記載された関連技術は、集合間の類似度に基づいて、類似する文字列を検索する。この関連技術は、検索対象である文字列を、その文字列の特徴を表す情報(例えばtri-gram)を要素として含む集合として扱う。また、この関連技術は、検索対象の文字列から、転置インデックスを作成する。転置インデックスは、集合の要素をキーとして、その要素を含む集合を値として、それらを関連付けた情報である。すなわち、この関連技術における転置インデックスは、文字列の特徴を表す要素をキーとして、その文字列を値として、それらを関連付けた情報となる。そして、この関連技術は、転置インデックスを作成する際に、1つの転置インデックスに含まれる各文字列について、文字列の集合としてのサイズが同一となるように、転置インデックスを分割する。文字列の集合としてのサイズは、要素数を表し、ここでは、文字列から抽出される特徴を表す情報の数である。つまり、分割された1つの転置インデックスを用いて検索可能な各文字列については、その特徴を表す情報の数が同一である。そして、この関連技術は、検索の際に、入力される文字列の集合としてのサイズから、検索対象となる文字列の集合としてのサイズに対する制約を求め、求めた制約を用いて、検索に用いる転置インデックスをあらかじめ絞り込む。これにより、この関連技術は、検索およびその後の精密判定を高速に行う。
また、特許文献1に記載された関連技術も、集合間の類似度に基づいて、類似する文字列を検索する技術である。この関連技術は、非特許文献1と同様に、転置インデックスを、集合のサイズに基づいて分割する。ただし、この関連技術は、1つの転置インデックスに含まれる各文字列について、文字列の集合としてのサイズが同一であることを要求しない。この関連技術は、1つの転置インデックスに含める文字列の数の最小値を指定することによって、転置インデックスを分割する。これにより、この関連技術は、転置インデックスの数が増えすぎる、又は、転置インデックスに含まれる検索対象データの数が偏って検索処理が非効率になる、という非特許文献1の課題を解決している。
また、非特許文献2に記載された関連技術は、編集距離が所定の閾値以下となる文字列を検索するという問題を、検索条件となる文字列と、検索対象となる文字列と、のそれぞれから作成したシグネチャ集合のオーバーラップ問題として定式化することで、その問題を解く技術である。シグネチャとは、解候補を生成するための要素である。この関連技術は、検索対象となる文字列から得たシグネチャ集合をもとに、転置インデックスを作成する。ここで、検索条件である編集距離の閾値は、問題の性質上、非負の整数である。閾値が変わると、シグネチャ集合が変わることから、転置インデックスを作成し直す必要がある。この問題に対して、この関連技術は、シグネチャ集合の要素および編集距離がとり得る非負の整数の組をキーとして検索可能な転置インデックスを作成する。具体的には、この関連技術は、検索対象となる集合の要素について、その要素がシグネチャ集合に含まれるようになる最小の編集距離(非負の整数)と、その要素との組をキーとして、その要素が検索可能となるように、転置インデックスに格納する。そして、この関連技術は、検索条件となる文字列から得たシグネチャ集合の各要素と、検索条件として指定された編集距離の閾値以下の各非負の整数との組をキーとして用いて、転置インデックスを検索することにより、解候補の文字列を得る。これにより、この関連技術は、検索条件である閾値が変化する度に転置インデックスを作り直す必要がない。
岡崎直観、辻井潤一, 「集合間類似度に対する簡潔かつ高速な類似文字列検索アルゴリズム」、自然言語処理 Vol.18 No.2、2011年6月、pp.89-117 JIANBIN QIN, WEI WANG, CHUAN XIAO, YIFEI LU, XUEMIN LIN, HAIXUN WANG、"Asymmetric Signature Schemes for Efficient Exact Edit Similarity Query Processing"、ACM Transactions on Database Systems Vol. 38 No. 3、2013年8月、Article 16 8.1
国際公開第2014/136810号
しかしながら、特許文献1及び非特許文献1に記載された関連技術のように、検索対象となる集合のサイズに基づいて検索対象を絞り込むアプローチでは、集合間の類似度の定義によっては、サイズによる絞り込みの効果が十分に得られないことがある。これに対して、非特許文献2に記載された関連技術は、集合のシグネチャに基づいて検索対象を絞り込むアプローチをとり、サイズによる絞り込みが有効でない場合にもある程度、検索を高速化している。しかし、非特許文献2で論じられている類似度である文字列の編集距離は、非負の整数値に限定されている。そのため、非特許文献2に記載された関連技術は、類似度が所定範囲に含まれる任意の実数値をとり得るようなケースについて、そのまま適用することはできない。そのようなケースの一例として、類似度が、集合の要素のウェイトに基づいて計算される非負の実数値である場合が挙げられる。
このような場合、非特許文献2に記載された関連技術は、類似度がとり得る任意の実数値の全てをそれぞれキーとして検索可能な転置インデックスを、あらかじめ生成することになる。また、この関連技術は、検索条件として指定される閾値以下の、類似度がとり得る任意の実数値の全てについて、その実数値をキーとして、そのような転置インデックスを検索することになる。このような転置インデックスの生成は難しく、また、そのような転置インデックスを用いた検索は非効率的である。言い換えれば、非特許文献2に記載された関連技術を用いた場合、類似度が所定範囲の任意の実数値を取り得るケースでは、妥当な転置インデックス群を用いて検索を行うことが難しい。
本発明は、上述の課題を解決するためになされたものである。すなわち、本発明は、集合間の類似度に基づく検索において、類似度が任意の実数値をとり得る場合でも、類似度の閾値の変化に応じて作り直す必要がない転置インデックス群を用いて、より高速に検索を行う技術を提供することを目的とする。
本発明の一態様に係る類似データ検索装置は、集合としての検索条件データに類似する集合としての検索対象データを集合間の類似度に基づき検索する際に用いられ、集合間が類似していると判断する類似度の閾値の範囲に対してそれぞれ有効となり、少なくとも1つの転置インデックスが有効となる上記閾値の範囲の一部または全部が他の少なくとも1つの転置インデックスが有効となる上記閾値の範囲に含まれない複数の転置インデックスを記憶する転置インデックス記憶部と、検索時に指定される類似度の閾値、および、各上記転置インデックスが有効となる上記閾値の範囲に基づいて、上記複数の転置インデックスのうち検索用の転置インデックスを選択する転置インデックス選択部と、上記検索用の転置インデックスを用いて、上記検索条件データに類似する上記検索対象データを検索するデータ検索部と、を備える。
また、本発明の一態様に係る類似データの検索方法は、コンピュータ装置が、集合としての検索条件データに類似する集合としての検索対象データを集合間の類似度に基づき検索する際に用いられ、集合間が類似していると判断する類似度の閾値の範囲に対してそれぞれ有効となり、少なくとも1つの転置インデックスが有効となる上記閾値の範囲の一部または全部が他の少なくとも1つの転置インデックスが有効となる上記閾値の範囲に含まれない複数の転置インデックスを用いて、検索時に指定される類似度の閾値、および、各上記転置インデックスが有効となる上記閾値の範囲に基づいて、上記複数の転置インデックスのうち検索用の転置インデックスを選択し、上記検索用の転置インデックスを用いて、上記検索条件データに類似する上記検索対象データを検索する。
また、本発明の一態様に係る類似データの検索プログラムは、集合としての検索条件データに類似する集合としての検索対象データを集合間の類似度に基づき検索する際に用いられ、集合間が類似していると判断する類似度の閾値の範囲に対してそれぞれ有効となり、少なくとも1つの転置インデックスが有効となる上記閾値の範囲の一部または全部が他の少なくとも1つの転置インデックスが有効となる上記閾値の範囲に含まれない複数の転置インデックスを用いて、検索時に指定される類似度の閾値、および、各上記転置インデックスが有効となる上記閾値の範囲に基づいて、上記複数の転置インデックスのうち検索用の転置インデックスを選択する転置インデックス選択処理と、上記検索用の転置インデックスを用いて、上記検索条件データに類似する上記検索対象データを検索するデータ検索処理と、をコンピュータ装置に実行させる。
また、上記目的は、本発明の一態様に係る類似データの検索プログラムが記録された記録媒体によっても達成され得る。
本発明は集合間の類似度に基づく検索において、類似度が実数値をとり得る場合でも、類似度の閾値の変化に応じて作り直す必要ない転置インデックス群を用いて、より高速に検索を行う技術を提供することができる。
本発明の第1の実施の形態としての類似データ検索装置の機能ブロックの構成を示す図である。 本発明の第1の実施の形態としての類似データ検索装置のハードウェア構成の一例を示す図である。 本発明の第1の実施の形態としての類似データ検索装置が行う検索に関する動作を説明するフローチャートである。 本発明の第2の実施の形態としての類似データ検索装置の機能ブロックの構成を示す図である。 本発明の第2の実施の形態としての類似データ検索装置が転置インデックスを生成する動作を説明するフローチャートである。 本発明の第2の実施の形態としての類似データ検索装置が行う検索に関する動作を説明するフローチャートである。 本発明の第2の実施の形態の具体例における検索対象データおよび要素ウェイトデータの一例を示す図である。 本発明の第2の実施の形態の具体例において検索対象データの1つから生成される三つ組の一例を示す図である。 本発明の第2の実施の形態の具体例において検索対象データの他の1つから生成される三つ組の一例を示す図である。 本発明の第2の実施の形態の具体例において検索対象データのさらに他の1つから生成される三つ組の一例を示す図である。 本発明の第2の実施の形態の具体例において検索対象データのさらに他の1つから生成される三つ組の一例を示す図である。 本発明の第2の実施の形態の具体例において生成される三つ組の一覧を示す図である。 本発明の第2の実施の形態の具体例において生成される転置インデックスの例を示す図である。 本発明の第2の実施の形態の具体例において生成される転置インデックスの他の例を示す図である。 本発明の第2の実施の形態の具体例において検索対象データと検索条件データとの類似度を示す図である。 本発明の第2の実施の形態の具体例において実行される検索について説明する図である。 本発明の第3の実施の形態としての類似データ検索装置の機能ブロックの構成を示す図である。 本発明の第3の実施の形態としての類似データ検索装置が行う検索に関する動作を説明するフローチャートである。
以下、本発明の各実施の形態について説明する。
(第1の実施の形態)
本発明の第1の実施の形態について図面を参照して詳細に説明する。本発明の第1の実施の形態としての類似データ検索装置1は、検索条件データおよび検索対象データをそれぞれ集合として扱う。類似データ検索装置1は、集合としての検索条件データ(ある検索条件データを表す集合)に類似する、集合としての検索対象データ(ある検索対象データを表す集合)を、集合間の類似度に基づき検索する装置である。例えば、検索条件データおよび検索対象データは、単語列であってもよい。この場合、単語列は、単語を要素とみなした場合の、単語の集合である。この場合、集合としての検索条件データは、例えば、検索条件データを表す単語列に含まれる単語の集合であってもよい。また、この場合、集合としての検索対象データは、例えば、検索対象データを表す単語列に含まれる単語の集合であってもよい。ただし、検索条件データおよび検索対象データは、単語列に限定されず、集合として扱うことが可能なデータであればよい。
[構成の説明]
類似データ検索装置1の機能ブロックの構成を図1に示す。図1において、類似データ検索装置1は、転置インデックス記憶部11と、転置インデックス選択部12と、データ検索部13とを備える。また、類似データ検索装置1は、検索対象データ記憶装置91と通信可能に接続される。検索対象データ記憶装置91は、1つ以上の検索対象データを記憶している。各検索対象データは、1つ以上の要素を含む集合とみなすことができるデータである。
ここで、類似データ検索装置1は、図2に示すようなハードウェア要素によって構成可能である。図2において、類似データ検索装置1は、CPU(Central Processing Unit)1001、メモリ1002、出力装置1003、入力装置1004、および、通信インタフェース1005を含むコンピュータ装置によって構成される。メモリ1002は、RAM(Random Access Memory)、ROM(Read Only Memory)、補助記憶装置(ハードディスク等)等によって構成される。メモリ1002には、コンピュータ装置を類似データ検索装置1として動作させるためのコンピュータ・プログラムおよび各種データが格納される。出力装置1003は、ディスプレイ装置やプリンタ等のように、情報を出力する装置によって構成される。入力装置1004は、キーボードやマウス等のように、ユーザ操作の入力を受け付ける装置によって構成される。通信インタフェース1005は、検索対象データ記憶装置91との通信を可能とするインタフェースである。この場合、転置インデックス記憶部11は、メモリ1002によって構成される。また、転置インデックス選択部12は、入力装置1004と、メモリ1002に格納されるコンピュータ・プログラムを読み込んで実行するCPU1001とによって構成される。また、データ検索部13は、出力装置1003と、入力装置1004と、通信インタフェース1005と、メモリ1002に格納されるコンピュータ・プログラムを読み込んで実行するCPU1001とによって構成される。なお、類似データ検索装置1およびその各機能ブロックのハードウェア構成は、上述の構成に限定されない。
次に、類似データ検索装置1の各機能ブロックの詳細について説明する。
転置インデックス記憶部11は、複数の転置インデックスを記憶する。複数の転置インデックスは、集合としての検索条件データに類似する、集合としての検索対象データを、集合間の類似度に基づき検索する際に用いられるように構成されたインデックスである。なお、類似度は、2つの集合が類似する程度を表す情報である。各転置インデックスは、類似度の閾値の範囲に対して有効となるよう構成されている。具体的には、各転置インデックスには、その転置インデックスが有効となる類似度の閾値の範囲が関連付けされていてもよい。類似度の閾値は、ある集合の間の類似度がその値以上であれば、それらの集合が類似していると判断される値を表す。つまり、各転置インデックスは、その転置インデックスに関する類似度の閾値の範囲に含まれる類似度の閾値が検索において指定された際に、有効となるよう構成されている。換言すると、類似度の閾値の範囲は、ある転置インデックスが有効となる検索において、その転置インデックスに関する類似度の閾値として指定され得る範囲を表す。以降、類似度の閾値の範囲を、単に閾値の範囲とも記載する。
また、複数の転置インデックスのうちの少なくとも1つの転置インデックスが有効となる閾値の範囲の一部または全部が、他の少なくとも1つの転置インデックスが有効となる閾値の範囲に含まれないように、係る複数の転置インデックスが構成されている。また、検索の際に指定され得る類似度の閾値が、複数の転置インデックスのうちの少なくとも1つの転置インデックスが有効となる範囲に含まれるように、係る複数の転置インデックスが構成されることが望ましい。
また、転置インデックス記憶部11は、各転置インデックスと、その転置インデックスが有効となる閾値の範囲を表す情報と、を関連付けて記憶している。
転置インデックス選択部12は、検索時に指定される類似度の閾値、および、各転置インデックスが有効となる閾値の範囲に基づいて、検索用の転置インデックスを選択する。具体的には、転置インデックス選択部12は、指定された類似度の閾値を含む閾値の範囲に対して有効となる転置インデックスを、検索用の転置インデックスとして選択すればよい。選択される検索用の転置インデックスは、1つであってもよいし複数であってもよい。なお、類似度の閾値は、入力装置1004を介して取得されてもよい。類似度の閾値は、メモリ1002、可搬型記憶媒体、または、ネットワークを介して接続された他の装置から取得されてもよい。
データ検索部13は、検索用の転置インデックスを用いて、検索条件データに類似する検索対象データを検索する。なお、検索条件データは、入力装置1004を介して取得されてもよい。検索条件データは、メモリ1002、可搬型記憶媒体、または、ネットワークを介して接続された他の装置から取得されてもよい。
[動作の説明]
以上のように構成された類似データ検索装置1が行う検索に関する動作を図3に示す。
図3において、まず、類似データ検索装置1は、類似度の閾値および検索条件データを取得する(ステップA1)。
次に、転置インデックス選択部12は、取得した類似度の閾値、および、各転置インデックスが有効となる閾値の範囲に基づいて、複数の転置インデックスのうち、検索用の転置インデックスを選択する(ステップA2)。前述のように、転置インデックス選択部12は、取得した類似度の閾値を含む範囲に対して有効な転置インデックスを、検索用の転置インデックスとして選択すればよい。
次に、データ検索部13は、検索用の転置インデックスを用いて、検索条件データに類似する検索対象データを検索する(ステップA3)。
以上で、類似データ検索装置1が検索を行う動作の説明を終了する。
[効果の説明]
次に、本発明の第1の実施の形態の効果について述べる。
本実施の形態の類似データ検索装置1は、集合間の類似度に基づく検索において、類似度が任意の実数値をとり得る場合でも、類似度の閾値の変化に応じて作り直す必要がない転置インデックス群を用いて、より高速な検索を行うことができる。
その理由は、本実施の形態では、類似データ検索装置1が以下のように構成されているからである。即ち、転置インデックス記憶部11が、複数の転置インデックスを記憶するよう構成されている。複数の転置インデックスは、集合としての検索条件データに類似する、集合としての検索対象データを、集合間の類似度に基づき検索する際に用いられるよう構成されている。また、各転置インデックスには、例えば、集合間が類似していると判断される類似度の閾値の範囲が関連付けされ、各転置インデックスは、関連付けされた類似度の閾値の範囲に対して有効となるよう構成されている。また、少なくとも1つの転置インデックスが有効となる閾値の範囲の一部または全部が、他の少なくとも1つの転置インデックスが有効となる閾値の範囲に含まれないように、各転置インデックスが構成されている。そして、転置インデックス選択部12が、検索の際に指定される類似度の閾値、および、各転置インデックスが有効となる閾値の範囲に基づいて、複数の転置インデックスのうち検索用の転置インデックスを選択するよう構成されている。そして、データ検索部13が、検索用の転置インデックスを用いて、検索条件データに類似する検索対象データを検索するよう構成されている。
このように、本実施の形態において、類似データ検索装置1は、類似度の閾値を含む範囲に対して有効となる検索用の転置インデックスを選択することで、検索を実行する。したがって、本実施の形態における類似データ検索装置1は、類似度の閾値として指定される任意の実数値に対して有効な転置インデックスを選択することができ、類似度の閾値が変化しても転置インデックスを作り直す必要がない。また、本実施の形態においては、少なくとも1つの転置インデックスが有効となる閾値の範囲の一部または全部が、他の少なくとも1つの転置インデックスが有効となる閾値の範囲に含まれないように構成されている。このため、選択される検索用の転置インデックスは、全ての転置インデックスの数よりも少ない数に絞り込まれる可能性が高い。その結果、本実施の形態における類似データ検索装置1は、検索時に指定される類似度の閾値に適した有効な検索を、より高速に行うことができる。
(第2の実施の形態)
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。本実施の形態は、本発明の第1の実施の形態に対して、転置インデックス群を生成する構成を追加した具体例について説明する。また、類似度として、集合の各要素に与えられた非負のウェイトにもとづき計算される実数値が定義されている具体例について説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第1の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して、本実施の形態における詳細な説明を省略する。
[構成の説明]
まず、本発明の第2の実施の形態としての類似データ検索装置2の機能ブロック構成を、図4に示す。図4において、類似データ検索装置2は、本発明の第1の実施の形態としての類似データ検索装置1に対して、データ検索部13に替えてデータ検索部23を備える。さらに、類似データ検索装置2は、分割条件取得部24と、転置インデックス生成部25とを備える点が、類似データ検索装置1と異なる。また、類似データ検索装置2は、検索対象データ記憶装置91に替えて、検索対象データ記憶装置92に接続される点が、類似データ検索装置1と異なる。検索対象データ記憶装置92は、検索対象データに加えて、検索対象データの各要素に適用されるウェイトを表す要素ウェイトデータを記憶する。ここで、ウェイトは、非負の実数値である。
なお、類似データ検索装置2およびその各機能ブロックは、図2を参照して説明した本発明の第1の実施の形態と同様のハードウェア要素によって構成可能である。その場合、分割条件取得部24は、入力装置1004と、メモリ1002に記憶されたコンピュータ・プログラムを読み込んで実行するCPU1001とによって構成される。また、転置インデックス生成部25は、通信インタフェース1005と、メモリ1002に記憶されたコンピュータ・プログラムを読み込んで実行するCPU1001とによって構成される。ただし、類似データ検索装置2およびその各機能ブロックのハードウェア構成は、上述の構成に限定されない。
分割条件取得部24は、転置インデックスの分割条件を表す情報を取得する。分割条件は、例えば、閾値の区間に基づいて分割する条件や、各転置インデックスに含まれるエントリ数に基づいて分割する条件等であってもよい。ただし、分割条件の内容は、これらに限定されない。分割条件の詳細については後述する。
転置インデックス生成部25は、分割条件に基づいて、検索対象データから複数の転置インデックスを生成する。転置インデックス生成部25は、転置インデックスを生成する際、検索対象データ記憶装置92に格納された検索対象データおよび要素ウェイトデータを参照する。複数の転置インデックスは、本発明の第1の実施の形態で説明したように、それぞれが、ある類似度の閾値の範囲に対して有効となるよう生成される。また、少なくとも1つの転置インデックスが有効となる閾値の範囲の一部または全部が、他の少なくとも1つの転置インデックスが有効となる閾値の範囲に含まれないように、各転置インデックスが生成される。また、検索の際に指定され得る類似度の閾値が、少なくとも1つの転置インデックスが有効となる範囲に含まれるように、各転置インデックスが構成されることが望ましい。
また、転置インデックス生成部25は、生成した各転置インデックスを表す情報を、その転置インデックスが有効となる閾値の範囲を表す情報と関連付けて、転置インデックス記憶部11に記憶する。
データ検索部23は、検索用の転置インデックスを用いて、検索条件データに類似する可能性があるデータを検索する。例えば、データ検索部23は、集合としての検索条件データの各要素をキーとして用いて、検索用の転置インデックスを検索すればよい。そして、データ検索部23は、検索により得られた検索対象データと、検索条件データとの集合間の類似度を算出し、算出した類似度が、類似度の閾値以上であるものを、検索結果として出力する。
[動作の説明]
以上のように構成された類似データ検索装置2の動作について、図面を参照して説明する。ここでは、動作の説明のために、いくつかの記号を定義する。
まず、検索対象データである集合の族をΣで表す。係る集合の族Σは、検索データの全体を表してもよい。また、ある検索対象データをS(∈Σ)で表す。S自身が集合である。Sの要素をsであらわす。以降、検索対象データである集合Sを、単にS、または、検索対象データSとも記載する。Sの要素である各sを、添字iを用いて表すと、集合Sは、例えば、”S={s}(0≦i≦card(S)−1)”と表現される。”card(S)”は、Sの要素数をあらわす。ただし、この後の説明では、添字範囲の記載は、特に説明が必要な場合を除き省略する。また、sのウェイトをwであらわす。
また、検索条件データをTであらわす。Tも集合である。以降、検索条件データである集合Tを、単にT、または、検索条件データTとも記載する。また、SおよびTの集合間の類似度を、sim(S,T)と表現する。また、検索において類似性を判断する閾値(類似度の閾値)をλと表現する。類似度がλ未満の検索対象データは、検索条件データと類似すると判定されず、類似検索結果に含まれない。一方、類似度がλ以上の検索対象データは、検索条件データと類似すると判定され、類似検索結果に含まれる。
<転置インデックスの生成動作>
類似データ検索装置2が転置インデックスを生成する動作を図5に示す。
図5において、まず、分割条件取得部24は、転置インデックスの分割条件を表す情報を取得する(ステップB21)。
次に、転置インデックス生成部25は、検索対象データ記憶装置92に格納された検索対象データおよび要素ウェイトデータを参照し、ステップB21で得られた分割条件に基づいて、転置インデックス1〜nを生成する。nは2以上の整数である(ステップB22)。
前述のように、ステップB22で生成される転置インデックス1〜nは、それぞれが、ある類似度の閾値の範囲に対して有効となるよう生成される。転置インデックス1〜nは、例えば、それぞれ異なる類似度の閾値の範囲に対して有効となるよう、生成されてもよい。また、少なくとも1つの転置インデックスが有効となる閾値の範囲の一部または全部が、他の少なくとも1つの転置インデックスが有効となる閾値の範囲に含まれないように生成される。また、検索の際に指定され得る類似度の閾値が、複数の転置インデックスのうちの少なくとも1つの転置インデックスが有効となる範囲に含まれるように、複数の転置インデックスが構成されることが望ましい。この場合、例えば、検索の際に指定され得る類似度の閾値が、少なくとも1つの転置インデックスが有効となる範囲と等しい範囲となるように、転置インデックスが構成されてもよい。ステップB22の具体例については後述する。
次に、転置インデックス生成部25は、各転置インデックスを表す情報と、各転置インデックスが有効となる閾値の範囲を表す情報とを関連付けて、転置インデックス記憶部11に格納する(ステップB23)。
例えば、集合間の類似度simの値が[0.0,1.0]であるとする。なお、[x1,x2]とは、x1以上x2以下の実数値を表す。一例として、転置インデックス1〜3を生成することを想定する。この場合、例えば、転置インデックス1は、[0.0,1.0]という閾値の範囲に対して有効となるよう生成されてもよい。また、例えば、転置インデックス2は[0.0,0.8]という閾値の範囲に対して有効となるよう生成されてもよい。また、例えば、転置インデックス3は、[0.0,0.5]という閾値の範囲に対して有効となるよう生成されてもよい。この場合、転置インデックス1が有効となる範囲の一部である、0.8を超えて1.0以下の範囲は、転置インデックス2および転置インデックス3が有効となる範囲に含まれないよう構成されている。また、検索の際に指定され得る類似度の閾値[0.0,1.0]は、少なくとも転置インデックス1が有効となる範囲に含まれるよう構成されている。
以上で、類似データ検索装置2が転置インデックスを生成する動作の説明を終了する。
<転置インデックスを用いた検索動作>
次に、類似データ検索装置2が検索を行う動作を図6に示す。この動作は、類似データ検索装置2が、入力される検索条件データTに対して、sim(S,T)≧λとなる全てのS∈Σを求めて、これを出力する動作である。
図6では、まず、転置インデックス選択部12は、本発明の第1の実施の形態と同様にステップA1を実行し、類似度の閾値λおよび検索条件データを取得する。
次に、転置インデックス選択部12は、本発明の第1の実施の形態と同様にステップA2を実行し、類似度の閾値λに基づいて、検索用の転置インデックスを選択する。
具体的には、転置インデックス選択部12は、有効となる閾値の範囲に閾値λを含む転置インデックスを、検索用の転置インデックスとして選択する。例えば、上記の例で、λ=0.9であるとする。このとき、有効となる閾値の範囲が0.9を含むのは、転置インデックス1のみである。そこで、この場合、転置インデックス選択部12は、転置インデックス1を、検索用の転置インデックスとして選択する。また、λ=0.7であるとする。この場合、有効となる閾値の範囲が0.7を含むのは、転置インデックス1、および、転置インデックス2である。そこで、この場合、転置インデックス選択部12は、これら2つの転置インデックス1および2を、検索用の転置インデックスとして選択する。
次に、データ検索部23は、検索用の転置インデックスを用いて、検索条件データTの各要素vをキーとして検索を行う(ステップA23)。
次に、データ検索部23は、ステップA23で得られた各々のS∈Σに対して、以下のステップA24〜A26を繰り返す。
ここでは、まず、データ検索部23は、SおよびTの類似度sim(S,T)を計算する(ステップA24)。
次に、データ検索部23は、計算した類似度がλ以上であるか(sim(S,T)≧λであるか)否かを判定する(ステップA25)。
ここで、類似度がλ以上であれば(ステップA25でYes)、データ検索部23は、SおよびTが類似していると判断して、そのSを検索結果として出力する(ステップA26)。
一方、類似度がλより小さければ(ステップA25でNo)、データ検索部23は、SおよびTが類似していないと判断して、そのようなSを検索結果に含めない。
以上で、類似データ検索装置2が検索を行う動作の説明を終了する。
このように、類似データ検索装置2は、ステップA2において検索で用いる転置インデックスを絞り込んだうえで、検索(ステップA23)および類似度の計算(ステップA24)を行うことで、検索条件データに類似する検索対象データを決定する。換言すると、類似データ検索装置2は、全ての転置インデックスの中から、検索に用いられる転置インデックスを選択し、選択した転置インデックスを用いて、検索(ステップA23)および類似度の計算(ステップA24)を行う。これにより、類似データ検索装置2は、検索対象データの全てを対象として類似度の計算を行うことで類似性を判断する単純な方法に比べて、高速に類似データを検索可能である。
<転置インデックスの生成動作の詳細>
次に、ステップB22において、複数の転置インデックスを生成する動作の詳細について説明する。上述したような複数の転置インデックスを生成するためには、以下のシグネチャの概念を用いる。
任意の検索対象データS={s}∈Σに対して、類似度λに紐づいたシグネチャsig(S,λ)とは、Sの部分集合であって、次の性質を持つもののことを言う。
sim(S,T)≧λ⇒sig(S,λ)とTとが共通の要素を少なくとも一つ持つ・・・(定義1)
まず、与えられたTに対し、sim(S,T)≧λとなる全てのSを求める問題を解くには、sig(S,λ)の各要素を検索キーとし、Sを検索結果とする転置インデックスをあらかじめ作成しておく。検索条件データTの要素の各々でこの転置インデックスを検索し、得られた全てのS∈Σを対象にsim(S,T)を計算し、sim(S,T)≧λとなるSを出力すれば、sim(S,T)≧λであるような全てのSが求められる。sim(S,T)≧λであるようなSは、上記の定義1から、シグネチャsig(S,λ)から生成された転置インデックスの検索で必ずヒットするからである。特に、sig(S,λ)がSの真部分集合であれば、Sの全要素から検索用の転置インデックスを作成する場合に比べ、転置インデックスに含まれるキーの数が削減される。このため、転置インデックスの検索によるヒット件数が減少し、その後の類似度計算の処理を含めて処理の高速化が期待できる。有効なシグネチャが構成できるかどうかは類似度の具体形によるが、以下では、そのような一例について説明する。
集合Xに対するウェイトWeight(X)を、集合に属する要素のウェイトの和として定義しておく。すなわち、X={x}を集合とし、集合Xに含まれる各要素xのウェイトをwとした場合、Weight(X)=Σwである。ここで、右辺の有限和は、Xの全要素に対するウェイトの和である。
検索条件データTおよび検索対象データSに対して、SとTの類似度sim(S,T)を、次のように定義する。
sim(S,T)=Weight(S∩T)/Weight(S)・・・(定義2)
このとき、定義2の類似度に関して、以下の性質(性質1)が成り立つ。なお、以降の説明において、“Φ”は空集合を表す。
Sの部分集合S⊆Sに対して、Weight(S\S)/Weight(S)<λ(”S\S”は、Sを全体集合とするSの補集合を表す)、かつ、T∩S=Φであれば、sim(S,T)<λ・・・(性質1)
なぜならば、T∩S=Φなので、S∩T=(S\S)∩T であり、下式の関係が成立するからである。
sim(S,T)=Weight(S∩T)/Weight(S)
=Weight((S\S)∩T)/Weight(S)
≦Weight(S\S)/Weight(S)
<λ
上記の対偶をとると、Weight(S\S)/Weight(S)<λであるようなSの部分集合Sは、λに対するSのシグネチャとなっていることがわかる。言い換えれば、sim(S,T)≧λであるためには、T∩S≠Φでなければならない。したがって、各検索対象データSに対して、Weight(S\S)/Weight(S)<λとなるようなSの任意の部分集合Sを選択して、Sの要素をキーとしてSを検索するように転置インデックスが生成されれば良い。こうして生成された転置インデックスは、Weight(S\S)/Weight(S)<λであるような任意のλを閾値とする類似検索に有効である。
ただし、上述の転置インデックスは、閾値λがλ≦Weight(S\S)/Weight(S)の場合には有効でない。なぜならば、この転置インデックスに全くヒットしなくても、入力集合との類似度が閾値以上となって検索結果に含まれるデータが存在する可能性があるためである。
従って、上述の構成をとった場合、閾値が変わるたびに、新しい閾値に応じて転置インデックスを毎回作り直す必要がある。
非特許文献2では、類似度が上限を持つ非負の整数であり、類似度としてとり得る値が限定されている。このため、非特許文献2では、これらの可能な値(類似度としてとり得る値)に対してあらかじめシグネチャを計算しておき、異なる類似度をキーとして同一の検索対象データが検索されないように、転置インデックスを調整しておくことが可能である。これにより、非特許文献2では、新しい閾値に応じて転置インデックスを作り直す必要がないとしている(非特許文献2における8.1 Generic Index Constructionの節を参照)。しかし、本実施の形態のように、類似度が各要素のウェイトに依存する実数値をとる場合、類似度としてとり得る値はきわめて多数にのぼる。このため、非特許文献2のようなアプローチは現実的でない。
そこで、以下に、類似度が各要素のウェイトに依存する実数値をとる場合に、閾値が変わっても再生成の必要がないように転置インデックスを作成する方法(本実施の形態のステップB22の詳細)について説明する。
各々のS∈Σに対して、Sの部分集合の有限族{S}(i=0,・・・n)を、以下を満たすように選択する。
a)S=Φ ⊆S1⊆・・・⊆S=S・・・(条件a)
b)card(Si+1\S )=1・・・(条件b)
言い換えれば、お互いに包含関係にあり(条件a)、要素がひとつずつ増加していく(条件b)、Sの部分集合の族を任意に選択しておく。
さらに、類似度の有限集合{λ}を以下のように定義する。
c)λ=Weight(S\S)/Weight(S)・・・(定義3)
すると、以下が成り立つことは明らかである。
d)λ=1.0>λ1>・・・>λ=0
また、上記c)より、Sは、検索時に指定される類似度の閾値λがλ>λ である場合に有効なSのシグネチャとなっていることがわかる。
Sの任意の要素s∈Sに対して、
Figure 0006773115
であるようなi=i(s)を選択して、要素s、検索対象データS、対応する類似度λi(s)からなる三つ組(s, S, λi(s))を構成しておく・・・(定義4)。
このようなi(s)は、条件aより必ず一つ存在する。このような三つ組みの集合
Figure 0006773115
に対して、以下の性質が成り立つ。
任意のS∈Σと、上記のように構成された三つ組の集合{(s, S, λi(s)) | s∈S}に対して、Sの部分集合S(μ)={s | s∈S and μ≦λi(s)}は閾値μに対するシグネチャである。すなわち、検索条件の集合Tが、sim(S,T)≧μを満たすならば、T∩S(μ) ≠Φである。・・・(性質2)
なぜならば、S(μ)の定義より、μに依存して、あるjが存在して、S(μ)=Sが成り立つ。j=i(t)となるtはt∈S\Sを満たすため、λj=λi(t)<μが成り立ち、sim(S,T)≧μならばsim(S,T) >λでなければならない。その場合、上述の定義3から、S(μ)=SとTは必ず共通の要素を持つのである。
以上のように構成された三つ組(s, S, τ)は、検索キーがs、検索結果がSであり、類似度τが紐づいており、τ以下の閾値が指定された場合に有効となる転置インデックスとみなすことができる。類似度の閾値μが与えられた場合に、μ≦τである全ての三つ組(s, S, τ)を対象として検索を行えば、類似度が閾値μ以上となるデータが漏れなく検索できるのである。
そこで、ステップB22において、転置インデックス生成部25は、分割条件取得部24により取得された分割条件に基づいて、上記のように生成された三つ組全てを複数の転置インデックスに振り分けることにより、各転置インデックスを生成する。各転置インデックスは、含まれる三つ組に紐づく類似度の最大値以下の閾値の範囲に対して有効となる。そこで、転置インデックス生成部25は、各転置インデックスに、その転置インデックスが有効となる範囲を表す情報として、含まれる三つ組に紐づく類似度の最大値を関連付けてもよい。この場合、例えば、ある転置インデックスについて、閾値がこの値(三つ組に紐づく類似度の最大値)以下であれば、その転置インデックスが有効となる。換言すると、ある転置インデックスに関連付けされた類似度が、閾値以上の場合に、その転置インデックスが有効となる。これにより、ステップA2において、転置インデックス選択部12は、関連付けられた類似度が閾値以上の転置インデックスを、検索用の転置インデックスとして選択すればよい。
一例として、転置インデックスの分割条件が、「三つ組に紐付く類似度がとり得る実数値の範囲を、指定数の区間に分割して、それぞれ対応する転置インデックスを生成する」という条件であることを想定する。ここで、説明のための具体例として使用する類似度が、[0.0,1.0]の値をとることを想定する。このとき、例えば、分割条件が、この範囲を5区間に分割する条件であるとする。この場合、転置インデックス生成部25は、(0.0,0.2]、(0.2,0.4]、(0.4,0.6]、(0.6,0.8]、(0.8,1.0]の区間に対応して、5つの転置インデックスを生成する。なお、[x,y]は閉区間(x以上、y以下の範囲)を表し、(x,y]は半開区間(xより真に大きく、y以下の範囲)を表している。例えば、転置インデックス生成部25は、(0.0,0.2]の区間に対応して、紐づく類似度μが0.0<μ≦0.2である全ての三つ組(s,S,μ)を含む転置インデックスを生成すればよい。同様にして、転置インデックス生成部25は、5つの転置インデックス群を生成することができる。各転置インデックスには、例えば、その転置インデックスに含まれる三つ組に紐付けられた類似度の最大値を関連付けられる。検索時に指定される類似度の閾値が、ある転置インデックスに関連付けされた係る類似度の最大値以下である場合、その転置インデックスが有効となる。なお、検索時に指定される類似度の閾値が0.0であるケースは、任意の検索条件入力に対して必ず全データがヒットすることを意味し、検索処理自体が不要であるため、閾値の値として0.0は必ずしも考慮する必要はない。
他の例として、分割条件が、各転置インデックスに含まれるデータ数の最小値M(Mは1以上の整数)を定めた条件であることを想定する。この場合、転置インデックス生成部25は、一つ目の転置インデックスとして、紐づく類似度が[λ,1.0]に含まれる三つ組の総数がM以上となるような、最大のλ=λを求める。そして、転置インデックス生成部25は、紐づく類似度が[λ,1.0]に含まれる三つ組全てを含めて、1つ目の転置インデックスを生成する。また、転置インデックス生成部25は、紐づく類似度が[λ,λ)に含まれる三つ組の総数がM以上となるような、最大のλ=λ1を求める。そして、転置インデックス生成部25は、紐付く類似度が[λ,λ)に含まれる三つ組全てを含めて、2つ目の転置インデックスを生成する。以後、転置インデックス生成部25は、この動作を繰り返すことにより、含まれるデータ数がM以上であるような転置インデックス群を生成することができる。そして、各転置インデックスには、その転置インデックスに含まれる三つ組に紐付く類似度の最大値が関連付けられる。検索時に指定される類似度の閾値が、ある転置インデックスに関連付けされた類似度の最大値以下である場合、その転置インデックスが有効となる。
また、さらなる他の例として、分割条件は、三つ組に紐付く類似度がとり得る実数値の範囲が任意に分割された各区間を指定するような条件であってもよい。また、分割条件は、複数の条件の組み合わせであってもよい。
[動作の具体例の説明]
次に、類似データ検索装置2の動作を、具体的なデータを用いて例示する。
図7は、この具体例において、検索対象データ記憶装置92に記憶される検索対象データと要素ウェイトデータとを示している。
検索対象データとしては、SからSまでの4個の集合が記憶されている。Sは、5つの要素a,b,c,d,eを含む集合である。Sは、3つの要素d,e,fを含む集合である。Sは、3つの要素c,e,fを含む集合である。Sは、2つの要素d,fを含む集合である。また、要素ウェイトデータとしては、SからSまでの4個の集合の各要素について付与されたウェイトが記憶されている。ウェイトは、非負の実数値である。
<転置インデックスの生成動作(具体例)>
次に、図7の検索対象データおよび要素ウェイトデータから、転置インデックス生成部25が転置インデックスを生成する動作を具体的に説明する。
まず、転置インデックス生成部25は、検索対象データS〜Sのそれぞれに対して、前述の条件aおよび条件bを満たすように、部分集合の族を選択する。例えば、図8は、Sに対して選択される部分集合の族の例、および、対応する三つ組みを示している。Sの部分集合SS (1)〜SS (1)は、図示のように、あきらかに条件aおよび条件bを満たしている。第3列の値は、定義3に基づいて計算した類似度λの値である。
この場合、転置インデックス生成部25は、定義4に従って、検索対象データSの各要素に対して三つ組を構成する。構成される三つ組は、図8に示した通りである。例えば、要素dは、SS (1)には含まれていないが、SS (1)には含まれている。そのため、定義4の中で言うところの
Figure 0006773115
は0であり、三つ組の第3要素の値は、SS (1)に対する定義3の値である1.0である。すなわち、三つ組として、(d,S,1.0)が構成される。同様に、要素bは、SS (1)には含まれていないが、SS (1)には含まれている。そのため、定義4の中で言うところの
Figure 0006773115
は1であり、三つ組の第3要素の値は、SS (1)に対する定義3の値である0.559である。すなわち、三つ組として、(b,S,0.559)が構成される。その他の要素についても、同様に、Sの部分集合SS (1)〜SS (1)の情報に基づいて三つ組が構成される。その結果、Sに基づく5つの三つ組は、図8に示すように、(d,S,1.0)、(b,S,0.559)、(a,S,0.338)、(c,S,0.191)、(e,S,0.074)となる。
また、図9は、検索対象データSに対する部分集合の族の例およびこの部分集合の族から求めた三つ組である。図10は、検索対象データSに対する部分集合の族の例およびこの部分集合の族から求めた三つ組である。図11は、検索対象データSに対する部分集合の族の例およびこの部分集合族から求めた三つ組である。
図12に、こうして求めた三つ組の一覧を示す。説明の都合上、類似度の昇順にソートして、各三つ組にIDを付与している。
次に、転置インデックス生成部25は、分割条件取得部24にて取得された分割条件に従って、それぞれが閾値の範囲に対して有効となる複数の転置インデックスを生成する。
ここで、分割条件が、「類似度がとり得る実数値の範囲([0.0,1.0])を均等に5分割することを指定する分割条件X」であることを想定する。図13は、分割条件Xに基づいて生成される転置インデックスを示す図である。この場合、転置インデックス生成部25は、(0.0,0.2]、(0.2,0.4]、(0.4,0.6]、(0.6,0.8]、(0.8,1.0]の区間に対応して、5つの転置インデックスを生成する。
まず、転置インデックス生成部25は、区間(0.0,0.2]に対しては、紐づく類似度がこの範囲に含まれる、ID=1、2、3、4の三つ組を格納した転置インデックスX1を生成する。なお、図13に示した「1:e→S」等は、三つ組をあらわす記法として用いられている。例えば、「1:e→S」は、IDが1、要素がe、集合がSである三つ組をあらわしている。なお、この記法において、三つ組の第3要素の表記は省略されている。
また、転置インデックス生成部25は、区間(0.2,0.4]に対して、紐付く類似度がこの範囲に含まれるID=5、6の三つ組を格納した転置インデックスX2を生成する。
また、転置インデックス生成部25は、区間(0.4,0.6]に対して、紐付く類似度がこの範囲に含まれるID=7、8、9の三つ組を格納した転置インデックスX3を生成する。
また、区間(0.6,0.8]に対しては、紐付く類似度がこの範囲に含まれる三つ組が存在しない。そこで、転置インデックス生成部25は、この範囲に対応する転置インデックスX4を生成しないか、もしくは格納データがない状態で転置インデックスX4を生成する。
また、転置インデックス生成部25は、区間(0.8,1.0]に対して、紐付く類似度がこの範囲に含まれるID=10、11、12、13の三つ組を格納した転置インデックスX5を生成する。
なお、三つ組を転置インデックスに格納することは、三つ組の第一要素である集合要素をインデックスのキーとして扱い、第二要素である検索対象データがこのキーを用いて検索されるように、転置インデックスを構成することを意味する。上記の例では、例えば、転置インデックスX1には、検索キーとしてeとcが格納されている。係る転置インデックスX1は、キーeを用いて検索するとS、S、Sが得られ、キーcを用いて検索するとSが得られるように構成されている。また、例えば、転置インデックスX3には、検索キーとしてfとbが格納されている。係る転置インデックスX3は、キーfを用いて検索するとSとSが得られ、キーbを用いて検索するとSが得られるように構成されている。
また、転置インデックス生成部25は、各転置インデックスに、その転置インデックスが有効となる閾値の範囲を表す情報として、格納されている三つ組に紐づく類似度の最大値を関連付ける。例えば、転置インデックスX1には、ID=1、2、3、4の三つ組が格納されている。これらのうち、紐づく類似度の最大値は、ID=4の三つ組に紐付く類似度0.191である。そこで、転置インデックス生成部25は、転置インデックスX1に、この0.191を関連付ける。つまり、転置インデックスX1は、0.191以下の閾値が指定された検索において有効である。
また、転置インデックスX2に格納されている三つ組について、紐づく類似度の最大値は、ID=6の三つ組に紐付く類似度0.394である。そこで、転置インデックス生成部25は、転置インデックスX2にこの0.394を関連付ける。つまり、転置インデックスX2は、0.394以下の閾値が指定された検索において有効である。
同様にして、転置インデックス生成部25は、転置インデックスX3に類似度0.559を関連付け、転置インデックスX5に類似度1.0を関連付ける。なお、転置インデックスX4が生成されていない場合、類似度との紐づけは存在しない。もしくは、転置インデックスX4が格納データの無い状態で生成された場合、検索には影響しないので、任意の類似度との関連付けが可能である。例えば、どのような条件で検索しても検索用の転置インデックスとして選択されることがないように、転置インデックスX4は、類似度0.0と関連付けられても良い。
また、例えば、分割条件が、各転置インデックスに格納されるデータ数を2以上とする分割条件Yであることを想定する。図14は、分割条件Yに基づいて生成される転置インデックスを示す図である。
まず、転置インデックス生成部25は、図12に示した三つ組のうち、類似度が高いものから順に2つ以上ずつ含むように、各転置インデックスを生成する。ただし、類似度が同じ値のものは、同じ転置インデックスに含まれるようにする。図12の例では、類似度が最高値1.0のものが4つ(ID=10、11、12、13)ある。そこで、転置インデックス生成部25は、これら4つの三つ組を含む転置インデックスを生成する。また、転置インデックス生成部25は、残りの三つ組のうち、類似度が高いものから順に、2つ以上の三つ組(この場合、ID=8,9の三つ組)を含むように、次の転置インデックスを生成する。以後も同様に、転置インデックス生成部25は、残りの三つ組のうち類似度の高いものから順に2つ以上ずつの三つ組を含むように、転置インデックスを生成していく。結果として図14に示すように、5つの転置インデックスY1〜Y5が得られる。また、転置インデックス生成部25は、各転置インデックスに対して、有効な閾値の範囲を表す情報として、格納されている三つ組に紐づく類似度の最大値を関連付ける。
<転置インデックスを用いた検索動作(具体例)>
次に、図13または図14に示した転置インデックスを用いて、検索処理を行う動作について説明する。ここでは、検索条件データとして、集合T={a,b,e,f}を用いるものとする。図15は、定義2の式で計算された、Tと各検索対象データS〜Sとの類似度である。例えば、類似度の閾値0.7を指定して検索を実行した場合、類似度が0.7以上となるSが、検索結果として得られるのが正しい。また、類似度の閾値0.45を指定して検索を実行した場合、類似度が0.45以上となるSとSが検索結果として得られるのが正しい。
図16は、検索結果の絞り込みの様子を説明する図である。
まず、類似度の閾値が0.7で、分割条件Xで生成された転置インデックス群を対象とする場合について説明する。この場合、転置インデックス選択部12は、分割条件Xで生成された転置インデックスX1〜X5から、関連付けられた類似度が0.7以上である転置インデックスX5を、検索用の転置インデックスとして選択する。そして、データ検索部23は、転置インデックスX5を用いて、検索条件データTに類似するデータを検索する。具体的には、データ検索部23は、Tの各要素a、b、e、fのそれぞれをキーとして、転置インデックスX5を検索する。すると、検索結果として、Sが得られる。そこで、データ検索部23は、Tと、Sとの間の類似度を改めて計算し、類似度が閾値0.7以上であることを確認する。その結果、データ検索部23は、最終的に、類似検索結果としてSを出力する。このように、類似データ検索装置2は、類似度の閾値を用いて検索に用いる転置インデックスを絞り込むことにより、Tとの間の類似度を計算する対象を大きく絞り込む。その結果、類似データ検索装置2は、全体の計算量を削減し、高速に検索結果を得ることができる。
なお、閾値の範囲に対して有効となる転置インデックスを使わずに、S〜Sを一つの転置インデックスに格納する一般的な方式では、S〜Sは、いずれもTと共通する要素を持つ。このため、一般的な方式では、Tによる転置インデックスの検索結果として、S〜Sの全てが得られてしまう。そのため、一般的な方式では、その後、S〜S全てに対してTとの類似度の計算を行うことになってしまい、転置インデックスで絞り込みを行う効果は実質的に得られない。
次に、類似度の閾値が0.7で、分割条件Yで生成された転置インデックス群を対象とする場合について説明する。この場合、転置インデックス選択部12は、分割条件Yで生成された転置インデックスY1〜Y5から、関連付けられた類似度が0.7以上である転置インデックスY5を、検索用の転置インデックスとして選択する。そして、データ検索部23は、転置インデックスY5を用いて、検索条件データTに類似するデータを検索する。具体的には、データ検索部23は、Tの各要素a、b、e、fのそれぞれをキーとして、転置インデックスY5を検索する。すると、検索結果として、Sが得られる。そこで、データ検索部23は、TおよびSの類似度計算を行って類似度が閾値0.7以上であることを確認する。このようにして、類似データ検索装置2は、最終的な類似検索結果としてSを出力する。これは上述のケースと同様である。
次に、類似度の閾値が0.45で、分割条件Xで生成された転置インデックス群を対象とする場合について説明する。この場合、転置インデックス選択部12は、分割条件Xで生成された転置インデックスX1〜X5から、関連付けられた類似度が0.45以上である転置インデックスX3およびX5を、検索用の転置インデックスとして選択する。そして、データ検索部23は、これらの転置インデックスを用いて、Tの各要素をキーとして検索を実行する。すると、検索結果としては、S、S、SおよびSが得られる。その後、データ検索部23は、これらS、S、SおよびSと、Tとの間の類似度をそれぞれ計算し、計算した類似度が閾値0.45以上となるSおよびSを、検索結果として得る。このケースでは、検索用の転置インデックスの検索の結果、検索対象データ全てが得られており、転置インデックスによる絞り込みの効果は特に得られていない。
また、類似度の閾値が0.45で、分割条件Yで生成された転置インデックス群を対象とする場合について説明する。この場合、転置インデックス選択部12は、分割条件Yで生成された転置インデックスY1〜Y5から、関連付けられた類似度が0.45以上である転置インデックスY4およびY5を、検索用の転置インデックスとして選択する。そして、データ検索部23は、これらの転置インデックスを用いて、Tの各要素をキーとして検索を実行する。すると、検索結果としては、S、SおよびSが得られる。その後、データ検索部23は、これらS、SおよびSと、Tとの間の類似度をそれぞれ計算し、計算した類似度が閾値0.45以上となるSおよびSを、検索結果として得る。このケースでは、転置インデックスの検索により、Sを検索結果の候補から外すことに成功しており、転置インデックスによる絞り込みの効果が得られている。
一般に、転置インデックスの分割は、細かければ細かいほど、絞り込みの効果が表れやすい。ただし、あまりに細かく分割すると、転置インデックスの検索回数が増加するため、パフォーマンスへの影響が予想される。分割条件は、絞り込みの効果と検索パフォーマンスのバランスに配慮して、タスクごとに決定されることが望ましい。
以上で、具体例の説明を終了する。
[効果の説明]
次に、本発明の第2の実施の形態の効果について述べる。
本実施の形態の類似データ検索装置は、集合間の類似度に基づく検索において、類似度が任意の実数値をとり得る場合でも、類似度の閾値の変化に応じて転置インデックスを作り直す必要なく有効な転置インデックス群を生成して、より高速に検索を行うことができる。
その理由について説明する。本実施の形態では、分割条件取得部24が、検索対象データから複数の転置インデックスを生成するための分割条件を表す情報を取得する。そして、転置インデックス生成部25が、取得された分割条件に基づいて、検索対象データから複数の転置インデックスを生成する。生成される転置インデックスは、それぞれが、類似度の閾値の範囲に対して有効となるよう生成される。また、少なくとも1つの転置インデックスが有効となる閾値の範囲の一部または全部が、他の少なくとも1つの転置インデックスが有効となる閾値の範囲に含まれないように生成される。そして、転置インデックス選択部12が、検索の際に指定される類似度の閾値、および、各転置インデックスが有効となる閾値の範囲に基づいて、複数の転置インデックスのうち検索用の転置インデックスを選択する。そして、データ検索部23が、検索用の転置インデックスを用いて、検索条件データに類似する検索対象データを検索するからである。
このように、本実施の形態において、類似データ検索装置2は、類似度が任意の実数値を取り得る場合にも、検索時に指定される類似度の閾値の変化に応じて作り直す必要がない、より妥当な転置インデックス群を、分割条件に基づいて、検索対象データから生成することができる。その結果、本実施の形態における類似データ検索装置2は、検索時に指定される類似度の閾値の変化に関わらず、より妥当な転置インデックス群を用いて、より高速な検索を行うことができる。
(第3の実施の形態)
次に、本発明の第3の実施の形態について図面を参照して詳細に説明する。本実施の形態では、類似度の閾値に加えて、類似度の閾値よりも高い値である優先閾値を用いて類似データを検索する例について説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第1の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
[構成の説明]
まず、本発明の第3の実施の形態としての類似データ検索装置3の機能ブロックの構成を、図17に示す。図17において、類似データ検索装置3は、本発明の第2の実施の形態としての類似データ検索装置2に対して、転置インデックス選択部12に替えて転置インデックス選択部32と、データ検索部23に替えてデータ検索部33とを備える点が異なる。
なお、類似データ検索装置3およびその各機能ブロックは、図2を参照して説明した本発明の第1の実施の形態と同様のハードウェア要素によって構成可能である。ただし、類似データ検索装置3およびその各機能ブロックのハードウェア構成は、上述の構成に限定されない。
転置インデックス選択部32は、本発明の第2の実施の形態と同様に検索用の転置インデックスを選択することに加えて、次のようにして優先検索用の転置インデックスを選択する。すなわち、転置インデックス選択部32は、類似度の閾値よりも高い値である優先閾値に基づいて、優先検索用の転置インデックスを選択する。優先検索とは、データ検索部33によって、本発明の第2の実施の形態で説明した検索用の転置インデックスによる検索より優先的に行われる検索をいう。以降、本発明の第2の実施の形態で説明した検索用の転置インデックスによる検索を、通常検索とも記載する。例えば、転置インデックス選択部32は、優先閾値が、有効となる閾値の範囲に含まれる転置インデックスを、優先検索用の転置インデックスとして選択してもよい。なお、選択される優先検索用の転置インデックスは、1つであってもよいし複数であってもよい。
データ検索部33は、本発明の第2の実施の形態と同様に検索用の転置インデックスを用いて通常検索を行うことに加えて、優先検索用の転置インデックスを用いて優先検索を行う。そして、データ検索部33は、優先検索の結果を、通常検索の結果に先行して出力する。
例えば、データ検索部33は、優先検索を通常検索に先行して実行し、その検索結果を出力後、本発明の第2の実施の形態と同様に通常検索を実行し、その検索結果を出力してもよい。ただし、データ検索部33は、必ずしも優先検索の結果の出力を全て完了してから、通常検索を開始する必要はない。データ検索部33は、優先検索の結果の出力を、第2の実施の形態における検索結果の出力より早く行えるよう、通常検索および優先検索を行えばよい。
[動作の説明]
以上のように構成された類似データ検索装置3の動作について、図18を参照して説明する。なお、類似データ検索装置3の転置インデックスの生成動作については、図6に示した本発明の第2の実施の形態と同様であるため、本実施の形態における説明を省略する。
<転置インデックスを用いた検索動作>
ここでは、類似データ検索装置3が検索を行う動作について、図18を用いて説明する。この動作は、入力される検索条件データTに対して、sim(S,T)≧λとなる全てのS∈Σを求めて、これを出力する動作である。
図18では、まず、転置インデックス選択部32は、類似度の閾値λ、優先閾値λおよび検索条件データTを取得する(ステップA31)。
次に、転置インデックス選択部32は、優先閾値λに基づいて、優先検索用の転置インデックスを選択する(ステップA32)。
具体的には、転置インデックス選択部32は、有効となる閾値の範囲に優先閾値λを含む転置インデックスを、優先検索用の転置インデックスとして選択する。
例えば、転置インデックス1〜5があり、それぞれが類似度0.2、0.4、0.6、0.8、1.0に関連付けられているとする。つまり、転置インデックス1〜5は、それぞれ、0.2、0.4、0.6、0.8、1.0以下の閾値が指定された検索において有効となるよう構成されているとする。そして、類似度の閾値λが0.7であり、優先閾値λが0.9であるとする。
この場合、転置インデックス選択部32は、優先閾値λ以上である1.0が関連付けられた転置インデックス5を、優先検索用の転置インデックスとして選択する。
次に、データ検索部33は、優先検索用の転置インデックスを用いて、検索条件データTの各要素vをキーに検索を行う(ステップA33)。
次に、データ検索部33は、ステップA33で得られた各々のS∈Σに対して、以下のステップA34〜A36を繰り返す。
ここでは、まず、データ検索部33は、SおよびTの類似度sim(S,T)を計算する(ステップA34)。
次に、データ検索部33は、計算した類似度がλ以上であるか(sim(S,T)≧λであるか)を判定する(ステップA35)。
ここで、類似度がλ以上であれば(ステップA35でYes)、データ検索部33は、SおよびTが類似していると判断して、そのSを優先検索結果として出力する(ステップA36)。
一方、類似度がλより小さければ(ステップA35でNo)、データ検索部33は、SおよびTが類似していないと判断して、そのようなSを優先検索結果に含めない。
ステップA32で得られた各々のS∈Σに対してステップA34〜A36を終了すると、類似データ検索装置3は、以降、本発明の第2の実施の形態と同様に、図6のステップA1〜A2、A23〜A26の通常検索を実行し、検索結果を出力する。
以上で、類似データ検索装置3が検索を行う動作の説明を終了する。
このような動作により、本実施の形態は、類似度の閾値(例えば0.7)を指定した検索であっても、類似度がより高い優先閾値(例えば0.9)以上となる優先検索の結果を先行して出力することができる。このため、利用者にとってのレスポンスを向上することができる。
なお、図18および図18に続く図6のフローチャートにおいて、ステップA23の通常検索で参照される検索用の転置インデックスは、ステップA33の優先検索で参照される優先検索用の転置インデックスを含む。このため、検索結果に重複が生じる。この重複を防ぐために、例えば、データ検索部33は、ステップA23では、検索用の転置インデックスのうち、優先検索用の転置インデックスでもある転置インデックスを用いた検索を省略してもよい。また、データ検索部33は、優先検索のステップA33で得られた各々のS∈ΣのうちステップA35でNoと判断されたものを一時的に保存しておいてもよい。この場合、データ検索部33は、その後の通常検索のステップA24〜A26において、ステップA35でNoと判断されたSを、類似度の精密判定の対象に加えてもよい。
[効果の説明]
次に、本発明の第3の実施の形態の効果について述べる。
本実施の形態の類似データ検索装置3は、類似度が任意の実数値をとり得る場合でも、類似度の閾値の変化に応じて作り直す必要がない転置インデックス群を用いて検索を行う際に、類似度のより高い検索結果をより迅速に提示することができる。
その理由について説明する。本実施の形態において、類似データ検索装置3は、本発明の第2の実施の形態と同様の構成に加えて、転置インデックス選択部32が、次のようにして優先検索用の転置インデックスを選択する。すなわち、転置インデックス選択部32は、類似度の閾値よりも高い値である優先閾値に基づいて、優先検索用の転置インデックスを選択する。そして、データ検索部33が、検索用の転置インデックスを用いた通常検索を行うことに加えて、優先検索用の転置インデックスを用いた優先検索を行い、優先検索の結果を、通常検索の結果に先行して出力するからである。
このように、本実施の形態は、類似度が特に高い検索結果を、他の結果より早く得たいというニーズに応えることができる。これは、実用的には、特に類似度が高い検索結果を高速に得られればそれで十分であり、他の結果をすべて得るまで時間がかかってもかまわないことが多いからである。
なお、上述した本発明の第2および第3の実施の形態において、類似度の定義をさらに一般化することが可能である。
上述した各実施の形態では、検索条件データTおよび検索対象データSに対して、SとTの類似度sim(S,T)として、定義2を適用する例を想定して説明していた。
sim(S,T)=Weight(S∩T)/Weight(S)・・・(定義2)
これをさらに一般化して、類似度sim(S,T)は、次の定義2’に拡張することができる。
sim(S,T)=Weight(S∩T)/(f(S)・g(T))・・・(定義2’)
ここで、f(S)は、Sから正の実数への関数であり、g(T)も、Tから正の実数への関数であればよく、その具体的内容は特に問わない。なお、上記説明で採用していた定義2は、f(S)=Weight(S)、g(T)=1とした場合の、定義2’の特殊ケースである。
定義2’のもとでは、定義3の代わりに、以下の定義3’を採用する。
λ=Weight(S\S)/f(S)・・・(定義3’)
もし、S∩T=Φかつ、λ<μ・g(T)ならば、
Weight(S∩T)/f(S)=Weight((S\S)∩T)/f(S)≦Weight(S\S)/f(S)=λ<μ・g(T)
なので、
sim(S,T)=Weight(S∩T)/(f(S)・g(T))<μ
となる。言い換えれば、性質2において、S(μ)の定義式を、「S(μ)={s|s∈S and λi(s)<μ・g(T)}」と読み替えることにより、同じ内容「検索条件の集合Tが、sim(S,T)≧μを満たすならば、T∩S(μ)≠Φ」が成立する。
この場合、各実施形態における転置インデックス生成部は、定義3’により計算される値を第3要素とする三つ組を生成し、転置インデックスにまとめあげればよい。そして、各実施形態における転置インデックス選択部は、類似度の閾値μで類似データを検索する際に、関連付けられた類似度(定義3’により計算された値の最大値)がμ・g(T)以上となるような検索用の転置インデックスを選択する。そして、各実施形態におけるデータ検索部は、このように選択された検索用の転置インデックスに対して、Tの各要素による検索を実行するように構成する。これにより、閾値μ以上で類似する全ての検索対象データを効率よく検索することができる。
また、第3の実施の形態では、転置インデックス選択部32は、優先閾値μで類似データを検索する際に、関連付けられた類似度(定義3’により計算された値の最大値)がμ・g(T)以上となるような優先検索用の転置インデックスを選択する。そして、データ検索部33は、このように選択された優先検索用の転置インデックスに対して、Tの各要素による検索を実行するように構成する。これにより、優先閾値μ以上で類似する全ての検索対象データを効率よく検索することができる。
以上のように、類似度が(定義2’)で定義されている場合にも、本発明の第2および第3の実施の形態は、同様に効果を奏する。例えば、各実施の形態は、f(S)=1、g(T)=Weight(T)とすることにより、sim(S,T)=Weight(S∩T)/Weight(T)となるケースにも対応できる。
また、上述した本発明の第2および第3実施の形態において、さらに言えば、類似度は、集合の各要素に与えられた非負のウェイトにもとづき計算される実数値に限定されない。
また、上述した本発明の各実施の形態において、類似データ検索装置の各機能ブロックが、メモリに記憶されたコンピュータ・プログラムを実行するCPUによって実現される例を中心に説明した。これに限らず、各機能ブロックの一部、全部、または、それらの組み合わせが専用のハードウェアにより実現されていてもよい。
また、上述した本発明の各実施の形態において、類似データ検索装置の機能ブロックは、複数の装置に分散されて実現されてもよい。
また、上述した本発明の各実施の形態において、各フローチャートを参照して説明した類似データ検索装置の動作を、本発明のコンピュータ・プログラムとしてコンピュータ装置の記憶装置(記憶媒体)に格納しておく。そして、係るコンピュータ・プログラムを当該CPUが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコード及び記憶媒体によって構成される。
なお、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。
上記説明した各実施形態は、例えば、類似文検索装置として適用可能である。文は、単語の集合とみなすことができる。そこで、各実施形態における類似データ検索装置は、入力される文章を検索条件データとして適用し、検索対象となる類似文を検索対象データとして扱うことにより、入力される文章に類似する文を検索する類似文検索装置として好適である。
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
この出願は、2016年7月12日に出願された日本出願特願2016−137824を基礎とする優先権を主張し、その開示の全てをここに取り込む。
1、2、3 類似データ検索装置
11 転置インデックス記憶部
12、32 転置インデックス選択部
13、23、33 データ検索部
24 分割条件取得部
25 転置インデックス生成部
91、92 検索対象データ記憶装置
1001 CPU
1002 メモリ
1003 出力装置
1004 入力装置
1005 通信インタフェース

Claims (7)

  1. 集合としての検索条件データに類似する集合としての検索対象データを集合間の類似度に基づき検索する際に用いられ、集合間が類似していると判断する類似度の閾値の範囲に対してそれぞれ有効となり、少なくとも1つの転置インデックスが有効となる前記閾値の範囲の一部または全部が他の少なくとも1つの転置インデックスが有効となる前記閾値の範囲に含まれない複数の転置インデックスを記憶する転置インデックス記憶手段と、
    検索時に指定される類似度の閾値、および、各前記転置インデックスが有効となる前記閾値の範囲に基づいて、前記複数の転置インデックスのうち検索用の転置インデックスを選択する転置インデックス選択手段と、
    前記検索用の転置インデックスを用いて、前記検索条件データに類似する前記検索対象データを検索するデータ検索手段と、
    を備えた類似データ検索装置。
  2. 前記検索対象データから前記複数の転置インデックスを生成するための分割条件を表す情報を取得する分割条件取得手段と、
    前記分割条件に基づいて、前記検索対象データから前記複数の転置インデックスを生成する転置インデックス生成手段と、
    をさらに備えることを特徴とする請求項1に記載の類似データ検索装置。
  3. 前記転置インデックス選択手段は、前記閾値よりも高い値である優先閾値、および、各前記転置インデックスが有効となる前記閾値の範囲に基づいて、優先的に行われる優先検索用の転置インデックスをさらに選択し、
    前記データ検索手段は、前記検索用の転置インデックスを用いた検索処理に加えて、前記優先検索用の転置インデックスを用いて前記検索条件データに類似する前記検索対象データをさらに検索し、前記優先検索用の転置インデックスによる検索結果を前記検索用の転置インデックスによる検索結果に先行して出力することを特徴とする請求項1または請求項2に記載の類似データ検索装置。
  4. コンピュータ装置が、
    集合としての検索条件データに類似する集合としての検索対象データを集合間の類似度に基づき検索する際に用いられ、集合間が類似していると判断する類似度の閾値の範囲に対してそれぞれ有効となり、少なくとも1つの転置インデックスが有効となる前記閾値の範囲の一部または全部が他の少なくとも1つの転置インデックスが有効となる前記閾値の範囲に含まれない複数の転置インデックスを用いて、
    検索時に指定される類似度の閾値、および、各前記転置インデックスが有効となる前記閾値の範囲に基づいて、前記複数の転置インデックスのうち検索用の転置インデックスを選択し、
    前記検索用の転置インデックスを用いて、前記検索条件データに類似する前記検索対象データを検索する方法。
  5. 集合としての検索条件データに類似する集合としての検索対象データを集合間の類似度に基づき検索する際に用いられ、集合間が類似していると判断する類似度の閾値の範囲に対してそれぞれ有効となり、少なくとも1つの転置インデックスが有効となる前記閾値の範囲の一部または全部が他の少なくとも1つの転置インデックスが有効となる前記閾値の範囲に含まれない複数の転置インデックスを用いて、
    検索時に指定される類似度の閾値、および、各前記転置インデックスが有効となる前記閾値の範囲に基づいて、前記複数の転置インデックスのうち検索用の転置インデックスを選択する転置インデックス選択処理と、
    前記検索用の転置インデックスを用いて、前記検索条件データに類似する前記検索対象データを検索するデータ検索処理と、
    をコンピュータ装置に実行させるプログラム。
  6. 各前記転置インデックスには、前記転置インデックスが有効となる前記閾値の範囲として、それぞれ異なる前記閾値の範囲が関連付けられ、
    前記転置インデックス選択手段は、各前記転置インデックスについて、検索時に指定される類似度の閾値が、その転置インデックスに関連付けされた前記類似度の閾値の範囲に含まれるか否かを判定し、検索時に指定される類似度の閾値を含む前記類似度の閾値の範囲が関連付けされた前記転置インデックスを、検索用の前記転置インデックスとして選択する、
    請求項1に記載の類似データ検索装置。
  7. 前記転置インデックスには、
    前記集合としての検索条件データに含まれる要素と、その要素を含む前記集合としての検索条件データと、前記集合間の類似度と、を特定可能なデータの組が1以上格納され、
    その転置インデックスに格納された1以上の前記データの組に関する前記集合間の類似度の最大値以下の範囲が、その転置インデックスが有効となる前記閾値の範囲として関連付けされ、
    前記転置インデックス選択手段は、検索時に指定される類似度の閾値が、ある前記転置インデックスに格納された1以上の前記データの組に関する前記集合間の類似度の最大値以下ある場合、その前記転置インデックスを、検索用の前記転置インデックスとして選択する、
    請求項6に記載の類似データ検索装置。
JP2018527568A 2016-07-12 2017-07-07 類似データ検索装置、類似データ検索方法および記録媒体 Active JP6773115B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2016137824 2016-07-12
JP2016137824 2016-07-12
PCT/JP2017/024884 WO2018012413A1 (ja) 2016-07-12 2017-07-07 類似データ検索装置、類似データ検索方法および記録媒体

Publications (2)

Publication Number Publication Date
JPWO2018012413A1 JPWO2018012413A1 (ja) 2019-05-09
JP6773115B2 true JP6773115B2 (ja) 2020-10-21

Family

ID=60951696

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018527568A Active JP6773115B2 (ja) 2016-07-12 2017-07-07 類似データ検索装置、類似データ検索方法および記録媒体

Country Status (3)

Country Link
US (1) US20190294637A1 (ja)
JP (1) JP6773115B2 (ja)
WO (1) WO2018012413A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11151081B1 (en) * 2018-01-03 2021-10-19 Amazon Technologies, Inc. Data tiering service with cold tier indexing
CN112507179A (zh) * 2020-12-11 2021-03-16 杭州依图医疗技术有限公司 医学数据的处理方法和检索方法、装置及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8271499B2 (en) * 2009-06-10 2012-09-18 At&T Intellectual Property I, L.P. Incremental maintenance of inverted indexes for approximate string matching

Also Published As

Publication number Publication date
US20190294637A1 (en) 2019-09-26
WO2018012413A1 (ja) 2018-01-18
JPWO2018012413A1 (ja) 2019-05-09

Similar Documents

Publication Publication Date Title
JP4848317B2 (ja) データベースのインデックス作成システム、方法及びプログラム
JP6028567B2 (ja) データ格納プログラム、データ検索プログラム、データ格納装置、データ検索装置、データ格納方法及びデータ検索方法
JP6332264B2 (ja) 類似データ検索装置、類似データ検索方法、及びプログラム
JP6917942B2 (ja) データ分析サーバ、データ分析システム、及びデータ分析方法
JP6773115B2 (ja) 類似データ検索装置、類似データ検索方法および記録媒体
JP5532189B2 (ja) ルール発見システムと方法と装置並びにプログラム
JP6281491B2 (ja) テキストマイニング装置、テキストマイニング方法及びプログラム
JP6428615B2 (ja) 多次元範囲検索装置及び多次元範囲検索方法
JP2013149061A (ja) 文書類似性評価システム、文書類似性評価方法およびコンピュータ・プログラム
JP6044628B2 (ja) 乱数発生装置、乱数発生方法、オブジェクト配置装置、並びにコンピュータ・プログラム
JP5761043B2 (ja) 名寄せ処理方法、装置及びプログラム
JP6337133B2 (ja) 非減少列判定装置、非減少列判定方法及びプログラム
US9600565B2 (en) Data structure, index creation device, data search device, index creation method, data search method, and computer-readable recording medium
JP2014228975A (ja) 検索装置、検索方法および検索プログラム
JP7099316B2 (ja) 類似度演算装置、方法、およびプログラム
US11281688B2 (en) Ranking and de-ranking data strings
WO2013172309A1 (ja) ルール発見システムと方法と装置並びにプログラム
JP4347086B2 (ja) パターンマッチング装置および方法ならびにプログラム
JP6155920B2 (ja) 多次元範囲検索装置及び多次元範囲検索方法
KR102233217B1 (ko) 분할순위패턴매칭 알고리즘
KR102289411B1 (ko) 가중치 기반의 피처 벡터 생성 장치 및 방법
JP6509719B2 (ja) 構造データ生成装置、検索装置、構造データ生成方法及び構造データ生成プログラム
JP5734932B2 (ja) アイテムパターン抽出装置、方法、及びプログラム
JP2023080989A (ja) 近似文字列照合方法及び該方法を実現するためのコンピュータプログラム
WO2013172308A1 (ja) ルール発見システムと方法と装置並びにプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200303

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200326

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200901

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200914

R150 Certificate of patent or registration of utility model

Ref document number: 6773115

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150