change
Browse files- SkillExtractV1.py +51 -2
SkillExtractV1.py
CHANGED
@@ -43,7 +43,10 @@ class SkillExtractorDetailsV1:
|
|
43 |
# list_of_tuples = list(zip(skills_list, skill_Typelst,skill_Scorelst))
|
44 |
# df = pd.DataFrame(list_of_tuples,
|
45 |
# columns=['Skill_Name', 'Skill_Type','Skill_Score'])
|
46 |
-
|
|
|
|
|
|
|
47 |
df = pd.DataFrame(data)
|
48 |
|
49 |
return df
|
@@ -54,5 +57,51 @@ class SkillExtractorDetailsV1:
|
|
54 |
query = "select upper(skilldetails) skill from skillmaster where weightage = 0"
|
55 |
df = pd.read_sql_query(query, conn)
|
56 |
return df
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
|
58 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
# list_of_tuples = list(zip(skills_list, skill_Typelst,skill_Scorelst))
|
44 |
# df = pd.DataFrame(list_of_tuples,
|
45 |
# columns=['Skill_Name', 'Skill_Type','Skill_Score'])
|
46 |
+
newSkilllst = SkillExtractorDetailsV1.extractWords(inputData, db_params)
|
47 |
+
reqSkill = ','.join(reuiredSkilllst) + ','.join(newSkilllst)
|
48 |
+
|
49 |
+
data = {'Data':['Required Skills', 'Soft Skills', 'Good to have Skills'], 'Values':[reqSkill, ','.join(softskillslst), ','.join(goodtohavelst)]}
|
50 |
df = pd.DataFrame(data)
|
51 |
|
52 |
return df
|
|
|
57 |
query = "select upper(skilldetails) skill from skillmaster where weightage = 0"
|
58 |
df = pd.read_sql_query(query, conn)
|
59 |
return df
|
60 |
+
|
61 |
+
def extractWords(job_description,db_params):
|
62 |
+
job_roles = []
|
63 |
+
job_description = job_description.replace(')',' ')
|
64 |
+
delimiters = ",", " ", " , ", ";","\n","/","\\"
|
65 |
+
regex_pattern = '|'.join(map(re.escape, delimiters))
|
66 |
+
df = SkillExtractorDetailsV1.getNewSkills(db_params)
|
67 |
+
data = re.split(regex_pattern, job_description)
|
68 |
+
#data = job_description.split(',')
|
69 |
+
for ds in data:
|
70 |
+
#print(ds)
|
71 |
+
try:
|
72 |
+
if(SkillExtractorDetailsV1.skill_Validate(df,ds.strip())):
|
73 |
+
job_roles.append(ds)
|
74 |
+
#SkillExtractorDetails.GetSkillId(ds.strip(),JdMasterid,db_params)
|
75 |
+
print("Skills Identified* : " + ds)
|
76 |
+
except Exception as error:
|
77 |
+
test = 1
|
78 |
+
return job_roles
|
79 |
+
|
80 |
+
def getNewSkills(db_params):
|
81 |
+
query = "select skillid,skilldetails,skilltype,skill_score from skillmaster where weightage = -2"
|
82 |
+
conn = psycopg2.connect(**db_params)
|
83 |
+
cursor = conn.cursor()
|
84 |
+
df_skill_master = pd.read_sql_query(query, conn)
|
85 |
+
df_skill_master['skilldetails'] = df_skill_master['skilldetails'].str.upper()
|
86 |
+
cursor.close()
|
87 |
+
# Close the connection
|
88 |
+
conn.close()
|
89 |
|
90 |
+
#print(df_skill_master)
|
91 |
+
return df_skill_master
|
92 |
+
def skill_Validate(df, skill):
|
93 |
+
skill = skill.upper()
|
94 |
+
if (len(skill.split()) < 2 and len(skill) < 3) or len(skill.split())==1:
|
95 |
+
df['skill_present'] = df['skilldetails'].apply(lambda x: re.match(rf'^{skill}$', x))
|
96 |
+
if any(df['skill_present']):
|
97 |
+
#print("Valid Skill")
|
98 |
+
return 1
|
99 |
+
else:
|
100 |
+
#print("Not a Skill")
|
101 |
+
return 0
|
102 |
+
elif df['skilldetails'].str.contains(skill.upper()).any():
|
103 |
+
#print("Valid Skill")
|
104 |
+
return 1
|
105 |
+
else:
|
106 |
+
# print("Not a Skill")
|
107 |
+
return 0
|