mrfirdauss commited on
Commit
cd0458c
1 Parent(s): 9a6af66

Upload folder using huggingface_hub

Browse files
Files changed (3) hide show
  1. classificator.py +36 -3
  2. requirements.txt +2 -1
  3. svc.pkl +3 -0
classificator.py CHANGED
@@ -1,11 +1,44 @@
1
  from sentence_transformers import SentenceTransformer
2
  from sklearn.metrics.pairwise import cosine_similarity
3
-
 
4
  st = SentenceTransformer('all-mpnet-base-v2')
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
 
6
  def predict(cv, job):
7
  diffYoe = cv.yoe - job.minimumYoe
8
  results = {}
9
- results['score'] = 0.6
10
- results['is_accepted'] = True
 
 
 
 
 
 
 
 
11
  return results
 
1
  from sentence_transformers import SentenceTransformer
2
  from sklearn.metrics.pairwise import cosine_similarity
3
+ import numpy as np
4
+ import pickle
5
  st = SentenceTransformer('all-mpnet-base-v2')
6
+ filename = 'svc.pkl'
7
+
8
+ with open(filename, 'rb') as file:
9
+ model = pickle.load(file)
10
+
11
+ # role_req-exp 0.341522
12
+ # role_pos 0.350747
13
+ # major_similarity 0.846268
14
+ # skill_similarity 0.774542
15
+ # score 0.986356
16
+ # cv = {
17
+ # "experiences": str(body.cv.experiences),
18
+ # "positions": str(positions),
19
+ # "userMajors": str(userMajors),
20
+ # "skills": str(body.cv.skills),
21
+ # "yoe": yoe
22
+ # }
23
+ # job = {
24
+ # "jobDesc": body.job.jobDesc,
25
+ # "role": body.job.role,
26
+ # "majors": str(body.job.majors),
27
+ # "skills": str(body.job.skills),
28
+ # "minYoE": body.job.minYoE
29
+ # }
30
 
31
  def predict(cv, job):
32
  diffYoe = cv.yoe - job.minimumYoe
33
  results = {}
34
+ role_req_exp = cosine_similarity(st.encode(cv['experiences']), st.encode(job['role']+' '+job['jobDesc']))
35
+ role_pos = cosine_similarity(st.encode(cv['positions']), st.encode(job['role']))
36
+ major_similarity = cosine_similarity(st.encode(cv['userMajors']), st.encode(job['majors']))
37
+ skill_similarity = cosine_similarity(st.encode(cv['skills']), st.encode(job['skills']))
38
+ score_yoe = 0.5 if diffYoe == -1 else (1 if diffYoe > 0 else 0)
39
+ score = 0.35 * role_req_exp + 0.1 * role_pos + 0.15 * major_similarity + 0.3* score_yoe + 0.1 * skill_similarity
40
+ X = np.array([role_req_exp, role_pos, major_similarity, skill_similarity, score]).reshape(1, -1)
41
+ res = model.predict(X)
42
+ results['score'] = model.predict(X)[:, 1]
43
+ results['is_accepted'] = np.argmax(res)
44
  return results
requirements.txt CHANGED
@@ -5,4 +5,5 @@ transformers
5
  uvicorn[standard]
6
  PyPDF2
7
  sentence_transformers
8
- scikit-learn
 
 
5
  uvicorn[standard]
6
  PyPDF2
7
  sentence_transformers
8
+ scikit-learn
9
+ numpy
svc.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cd2c1759d412d9d7266a181048eb7297198b0bf1231d57181f017e924048ae78
3
+ size 15296