igrigorik / rb-pagerank

Code from RailsConf '09 pres: Building Mini Google in Ruby

This URL has Read+Write access

name age message
file README.rdoc Mon May 04 16:19:06 -0700 2009 readme [igrigorik]
file diy-inverted-index.rb Sat May 02 11:22:21 -0700 2009 DYI inverted index [igrigorik]
file pagerank-gsl.rb Sat May 02 07:45:37 -0700 2009 pagerank examples: simple, n-web, zipf web [igrigorik]
file pagerank-n-web.rb Sat May 02 07:45:37 -0700 2009 pagerank examples: simple, n-web, zipf web [igrigorik]
file pagerank-zipf-web.rb Sat May 02 07:45:37 -0700 2009 pagerank examples: simple, n-web, zipf web [igrigorik]
file simple-ferret.rb Sat May 02 12:28:33 -0700 2009 ferret index demo [igrigorik]
file web-ferret.rb Sat May 02 08:13:24 -0700 2009 TFIDF vs PageRank demo for a trivial 3-page web [igrigorik]
directory web/ Sat May 02 08:13:24 -0700 2009 TFIDF vs PageRank demo for a trivial 3-page web [igrigorik]
README.rdoc

Computing PageRank in Ruby

Notes & code from RailsConf 2009 presentation: en.oreilly.com/rails2009/public/schedule/detail/7966

Slides: bit.ly/railsconf-pagerank

Example:

    # page 1 -> page 2  (0.33)
    # page 2 -> page 3  (0.33)
    # page 3 -> page 1  (0.33)
    puts "Circular: ", pagerank(Matrix[[0,0,1], [0,0,1], [1,0,0]])

    # page 1 -> page 3  (0.05)    # page 1 & page 2 have minimal postrank values
    # page 2 -> page 3  (0.05)    # min value = min(t * Teleport Vector)
    # page 3 -> page 3  (0.09)    # for uniform teleport vector, min = t * (1/N)
    puts "Star: ", pagerank(Matrix[[0,0,0], [0,0,0], [1,1,1]])

    # page 1 -> page 2, page 3  (0.05)
    # page 2 -> page 3          (0.07)
    # page 3 -> page 3, page 3  (0.87)
    puts "Converge: ", pagerank(Matrix[[0,0,0], [0.5,0,0], [0.5,1,1]])

    # page 1 -> page 1, page 2  (0.18)
    # page 2 -> page 1, page 3  (0.13)
    # page 3 -> page 3          (0.69)
    puts "Linked:", pagerank(Matrix[[0.5,0.5,0], [0.5,0,0], [0,0.5,1.0]])