class Predictable::Recommender
Recommender
¶ ↑
Defines the Recommender
interface and implements it using the Prediction.io API.
recommender = Recommender.new(client) recommender.create_item(item) recommender.create_user(user) recommender.record_action(user, "conversion", item) recommender.recommended_items(user, 10)
Attributes
client[R]
recommendation_engine[RW]
similarity_engine[RW]
Public Class Methods
new(client, engines={})
click to toggle source
# File lib/predictable/recommender.rb, line 20 def initialize(client, engines={}) @client = client @recommendation_engine = engines[:recommendation_engine] @similarity_engine = engines[:similarity_engine] end
Public Instance Methods
create_item(item, attrs = {})
click to toggle source
# File lib/predictable/recommender.rb, line 26 def create_item(item, attrs = {}) client.acreate_item(item.pio_iid, item.pio_itypes, attrs) end
create_user(user, attrs = {})
click to toggle source
# File lib/predictable/recommender.rb, line 34 def create_user(user, attrs = {}) client.acreate_user(user.pio_uid, attrs) end
delete_item(item)
click to toggle source
# File lib/predictable/recommender.rb, line 30 def delete_item(item) client.adelete_item(item.pio_iid) end
delete_user(user)
click to toggle source
# File lib/predictable/recommender.rb, line 38 def delete_user(user) client.adelete_user(user.pio_uid) end
recommended_items(user, n, opts = {})
click to toggle source
# File lib/predictable/recommender.rb, line 47 def recommended_items(user, n, opts = {}) options = opts.stringify_keys client.identify(user.pio_uid) begin client.get_itemrec_top_n(recommendation_engine, n, opts) rescue PredictionIO::Client::ItemRecNotFoundError => e [] end end
record_action(user, action, item, opts = {})
click to toggle source
# File lib/predictable/recommender.rb, line 42 def record_action(user, action, item, opts = {}) client.identify(user.pio_uid) client.arecord_action_on_item(action.to_s, item.pio_iid, opts) end
similar_items(item, n, opts = {})
click to toggle source
# File lib/predictable/recommender.rb, line 57 def similar_items(item, n, opts = {}) begin client.get_itemsim_top_n(similarity_engine, item.pio_iid, n, opts) rescue PredictionIO::Client::ItemSimNotFoundError [] end end