Skip to content

Commit 0503ab6

Browse files
committed
Fix cosine similarity calculations in Homework 01 examples
1 parent f3256ae commit 0503ab6

File tree

1 file changed

+23
-21
lines changed

1 file changed

+23
-21
lines changed

homeworks/01-jobmatch/README.md

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,8 @@ public interface JobMatchAPI {
142142
* <p>
143143
* 1. For each job posting, calculate current similarity score with the candidate
144144
* 2. For each skill the candidate is MISSING (present in job but not in candidate profile):
145-
* - Temporarily add that skill to candidate's profile with level equal to required level
145+
* - Temporarily add that skill to candidate's profile with level equal to the max. required
146+
* level across all job postings
146147
* - Recalculate similarity score
147148
* - Calculate improvement: new_score - old_score
148149
* 3. Aggregate (sum up) improvements across all job postings for each missing skill
@@ -154,18 +155,19 @@ public interface JobMatchAPI {
154155
* <p>
155156
* Example:
156157
* - Candidate has: {Java:4, Python:3}
157-
* - Job1 requires: {Java:5, Python:4, AWS:3} - similarity: 0.85
158-
* - Job2 requires: {Java:4, AWS:4, Docker:3} - similarity: 0.70
158+
* - Job1 requires: {Java:5, Python:4, AWS:3} - similarity: 0.905
159+
* - Job2 requires: {Java:4, AWS:4, Docker:3} - similarity: 0.500
159160
* <p>
160161
* Missing skills analysis:
161-
* - Adding AWS:3 to candidate → Job1 similarity becomes 0.92 (improvement: 0.07)
162-
* - Adding AWS:4 to candidate → Job2 similarity becomes 0.88 (improvement: 0.18)
163-
* - Total AWS improvement: 0.25
162+
* - Adding AWS:4 to candidate → Job1 similarity becomes 0.972 (improvement: 0.067)
163+
* - Adding AWS:4 to candidate → Job2 similarity becomes 0.780 (improvement: 0.280)
164+
* - Total AWS improvement: 0.347
164165
* <p>
165-
* - Adding Docker:3 to candidate → Job2 similarity becomes 0.85 (improvement: 0.15)
166-
* - Total Docker improvement: 0.15
166+
* - Adding Docker:3 to candidate → Job1 similarity becomes 0.776 (improvement: -0.129)
167+
* - Adding Docker:3 to candidate → Job2 similarity becomes 0.670 (improvement: 0.170)
168+
* - Total Docker improvement: 0.041
167169
* <p>
168-
* Result: [SkillRecommendation(AWS, 0.25), SkillRecommendation(Docker, 0.15)]
170+
* Result: [SkillRecommendation(AWS, 0.347), SkillRecommendation(Docker, 0.041)]
169171
* <p>
170172
* IMPLEMENTATION NOTE:
171173
* The platform's default similarity strategy is Cosine Similarity (considers skill levels).
@@ -376,23 +378,23 @@ Cosine Similarity е по-сложна метрика, която взема п
376378
```
377379
Candidate: {Java:4, Python:3}
378380
379-
Job1: {Java:5, Python:4, AWS:3} → current: 0.85
380-
Job2: {Java:4, AWS:4, Docker:3} → current: 0.70
381-
Job3: {Python:5, Docker:2} → current: 0.90
381+
Job1: {Java:5, Python:4, AWS:3} → current: ≈0.905
382+
Job2: {Java:4, AWS:4, Docker:3} → current: ≈0.500
383+
Job3: {Python:5, Docker:2} → current: ≈ 0.557
382384
383385
AWS: max level = 4
384-
+ Job1: 0.92 - 0.85 = 0.07
385-
+ Job2: 0.88 - 0.70 = 0.18
386-
+ Job3: 0.90 - 0.90 = 0.00
387-
Total: 0.25
386+
+ Job1: 0.971 - 0.905 = 0.066
387+
+ Job2: 0.780 - 0.500 = 0.280
388+
+ Job3: 0.435 - 0.557 = -0.122
389+
Total: 0.224
388390
389391
Docker: max level = 3
390-
+ Job1: 0.85 - 0.85 = 0.00
391-
+ Job2: 0.85 - 0.70 = 0.15
392-
+ Job3: 0.95 - 0.90 = 0.05
393-
Total: 0.20
392+
+ Job1: 0.776 - 0.905 = -0.129
393+
+ Job2: 0.670 - 0.500 = 0.170
394+
+ Job3: 0.669 - 0.557 = 0.112
395+
Total: 0.153
394396
395-
Result: [AWS (0.25), Docker (0.20)]
397+
Result: [AWS (0.224), Docker (0.153)]
396398
```
397399

398400
### Пакети

0 commit comments

Comments
 (0)