正确地猜测用户的意图

当我们在Collins词典中输入“voilent”的时候,会有如下提示:

当我们在Google中搜索“voilent”的时候,也会有如下提示:

Collins和Google是如何做到的呢?它是怎么知道我们把i和o的位置弄反了呢?

当我们输入一个词,而这个词不存在于Google的倒排索引或者Collins的词典中时,我们就可以假设用户输入可能有误,接着我们通过算法找出一个和用户的输入最相似的词推荐给用户,这个找出和用户输入最相似的词的算法有很多种,最常用的有编辑距离算法(Edit Distance),因为这个算法是俄罗斯科学家Vladimir Levenshtein在1965年提出的,所以编辑距离(Edit Distance)又叫做Levenshtein距离。

编辑距离算法是指两个字串之间,由一个转成另一个所需的最少编辑操作次数,允许的编辑操作包括将一个字符替换成另一个字符,增加一个字符,删除一个字符。

例如将kitten转成sitting:

sitten (k→s)将一个字符k替换成另一个字符s

sittin  (e→i) 将一个字符e替换成另一个字符i

sitting (→g) 增加一个字符g

所以编辑距离为3,word分词提供了编辑距离算法的Java代码实现,同时superword项目也演示了编辑距离算法对于单词记忆的辅助作用

下面我们看看中文的情况,当我们在Google搜索“热挨”的时候,Google在倒排索引中找不到“热挨”这个词,于是它猜测我们真正想搜索的是“热爱”,那么Google是怎么猜测到我们的意图的呢?

工作原理和上面介绍的英文词比较相似,只是算法不一样,如果把编辑距离算法应用到这里,效果会很差,那么怎么办呢?

解决方法是利用汉语的同音词原理,先把“热挨”转换为拼音“reai”,然后找出所有拼音为“reai”的双字词,在按照词的出现频率取频率最大者“热爱”。

时间: 2024-10-25 04:42:06

正确地猜测用户的意图的相关文章

搜索引擎——用户搜索意图的理解及其难点解析,本质是利用机器学习用户的意图分类

用户搜索意图的理解及其难点解析 搜索引擎涉及的技术非常的繁复,既有工程架构方面的,又有算法策略方面的.综合来讲,一个搜索引擎的技术构建主要包含三大部分: 对 query 的理解 对内容(文档)的理解 对 query 和内容(文档)的匹配和排序 (点击放大图像) 我们今天主要探讨其中的 Query Understanding,即对 query 的理解.对 query 的理解, 换句话说就是对用户搜索意图的理解.先看垂直搜索中的一些例子: "附近的特价酒店" "上海到扬州高速怎么

使用nginx反向代理时,如何正确获取到用户的真实ip

