Compte tenu du titre du poste, de la description du poste et du secteur d'emploi, l'algorithme attribue à l'emploi un code de classification professionnelle standard (SOC) britannique à 3 chiffres. L'algorithme utilise la norme SOC 2010 , dont plus de détails sont disponibles sur le site Internet de l'ONS.
Ce code a été écrit à l'origine par Jyldyz Djumalieva, Arthur Turrell, David Copple, James Thurgood et Bradley Speigner. Martin Wood a fourni des mises à jour et des améliorations de code plus récentes.
Si vous utilisez ce code merci de citer :
Turrell, A., Speigner, B., Djumalieva, J., Copple, D. et Thurgood, J. (2019). Transformer des données textuelles naturelles en statistiques économiques : le cas des offres d'emploi en ligne (n° w25837). Bureau national de recherche économique.
@techreport{turrell2019transformation, title={Transformer des données textuelles naturelles en statistiques économiques : le cas des offres d'emploi en ligne}, author={Turrell, Arthur et Speigner, Bradley et Djumalieva, Jyldyz et Copple, David et Thurgood, James}, année={2019}, institution={Bureau national de recherche économique} }
Voir setup.py pour une liste complète des packages Python.
occupationcoder est construit sur NLTK et utilise « Wordnet » (un corpus, numéro 82 sur leur liste) et les modèles Punkt Tokenizer (numéro 106 sur leur liste). Lorsque le codeur sera exécuté, il s'attendra à les trouver dans leurs répertoires habituels. Si nltk est installé, vous pouvez obtenir leurs corpus en utilisant nltk.download()
qui les installera dans les bons répertoires ou vous pouvez aller sur http://www.nltk.org/nltk_data/ pour les télécharger manuellement (et suivre les instructions d'installation).
Quelques autres packages, tels que rapidfuzz, ne sont pas fournis avec la distribution Anaconda de Python. Vous pouvez les installer via pip (si vous avez accès à Internet) ou télécharger les binaires pertinents et les installer manuellement.
occupationcoder/coder.py
applique les codes SOC aux descriptions de posteoccupationcoder/cleaner.py
contient une fonction d'assistance qui manipule principalement les chaînesoccupationcoder/createdictionaries
transforme l'index ONS du code SOC en dictionnaires utilisés par occupationcoder/coder.py
occupationcoder/dictionaries
contient les dictionnaires utilisés par occupationcoder/coder.py
occupationcoder/outputs
est le répertoire de sortie par défautoccupationcoder/tests/test_vacancies.csv
contient des postes vacants « test » sur lesquels exécuter le code, utilisés par unittests, accessibles par vous !Téléchargez le package et accédez au répertoire de téléchargement. Utilisez ensuite
python setup.py sdist
cd dist
pip install occupationcoder- < version > .tar.gz
La première ligne crée le fichier .tar.gz, la seconde accède au répertoire contenant le code packagé et la troisième ligne installe le package. Le numéro de version à utiliser sera évident à partir du nom du fichier .tar.gz.
Importation et création d'une instance du codeur
import pandas as pd
from occupationcoder . coder import SOCCoder
myCoder = SOCCoder ()
Pour exécuter le code avec une seule requête, utilisez la syntaxe suivante avec la méthode code_record(job_title,job_description,job_sector)
:
if __name__ == '__main__' :
myCoder . code_record ( 'Physicist' , 'Calculations of the universe' , 'Professional scientific' )
Notez que vous pouvez laisser certains champs vides et l’algorithme renverra toujours un code SOC.
Pour exécuter le code sur un fichier (par exemple, nom csv 'job_file.csv') avec structure
titre d'emploi | Description de l'emploi | secteur_emploi |
---|---|---|
Physicien | Faites des calculs sur l'univers, faites des recherches, réalisez des expériences et comprenez l'environnement physique. | Activités professionnelles, scientifiques et techniques |
utiliser
df = pd . read_csv ( 'path/to/foo.csv' )
df = myCoder . code_data_frame ( df , title_column = 'job_title' , sector_column = 'job_sector' , description_column = 'job_description' )
Les arguments du nom de colonne sont facultatifs, les valeurs indiquées ci-dessus sont par défaut. Cela renverra une nouvelle trame de données avec les entrées de code SOC ajoutées dans une nouvelle colonne :
titre d'emploi | Description de l'emploi | secteur_emploi | Code_SOC |
---|---|---|---|
Physicien | Faites des calculs sur l'univers, faites des recherches, réalisez des expériences et comprenez l'environnement physique. | Activités professionnelles, scientifiques et techniques | 211 |
Si vous disposez de tous les packages pertinents dans Requirements.txt, téléchargez le code et accédez au dossier Occupationcoder (qui contient le fichier README). Puis cours
python -m occupationcoder.coder path/to/foo.csv
Cela créera un fichier « processed_jobs.csv » dans le dossier outputs/ contenant le texte original et une colonne « SOC_code » supplémentaire avec les codes SOC attribués.
Pour exécuter les tests dans votre environnement virtuel, utilisez
python -m unittest
dans le répertoire occupationcoder de niveau supérieur. Recherchez dans test_occupationcoder.py
ce qui est exécuté et des exemples d'utilisation. La sortie apparaît dans le fichier « processed_jobs.csv » dans le dossier outputs/.
Nous sommes très reconnaissants à Emmet Cassidy d'avoir testé cet algorithme.
Ce code est fourni « tel quel ». Nous serions ravis que vous l’amélioriez ou que vous l’étendiez pour qu’il fonctionne dans d’autres pays. Tous les points de vue exprimés sont nos points de vue personnels et non ceux d’un employeur.
Le développement de ce programme a été soutenu par la Banque d'Angleterre.
Ce package a été créé avec Cookiecutter et le modèle de projet audreyr/cookiecutter-pypackage.