或者

刷百度相关搜索和下拉框的技术原理

作者:匆匆那年 浏览:122 发布时间:2017-11-03
分享 评论 0

    第一:百度搜索SEO出现的相关搜索:


    以SEO为核心的相关词-什么是SEO,如何进行SEO


    以SEO语义相关的相关词-网络推广


    第二:搜狗搜索SEO出现的相关搜索:


    以SEO为核心的相关词- seo是什么 seo教程seo查询


    以SEO语义相关的相关词-搜索引擎优化


    第三:360搜索知乎出现的相关搜索


    以知乎为核心的知乎网,知乎日报


    以知乎同类性质,语义相关的果壳网,天涯论坛


    还有一就是产品,品牌,公司相关,比如搜饮料出现康师傅


    相关搜索含义:用户在搜索框搜索关键词的时候,在搜索结果页的最下方呈现出与搜索词精准匹配,词组匹配,广泛匹配,相同拼音的相关词。遵循拼音,词组,意义相关性算法。


    相关搜索目的:增加用户搜索体验感,最大限度的解决用户的搜索需求。当用户查询词不当,查询结果不佳,不知道还有什么更精彩丰富内容,那么相关搜索就可以解决这些用户痛点,为用户启发性质作用,帮助用户发现和他更多他意图相关的词。


    下拉框是一种搜索提示,是用户搜索关键词没有点击搜索的时候出现的提示,根据关键词前缀匹配


    相关搜索是一种推荐引擎,是用户搜索关键词点击搜索之后的推荐,根据关键词语义,拼音,词组匹配


    第一:为了最正确的搜索结果。


    第二:是为了扩展搜索,找到更多的东西。


    刷搜索引擎相关搜索的目的:


    第一:就是让我们网站已经有了排名的品牌词,网站名称,网站关键词出现在更多关键词的相关搜索中,让更多的用户点击相关搜索达到网站,提高网站权重,网站流量。


    第二:当搜某个核心关键词,在相关搜索中出现你的产品,品牌,名称的推荐,那么会给用户带来视觉冲击,信任建立,知名度,竞争力。


    第三:起到引导作用,比如搜索饮料相关搜索出现康师傅,那么用户很可能会点击康师傅。


    刷百度相关搜索原理:


    第一:搜索词热搜指数,热搜度,当一个词的热度达到一定搜索流量的时候,只要搜索该词的拼音,相关词就会出现该关键词。


    第二:与搜索词相关度,相关搜索词语义,拼音,词组肯定和搜索词匹配。


    第三:搜索引擎网站流量,就算没有人搜索这个次,但是改词在百度的权重非常高,同样能够出现在相关搜索词中。


    第四:下拉框和相关搜索的影响度很高。


    第五:实时热点,例子,搜索知乎的时候,出现了林志颖,这个语义并不关联,但是林志颖的人气很高,导致搜索了知乎的人可能跟着搜索过林志颖,这是用户行为决定的搜索相关词也是其中一个算法原理。


    刷相关搜索的实现方法:


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


    打开百度首页//www.baidu.com/输入黑卡纸出来的地址为:


    //www.baidu.com/s?wd=%BA%DA%BF%A8%D6%BD&rsv_bp=0&inputT=32343


    这串代码中:%BA%DA%BF%A8%D6%BD是代表黑卡纸的代码


    inputT=32343这个是代表搜索结果出来的运算时间(每台电脑这个数据都不一样的)


    再出来的页面中输入你要的品牌,比如荔禾黑卡,输入完毕后,点百度一下。


    出来的地址为://www.baidu.com/s?bs=%BA%DA%BF%A8%D6%BD&f=8&rsv_bp=1&wd=%BA%DA%BF%A8%D6%BD%C0%F3%BA%CC%BA%DA%BF%A8&inputT=54390


    这串代码中:


    %BA%DA%BF%A8%D6%BD


    这里不变,因为这个是之前我们搜索的黑卡纸,百度就在这里开始记录下黑卡纸和现在的黑卡纸荔禾黑卡这两个词是相关的。


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


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


    %BA%DA%BF%A8%D6%BD%C0%F3%BA%CC%BA%DA%BF%A8是代表黑卡纸荔禾黑卡的代码


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


    第二:雇佣水军,或者买肉鸡真实去人为制造相关搜索量。


    第三:去购买网站的弹窗广告,用户没点一次就是搜索一次。


    第四:诱导,通过在论坛或其他流量大的页面,放上相关词和搜索词的访问地址后诱导用户不断点击。


    第五:购买软件来刷搜索引擎相关搜索。


    注意:


    第一:相关搜索词必须有一定的搜索量


    第二:相关搜索词确实和搜索关键词是相关性质的词


    怎么删除百度相关搜索:


    第一:百度网页投诉中心投诉


    第二:把正面的信息刷上去压制负面相关搜索,并把正面信息做好相应的着陆文章页面。


    相关搜索算法思想:


    相关搜索系统的输入为用户的搜索词,而输出是一堆与这个词相关的其他词。


    搜索词的出现得益于搜索引擎的词典,可以计算出语义相关的词,但是这样的词典中语义相关的词还是不足与满足用户,所以在次基础上加入用户行为(搜索记录,点击记录)来拓展更多相关词库。


    通过用户数据引发的思考:


    第一:后继词,当用户搜索一个词比如SEO,,发现在搜索结果列表中没有你需要的内容,那么就继续用户其他的词来寻找,比如搜索SEO教程,那么SEO教程就成了SEO的后继词了,所以这种属于用户帮搜索引擎找语义相关词。


    第二:如果一个关键词搜索词结果,跟另外一个,甚至几个关键词搜索出来的结果很多交集,那么这些关键词很可能也是语义相关的词,如果这些搜索结果的交集被点击并满足了,那就确定相关了。


    比如:搜索关键词A,B,同样找到了结果中的HTML1页面都满足了这个搜索词的需求,那么A,B是有一定相关性的。


    相关搜索算法实现原理:


    用户后继词原理:


    把用户在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行,很容易实现的。


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


    分形:分形理论|分形图像|分形数学


    机器学习:吴恩达|数据挖掘|机器学习周志华


    林心如:霍建华|任重|何润东……


    机器学习


    既然上面提到了一下机器学习,其实还有更高端一点的算法,就是用机器学习了,呵呵。我们如果把上面的结果key:搜索词Aclick:结果A结果B结果C处理一下,变成下面的样子,表示每个结果集对应的搜索词。


    结果A:搜索词A搜索词B搜索词C…


    结果B:搜索词B搜索词A搜索词D……


    变成上面这个样子难度不大吧,就是做个倒排就行了,好了,我们把一行看成一篇文档,每个搜索词看成一个词,不就是求各个词的相似性嘛,祭出神器Word2Vec,直接计算每个搜索词的词向量,然后计算各个词向量之间的相似性,就可以算出每个词应该推荐的词了。


    在这里,我们使用了当前最火的机器学习哦,如果用word2vec的库来实现的话,代码同样不超过20行,呵呵,word2vec我之前的文章也有说过,可以看看底部的链接


    模型MIX


    上面说了四种模型,如果使用呢?呵呵,相关搜索不是有很多词嘛,很简单拉,每个模型分几个词,看看哪个模型效果好,哪个模型出来的词用户点得多再调整呗,我们看看京东,搜索资治通鉴的时候他们的相关搜索如下。


    我估计啊资治通鉴中华书局,资治通鉴柏杨这种就是第一种模型推出来的,就是后继词部分推荐出来的,而史记,二十四史这类应该就是通过协同过滤推荐出来的,至于是哪种协同过滤就不好推测了。