Google如何“你的意思是?” 算法的工作?
我一直在为一个投资组合管理工具开发一个内部网站。 有很多文本数据,公司名称等。我对一些搜索引擎非常快速响应查询的能力留下了深刻的印象,“你的意思是:xxxx”。
我需要能够智能地进行用户查询,并且不仅能够对原始搜索结果进行响应,而且还能够以“您的意思是?”进行响应。 当存在很可能的备选答案等时的响应
[我正在开发ASP.NET(VB - 不要抱着它!)]
更新:好的,如果没有数百万的“无偿用户”,我该如何模仿?
这里是直接从源代码(几乎)
搜索101!
在22:03分
值得一看!
根据谷歌公司前首席技术官Douglas Merrill的说法,它就是这样的:
1)你在谷歌写了一个(拼错的)单词
2)你没有找到你想要的东西(不要点击任何结果)
3)你意识到你拼错了单词,所以你在搜索框中重写了单词。
4)你找到你想要的(你点击第一个链接)
这种模式增加了数百万次,显示了最常见的错误,哪些是最常见的错误。
这样Google几乎可以即时提供每种语言的拼写更正。
此外,这意味着如果一夜之间每个人都开始拼写夜晚,因为“黑夜”谷歌会建议这个词。
编辑
@ThomasRutter:道格拉斯将其描述为“统计机器学习”。
他们知道谁更正了查询,因为他们知道哪个查询来自哪个用户(使用cookie)
如果用户执行查询,并且只有10%的用户点击结果,90%返回并键入另一个查询(用纠正的词),并且这次90%点击结果,然后他们知道他们已经找到一个更正。
他们也可以知道这些是两个不同的“相关”查询,因为他们有他们展示的所有链接的信息。
此外,他们现在将上下文纳入拼写检查,因此他们甚至可以根据上下文建议不同的词。
查看谷歌wave的这个演示(@ 44m 06s),它显示了如何考虑上下文来自动更正拼写。
这里解释了自然语言处理是如何工作的。
最后这里是一个很棒的演示,演示如何将自动机器翻译(@ 1h 12m 47s)添加到混音中。
我已经为视频添加了分钟和秒钟定位,以直接跳转到内容,如果它们不起作用,请尝试重新加载页面或手动滚动到标记。
我前一段时间发现了这篇文章: 如何编写拼写纠正器 ,由Peter Norvig(谷歌公司研究总监)撰写。
这是关于“拼写更正”主题的有趣阅读。 这些例子是用Python编写的,但它很容易理解,我认为该算法可以很容易地翻译成其他语言。
下面是对算法的简短描述。 该算法由两个步骤组成,准备和字检查。
第1步:准备 - 设置单词数据库
最好的是,如果你可以使用真正的搜索词和他们的发生。 如果你没有那么多的文本可以用来代替。 计算每个单词的出现(流行度)。
第2步。字检查 - 找到与检查的字相似的字
类似意味着编辑距离很低(通常为0-1或0-2)。 编辑距离是将一个单词转换为另一个单词所需的插入/删除/更改/交换的最小数量。
选择上一步中最流行的单词,并将其作为更正(如果不是单词本身)。
对于“你的意思”算法的理论,你可以参考“信息检索概论”第3章。 它可以在线免费获得。 第3.3节(第52页)完全回答你的问题。 为了专门回答你的更新,你只需要一个词的词典,而不是别的(包括数百万用户)。
链接地址: http://www.djcxy.com/p/62401.html