再深入一步,用户想找“舒淇在非诚勿扰2中用的手机”,如果我们可以把这个问题转化为对“朵唯S920”的搜索,那就是非常非常好的效果了,至于这个query如何对应到这个结果,也许后面的一些分析,能提供一些线索。朵唯s920
具体的实现,可以参考下面几点,
对query的线上处理,如果是较为hot的query,可以以查表为主,可以用hash表,trie树等进行查表,把下计算好的数据,通过查表的方式找到对应的结果,附加到给引擎的搜索条件上,并返回。
另外,可以把线下训练好的模型,上进行预测,一般的分类算法预测速度都比较快。可以对长尾的query,进行及时的预测。
也可以做一些规则,如我们上面举的例子,“1000元左右”,可以通过正则表达式进行识别,将其转为对应的搜索条件。这些规则如何来定呢,这是比较麻烦的一点,像这类的query,肯定是pv比较低的,属于长尾的query,这些query效果提升可能比较明显,但是对总体搜索系统效果影响会较小。这个问题比较尴尬,如果我们这类query处理的效果好的话,那用户会使用的更多;用户知道了这样的query效果不好,所以就换成了效果好的query。如果要做好规则,那就把长尾的这些query都拿出来,多看看,分下类,再结合实际的问题分类,总结出一些通用的规则,来进行优化。
搜索引擎主要负责检索和排序,一般由一些倒排表和正排表组成。倒排表用于查找对应的文档id,能快速的检索出命中query的文档,在根据正排表来查对应id的数据。
一般将需要字符串类型的文档字段作为倒排表来进行检索,字符型的字段可以放在正排表中,在通过倒排表找到了满足条件的文档,再在正排表中进行过滤。
找到满足条件的文档后,再进行过滤,统计,并根据排序参数进行排序。
排序分为2个部分,一部分是文档自身的静态分,每个文档会有类pagerank这样分数,另外一部分是还有和query相关的部分,会计算文档和query的关系,例如,query中出现的词的在文档中是否距离较近,query是否为文档的中心词。
日志存储系统收集前端记录的日志,存储在数据仓库中,解析后用分布式文件系统来存放。有几类日志比较重要,
A、 搜索日志,搜索日志一般会包括以下一些信息,用户id,session id,用户搜索query,用户当前搜索的分类,用户搜索时间,
B、 点击日志,用户id,session id,用户搜索query,用户当前搜索的分类,用户点击的item,用户点击时间
C、 当然可能还有其他的如交易记录等,
有了以上几个部分之后,我们就可以通过以下2个部分来进行用户意图的预测,
日志分析主要是一种统计分析,数据源来自于访问日志。另外还可以分析中存储的用户的购买,收藏等行为。

可以从日志中分析出用户搜索query,“nike”最想找的是运动鞋呢,还是运动服。
常用的应用有下拉提示,相关搜索等,
下拉推荐是一种比较常用的用户意图分析的系统,通常是统计日志中,表现比较好的query,将这些query按照pv和数据表现等指标进行排序,然后把query转化为英文和中文对应的前缀,把相同前缀的建成统一索引,在用户输入关键词后,推荐相应的query。
相关搜索是更为常用的用户意图分析,一般通过关联规则(Apriori,FP-growth),统计同一sesion中,用户经常出现的相关的query,比如,可以发现同一个session里面搜索了nike的用户,很多都搜索了“nike dunk”这样的信息,我们就可以再搜索结果中进行改进。这一算法可以大量应用于数据挖掘。推广开去,我们要找某个类目下进行了购买的用户,还希望购买些什么类目的东西;看了一本书的用户,还会看什么书;搜索了一个“长款”属性,是否还希望“修身”这样的属性。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shouji/article-23600-2.html
违法或者违背社会道德风尚的言论吧
我刚升级了
一样的价格