Commit a7a750fa8dc07c6e7166f04a6565b3eb19f9fefe

Authored by Tássia Camões Araújo
1 parent 39001e40
Exists in master and in 1 other branch add_vagrant

Small refactoring.

Showing 2 changed files with 12 additions and 9 deletions   Show diff stats
src/recommender.py
... ... @@ -33,6 +33,7 @@ class RecommendationResult:
33 33 Set initial parameters.
34 34 """
35 35 self.item_score = item_score
  36 + self.size = len(item_score)
36 37  
37 38 def __str__(self):
38 39 """
... ... @@ -44,14 +45,14 @@ class RecommendationResult:
44 45 str += "%2d: %s\n" % (i,result[i][0])
45 46 return str
46 47  
47   - def get_prediction(self,size=20):
  48 + def get_prediction(self,limit=20):
48 49 """
49 50 Return prediction based on recommendation size (number of items).
50 51 """
51   - if size > len(self.item_score): size = len(self.item_score)
  52 + if limit > self.size: limit = self.size
52 53 sorted_result = sorted(self.item_score.items(),
53 54 key=operator.itemgetter(1))
54   - return list(reversed(sorted_result[-size:]))
  55 + return list(reversed(sorted_result[-limit:]))
55 56  
56 57 class Recommender:
57 58 """
... ... @@ -83,8 +84,8 @@ class Recommender:
83 84 if strategy_str == "col":
84 85 self.strategy = strategy.CollaborativeStrategy(20)
85 86  
86   - def get_recommendation(self,user,limit=20):
  87 + def get_recommendation(self,user,result_size=20):
87 88 """
88 89 Produces recommendation using previously loaded strategy.
89 90 """
90   - return self.strategy.run(self,user,limit)
  91 + return self.strategy.run(self,user,result_size)
... ...
src/strategy.py
... ... @@ -95,15 +95,17 @@ class ContentBasedStrategy(RecommendationStrategy):
95 95 """
96 96 Content-based recommendation strategy based on Apt-xapian-index.
97 97 """
98   - def __init__(self,content):
  98 + def __init__(self,content,profile_size=50):
99 99 self.description = "Content-based"
100 100 self.content = content
  101 + self.profile_size = profile_size
101 102  
102 103 def run(self,rec,user,limit):
103 104 """
104 105 Perform recommendation strategy.
105 106 """
106   - profile = user.profile(rec.items_repository,self.content,50)
  107 + profile = user.profile(rec.items_repository,self.content,
  108 + self.profile_size)
107 109 # prepair index for querying user profile
108 110 query = xapian.Query(xapian.Query.OP_OR,profile)
109 111 enquire = xapian.Enquire(rec.items_repository)
... ... @@ -129,7 +131,7 @@ class CollaborativeStrategy(RecommendationStrategy):
129 131 self.clustering = clustering
130 132 self.neighbours = k
131 133  
132   - def run(self,rec,user,limit):
  134 + def run(self,rec,user,result_size):
133 135 """
134 136 Perform recommendation strategy.
135 137 """
... ... @@ -153,7 +155,7 @@ class CollaborativeStrategy(RecommendationStrategy):
153 155 rset.add_document(m.document.get_docid())
154 156 logging.debug(m.document.get_data())
155 157 # retrieve most relevant packages
156   - eset = enquire.get_eset(limit,rset,PkgExpandDecider())
  158 + eset = enquire.get_eset(result_size,rset,PkgExpandDecider())
157 159 # compose result dictionary
158 160 item_score = {}
159 161 for package in eset:
... ...