RecommendationAPI / SkillExtractV1.py
Vaibhav84's picture
change
247bb4a
raw
history blame
2.48 kB
import re
from datetime import datetime
import psycopg2
import pandas as pd
class SkillExtractorDetailsV1:
def GetSkillData(skill_extractor, inputData, db_params):
getdbskills = SkillExtractorDetailsV1.GetSkillDatafromDB(db_params)
skills_list = []
annotations = skill_extractor.annotate(inputData)
matches = annotations['results']['full_matches']+annotations['results']['ngram_scored']
skill_Typelst = []
skill_Scorelst = []
reuiredSkilllst = []
softskillslst = []
goodtohavelst = []
for result in matches:
skill_id = result['skill_id']
skill_name1 = skill_extractor.skills_db[skill_id]['skill_name']
skill_name = skill_name1.split("(")[0].strip()
skill_type = skill_extractor.skills_db[skill_id]['skill_type']
skill_score = round(result['score'],2)
result = getdbskills[getdbskills['skill'] == skill_name.upper()]
if(result.empty):
if( skill_name in skills_list):
continue
if(skill_score > 99 and skill_type != 'Soft Skill'):
reuiredSkilllst.append(skill_name)
elif(skill_score > 50 and skill_type == 'Soft Skill'):
softskillslst.append(skill_name)
elif(skill_score <= 50 and skill_type == 'Soft Skill'):
goodtohavelst.append(skill_name)
elif(skill_score <= 99 and skill_type != 'Soft Skill'):
goodtohavelst.append(skill_name)
# skills_list.append(skill_name)
# skill_Typelst.append(skill_type)
# skill_Scorelst.append(skill_score)
else:
print('----'+ result)
# list_of_tuples = list(zip(skills_list, skill_Typelst,skill_Scorelst))
# df = pd.DataFrame(list_of_tuples,
# columns=['Skill_Name', 'Skill_Type','Skill_Score'])
data = {'Data':['Required Skills', 'Soft Skills', 'Good to have Skills'], 'Values':[reuiredSkilllst, softskillslst, goodtohavelst]}
df = pd.DataFrame(data)
return df
def GetSkillDatafromDB(db_params):
conn = psycopg2.connect(**db_params)
query = "select upper(skilldetails) skill from skillmaster where weightage = 0"
df = pd.read_sql_query(query, conn)
return df