Commit dfcac4b1e7d3900e660ad42287b81316a0c1131e

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

Small fixes.

src/data.py
... ... @@ -123,13 +123,12 @@ class PopconXapianIndex(xapian.WritableDatabase):
123 123 """
124 124 Data source for popcon submissions defined as a singleton xapian database.
125 125 """
126   - def __init__(self,cfg,reindex=0,recluster=0):
  126 + def __init__(self,cfg):
127 127 """
128 128 Set initial attributes.
129 129 """
130 130 self.axi = xapian.Database(cfg.axi)
131 131 self.path = os.path.expanduser(cfg.popcon_index)
132   - self.source_dir = cfg.popcon_dir
133 132 if cfg.index_mode.startswith("1") or not self.load_index():
134 133 if not os.path.exists(cfg.popcon_dir):
135 134 os.makedirs(cfg.popcon_dir)
... ... @@ -279,11 +278,11 @@ class KMedoidsClustering(cluster.KMeansClustering):
279 278 medoidDistance = sys.maxint
280 279 for i in range(len(cluster)):
281 280 totalDistance = sum(self.distanceMatrix[cluster[i].user_id].values())
282   - print "totalDistance[",i,"]=",totalDistance
  281 + logging.debug("totalDistance[%d]=%f" % (i,totalDistance))
283 282 if totalDistance < medoidDistance:
284 283 medoidDistance = totalDistance
285 284 medoid = i
286   - print "medoidDistance:",medoidDistance
  285 + logging.debug("medoidDistance: %f" % medoidDistance)
287 286 logging.debug("Cluster medoid: [%d] %s" % (medoid,
288 287 cluster[medoid].user_id))
289 288 return cluster[medoid]
... ...
src/recommender.py
... ... @@ -63,8 +63,8 @@ class Recommender:
63 63 Set initial parameters.
64 64 """
65 65 self.items_repository = xapian.Database(cfg.axi)
66   - self.users_repository = data.PopconXapianIndex(cfg) #[FIXME] only cfg fields
67   - self.clustered_users_repository = data.PopconXapianIndex(cfg) #[FIXME]
  66 + self.users_repository = data.PopconXapianIndex(cfg)
  67 + #self.clustered_users_repository = data.PopconXapianIndex(cfg)
68 68 self.set_strategy(cfg.strategy)
69 69 if cfg.weight == "bm25":
70 70 self.weight = xapian.BM25Weight()
... ...
src/tests/user_tests.py
... ... @@ -125,12 +125,12 @@ class UserTests(unittest2.TestCase):
125 125 self.user.full_profile(self.sample_axi,10))
126 126  
127 127 def test_tag_profile(self):
128   - self.assertEqual(self.user.tag_profile(self.sample_axi,2),
129   - ['XTuse::editing', 'XTworks-with-format::jpg'])
  128 + self.assertEqual(self.user.tag_profile(self.sample_axi,1),
  129 + ['XTuse::editing'])
130 130  
131 131 def test_desc_profile(self):
132   - self.assertEqual(self.user.desc_profile(self.sample_axi,2),
133   - ['image', 'the'])
  132 + self.assertEqual(self.user.desc_profile(self.sample_axi,1),
  133 + ['image'])
134 134  
135 135 def test_full_profile(self):
136 136 self.assertEqual(self.user.full_profile(self.sample_axi,10),
... ...
src/web/server.py
... ... @@ -215,6 +215,9 @@ class RandomRequest(Request):
215 215 #self.storage = web.Storage()
216 216  
217 217 class AppRecommender:
  218 + def __init__(self):
  219 + self.rec = Recommender(Config())
  220 +
218 221 def POST(self):
219 222 request = Request(web.input(pkgs_file={}))
220 223 if not request.validates():
... ... @@ -233,6 +236,17 @@ class AppRecommender:
233 236 return render.apprec(recommendation, pkg_summaries,
234 237 FeedbackForm(request.selected_strategies),request)
235 238  
  239 + def _recommends(self,request):
  240 + user = User(dict.fromkeys(request.pkgs_list,1),request.user_id)
  241 + user.maximal_pkg_profile()
  242 + results = dict()
  243 + for strategy_str in request.selected_strategies:
  244 + self.rec.set_strategy(strategy_str)
  245 + prediction = self.rec.get_recommendation(user).get_prediction(request.limit)
  246 + results[strategy_str] = \
  247 + [result[0] for result in prediction]
  248 + return results
  249 +
236 250 # parsing json from screenshots - can be usefull in the future...
237 251 # def _packages_attrs(self, recommends): #recommends is result of _recommends()
238 252 # all_recommended_packages = []
... ... @@ -247,19 +261,6 @@ class AppRecommender:
247 261 # recommended_pkgs_attrs[pkg_attrs_dict['name']] = pkg_attrs_dict
248 262 # return recommended_pkgs_attrs
249 263  
250   - def _recommends(self,request):
251   - user = User(dict.fromkeys(request.pkgs_list,1),request.user_id)
252   - user.maximal_pkg_profile()
253   - cfg = Config()
254   - rec = Recommender(cfg)
255   - results = dict()
256   - for strategy_str in request.selected_strategies:
257   - rec.set_strategy(strategy_str)
258   - prediction = rec.get_recommendation(user).get_prediction(request.limit)
259   - results[strategy_str] = \
260   - [result[0] for result in prediction]
261   - return results
262   -
263 264 def add_global_hook():
264 265 g = web.storage({"counter": "1"})
265 266 def _wrapper(handler):
... ...