投稿された回答は正常に機能しますが、職場で作成したオートコンプリート ライブラリをオープン ソース化しました。本番環境でしばらく使用していますが、高速で安定しており、使いやすいです。デモモードもあるので、単語を入力すると何が得られるかをすばやくテストできます.
インストールするには、次のコマンドを実行するだけです:pip install fast-autocomplete
次に例を示します。
>>> from fast_autocomplete import AutoComplete
>>> words = {'book': {}, 'burrito': {}, 'pizza': {}, 'pasta':{}}
>>> autocomplete = AutoComplete(words=words)
>>> autocomplete.search(word='b', max_cost=3, size=3)
[['book'], ['burrito']]
>>> autocomplete.search(word='bu', max_cost=3, size=3)
[['burrito']]
>>> autocomplete.search(word='barrito', max_cost=3, size=3) # mis-spelling
[['burrito']]
ソース コードについては、https : //github.com/seperman/fast-autocomplete をご覧ください。
そして、これがどのように機能するかの説明です: http://zepworks.com/posts/you-autocomplete-me/
スペルミスを処理し、オプションで単語の重みで並べ替えます。(burrito
が よりも重要であるbook
としましょうburrito
。より高い「カウント」を指定するとbook
、結果の前に最初に表示されます。
Words は辞書であり、各単語はコンテキストを持つことができます。たとえば、「カウント」、単語の表示方法、単語の周りの他のコンテキストなどです。この例では、単語にはコンテキストがありません。