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) * 100 result = getdbskills[getdbskills['skill'] == skill_name.upper()] if(result.empty and skill_name not in skills_list): skills_list.append(skill_name) 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