发布的答案工作正常,但我已经开源了一个我在工作中编写的自动完成库。我们已经在生产中使用了一段时间,它快速、稳定且易于使用。它甚至具有演示模式,因此您可以在键入单词时快速测试您会得到什么。
要安装它,只需运行: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 是一本字典,每个单词都可以有一个上下文。例如“计数”、如何显示单词、单词周围的一些其他上下文等。在这个例子中,单词没有任何上下文。