coletivo

A simple Rails 3 recommendations engine. Coletivo uses Euclidean Distance or Pearson’s Correlation Coefficient to calculate the similarity between persons and their preferences.

Installation:

sudo gem install coletivo
rails g coletivo
rake db:migrate

Usage:

At your Rails model that represents a person (can be an User, Member, or something like that):

class User < ActiveRecord::Base
  has_own_preferences

  # ...
end

So, a person can rate things:

current_user = User.create(:name => 'Diogenes')
movie = Movie.create(:name => 'The Tourist', :year => 2010)

current_user.rate!(movie, 4.5)

And after a lot of ratings… recommendations:

Movie.find_recommendations_for(current_user) # => movies and more movies...

By default, the similarity strategy used is Euclidean Distance, but you can change that passing the strategy option:

Movie.find_recommendations_for(current_user, :strategy => :pearson)

Contributing to coletivo

Copyright © 2011 Diógenes Falcão. See LICENSE.txt for further details.