Ruby implementation of the Slope One recommendation algorithm. Ported from Bryan O’Sullivan's awesome Python implementation.
user_data = { "rob" => { "24" => 9.5, "Lost" => 8.2, "House" => 6.8 }, "bob" => { "24" => 3.7, "Big Bang Theory" => 2.1, "House" => 8.3 }, "tod" => { "24" => 9.5, "Lost" => 3.4, "House" => 5.5, "Big Bang Theory" => 9.3 }, "dod" => { "24" => 7.2, "Lost" => 5.1, "House" => 8.4, "The Event" => 7.8, } } slope_one = SlopeOne.new slope_one.insert(user_data) puts slope_one.predict({"House" => 3, "Big Bang Theory" => 7.5}).inspect gem install slope_one or in your Gemfile:
gem 'slope_one' Copyright 2006 Bryan O'Sullivan bos@serpentine.com (Original implementation)
Copyright 2010 Ashley Williams hi@ashleyw.co.uk (Ruby port)
This software may be used and distributed according to the terms of the GNU General Public License, version 2 or later, which is incorporated herein by reference.