我在哪里可以了解更多有关Google搜索"你的意思"算法的信息?

vid*_*dhi 68 algorithm nlp spell-checking

可能重复:
你如何实现"你的意思"?

我正在编写一个应用程序,我需要类似于Google的功能"你的意思是什么?" 搜索引擎使用的功能:

替代文字

是否有可用于此类事情的源代码,或者我在哪里可以找到有助于我构建自己的文章?

Bro*_*ass 125

你应该查看Peter Norvigs关于在几行python中实现拼写检查的文章: 如何编写拼写校正器它还有其他语言实现的链接(即C#)

  • 事实:Peter Norvig是Google的研究总监. (40认同)
  • 这个答案应该标记为已接受.Norvig的算法解决了OP的问题,非常棒,*和*它来自谷歌.:) (9认同)

Sma*_*ery 28

一年半前,我参加了一位谷歌工程师的研讨会,在那里他们讨论了他们的方法.主持人说他们的算法(至少部分)根本没有智能; 而是利用他们可以访问的大量数据.他们确定,如果有人搜索"Brittany Speares",点击什么,然后再搜索"Britney Spears",并点击某些内容,我们可以对他们搜索的内容进行公平猜测,并可以建议未来.

免责声明:这可能只是他们算法的一部分


Esc*_*alo 16

Python有一个名为的模块difflib.它提供了一个称为的功能get_close_matches.从Python文档:

get_close_matches(word, possibilities[, n][, cutoff])

返回最佳"足够好"的比赛列表. word是需要密切匹配的序列(通常是字符串),并且 可能性是与匹配的序列列表 (通常是字符串列表).

可选参数n(默认值 3)是要返回的最大匹配数; n必须大于0.

可选参数cutoff(默认值 0.6)是[0,1]范围内的浮点数.不会得到至少与单词类似的得分的可能性被忽略.

可能性中的最佳(不超过n)匹配在列表中返回,按相似性得分排序,最相似.

  >>> get_close_matches('appel', ['ape', 'apple', 'peach', 'puppy'])
  ['apple', 'ape']
  >>> import keyword
  >>> get_close_matches('wheel', keyword.kwlist)
  ['while']
  >>> get_close_matches('apple', keyword.kwlist)
  []
  >>> get_close_matches('accept', keyword.kwlist)
  ['except']
Run Code Online (Sandbox Code Playgroud)

这个图书馆可以帮到你吗?