您可能要看一下Peter Norvig的“ 如何编写拼写校正器 ”文章。


1

1

如果您具有行业特定的翻译,则可能需要一个同义词库。例如,我在珠宝业工作过,我们的描述中有缩写,例如kt-karat,rd-round,cwt-克拉重量... Endeca(该职位的搜索引擎)有一个词库,该词库可以从通用拼写错误,但确实需要人工干预。
0

有人问到如何为搜索引擎创建最先进的拼写建议系统,我感到非常惊讶。我在一家搜索引擎公司从事这一主题的工作已经一年多了,我可以指出有关该主题的公共领域信息。
如前一篇文章所述,Google(以及Microsoft和Yahoo!)不使用任何预定义的字典,也不使用成群的语言学家来思考可能的拼写错误的查询。由于问题的严重性,这将是不可能的,而且还因为不清楚人们是否可以正确识别查询的时间和是否拼错。
相反,有一个简单而有效的原则也适用于所有欧洲语言。假设参考查询是计数最高的查询,请在搜索日志中获取所有唯一查询,并计算所有查询对之间的编辑距离。
这个简单的算法非常适合许多类型的查询。如果您想将其提高到一个新的水平,那么我建议您阅读Microsoft Research关于该主题的论文。你可以在这里找到
本文有很好的介绍,但之后您将需要了解诸如隐马尔可夫模型的概念。
0

我相信Google会记录所有查询并确定何时有人进行拼写更正。然后,当其他人提供相同的第一个查询时,可以建议此更正。这适用于任何语言,实际上是任何字符的任何字符串。
0

Google的Dr Norvig概述了它的工作方式。他甚至给出了20行的Python实现:
http://googlesystem.blogspot.com/2007/04/simplified-version-of-googles-spell.html
http://www.norvig.com/spell-correct.html
诺维格博士在这个精彩的演讲中还讨论了“你的意思”。 Norvig博士是Google 的研究负责人 -当被问及“您的意思”是如何实现的时,他的回答是权威性的 。
因此,它的拼写检查(大概是根据其他搜索甚至是实际的互联网短语等)构建的动态词典。但这仍然是拼写检查 。
大家快来看看SOUNDEX和其他猜测吧!
0

我认为这取决于您的网站大小。在我们大约500名员工使用的本地Intranet上,我仅查看返回零结果的搜索短语,然后将该搜索短语和新建议的搜索短语输入到SQL表中。
如果没有返回任何搜索结果,他们将在该表上进行调用,但是,这仅在站点相对较小的情况下才有效,并且我仅针对最常见的搜索词组进行操作。
您可能还想看看我对类似问题的回答:
0

实际上,Google所做的工作非常重要,而且乍一看是违反直觉的。他们没有像检查字典那样做任何事情,但是他们利用统计信息来识别返回比您的查询更多结果的“相似”查询,确切的算法当然是未知的。
这里有不同的子问题需要解决,作为所有自然语言处理统计数据的基础,必须有一本书: 统计自然语言处理基础 。
具体来说,为了解决单词/查询相似性的问题,我使用Edit Distance取得了很好的效果, Edit Distance是一种字符串相似性的数学度量,效果出奇的好。我曾经使用Levenshtein,但其他人可能值得研究。
根据我的经验,Soundex很糟糕。
实际上有效地存储和搜索大的拼写错误的词典,并且具有亚秒级的检索功能也是不容易的,最好的选择是利用现有的全文索引和检索引擎(即不是数据库的那个), Lucene当前是其中的一种最好的之一,巧合地移植到许多平台上。
- 社区规范
- 提出问题
- 进行投票
- 个人资料
- 优化问题
- 回答问题
0
假设您的网站中已经有一个搜索系统。如何在某些搜索查询中像Google一样实现“您的意思是:
<spell_checked_word>
”?