Spaces:
Sleeping
Sleeping
import gradio as gr | |
import pandas as pd | |
import numpy as np | |
import pickle | |
import sklearn | |
import requests | |
from datasets import load_dataset | |
data = pd.read_csv("Dataset/mldata.csv") | |
#load prediction model from notebook | |
pickleFile = open('rfweights.pkl','rb') | |
rfmodel = pickle.load(pickleFile) | |
#Obtain the categorical/nominal data because it is not coded according (but based on the first occurence, first come first assign number) | |
#Therefore, need to read from the file to obtain the number. | |
categorical_cols = data[[ | |
'certifications', | |
'workshops', | |
'Interested subjects', | |
'interested career area ', | |
'Type of company want to settle in?', | |
'Interested Type of Books' | |
]] | |
#assign the datatype and automated assigned code | |
for i in categorical_cols: | |
data[i] = data[i].astype('category') | |
data[i] = data[i].cat.codes | |
#embedded nominal/ categorical values for certicates | |
certificates_name = list(categorical_cols['certifications'].unique()) | |
certificates_code = list(data['certifications'].unique()) | |
certificates_references = dict(zip(certificates_name,certificates_code)) | |
#embedding for workshops | |
workshop_name = list(categorical_cols['workshops'].unique()) | |
workshop_code = list(data['workshops'].unique()) | |
workshop_references = dict(zip(workshop_name, workshop_code)) | |
#embedding for subjects_interests | |
subjects_interest_name = list(categorical_cols['Interested subjects'].unique()) | |
subjects_interest_code = list(data['Interested subjects'].unique()) | |
subjects_interest_references = dict(zip(subjects_interest_name, subjects_interest_code)) | |
#embedding for career_interests | |
career_interest_name = list(categorical_cols['interested career area '].unique()) | |
career_interest_code = list(data['interested career area '].unique()) | |
career_interest_references = dict(zip(career_interest_name, career_interest_code)) | |
#embedding for company_intends | |
company_intends_name = list(categorical_cols['Type of company want to settle in?'].unique()) | |
company_intends_code = list(data['Type of company want to settle in?'].unique()) | |
company_intends_references = dict(zip(company_intends_name, company_intends_code)) | |
#embedding for book_interests | |
book_interest_name = list(categorical_cols['Interested Type of Books'].unique()) | |
book_interest_code = list(data['Interested Type of Books'].unique()) | |
book_interest_references = dict(zip(book_interest_name, book_interest_code)) | |
def greet(name): | |
return f"Hello, {name}!" | |
'''#dummy encode | |
def dummy_encode(df): | |
if input == "Management": | |
return [1, 0] | |
elif input == "Technical": | |
return [0, 1] | |
elif input == "smart worker": | |
return [1, 0] | |
elif input == "hard worker": | |
return [0, 1] | |
else: | |
return "Invalid choice"''' | |
response={} | |
def rfprediction(name, logical_thinking, hackathon_attend, coding_skills, public_speaking_skills, | |
self_learning, extra_course, certificate_code, worskhop_code, read_writing_skill, memory_capability | |
,subject_interest, career_interest, company_intend, senior_elder_advise, book_interest, introvert_extro, | |
team_player, management_technical, smart_hardworker): | |
df = pd.DataFrame.from_dict( | |
{ | |
"logical_thinking": [logical_thinking], | |
"hackathon_attend": [hackathon_attend], | |
"coding_skills": [coding_skills], | |
"public_speaking_skills": [public_speaking_skills], | |
"self_learning": [self_learning], | |
"extra_course": [extra_course], | |
"certificate": [certificate_code], | |
"workshop": [worskhop_code], | |
"read_writing_skills": [ | |
(0 if "poor" in read_writing_skill else 1 if "medium" in read_writing_skill else 2) | |
], | |
"memory_capability": [ | |
(0 if "poor" in memory_capability else 1 if "medium" in memory_capability else 2) | |
], | |
"subject_interest": [subject_interest], | |
"career_interest": [career_interest], | |
"company_intend": [company_intend], | |
"senior_elder_advise": [senior_elder_advise], | |
"book_interest": [book_interest], | |
"introvert_extro": [introvert_extro], | |
"team_player": [team_player], | |
"management_technical":[management_technical], | |
"smart_hardworker": [smart_hardworker] | |
} | |
) | |
#replace str to numeric representation, dtype chged to int8 | |
df = df.replace({"certificate": certificates_references, | |
"workshop":workshop_references, | |
"subject_interest":subjects_interest_references, | |
"career_interest": career_interest_references, | |
"company_intend":company_intends_references, | |
"book_interest":book_interest_references}) | |
#dummy encoding | |
#first we convert into list from df | |
userdata_list = df.values.tolist() | |
#now we append boolean based conditions | |
if(df["management_technical"].values == "Management"): | |
userdata_list[0].extend([1]) | |
userdata_list[0].extend([0]) | |
userdata_list[0].remove('Management') | |
elif(df["management_technical"].values == "Technical"): | |
userdata_list[0].extend([0]) | |
userdata_list[0].extend([1]) | |
userdata_list[0].remove('Technical') | |
else: return "Err" | |
if(df["smart_hardworker"].values == "smart worker"): | |
userdata_list[0].extend([1]) | |
userdata_list[0].extend([0]) | |
userdata_list[0].remove('smart worker') | |
elif(df["smart_hardworker"].values == "hard worker"): | |
userdata_list[0].extend([0]) | |
userdata_list[0].extend([1]) | |
userdata_list[0].remove('hard worker') | |
else: return "Err" | |
prediction_result = rfmodel.predict(userdata_list) | |
prediction_result_all = rfmodel.predict_proba(userdata_list) | |
print(prediction_result_all) | |
#create a list for output | |
result_list = {"Applications Developer": float(prediction_result_all[0][0]), | |
"CRM Technical Developer": float(prediction_result_all[0][1]), | |
"Database Developer": float(prediction_result_all[0][2]), | |
"Mobile Applications Developer": float(prediction_result_all[0][3]), | |
"Network Security Engineer": float(prediction_result_all[0][4]), | |
"Software Developer": float(prediction_result_all[0][5]), | |
"Software Engineer": float(prediction_result_all[0][6]), | |
"Software Quality Assurance (QA)/ Testing": float(prediction_result_all[0][7]), | |
"Systems Security Administrator": float(prediction_result_all[0][8]), | |
"Technical Support": float(prediction_result_all[0][9]), | |
"UX Designer": float(prediction_result_all[0][10]), | |
"Web Developer": float(prediction_result_all[0][11]), | |
} | |
job_pre=max(result_list) | |
url = "https://jobs-api14.p.rapidapi.com/v2/list" | |
querystring = {"query":job_pre,"location":"India","autoTranslateLocation":"false","remoteOnly":"false","employmentTypes":"fulltime;parttime;intern;contractor"} | |
headers = { | |
"x-rapidapi-key": "714f5a2539msh798d996c3243876p19c71ajsnfcd7ce481cb9", | |
"x-rapidapi-host": "jobs-api14.p.rapidapi.com"} | |
response = requests.get(url, headers=headers, params=querystring) | |
# print(response.json()) | |
return result_list | |
cert_list = ["app development", "distro making", "full stack", "hadoop", "information security", "machine learning", "python", "r programming", "shell programming"] | |
workshop_list = ["cloud computing", "data science", "database security", "game development", "hacking", "system designing", "testing", "web technologies"] | |
skill = ["excellent", "medium", "poor"] #can be used in this section and memory capability section | |
subject_list = ["cloud computing", "Computer Architecture", "data engineering", "hacking", "IOT", "Management", "networks", "parallel computing", "programming", "Software Engineering"] | |
career_list = ["Business process analyst", "cloud computing", "developer", "security", "system developer", "testing"] | |
company_list = ["BPA", "Cloud Services", "Finance", "Product based", "product development", "SAaS services", "Sales and Marketing", "Service Based", "Testing and Maintainance Services", "Web Services"] | |
book_list = ["Action and Adventure", "Anthology", "Art", "Autobiographies", "Biographies", "Childrens", "Comics","Cookbooks","Diaries","Dictionaries","Drama","Encyclopedias","Fantasy","Guide","Health","History","Horror","Journals","Math","Mystery","Poetry","Prayer books","Religion-Spirituality","Romance","Satire","Science","Science fiction","Self help","Series","Travel","Trilogy"] | |
Choice_list = ["Management", "Technical"] | |
worker_list = ["hard worker", "smart worker"] | |
demo =gr.Interface(fn = rfprediction, inputs=[ | |
gr.Textbox(placeholder="What is your name?", label="Name"), | |
gr.Slider(minimum=1,maximum=9,value=3,step=1,label="Are you a logical thinking person?", info="Scale: 1 - 9"), | |
gr.Slider(minimum=0,maximum=6,value=0,step=1,label="Do you attend any Hackathons?", info="Scale: 0 - 6 | 0 - if not attended any"), | |
gr.Slider(minimum=1,maximum=9,value=5,step=1,label="How do you rate your coding skills?", info="Scale: 1 - 9"), | |
gr.Slider(minimum=1,maximum=9,value=3,step=1,label="How do you rate your public speaking skills/confidency?", info="Scale: 1 - 9"), | |
gr.Radio({"Yes", "No"}, type="index", label="Are you a self-learning person? *"), | |
gr.Radio({"Yes", "No"}, type="index", label="Do you take extra courses in uni (other than IT)? *"), | |
gr.Dropdown(cert_list, label="Select a certificate you took!"), | |
gr.Dropdown(workshop_list, label="Select a workshop you attended!"), | |
gr.Dropdown(skill, label="Select your read and writing skill"), | |
gr.Dropdown(skill, label="Is your memory capability good?"), | |
gr.Dropdown(subject_list, label="What subject you are interested in?"), | |
gr.Dropdown(career_list, label="Which IT-Career do you have interests in?"), | |
gr.Dropdown(company_list, label="Do you have any interested company that you intend to settle in?"), | |
gr.Radio({"Yes", "No"}, type="index", label="Do you ever seek any advices from senior or elders? *"), | |
gr.Dropdown(book_list, label="Select your interested genre of book!"), | |
gr.Radio({"Yes", "No"}, type="index", label="Are you an Introvert?| No - extrovert *"), | |
gr.Radio({"Yes", "No"}, type="index", label="Ever worked in a team? *"), | |
gr.Dropdown(Choice_list, label="Which area do you prefer: Management or Technical?"), | |
gr.Dropdown(worker_list, label="Are you a Smart worker or Hard worker?") | |
], | |
outputs=gr.Label(num_top_classes=5), | |
title=" ", | |
description="Members: "" | |
print(response.json()) | |
) | |
#main | |
if __name__ == "__main__": | |
demo.launch(share=True) | |