使用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")