HITS算法分析与实现

本文详细介绍了HITS(Hypertext Induced Topic Selection)算法,并提供了代码实现。HITS算法是一种用于网页排名的链接分析算法,通过分析网页之间的链接结构来评估其权威性和 hub 性。文章中通过具体的例子和代码,帮助读者理解HITS算法的工作原理。
摘要由CSDN通过智能技术生成

HITS 算法分析与实现

本文转载自:https://blog.csdn.net/hguisu/article/details/8013489

1、内容详细介绍参见以下博文

https://blog.csdn.net/hguisu/article/details/8013489

2、代码实现

from pygraph.classes.digraph import digraph
from math import sqrt


class HITSIterator:
    __doc__ = '''计算图中的Hub,Authority值'''

    def __init__(self, dg):
        self.max_iterators = 100  # 最大迭代次数
        self.min_delta = 0.0001  # 判断是否迭代结束
        self.graph = dg

        self.hub = {}

        self.authority = {}

        for node in self.graph.nodes():
            self.hub[node] = 1
            self.authority[node] = 1

    def hits(self):
        """
        计算每个页面的Hub,Authority值
        """
        if not self.graph:
            return

        flag = False

        for i in range(self.max_iterators):
            change = 0.0  # 变化量
            norm = 0
            tmp = {}
            tmp = self.authority.copy()

            # 计算每个页面的authority值
            for node in self.graph.nodes():
                self.authority[node] = 0
                for incident_page in self.graph.incidents(node):  # 入射边
                    self.authority[node] += self.hub[incident_page]
                norm += pow(self.authority[node], 2)

            # 标准化
            norm = sqrt(norm)
            for node in self.graph.nodes():
                self.authority[node] /= norm
                change += abs(tmp[node] - self.authority[node])

            
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值