投稿された回答は問題なく機能しますが、私は職場で書いたオートコンプリートライブラリをオープンソース化しました。私たちはこれを本番で使用しており、高速で安定していて使いやすいです。デモモードも備えているので、単語を入力したときに何が得られるかをすばやくテストできます。
それをインストールするには、単に実行します: 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/wearefair/fast-autocompleteソースコードの。
そして、これがどのように機能するかの説明です: http //zepworks.com/posts/you-autocomplete-me/
スペルミスを処理し、単語の重みでオプションで並べ替えます。(burrito
がより重要であるとしましょうbook
。そうするとburrito
、より高い「カウント」を与えると、それが最初に表示されます。book
られ、結果のにれます。
単語は辞書であり、各単語はコンテキストを持つことができます。たとえば、「カウント」、単語の表示方法、単語の周りの他のコンテキストなど。この例では、単語にはコンテキストがありませんでした。