zoukankan      html  css  js  c++  java
  • 刷百度相关搜索发包参数详解

        因很多人需要百度相关搜索,很多人用这个技术卖钱,自己本着技术的爱好,把这个分享给大家!

       刷相关搜索的实现方法:

    第一:比如圆柱模板,我们可以先搜索圆柱模板厂家,然后接着再去搜索圆柱模板价格,那么每天以几倍的方式增加,当达到一定搜索量的时候,那么圆柱模板的相关词搜索就会出现圆柱模板价格了。

      打开百度首页//www.baidu.com/输入圆柱模板出来的地址为:

      

    https://www.baidu.com/s?ie=UTF-8&wd=%E5%9C%86%E6%9F%B1%E6%A8%A1%E6%9D%BF
    

      这串代码中:

    %E5%9C%86%E6%9F%B1%E6%A8%A1%E6%9D%BF
    

      

          是代表圆柱模板的代码

       再出来的页面中输入你要的品牌,比如鹏程圆柱模板,输入完毕后,点百度一下。

         

    https://www.baidu.com/s?bs=%E5%9C%86%E6%9F%B1%E6%A8%A1%E6%9D%BF&f=8&rsv_bp=1&wd=%E9%B9%8F%E7%A8%8B%E5%9C%86%E6%9F%B1%E6%A8%A1%E6%9D%BF&inputT=54390
    

        这串代码中:

        

    %E5%9C%86%E6%9F%B1%E6%A8%A1%E6%9D%BF
    

      是不变的,代表:圆柱模板  关键词

       f=8这个数值是会变动的。范围为:

      0-9.数值越高,代表着这个相关搜索的词越容易做上去。

       

    %E9%B9%8F%E7%A8%8B%E5%9C%86%E6%9F%B1%E6%A8%A1%E6%9D%
    

      代表的是:鹏程圆柱模板 这个相关词的代码

       

    inputT=54390
    

      代表这个是代表搜索结果出来的运算时间

       

    相关搜索算法实现原理:

    用户后继词原理:

    把用户在5分钟之内在搜索引擎中搜索词定义为一次搜索行为,那么就形成了搜索日志,搜索日志如下:

    cookie:用户cookieid keys:[A1,A2.....] [B1,B2.....] [C1,C2.....]

    接着按用户进行分类,时间间隔5分钟进行数据清理,[x1,x2.....]一个数组表示一次搜索行为,每个数组的第一位就是当次搜索行为的第一个搜索词。

    cookie:用户cookieid keys:[A1,A2.....] [B1,B2.....] [C1,C2.....]

    对于单个用户来说搜索后继词的确定性是不够的,比如搜索科比,但是一看到旁边有人我就立刻改变搜索培训,那么这两个词是没有相关性质的。那么就加入统计规则去掉一些杂质,比如某个词B只有出现在5个用户的相同的搜索词A的后继词中才算一个A的后继词,还有其他的一些规则,这么下来,日志就变成了。

    key:A succeed:A1,A2,A3.....

    用户协同过滤原理:

    当搜索用户日志足够多的情况,可以把拥有相同搜索记录的用户聚合起来,通过协同过滤算法,获取更多的相关性的词。通过下面协同过滤算法同样可以把加索尔推荐给NBA了。

    A用户:篮球 后继词 男篮 女篮

    B用户:NBA 后继词 男篮 科比

    C用户:男篮比赛 后继词 男篮 加索尔

    从搜索词算法实现:

    如果一个关键词搜索词结果,跟另外一个,甚至几个关键词搜索出来的结果很多交集,那么这些关键词很可能也是语义相关的词。

    从搜索日志来看例子:

    key:搜索词 time:搜索时间 cookie:用户cookieid result:a,b,c,d,e(前5个搜索结果)

    这次,我们只用key和result两项,稍微处理下来以后就变成了

    key:搜索词A result:a,b,c,d,e(前5个搜索结果)

    key:搜索词B result:a,f,c,g,m(前5个搜索结果)

    如果我们把每一行数据的result想象成一篇文档,result里面的每个结果集想象成一个词语,那么这其实就是求两个文档之间的相似性了,从头到尾过一遍就可以找到每一行数据和它最相似的数据了,而每一行可以用当行的搜索词表示,这么一算下来数据就变成这样子了,后面的括号里面是两个词的相似度,如果想知道文本的相似性如何计算,可以参考我之前的文章,本文最后有链接。

    key:搜索词Asucceed:搜索词B(0.8)搜索词C(0.6).....

    key:搜索词Bsucceed:搜索词A(0.8)搜索词E(0.7).....

    有了上面这个数据,拍一个阈值(比如0.7)卡一下,就得到最后的相关搜索的结果了。

    这个计算相似性的方法的计算量比较大,而且阈值没有卡好的话容易出现不相关的结果,在实际工程应用中使用得不多,下面这个方法使用得更多点,相当于这个的加强版。

    从用户搜索结果集考虑

    如果某个搜索结果(比如一个网页或者一个商品)出现在了不同的搜索词的结果集中,那么这些个搜索词很可能是相关的,如果这个搜索结果在不同的搜索词下都被点击了,那么这些个词的相关性就更高了。

    点击的加成是很强大的,而且在数据量巨大的情况下,我们可以只考虑点击的情况,还是拉出搜索日志,不过这次是搜索点击日志了,拉出来处理一下就变成下面这个样子,每行就是某个搜索词下点击的商品

    key:搜索词Aclick:结果A结果B结果C

    这个样子和上面第二种方法最后出来的样子基本一样,不过这次是点击数据,相关性可比直接的搜索结果要好很多了,因为搜索结果取决于你的搜索算法,而这种点击数据是来自用户的,人的可靠性可高了不少,所以说这个是上一个的加强版。

    我们可以按照上一个的方法按文本相似性的方法进行处理,但是计算量也比较大,如果再仔细看看这个数据的样子,如果我们把相关搜索系统想象成豆瓣,搜索词看成豆瓣的用户,搜索结果集看成是豆瓣的电影,那么相关搜索就变成了一个豆瓣的猜你感兴趣的人,也变成了一个协同过滤的推荐系统了(协同过滤算法可以参考文章最后的链接),上一节的协同过滤算法的数据是词和后继词,这里是词和点击结果,虽然数据集不同,但是可以用一样的算法,所以,搜索和推荐技术其实是密不可分的,既然这样,完全可以用协同过滤算法进行推荐了。

    协同过滤的算法,简单版本整体不会超过200行,很容易实现的。

    通过这样的方式,容易推出意思相近的词,同样也容易推出看似完全不相关但仔细想想还是靠谱的词,就像下面这样,他们虽然不见得近义词,但是很可能会点击到同一个结果上。

  • 相关阅读:
    g4e基础篇#1 为什么要使用版本控制系统
    软件开发的自然属性
    定时器实现延时处理
    二分查找法
    php实现循环链表
    redis实现分布式锁
    RabbitMq初探——用队列实现RPC
    RabbitMq初探——发布与订阅
    RabbitMq初探——消息均发
    RabbitMq初探——消息持久化
  • 原文地址:https://www.cnblogs.com/68xi/p/11675312.html
Copyright © 2011-2022 走看看