NithyaAla commited on
Commit
e608159
·
verified ·
1 Parent(s): ad1254b

Update recommender.py

Browse files
Files changed (1) hide show
  1. recommender.py +10 -9
recommender.py CHANGED
@@ -2,11 +2,11 @@ from skill_extraction import get_skill_embedding
2
  import numpy as np
3
 
4
  def generate_recommendations(db, user_id):
5
- # Step 1: Get missing/target recommended skills
6
- rec_skills = db.get_recommendations(user_id) # returns list of skill names
7
 
8
- # Step 2: Get user's existing confirmed skills + embeddings
9
- user_skill_data = db.get_user_skills(user_id)
10
  user_skill_embeddings = [
11
  get_skill_embedding(skill)
12
  for skill, _ in user_skill_data
@@ -18,19 +18,20 @@ def generate_recommendations(db, user_id):
18
  for rec_skill in rec_skills:
19
  rec_emb = get_skill_embedding(rec_skill)
20
  if rec_emb is None:
21
- results.append((rec_skill, "")) # fallback without confidence
 
22
  continue
23
 
24
- # Similarity to best user skill
25
  sims = [np.dot(rec_emb, emb) for emb in user_skill_embeddings] if user_skill_embeddings else []
26
  max_sim = float(max(sims)) if sims else 0.40
27
 
28
- # Normalize & Boost for perceived comparability
29
- conf_score = min(round(max_sim * 1.2, 2), 0.98) # scaled + capped
30
 
31
  results.append((rec_skill, conf_score))
32
 
33
- # Log recommendation interaction
34
  db.log_interaction(user_id, "VIEWED_RECOMMENDATION", skill=rec_skill)
35
 
36
  return sorted(results, key=lambda x: x[1], reverse=True)
 
2
  import numpy as np
3
 
4
  def generate_recommendations(db, user_id):
5
+ # Step 1: Get recommended skills
6
+ rec_skills = db.get_recommendations(user_id) # list of skill names
7
 
8
+ # Step 2: Get existing user skills
9
+ user_skill_data = db.get_user_skills(user_id) # returns [(skill, conf), ...]
10
  user_skill_embeddings = [
11
  get_skill_embedding(skill)
12
  for skill, _ in user_skill_data
 
18
  for rec_skill in rec_skills:
19
  rec_emb = get_skill_embedding(rec_skill)
20
  if rec_emb is None:
21
+ results.append((rec_skill, "")) # fallback
22
+ db.log_interaction(user_id, "VIEWED_RECOMMENDATION", skill=rec_skill)
23
  continue
24
 
25
+ # Compute similarity to user's best skill
26
  sims = [np.dot(rec_emb, emb) for emb in user_skill_embeddings] if user_skill_embeddings else []
27
  max_sim = float(max(sims)) if sims else 0.40
28
 
29
+ # Scale & normalize confidence
30
+ conf_score = min(round(max_sim * 1.2, 2), 0.98)
31
 
32
  results.append((rec_skill, conf_score))
33
 
34
+ # Log
35
  db.log_interaction(user_id, "VIEWED_RECOMMENDATION", skill=rec_skill)
36
 
37
  return sorted(results, key=lambda x: x[1], reverse=True)