专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

武汉SEO浏览器中搜索引擎算法公式,PR算法安装步骤及计算

来源:小易整编  作者:小易 发布时间:2019-08-10 11:32
摘要:武汉SEO浏览器中搜索引擎算法公式,PR算法安装步骤及计算,能看到这篇文章的读者应该都使用过浏览器,但是你们有谁思考过浏览器中搜索引擎的运作模式? 说个我年轻时有意思的idea 每个用户...

能看到这篇文章的读者应该都使用过浏览器,但是你们有谁思考过浏览器中搜索引擎的运作模式?

说个我年轻时有意思的idea

每个用户输入搜索单词,百度就会记录下数据放进一个字典作为key值。然后给你展示一些相关网页,当你选择其中一个,这个选择会被记录为value值存入字典,相同类型越多,这个组合的位置上升地越高。

这么做现在想想也是可行,就是效率会特别低下。而且它有一个不足之处:它把多维关系进行了降维处理。

比如下图

value

A和B可以使一个key:value的关系,可是有时候B也可以是key值,这里就设计到一个权重问题。每一个网页都需要有一个权重值用来评估它的可靠性。

1998年之前的搜索引擎是通过时间顺序基于检索词进行检索。往往搜索结果网页质量不高,很多网页也会故意增加检索词频率,相当于现在的蹭热度。

比如你检索北京市某某中学,它会在下面弄一个友情链接:北京市教育局,公安局……这么做就是为了别人在搜索教育局和公安局的时候给自己增加权重。

为此谷歌的拉里佩奇提出了PageRank算法用来解决这一问题。PR直接翻译就是网页权重,指的是一个网页影响力等于所有入链集合的页面加权影响力之和。

具体公式如下

pr

首先需要了解两个概念

出链:链接出去的链接

入链:链接进来的链接

PR算法还有两个问题

等级泄露:如果一个网页没有出链,就像黑洞一样吸收了其他网页的影响力,导致其他网页PR为0

等级沉没:如果一个网页只有出链,没有入链,迭代下来也会导致该网页PR为0(不存在分母v)

为此拉里佩奇一拍脑门,想出了一个阻尼因子d用来收敛PR算法模型。

具体公式如下

pr

理论太枯燥,我们用实际案例来解释。

安装模块

安装模块

左下角install package。

导入模块

导入模块

创建有向关系

创建有向关系

就是上面那个图片关系。

这里你会发现这是一个列表,其中里面的有向关系是以元组的形式存在的。

创建有向图

创建有向图

查看数据类型

networkx.classes.digraph.DiGraph

添加节点

添加节点

查看个数/节点

查看个数/节点

run

run

求PR值

求PR值

run

run

基础的说完了,接下来实践一个项目,说实话网上数据很多,但是有向的数据真不多。为了给读者一个福利,我好费劲才弄了一份。嘿嘿嘿……

导入模块
导入模块

1和2就不介绍了

3是有向网络模型

4是防错字典模块

读取数据
读取数据

run
run

AB列是人名,我用了加密技术转化为了字符串,C列是两个人交易的金额。

把数据放入列表
把数据放入列表

PR算法中的有向关系是用元组的形式存储的,C列数据用于绘制网络中的边长度。

运行结果
运行结果

list1赋值给变量
list1赋值给变量

为啥要另外赋值一次?

没啥原因:处女座!

创建有向图
创建有向图

防错字典
防错字典

填充数据和边长
填充数据和边长

第一步:填充graph

第二步:填充edges_weights_temp

第二步看着有点复杂,理解了就简单了:假设一个元组不在edges_weights_temp中,则以该【元组】为key,C列为值,如果存在,则累加C列的值。

加个判断看一下效果
加个判断看一下效果

run
run

再把字典转化为列表

设置路径和权重
设置路径和权重

计算PR值
计算PR值

run
run

这就是每个人在这份数据中的交易权重。

设置节点属性
设置节点属性

定义画图函数
定义画图函数

1.判断语句为各种图形的类别

2.使用PR值设置节点大小

3.设置网络边长度

4.绘制图形的节点、边、标签

5.展示图片

运行结果

运行结果

