0

約 100,000 の用語に対して検索を実行したい短いテキスト (具体的にはツイートなので、最大長は 140 文字) があります。

これは従来の検索の問題 (大きなドキュメント、小さな検索語) をひっくり返しています。各検索時間を反復してマッピングを試行する単純なアプローチは、この問題に取り組む最も効率的な方法ではありません。

この種の検索の問題に対処する方法についてのリソースや洞察はありますか?

4

1 に答える 1

0

この状況で非常にうまく機能している Aho-Corasick アルゴリズムに出くわしました。

http://en.wikipedia.org/wiki/Aho%E2%80%93Corasick_string_matching_algorithm

Javascript 実装を使用すると、次のパフォーマンスを得ることができます。

一致する単語: 要約英語辞書 (~250,000 単語)

1 秒あたりのセンテンス数: ~80,000

単語の境界が重要な場合は、単語の境界を確認するために追加のフィルタリングが必要です。アルゴリズムはテキスト内の一致位置を吐き出すので、単語の境界を効率的にチェックするのは簡単です。

これが同様の問題を探している人に役立つことを願っています:)

于 2013-07-25T15:48:02.513 に答える