A ruby gem to find similar patterns and offer recommendations
Ruby
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
benchmarks
lib
test
.gitignore
LICENSES
Manifest
README.rdoc
Rakefile
init.rb
similus.gemspec

README.rdoc

Similus

Similus is a Ruby library that allows to find similar objects and recommendations using generated activity. Examples of usage:

  • Find similar articles based on what other users also viewed.

  • Recommend articles to users based on their activity.

Authors

Horaci Cuevas <horaci@gmail.com>

Quick overview

  • Setup

  • Store activity

  • Show similar objects

  • Show recommended objects

Setup

Before using Similus, you need to setup the redis configuration. In rails this can be done inside a preinitializer in the config/preinitializers folder.

Similus.config do |config|
  config.backend = :redis
  config.redis_server = "localhost:6379"
  config.redis_db = 8
end

Store activity

Locate where you want to store activity. For example, in Ruby on Rails, inside the show method of the ArticlesController class:

class ArticlesController < ApplicationController
  def show
    @article = Article.find(params[:id])
    Similus.add_activity(current_user, :show, @article)
  end
end

Show similar objects

Once there is some activity stored by users, you can query for similar objects:

class ArticlesController < ApplicationController
  def show
    @article = Article.find(params[:id])
    @similar_articles = Similus.similar_to(@article)
  end
end

Show recommended objects

Even better than just showing similar articles, show recommended articles for the user's previous activity when there is a logged in user:

class HomeController < ApplicationController
  def index
    @recommended_articles = Similus.recommended_for(current_user)
  end
end

Configuring and installing Similus

As of current version, Similus only supports redis backend.

Install Redis 2.0 from [code.google.com/p/redis/] and start the server.

Install the Similus gem:

gem install similus

License

Copyright © 2010 Horaci Cuevas

See LICENSES for details.