Module: Recommendations::User::Suggestions
- Included in:
- Recommendations::User
- Defined in:
- lib/recommendations/user/suggestions.rb
Instance Method Summary collapse
Instance Method Details
#suggestions ⇒ Object
4 5 6 7 |
# File 'lib/recommendations/user/suggestions.rb', line 4 def suggestions Recommendations.redis.hgetall("recommendations:suggestions:user:#{id}") .select {|key, value| Float(value) > 0} end |
#update_suggestions ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/recommendations/user/suggestions.rb', line 9 def update_suggestions = self. suggestions = .inject({}) do |buffer, (item_id, score)| similars = Item.find(item_id).similars similars.reject! {|i| .key?(i)} similars.each do |similar| buffer[similar] ||= 0 buffer[similar] += (Float(score) - 3) # 0..5 score => -2..2 end buffer end # #self.similars.each do |similar| #similars users #remover os ratings q o usuário já fez # similar_ratings = User.new(similar).ratings # similar_ratings.reject! {|i| ratings.key?(i.key)} # similar_ratings.each do |(item_id, score)| #user ratings # suggestions[item_id] ||= 0 # suggestions[item_id] += (Float(score) - 3) # 0..5 score => -2..2 # end # end # Recommendations.redis.hmset("recommendations:suggestions:user:#{id}", *suggestions.flatten) end |