Usage

Extractors

How to use the Skill Extractor:

from salary_stone.skill_extractor import Skill_Extractor
# By default the en_core_web_sm model is used for extraction, but this can be updated by passing the model parameter.
skille = Skill_Extractor()
jobdesc = "My skills include things like python and also data analytics. I also have a great abilities to do business."
skills = skille.extract_skills(jobdesc)
print(skills)
['python', 'data analytics', 'business']

How to use the Salary Extractor:

from salary_stone.salary_extractor import Salary_Extractor
salarye = Salary_Extractor()
jobdesc = "For this position we will require someone to use python. Additionally we will require a working knowledge of data analytics"
salary = salarye.extract_salary(jobdesc)
print(salary)
"40k-50k"

Recommender

How to use the skill recommender:

from salary_stone.salary_extractor import Salary_Extractor
from salary_stone.skill_extractor import Skill_Extractor
from salary_stone.skill_recommender import recommend

skille = Skill_Extractor()
se = Salary_Extractor()
# dat = dataframe of kaggle data.
dat['skills'] = dat['job_desc_col'].apply(lambda r: skille.extract_skills(r))
skills, vals = recommend(['python'], data=dat, model=se, extracted_scol='skills')

Generating Metrics

Calculating Skill Frequency:

import pandas as pd
from salary_stone.metrics import skill_freq
from salary_stone.skill_extractor import Skill_Extractor
se = Skill_Extractor()
# Or can read the data from elastic just as long as it has a job title, salary bin, and skill column.
data = pd.read_csv('/path/to/kaggle/data')
data['skills'] = data['job_desc'].apply(lambda r: se.extract_skills(r))
skills, freqs = skill_freq(skill_vec=['python'], data=dat, extracted_scol='skills')
print(skills)
['python']
print(freq)
[0.8]

Calculating Skill Salary Distribution:

import pandas as pd
from salary_stone.metrics import skill_salary_dist
from salary_stone.skill_extractor import Skill_Extractor
from salary_stone.salary_extractor import Salary_Extractor
se = Skill_Extractor()
salarye = Salary_Extractor()
# Or can read the data from elastic just as long as it has a job title, salary bin, and skill column.
data = pd.read_csv('/path/to/kaggle/data')
data['skills'] = data['job_desc'].apply(lambda r: se.extract_skills(r))
data['salary_bin'] = data['job_desc'].apply(lambda r: se.extract_salary(r))
bins = skill_salary_dist(skill_vec = ['python'], data=dat, extracted_salcol='salary_bin', extracted_scol='skills')
print(bins)
[0.2, 0.4, 0.1, 0.2, 0.1]

Calculating Job Similarity By Skills:

import pandas as pd
from salary_stone.metrics import skill_freq
from salary_stone.skill_extractor import Skill_Extractor
se = Skill_Extractor()
# Or can read the data from elastic just as long as it has a job title, salary bin, and skill column.
data = pd.read_csv('/path/to/kaggle/data')
data['skills'] = data['job_desc'].apply(lambda r: se.extract_skills(r))

res = similarity_measure(skill_vec=['python'], data=dat, topn=3, jobtitle_col='job_title', extracted_scol='skills')
print(res)
((0.4, 0.3, 0)('Software Developer', 'Data Scientist', 'Manager'))