当前位置: 首页 > news >正文

PageRank Web页面分级算法 HNUST【数据分析技术】(2025)

1.理论知识

算法原理PageRank 通过网络浩瀚的超链接关系来确定一个页面的等级。

Google 把从 A 页面到 B 页面的链接解释为A页面给B页面投票, Google 根据投票来源(甚至来源的来源, 即链接到A页面的页面)和投票目标的等级来决定新的等级。

PageRank 算法的思想简单的说,一个高等级的页面可以使其他低等级页面的等级提升。如果A页面有一个链接指向B页面,那就可以看作是A页面对B页面的一种信任或推荐。所以,如果一个页面的反向链接越多,再根据这些链接的价值加权越高,那搜索引擎就会判断这样的页面更为重要,页面等级 (PageRank)也就越高。

图4.1 PageRank加权传递图

传递计算公式:


2.算法流程图


3.关键代码

import numpy as np
from fractions import Fractionnp.set_printoptions(formatter={'all': lambda x: str(Fraction(x).limit_denominator())})  # 格式化 保留分数,不至于精度丢失def PageRank(M, R0):  # 定义一个迭代函数,直至MR=R时,输出RRN = {}while (True):RN = np.dot(M, R0)if ((RN == R0).any()):  # 判断两个数组是否相等breakelse:R0 = np.copy(RN)return sorted(RN)if __name__ == '__main__':Map = [[0, 1 / 2, 1, 0],[1 / 3, 0, 0, 1 / 2],[1 / 3, 0, 0, 1 / 2],[1 / 3, 1 / 2, 0, 0]]# 根据有向图M = np.array(Map)# 转移矩阵num = len(Map)R0 = np.array([1 / num, 1 / num, 1 / num, 1 / num]).reshape(4, 1)  # 初始R0R_1 = PageRank(M, R0)print('------------------------------------------------------')print("有向图:")print("\n".join(str(x) for x in Map))print('------------------------------------------------------')print("PageRank计算结果为:")print("\n".join(str(x) for x in R_1))print('------------------------------------------------------')

4.测试数据

表4.1 PageRank有向矩阵

A

B

C

D

A

0

1/2

1

0

B

1/3

0

0

1/2

C

1/3

0

0

1/2

C

1/3

1/2

0

0


5.实验结果与分析

图 4.2 PageRank计算结果


6.算法优缺点

优点:

  1. 是一个与查询无关的静态算法,所有网页的PageRank值通过离线计算获得;
  2. 有效减少在线查询时的计算量,极大降低了查询响应时间。

缺点:

  1. 人们的查询具有主题特征,PageRank忽略了主题相关性,导致结果的相关性和主题性降低。
  2. 旧的页面等级会比新页面高。因为即使是非常好的新页面也不会有很多上游链接,除非它是某个站点的子站点。

其他实验(我是芒果酱点一个关注吧(σ′▽‵)′▽‵)σ)

  • k-Means聚类算法 HNUST【数据分析技术】(2024)-CSDN博客
  • PageRank Web页面分级算法 HNUST【数据分析技术】(2024)-CSDN博客
  • KNN分类算法 HNUST【数据分析技术】(2024)-CSDN博客
  • Apriori关联规则算法 HNUST【数据分析技术】(2024)-CSDN博客

相关文章:

PageRank Web页面分级算法 HNUST【数据分析技术】(2025)

1.理论知识 算法原理PageRank 通过网络浩瀚的超链接关系来确定一个页面的等级。 Google 把从 A 页面到 B 页面的链接解释为A页面给B页面投票, Google 根据投票来源(甚至来源的来源, 即链接到A页面的页面)和投票目标的等级来决定新…...

数字IC前端学习笔记:脉动阵列的设计方法学(四)

相关阅读 数字IC前端https://blog.csdn.net/weixin_45791458/category_12173698.html?spm1001.2014.3001.5482 引言 脉动结构(也称为脉动阵列)表示一种有节奏地计算并通过系统传输数据的处理单元(PEs)网络。这些处理单元有规律地泵入泵出数据以保持规则…...

对话 Project Astra 研究主管:打造通用 AI 助理,主动视频交互和全双工对话是未来重点

Project Astra 愿景之一:「系统不仅能在你说话时做出回应,还能在持续的过程中帮助你。」 近期,Google DeepMind 的 YouTube 频道采访了 Google DeepMind 研究主管格雷格韦恩 (Greg Wayne)。 格雷格韦恩的研究工作为 DeepMind 的诸多突破性成…...

NetApp 存储设备巡检作业指导书

