Class: JrubyMahout::Recommender

Inherits:
Object
  • Object
show all
Defined in:
lib/jruby_mahout/recommender.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(similarity_name, neighborhood_size, recommender_name, is_weighted) ⇒ Recommender

Returns a new instance of Recommender.



5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/jruby_mahout/recommender.rb', line 5

def initialize(similarity_name, neighborhood_size, recommender_name, is_weighted)
  @is_weighted = is_weighted
  @neighborhood_size = neighborhood_size
  @similarity_name = similarity_name
  @recommender_name = recommender_name
  @recommender_builder = RecommenderBuilder.new(@similarity_name,
                                               @neighborhood_size,
                                               @recommender_name,
                                               @is_weighted)
  @data_model = nil
  @recommender = nil
end

Instance Attribute Details

#data_modelObject

Returns the value of attribute data_model.



3
4
5
# File 'lib/jruby_mahout/recommender.rb', line 3

def data_model
  @data_model
end

#is_weightedObject

Returns the value of attribute is_weighted.



3
4
5
# File 'lib/jruby_mahout/recommender.rb', line 3

def is_weighted
  @is_weighted
end

#neighborhood_sizeObject

Returns the value of attribute neighborhood_size.



3
4
5
# File 'lib/jruby_mahout/recommender.rb', line 3

def neighborhood_size
  @neighborhood_size
end

#recommender_nameObject

Returns the value of attribute recommender_name.



3
4
5
# File 'lib/jruby_mahout/recommender.rb', line 3

def recommender_name
  @recommender_name
end

#similarity_nameObject

Returns the value of attribute similarity_name.



3
4
5
# File 'lib/jruby_mahout/recommender.rb', line 3

def similarity_name
  @similarity_name
end

Instance Method Details

#estimate_preference(user_id, item_id) ⇒ Object



52
53
54
55
56
57
58
# File 'lib/jruby_mahout/recommender.rb', line 52

def estimate_preference(user_id, item_id)
  if @recommender.nil?
    nil
  else
    @recommender.estimatePreference(user_id, item_id)
  end
end

#evaluate(training_percentage, evaluation_percentage) ⇒ Object



31
32
33
34
# File 'lib/jruby_mahout/recommender.rb', line 31

def evaluate(training_percentage, evaluation_percentage)
  evaluator = Evaluator.new(@data_model, @recommender_builder)
  evaluator.evaluate(training_percentage, evaluation_percentage)
end

#recommend(user_id, number_of_items, rescorer) ⇒ Object



23
24
25
26
27
28
29
# File 'lib/jruby_mahout/recommender.rb', line 23

def recommend(user_id, number_of_items, rescorer)
  if @recommender.nil?
    nil
  else
    recommendations_to_array(@recommender.recommend(user_id, number_of_items, rescorer))
  end
end


60
61
62
63
64
65
66
# File 'lib/jruby_mahout/recommender.rb', line 60

def recommended_because(user_id, item_id, number_of_items)
  if @recommender.nil? or @recommender_name == "GenericUserBasedRecommender"
    nil
  else
    to_array(@recommender.recommendedBecause(user_id, item_id, number_of_items))
  end
end

#similar_items(item_id, number_of_items, rescorer) ⇒ Object



36
37
38
39
40
41
42
# File 'lib/jruby_mahout/recommender.rb', line 36

def similar_items(item_id, number_of_items, rescorer)
  if @recommender.nil? or @recommender_name == "GenericUserBasedRecommender"
    nil
  else
    to_array(@recommender.mostSimilarItems(item_id, number_of_items, rescorer))
  end
end

#similar_users(user_id, number_of_users, rescorer) ⇒ Object



44
45
46
47
48
49
50
# File 'lib/jruby_mahout/recommender.rb', line 44

def similar_users(user_id, number_of_users, rescorer)
  if @recommender.nil? or @recommender_name == "GenericItemBasedRecommender"
    nil
  else
    to_array(@recommender.mostSimilarUserIDs(user_id, number_of_users, rescorer))
  end
end