1

ユーザーが文字列/文字列の文をキーワードとしてキー入力する必要があるAndroidアプリケーションを開発しています。その入力に基づいて、データベースから文字列を取得する必要があります。この目的に適したアルゴリズムを探しています。私は多くの答えと tfidf や Boyer-Moore などの多くのアルゴリズムを経験しましたが、最も効率的なアルゴリズムの選択についてまだ混乱しています。誰にも提案がありますか?(目的は、入力されたキーワードに基づいて文字列を取得することです)

ありがとう

4

2 に答える 2

0

オートコンプリート検索 (フレーズ/サブフレーズによる) を作成しました。デモでパフォーマンスと辞書のサイズを確認できます。

http://olegh.ftp.sh/autocomplete.html

これは Celeron-300 マシン、FreeBSD OS です。また、アクティブな検索中は 1% 未満の CPU をロードします。ただし、C++ で記述され、mmap/pread システム コールを使用します。したがって、Androidで動作するかどうかはわかりません。リクエストに応じてソースを共有できます。

アルゴリズムについて: 辞書のフレーズからのすべての可能なプレフィックスに基づいて、事前にインデックス付けされたハッシュ インデックス ファイルを使用しました。mmaped ハッシュテーブルによって見つかったバケット。これはプリロードによってメモリにフェッチされます。

比較的遅いインデックス作成操作: 15,000,000 の辞書エントリのインデックス作成は、PERL スクリプトで最大 1 時間かかることがあります。ただし、検索/取得は非常に高速で、パフォーマンスは辞書のサイズに依存しません。

于 2013-09-06T02:17:27.580 に答える