dielz commited on
Commit
1f044af
·
verified ·
1 Parent(s): 1131a21

add normalize distance function

Browse files
Files changed (1) hide show
  1. app.py +8 -0
app.py CHANGED
@@ -48,21 +48,29 @@ def get_coordinates(location):
48
 
49
  sample_data = pd.read_csv('job_data_with_coordinates.csv')
50
 
 
51
  def vectorize_skills(skills, all_skills):
52
  vectorizer = CountVectorizer()
53
  vectorizer.fit(all_skills)
54
  skills_vector = vectorizer.transform(skills)
55
  return skills_vector
56
 
 
57
  def calculate_cosine_similarity(user_skills_tfidf, job_skills_tfidf):
58
  return cosine_similarity(user_skills_tfidf, job_skills_tfidf)
59
 
 
60
  def calculate_distance(job_coords, user_coords):
61
  try:
62
  return geodesic(job_coords, user_coords).km
63
  except ValueError: # Menangani kasus koordinat yang tidak valid
64
  return float('inf')
65
 
 
 
 
 
 
66
  # Fungsi utama untuk persiapan dan rekomendasi pekerjaan
67
  def prepare_and_recommend(df, user_skills, user_location):
68
  # 1. Memastikan dataset memiliki koordinat
 
48
 
49
  sample_data = pd.read_csv('job_data_with_coordinates.csv')
50
 
51
+ # 1. Vektorisasi skill menggunakan CountVectorizer
52
  def vectorize_skills(skills, all_skills):
53
  vectorizer = CountVectorizer()
54
  vectorizer.fit(all_skills)
55
  skills_vector = vectorizer.transform(skills)
56
  return skills_vector
57
 
58
+ # 2. Menghitung Cosine Similarity
59
  def calculate_cosine_similarity(user_skills_tfidf, job_skills_tfidf):
60
  return cosine_similarity(user_skills_tfidf, job_skills_tfidf)
61
 
62
+ # 3. Menghitung jarak lokasi
63
  def calculate_distance(job_coords, user_coords):
64
  try:
65
  return geodesic(job_coords, user_coords).km
66
  except ValueError: # Menangani kasus koordinat yang tidak valid
67
  return float('inf')
68
 
69
+ # Fungsi normalisasi jarak menggunakan log
70
+ def normalize_distance(distances):
71
+ normalized = 1 / (1 + np.log1p(distances)) # log1p untuk menangani log(1 + distance)
72
+ return normalized
73
+
74
  # Fungsi utama untuk persiapan dan rekomendasi pekerjaan
75
  def prepare_and_recommend(df, user_skills, user_location):
76
  # 1. Memastikan dataset memiliki koordinat