ユーザーが文字列/文字列の文をキーワードとしてキー入力する必要があるAndroidアプリケーションを開発しています。その入力に基づいて、データベースから文字列を取得する必要があります。この目的に適したアルゴリズムを探しています。私は多くの答えと tfidf や Boyer-Moore などの多くのアルゴリズムを経験しましたが、最も効率的なアルゴリズムの選択についてまだ混乱しています。誰にも提案がありますか?(目的は、入力されたキーワードに基づいて文字列を取得することです)
ありがとう
ユーザーが文字列/文字列の文をキーワードとしてキー入力する必要があるAndroidアプリケーションを開発しています。その入力に基づいて、データベースから文字列を取得する必要があります。この目的に適したアルゴリズムを探しています。私は多くの答えと tfidf や Boyer-Moore などの多くのアルゴリズムを経験しましたが、最も効率的なアルゴリズムの選択についてまだ混乱しています。誰にも提案がありますか?(目的は、入力されたキーワードに基づいて文字列を取得することです)
ありがとう
オートコンプリート検索 (フレーズ/サブフレーズによる) を作成しました。デモでパフォーマンスと辞書のサイズを確認できます。
http://olegh.ftp.sh/autocomplete.html
これは Celeron-300 マシン、FreeBSD OS です。また、アクティブな検索中は 1% 未満の CPU をロードします。ただし、C++ で記述され、mmap/pread システム コールを使用します。したがって、Androidで動作するかどうかはわかりません。リクエストに応じてソースを共有できます。
アルゴリズムについて: 辞書のフレーズからのすべての可能なプレフィックスに基づいて、事前にインデックス付けされたハッシュ インデックス ファイルを使用しました。mmaped ハッシュテーブルによって見つかったバケット。これはプリロードによってメモリにフェッチされます。
比較的遅いインデックス作成操作: 15,000,000 の辞書エントリのインデックス作成は、PERL スクリプトで最大 1 時間かかることがあります。ただし、検索/取得は非常に高速で、パフォーマンスは辞書のサイズに依存しません。