我在哪里可以了解更多关于谷歌search“你的意思”algorithm?

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

我写了一个应用程序,我需要function类似于谷歌的“你是什么意思? 他们的search引擎使用的function:

替代文字

有源代码可用于这样的事情,或我可以在哪里可以find有助于我build立自己的文章?

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

我在一年半前参加了一位Google工程师的研讨会,在那里他们谈到了他们的方法。 主持人说,他们的algorithm(至less部分)完全没有智能; 而是利用他们可以访问的大量数据。 他们决定,如果有人search“布列塔尼Speares”,点击什么都没有,然后再次search“布兰妮斯皮尔斯”,并点击一些东西,我们可以有一个公正的猜测,他们正在寻找什么,并可以build议在未来。

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

Python有一个名为difflib的模块。 它提供了一个名为get_close_matches的function。 从Python文档:

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

返回最好的“足够好”的匹配列表。 单词是需要紧密匹配的序列(通常是一个string),而可能性是匹配单词的序列列表(通常是一个string列表)。

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

可选参数截止 (默认值为0.6 )是在[0,1]范围内的浮点数。 至less得分与单词相似的可能性被忽略。

列表中返回可能性最好的(不超过n个 )匹配,按相似性得分sorting,最相似的排在前面。

  >>> 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'] 

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

您可以查看提供此function的Xapian源代码,以及许多其他search库。 http://xapian.org/

我不确定它是否符合您的目的,但string编辑距离algorithm与字典可能足够小的应用程序。

我会看看这篇关于谷歌轰炸的文章。 它表明,它只是build议基于以前input的结果的答案。

AFAIK“你的意思是? function不检查拼写。 它只会给你另一个基于googleparsing的内容的查询。

关于这个主题的一个很好的篇章可以在公开的信息检索介绍中find。

你可以用ngram来比较: http : //en.wikipedia.org/wiki/N-gram

使用python ngram模块: http ://packages.python.org/ngram/index.html

 import ngram G2 = ngram.NGram([ "iis7 configure ftp 7.5", "ubunto configre 8.5", "mac configure ftp"]) print "String", "\t", "Similarity" for i in G2.search("iis7 configurftp 7.5", threshold=0.1): print i[0], "\t", i[1] 

你得到:

 >>> String Similarity "iis7 configure ftp 7.5" 0.76 "mac configure ftp 0.24" "ubunto configre 8.5" 0.19 

看看Levenshtein-Automata