NetApp 存储设备巡检作业指导书 一、目的 本指导书旨在指导管理员通过 SSH 或 Console 登录 NetApp FAS2552 存储系统,切换节点并进行日常管理操作。 二、适用范围 适用于基于 NetApp ONTAP 操作系统的 FAS2552 存储环境。 三、前提条件 网络和权限要求&#xff1…...

adb无法连接到安卓设备【解决方案】报错:adb server version (40) doesn‘t match this client (41);

下载老版本Platformtools​​​​​​​​​​​​​​https://dl.google.com/android/repository/platform-tools_r28.0.2-windows.zip?hlzh-cn 替换原来的platform-tools文件夹即可。 问题原因分析:电脑端adb client版本(41)和安卓端adb …...

每天五分钟机器学习:核函数

本文重点 在学习支持向量机算法之前,我们要继续学习一些数学基础,本文我们将学习核函数的概念。当数据线性不可分的时候,此时就需要核函数出场了,它可以将低维不可分的数据映射到高维可分数据,此时就可以完成数据分类了。 核函数的定义 核函数K(x, y)定义为两个数据点x…...

Word窗体联动Excel实现级联组合框

在Word中的使用用户窗体(UserForm)定制界面如下图所示,其中控件如下(忽略Label控件): CompanyName 组合框Attention 组合框CommandButton1 按钮 现在需要实现级联组合框效果,即用户在 CompanyN…...

RAG实战:构建基于本地大模型的智能问答系统

RAG实战:构建基于本地大模型的智能问答系统 引言 在当今AI快速发展的时代,如何构建一个既智能又可靠的问答系统是一个重要课题。本文将介绍如何使用RAG(检索增强生成)技术,结合本地大模型,构建一个高效的智…...

Docker 部署 plumelog 最新版本 实现日志采集

1.配置plumelog.yml version: 3 services:plumelog:#此镜像是基于plumelog-3.5.3版本image: registry.cn-hangzhou.aliyuncs.com/k8s-xiyan/plumelog:3.5.3container_name: plumelogports:- "8891:8891"environment:plumelog.model: redisplumelog.queue.redis.redi…...

TCP/IP 邮件

TCP/IP邮件是互联网通信中非常重要的应用之一。当我们发送电子邮件时,我们实际上并没有直接使用TCP/IP协议,而是通过电子邮件程序,例如微软的Outlook、莲花软件的Notes或Netscape Communicator等来实现。这些电子邮件程序背后使用了不同的TCP…...

FreeSql

官网 实体特性 Ado 它包括所有对 SQL 操作的封装,提供 ExecuteReader、ExecuteDataSet、ExecuteDataTable、ExecuteNonQuery、ExecuteScalar 等方法,使用起来和传统 SqlHelper 一样。 1、安装包 Install-Package FreeSql Install-Package FreeSql.Prov…...

记一次前端Vue项目国际化解决方案

背景 有一个vue项目,要实现国际化功能,能够切换中英文显示,因为该项目系统的用户包括了国内和国外用户。 需求 1、页面表单上的所有中文标签要国际化,包括表单属性标签、表格列头标签等, title“数量”;…...

JS进阶-手写Promise

一、什么是Promise 在Promise A规范中规定,Promise是一个有一个符合规范的then方法的对象或者函数。 1.关于then then接收onFulfilled和onRejected两个可选参数;then必须返回一个新的Promise对象;如果onFulfilled是一个函数 在状态切换为f…...

PCL点云库入门——PCL库点云滤波算法之直通滤波(PassThrough)和条件滤波(ConditionalRemoval)

0、滤波算法概述 PCL点云库中的滤波算法是处理点云数据不可或缺的一部分,它们能够有效地去除噪声、提取特征或进行数据降维。例如,使用体素网格滤波(VoxelGrid)可以减少点云数据量,同时保留重要的形状特征。此外&#…...

ioctl回顾

一、ioctl协议的命令组成 cmd本质为一个32位的数字,共分为四段: [31-30]:读写方向dir,分为无数据(_IO)、读数据(_IOR)、写数据(_IOW)、读写数据(_IOWR)四种模式; [29-16]:传递数据的大小size,一般利用其宏_IO、_IOR…...

jquery-validate在前端数据校验中的应用以及remote异步调用实践-以若依为例

目录 前言 一、关于Jquery Validate组件 1、validate是什么 2、内置验证方式及触发方式 3、自定义验证规则 二、基本验证实战以及Remote验证 1、基本验证实现 2、remote校验方式 三、总结 前言 随着技术的不断演进,在我们的日常开发过程中,大家一…...

如何重新设置VSCode的密钥环密码?

故障现象: 忘记了Vscode的这个密码: Enter password to unlock An application wants access to the keyring “Default ke... Password: The unlock password was incorrect Cancel Unlock 解决办法: 1.任意terminal下,输入如下…...

Android--java实现手机亮度控制

