【问题标题】:How to implement Google-style "Did you mean"? [duplicate]如何实现谷歌风格的“你的意思是”? [复制]
【发布时间】:2011-05-27 20:27:19
【问题描述】:

可能重复:
How do you implement a “Did you mean”?

是否有网络服务或公共 API 可以让您的应用检查名人姓名中的明显拼写错误:

Mikul Jaxon
Prinz Charlz
Britnie Speers

或者这需要建立你自己的数据库吗?

我想要类似 Google 的“Did you mean ... ?”功能,当您拼写错误时,他们会建议更正。就我而言,我只需要名人。

【问题讨论】:

  • 名人姓名的拼写检查器是一项非常具体的要求。看看 Peter Norvig 的算法:norvig.com/spell-correct.html
  • Mikul Jaxon 不会被 Google 收录 - 它只会查找有少量字母不同的单词。

标签: web-services api public


【解决方案1】:

你应该检查一下 apache solr/lucene 的模糊搜索。 也许模糊搜索或自动完成是更好的方法,因为它会更快。

然而,我见过的最简单且仍然非常快速的实现是建立一个按相关性加权的令牌文档索引。

然后您可以针对该表以“或结合”方式运行查询,并获取您的字符串包含多少个标记的结果。

然后您可以通过计算Levenshtein_distance 轻松确定与查询中的单词对应的单词。

【讨论】:

    猜你喜欢
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-11
    • 2010-09-23
    • 1970-01-01
    • 2016-04-13
    相关资源
    最近更新 更多