您如何实现“您的意思”?

假设您的网站中已经有一个搜索系统。<spell_checked_word>像Google在某些搜索查询中一样,您如何实现“您的意思是:” ?


小唯快跑啊
浏览 388回答 3
3回答

慕后森

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

慕标5832272

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