近似ルックアップをサポートする効率的なマップデータ構造


25

キーの効率的な近似ルックアップ(たとえば、文字列のレーベンシュタイン距離)をサポートし、入力キーに最も近い一致を返すデータ構造を探しています。私がこれまでに見つけた最適なデータ構造はBurkhard-Kellerツリーですが、この目的のために他の/より良いデータ構造があるかどうか疑問に思っていました。

編集:特定のケースの詳細:

  • 文字列は通常、互いに大きなレーベンシュタインの違いを持っ​​ています。
  • 文字列の最大長は約20〜30文字で、平均は10〜12文字に近い。
  • 挿入よりも効率的なルックアップに関心があります。これは、クエリを効率的に行いたい静的データのセットを構築するためです。

入力文字列、およびマップ内のアイテム数のサイズに条件はありますか?マップへの挿入はどれくらい効率的でなければなりませんか?
edA-qa mort-ora-y

mrm、BKツリーがツリー全体のかなりの部分をまだ見ていると言えます。しかし、それは私の側の時期尚早な最適化かもしれません、私は推測しますか?
メレイン

3
ほぼ重複しているという点に密接に関連しています。高速スペルチェッカーを構築するための効率的なデータ構造
ラファエル

回答:


18

探しているのは、レーベンシュタイン/編集距離での「近似近傍検索」(ANNS)です。理論的な観点からは、編集距離はこれまでのところ、近距離検索では比較的難しいことが判明しています。それでも、多くの結果があります。このオストロフスキーとラバニの論文の参考文献を参照してください。よりシンプルで優れたソリューションがある代替距離メトリックを検討する場合は、次の段落に進んでください。編集距離のANNSについては、Indykに起因する結果があります。Indykは、サイズnOdOdnOdϵ31/ϵnd11

他の距離を検討する場合は、ローカリティセンシティブハッシュ(LSH)が最適です。局所性に敏感なハッシュは、高次元空間に存在するポイント(長いベクトル、長い文字列などを読み込む)が少数のバケットにハッシュされるANNS問題を解決するためにIndykとMotwaniによって開拓された手法です。互いに近い場合は、同じビンに高い確率でマッピングされ、互いに遠いポイントは異なるビンにマッピングされ、また高い確率でマッピングされます。CACMには、IndykとAndoniによる非常にアクセスしやすい調査記事があります。この手法はシンプルで高速であり、必要なスペースはわずかです。コードもあります(記事はコードにリンクしていると思います)。ハミング距離(および特定の政権では)1

この種の質問はcstheory.SEに適しています。そこには関連する質問がありますが、正確な近くの隣人を求めているようです。


12

興味のあるデータ構造は、メトリックツリーです。つまり、メトリック空間での効率的な検索をサポートします。メトリック空間は、オブジェクトのセットと、三角形の不等式を満たすオブジェクト間で定義された距離関数によって形成されます。次に、オブジェクトのセットとクエリ要素を指定して、クエリに十分近いオブジェクトを取得することが目標です。

検索の問題は、コンピュータサイエンスで文字通りどこにでもあるので、そこにある巨大な異なるメトリック木の量が。ただし、これらは少なくともピボットベースとクラスタリングベースの2つのグループに分割できます(ハイブリッドも確かにあります)。良い調査は、E。Chavez et al。、Searching in Metric Spaces、2001です。例については、第5章:メトリックスペースの現在のソリューション、ページ283を参照してください。

Onα0<α<1On2O1

チャベス等。また、他のツリーの概要を説明し、特定のツリーが興味を起こさせた場合は自然に参照を増やします。実際には、異なるツリーのパフォーマンスはしばしば実験的に評価されます。これは空間の構造に大きく依存すると思います。したがって、あなたの場合、特にどのツリーが最も効率的であると言うのは難しいです。それにもかかわらず、私はそれが最初に最も簡単なもので行くことは良い考えだと思います。BKツリーの構築が最も簡単な場合は、まず試してみてください。要件を満たしていない場合は、十分な情報に基づいた意思決定に役立つ可能性のある、スペースに関するより多くの事実を収集するために時間(およびおそらくプログラミング時間)を投資します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.