在记录日志的的时候,获取用户的信息,比如用户的ip,浏览器等等信息是十分重要的. 但是在使用nginx反向代理的时候,可能经过转发无法获取到用户的真实的ip, 在此情况下需要配置nginx,让其在转发的时候在header 带上用户的真实的ip. 举个例子: server { listen 80; server_name xxx.lenny.net; root D:\soft\nginx-1.11.4\html; index index.php index.html index.htm; add_

2-2 常见的用户搜索意图

一.导航型搜索 用户为进入某一个已知的网站进行的搜索. 例如:搜索关键词"51CTO"."京东"等. 这类搜索因为已经非常精准到品牌,所以用户的需求很明确,因此不需要在此类上花精力,只要做好自己品牌的关键词即可. 二.信息型搜索 用户以寻找问题的答案或者关键词相关的信息为目的,所进行的搜索类型. 例如:搜索关键词"网络营销"等. 此类搜索是量最大的一类,所以绝大部分网站都会做,也是流量最大的一类. 三.交易型搜索 用户以购买为主要目的的搜索类别.

《需求工程——软件建模与分析》阅读笔记一

我通读了这本书的第一部分,这里主要讲述了需求工程的一些入门知识.通读之后,我也有所收获. 下面,我把自己对需求工程的基础的理解进行简单描述. 一.需求过程的第一步时需求获取.需求获取是从人.文档或者环境中获取需求的过程.在需求获取中,需求工程师通常需要执行以下步骤: 1.收集背景资料. 2.定义项目前景和范围. 3.选择信息的来源. 4.选择获取方法,执行获取. 5.记录获取结果. 二.第二步是需求分析,它的主要工作是通过建模来整合各种信息,从而使人们更好的理解问题.同时,需求分析工作还会为问题

架构反思案例之桌面程序架构案例

这是一个大型的桌面版程序,前后有上百个人在这个软件的各个组件上奋战,这里介绍的部分基本上都是我留下足迹的部分,或者是参与设计,或者是重用这些组件,也或者是改造过这些组件. 插件架构 这个结构很清楚,是很多项目必选的架构,插件具有高度的灵活性和扩展性,这是这个架构突出的优点. 采用了这个架构的程序,通常有两种做法: 一种做法都是把每个单独的工程(单独的dll)作为单独的插件加载,在加载的过程中完成初始化的工作,在所有插件加载完毕以后根据插件的状态再初始化程序的界面,这也是这个项目的做法. 另一种做

Spring Boot实战之逐行释义HelloWorld

一.前言  研究Spring boot也有一小段时间了,最近会将研究东西整理一下给大家分享,大概会有10~20篇左右的博客,整个系列会以一个简单的博客系统作为基础,因为光讲理论很多东西不是特别容易理解,并且如果每次通过一个简单的小程序也无法系统的把握好一些知识点,所以就以一个简单的系统作为基础来讲,看看通过spring boot如何实现一个完整系统.本系列除了Spring boot基本的知识点之外,还会涉及到Spring boot与数据库.缓存(redis).消息队列等的结合以及多实例部署等方面

Item 18:让接口容易被正确使用,不易被误用 Effective C++笔记

Item 18: Make interfaces easy to use correctly and hard to use incorrectly. "让接口容易被正确使用,不易被误用",这也是面向对象设计中的重要概念,好的接口在工程实践中尤其重要. 在使用优秀的第三方组件时,常常能够切身感受到好的接口原来可以这么方便,甚至不需记住它的名字和参数就能正确地调用. 反观自己写的API,常常会有人三番五次地问这个参数怎么设置,真是失败.人非圣贤孰能无过,只能在这种痛苦的驱动下努力的重构和

用户行为?莫整那些虚的,眼见为实!

有人说:"一张图片胜过千言万语":还有人说:"一个视频价值上百万句话".在了解您的应用用户时,其实同样如此. 当您在任何一个分析平台查看饼图和图表时,您会发现它们确实可以胜过千言万语.那么,如果您还可以看到用户在应用里的真实操作轨迹的视频请添加链接描述,那是不是更有价值呢?试想一下还有什么方式比您能亲自站在用户的立场去查看和体验用户行为更好的呢?这就是用户操作录屏的强大与魅力所在. 为了更深入地了解您的应用用户,我们精心挑选了这5种类型的用户行为视频.这些用户视频将

【总结整理】用户的需求分析:问对问题才能找准用户需求----摘自《人人都是产品经理》

用户的需求分析:问对问题才能找准用户需求(一) Geek 微信公众号:产品Ren 2018-10-18 7888 66 18 零基础学产品,BAT产品总监带,2天线下集训+1年在线课程,全面掌握优秀产品经理必备技能.了解详情 释放双眼,带上耳机,听听看~! 00:00 00:00 在需求收集的过程中,首先需要问对一个好问题,只有带着合理&有效的问题才能得到正确的答案. 我之前看了很多产品经理的书,记得大部分书上边都写着产品经理应该是一个全才,他们需要懂社会学.心理学.统计学等等一系列的知识. 那