我们有大约150,000个单词的列表,当用户输入自由文本时,系统应显示词典中与自由文本中的单词非常接近的单词列表。
例如,用户输入:“我想在沃尔玛购买乐高玩具”。如果词典中包含“乐高”,“汽车”和“沃尔玛”,则系统应在列表中显示“乐高”和“沃尔玛”。“ Walmart”很明显,因为它与句子中的单词相同,但是“ Lego”也足够类似于“ Legoe”,因此值得一提。但是,没有什么类似于“汽车”,因此未显示该单词。
显示列表应该是实时的,这意味着当用户输入句子时,单词列表必须出现在屏幕上。有人知道一个好的算法吗?
该词典实际上包含可能包含空格的概念。例如,“乐高飞船”。完美的解决方案也可以识别这些多词概念。
任何建议表示赞赏。
看一下http://norvig.com/spell-correct.html,了解一种简单的算法。本文使用Python,但最后有指向其他语言的实现的链接。