-1

つまり、基本的にここで意味するのは、便利な検索ツールを作成する方法です(おそらく配列または配列リストなどで一連の文字列を検索するなど) 。必ずしも高速ではありませんが、便利です。

たとえば、検索している用語のスペルは似ているが正確ではない結果が得られる場合、「オートコレクト」を組み込むのはどれほど簡単でしょうか? または、単語全体ではなく最初の 3 文字に一致する結果、または単語を含む可能性があるが必ずしも単語全体で構成されるとは限らない結果ですか? これまたはクラスのAPIはありますか、それともここで私を助けるアルゴリズムはありますか?

4

1 に答える 1

0

簡単に言えば、SIMILAR 文字列の場合、類似性を見つける「Edit Distance」アルゴリズムを使用できます (実際には、ある文字列を別の文字列に変える移動の数を見つけますが、それは一種の類似性です)。AUTOCOMPLETE ツールの場合は、文字のツリーとして機能する「Trie」データ構造を使用できます。現在の単語の文字を読み取ると、既存の単語に到達するためにどこに行くことができるかを示すノードで停止します。単語 (文字列) を含むものを検索するには、KMP アルゴリズム (テキスト全体で複数の単語を検索する場合は Aho-Corasick) を使用できると思います。

https://en.wikipedia.org/wiki/Edit_distance

https://en.wikipedia.org/wiki/Trie

https://en.wikipedia.org/wiki/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm

https://en.wikipedia.org/wiki/Aho%E2%80%93Corasick_algorithm

于 2016-07-31T19:03:46.737 に答える