使用Rails框架来使用开源推荐引擎”recommendify”

recommendify是什么

这是一个开源的推荐引擎,它可以用得分返回项目之间的关联性。

以Admin权限安装Redis。

yum install redis
chkconfig redis on
/etc/init.d/redis start

以管理员权限安装hiredis。

yum install hiredis hiredis-devel

在Gemfile中进行记录并进行安装。

gem 'redis'
gem 'recommendify'
bundle install

用本地语言进行构建(据说速度快了10倍)。

# pathは状況による
cd ~/.rvm/gems/ruby-2.0.0-p247/gems/recommendify-0.3.8/
bundle install
bundle exec rake build_native

将其嵌入Rails的初始化中。

# configure redis
Recommendify.redis = Redis.new(:host => "localhost", :port => 6379)

class PageviewRecommender < Recommendify::Base

  max_neighbors 50

  input_matrix :order_items,  
    :native => true,
    :similarity_func => :jaccard,    
    :weight => 5.0 
end

输入推荐数据

task :recommendify_indexing => :environment do |x, args|
  recommender = PageviewRecommender.new

  # 2つ以上を同時に投入しないと意味がない。
  recommender.order_items.add_set("order1", ["product23", "product65", "productm23"])
  recommender.order_items.add_set("order2", ["product14", "product23"])

  # 確定
  recommender.process!

end

执行rake

bundle exec rake  recommendify_indexing

从recommendify获取数据。

recommender = PageviewRecommender.new

# product23と関連付いたitemを取得
p recommender.for('product23')

使用redis-cli查看数据。

redis-cli -h localhost
hgetall recommendify:similarities

各种操作方法

使用Redis重置推荐数据。

Recommendify.redis.del "recommendify:order_items:ccmatrix"
Recommendify.redis.del "recommendify:similarities"
Recommendify.redis.del "recommendify:order_items:items"

指定项目并删除

recommender.delete_item!("product23")
广告
将在 10 秒后关闭
bannerAds