我们发现f362这个人与其他人都有着密切的交易关系,这是一只大佬啊。

打开数据验证一下,正向交易
数据验证

验证fb2a
验证fb2a

如果我们觉得图片中点太多,只要发现其中隐藏的大佬,我们可以用PR值剪枝。

设置阙值
设置阙值

复制网络图
复制网络图

剪掉低于阙值的节点
剪掉低于阙值的节点

n和p_rank
n和p_rank

画图
画图

运行结果

pr

重要角色都被选了出来,是不是很好玩?今天的内容有点多,好好消化一下。


本文地址:网络营销频道 https://www.hkm168.com/zhishi/788.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们处理,谢谢!


网络营销
小编:小易整编
相关文章相关阅读
  • 奇异值分解(SVD)简介及其在图片压缩中的示例

    奇异值分解(SVD)简介及其在图片压缩中的示例

    奇异值分解(SVD)是一种用于矩阵分解的方法。它将一个矩阵分解为三个矩阵的乘积,分别是左奇异向量矩阵、右奇异向量矩阵和奇异值矩阵。SVD在数据降维、信号处理、推荐系统等领域广泛应用。通过SVD,我们可以将高维数据降低到低维空间,从而提取出数...

  • 某台微机安装的是64位操作系统中,64位指的是什么

    某台微机安装的是64位操作系统中,64位指的是什么

    某台微机安装的是64位操作系统中,64位指的是cpu的字长,即cpu每次能处理64位二进制数据。字长是cpu的主要技术指标之一,指的是cpu一次能并行处理的二进制位数,字长总是8的整数倍,通常pc机的字长为32位,64位。本教程操作环境:w...

  • ppt中怎么插入自定义动作按钮

    ppt中怎么插入自定义动作按钮

    ppt插入自定义动作按钮: 打开幻灯片文件,然后在菜单栏中点击插入,打开插入工具栏,之后在插入工具栏中选择形状工具,如下图所示:点击形状工具后,就打开所有预置的形状列表,如下图所示,选择我们需要的形状。选择好形状后,自动退回到ppt文件编辑...

  • 修复:在 Xbox 应用上的 Halo Infinite(Campaign)安装错误代码 0X80070032、0X80070424 或 0X80070005

    修复:在 Xbox 应用上的 Halo Infinite(Campaign)安装错误代码 0X80070032、0X80070424 或 0X80070005

    haloinfinite(campaign)是一款第一人称射击视频游戏,于2021年11月推出,可供单人和多用户使用。该游戏是halo系列的延续,适用于windows、xboxone和xbox系列的用户x|s。最近...

  • 什么是构造函数?详解JavaScript中的构造函数

    什么是构造函数?详解JavaScript中的构造函数

    作为原型和原型链的基础,先了解清楚构造函数以及它的执行过程才能更好地帮助我们学习原型和原型链的知识。本篇文章带大家详细了解一下javascript中的构造函数,介绍一下怎么利用构造函数创建一个js对象,希望对大家有所帮助!一个普通的函数被用...

  • mysql中的不等于符号是什么

    mysql中的不等于符号是什么

    mysql中的不等于符号有两种:“!=”和“”;它们都可用于判断数字、字符串、表达式是否不相等。对于“!=”和“”,如果两侧操作数不相等,返回值为1,否则返回值为0;如果两侧操作数有一个是null,那么返回值也是null。本教程操作环境:w...

  • 如何取消PPT中的所有动画效果和声音

    如何取消PPT中的所有动画效果和声音

    当我们为ppt添加了动画效果后,有时又会发现需要取消这些动画效果。那么,ppt动画效果怎么全部取消?幸运的是,powerpoint提供了一种简单而高效的方法。下面小编就来为大家讲讲如何去掉ppt的动画效果,让观众更好地关注您想要传达的信息。...

  • html中浮动是什么

    html中浮动是什么

    在html中,浮动就是让元素可以向左或向右移动,直到它的外边距碰到其父级的内边距或者是上一个元素的外边距,只需要给元素设置“float:left|right|none|inherit”样式即可。本教程操作环境:windows7系统、CSS3...

  • 周排行
  • 月排行
  • 年排行