文章目录 1、开发需求2、运行环境3、主要文件4、布局文件信息5、手机界面控制代码6、debug 1、开发需求 需求:开发一个Android apk实现手机亮度控制 2、运行环境 Android studio最新版本 3、主要文件 app\src\main\AndroidManifest.xml app\src\main\res\layou…...

原点安全再次入选信通院 2024 大数据“星河”案例

近日,中国信息通信研究院和中国通信标准化协会大数据技术标准推进委员会(CCSA TC601)共同组织开展的 2024 大数据“星河(Galaxy)”案例征集活动结果正式公布。由工银瑞信基金管理有限公司、北京原点数安科技有限公司联…...

torch.nn.init 模块介绍

PyTorch 的 torch.nn.init 模块提供了一组用于初始化张量或模型参数的函数。这些初始化方法对深度学习模型的训练收敛速度和性能有显著影响,正确选择初始化方法可以避免梯度消失或爆炸等问题。 模块功能 torch.nn.init 提供了一系列函数,用于对张量(如权重或偏置)进行初始…...

跨语言数据处理的高效解决方案:json-translator全方位指南

跨语言数据处理的高效解决方案:json-translator全方位指南 【免费下载链接】json-translator jsontt 💡 - AI JSON Translator with GPT / Gemma / Mixtral / llama other FREE translation modules to translate your json/yaml files into other lang…...

oicq 高级技巧:如何构建企业级 QQ 机器人应用架构

oicq 高级技巧:如何构建企业级 QQ 机器人应用架构 【免费下载链接】oicq Tencent QQ Bot Library for Node.js 项目地址: https://gitcode.com/gh_mirrors/oi/oicq oicq 是一个基于 Node.js 的 QQ 协议库,专为构建稳定、高效的 QQ 机器人应用而设…...

MySQL SSL连接异常:protocol_version不兼容问题排查与修复

1. 问题现象与背景分析 最近在Java项目中连接MySQL数据库时,不少开发者遇到了这样的错误提示:"javax.net.ssl.SSLException: Received fatal alert: protocol_version"。这个错误通常发生在使用Java 8环境配合较新版本的MySQL Connector/J驱动…...

ai结对编程:在快马平台借助kimi进行代码审查与智能重构

今天想和大家分享一个特别实用的开发技巧——如何利用AI辅助工具来提升代码质量。最近我在InsCode(快马)平台上尝试了Kimi模型的代码审查功能,发现它不仅能找出代码中的潜在问题,还能给出具体的优化方案,整个过程就像有个经验丰富的开发者在旁…...

3步完成B站视频转文字:免费开源工具bili2text终极指南

3步完成B站视频转文字:免费开源工具bili2text终极指南 【免费下载链接】bili2text Bilibili视频转文字,一步到位,输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text 还在为手动记录B站视频内容而烦恼吗&#x…...

如何在Windows中快速读取Linux分区?Ext2Read完整教程指南

如何在Windows中快速读取Linux分区?Ext2Read完整教程指南 【免费下载链接】ext2read A Windows Application to read and copy Ext2/Ext3/Ext4 (With LVM) Partitions from Windows. 项目地址: https://gitcode.com/gh_mirrors/ex/ext2read 你是否曾经遇到过…...

GitHub趋势-AI工具链生态

GitHub 2026年4月开源趋势:AI工具链正在形成完整生态分类:开源社区 / 开发工具 / GitHub趋势 标签:GitHub 开源 AI工具 Claude Code TypeScript一、数据背景 本文基于 2026 年 4 月 5 日 GitHub 实时趋势榜单数据(来源&#xff1a…...

PlatformIO+ESP32S3:像素时钟的硬件优化与实战解析

1. 从零开始:像素时钟的硬件架构解析 第一次接触ESP32S3开发像素时钟时,我完全低估了硬件设计的复杂度。这个看似简单的项目实际上涉及电源管理、实时时钟、LED驱动等多个子系统的协同工作。让我用最直白的语言拆解这个硬件拼图:核心就像搭积…...

IntelliJ IDEA 2019安装教程及下载

软件介绍: IntelliJ IDEA 是捷克 JetBrains 公司研发的集成开发环境(IDE),主打 Java 和 Kotlin 开发,被誉为 “最佳 Java IDE”,适配不同层级开发者需求;它具备智能代码补全、静态分析、一键重…...

nlp_structbert_sentence-similarity_chinese-large 处理长文本技巧:分段与聚合策略

nlp_structbert_sentence-similarity_chinese-large 处理长文本技巧:分段与聚合策略 你是不是遇到过这样的问题?手头有一篇几十页的技术文档,或者一篇上万字的学术论文,想用 nlp_structbert_sentence-similarity_chinese-large 这…...