GithubHelp home page GithubHelp logo

pagerank's Introduction

PageRank

该项目的目标是还原出能够解决spider trap和dead end的完整的page rank算法,并且实现Block-Stripe Update算法。

数据读入

读入的文件应当描述网页之间的互相链接关系,下称描述文件。描述文件应当满足以下条件:

  1. 按照utf-8编码;
  2. 分为n行,n为总记录个数。每行表示一条相互链接关系记录,格式为:[SOURCE WEB ID]<TAB>[TARGET WEB INDEX]
  3. [SOURCE WEB ID]相同的记录在描述文件中应当连续排列,中间没有被其他记录分割;
  4. 同样的记录不能重复出现。

例如,对第2点而言:

30	1412

表示编号为30的网页中含有一个指向编号为1412的网页的链接。

对第3点而言:

...
30	1412
30	1411
40	1411
...

是一个合法的描述文件片段,而

...
30	1412
40	1411
30	1411
...

不是一个合法的描述文件片段,因为[SOURCE WEB ID]为30的记录没有连续罗列,而是被[SOURCE WEB ID]为40的记录分割了。

对第4点而言:

...
30	1412
30	1411
30	1412
...

不是一个合法的描述文件片段,因为出现了重复的30 1412记录。

程序不会对描述文件是否合法进行验证,因此,若使用了不符合上述规则的描述文件,则可能得到错误的结果,或是令程序崩溃。

样例输入文件为Wikipedia dataset(WikiData.txt)。

数据输出

可执行文件应输出每个网页的分值,共为m行,m为被报告的网页个数,在本项目中m=100,表示分值最高的前100个网页将会被按照分值从高到低的顺序被依次写入文件中。每行表示一个网页的分值,格式为:

[NodeID]<TAB> [Score]

例如:

30 0.3

表示编号为30的网页的pagerank分值为0.3.

输出文件名为result.txt

使用make

在目录下使用make命令可以编译出可执行文件,make run命令可以编译并运行可执行文件。

make run命令可以添加参数,以指示使用哪个数据集,数据集需要放在dataset文件夹中。例如,使用mydata.txt作为输入,可以在工程根目录下使用:

make run DataFile=mydata.txt

pagerank's People

Contributors

rmdyh avatar occulticplus avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.