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
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