• 技术文章 >后端开发 >php教程

    php实现PageRank的实例

    不言不言2018-07-05 16:24:02原创941

    这篇文章主要介绍了关于php实现PageRank的实例,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

    php简单实现PageRank算法

    使用的web site模型

    php入门到就业线上直播课:进入学习

    <?php
    header("Content-type:text/html; charset=utf-8");
    class PageRank{
        public $map = [];    
        public $rank = [];    
        public $inputList = []; // example web 'a' (has input link): web 'b'
    
        public $size;    
        public $keyValue = 0.85;    
        public function __construct(array $map) {
            $this->map = $map;        
            $this->size = count($this->map);
        }    //init rank score and transform 'map' format to 'inputList' format
        public function init()
        {
            $size = $this->size;        
            foreach ($this->map as $key => $value) {            
            $this->inputList[$key] = [];
            }        foreach ($this->map as $key => $value) {            
            $this->rank[$key] = 1/$size;            
            foreach ($value as $v) {                
            if (empty($this->inputList[$v])) {                    
            $this->inputList[$v][] = $key;
                    } else {
                        array_push($this->inputList[$v], $key);
                    }
                }
    
            }
        }    public function caculate()
        {
            $tmp = $this->rank;        
            $keyValue = $this->keyValue;        
            $size = $this->size;        
            foreach ($this->inputList as $key => $value) {            
            $score = (1 - $keyValue)/$size;            
            foreach ($value as $v) {                
            $cc = count($this->map[$v]);                
            if ($cc) {                    
            $score += ($keyValue*(1/$cc * $this->rank[$v]));
                    }
                }            $tmp[$key] = $score;
            }        $this->rank = $tmp;
        }
    
    
    }$map = [        'a' => ['b', 'c', 'd'],// web 'a' (has out link): web 'b', web 'c', web 'd'
            'b' => ['a', 'd'],        'c' => ['b'],        'd' => ['b', 'c'],
    ];$example = new PageRank($map);
    $example->init();
    echo '<pre>';for ($i = 0; $i < 10; $i++) {    
    $example->caculate();
        var_dump($example->rank);
    }

    以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

    相关推荐:

    php 通过html-table形式完成excel下载的功能实现

    php身份证识别ORC的方法实现

    以上就是php实现PageRank的实例的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:php PageRank
    上一篇:php身份证识别ORC的方法实现 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• php将csv文件导入到mysql数据库的方法,_PHP教程• php中header()实现页面跳方法_PHP教程• 用PHP抓取新闻的例子_PHP教程• php 过滤字符串函数_PHP教程• 学习PHP重定向的三种方法_PHP教程
    1/1

    PHP中文网