如何检测产品搜索中的拼写错误并建议可能的更正?

izb*_*izb 8 algorithm validation search user-interface data-entry

给定一个非常大的产品名称数据库,您如何检测用户搜索中可能存在的拼写错误并建议可能的更正(有点像Google提供的方式)?

例如

用户输入"fork handels"并按"搜索".

他们回来了

"没有结果.你的意思是'叉柄'吗?"

spl*_*tne 14

这个问题有几种方法:

  1. 在您的数据库中保存最受欢迎的拼写错误表.如果你需要一些常见的拼写错误:这里)
  2. 使用基于编辑距离的算法:在信息理论和计算机科学中,两个字符串之间的编辑距离是将其中一个字符转换为另一个字符串所需的操作数.有几种不同的算法可用于定义或计算此度量标准.阅读维基百科关于Levenshtein算法的文章.
  3. 如果您使用Lucene进行全文搜索,这里有一篇很好的文章,展示了如何实现"你是不是真的"功能.
  4. 如果你看到这个功能是简单的拼写纠正,这里有一些很好的,很短的几种语言的实现:如何编写拼写纠正器