Anhand einer Berufsbezeichnung, einer Stellenbeschreibung und eines Berufssektors weist der Algorithmus der Stelle einen dreistelligen britischen SOC-Code (Standard Occupy Classification) zu. Der Algorithmus verwendet den SOC 2010- Standard. Weitere Einzelheiten hierzu finden Sie auf der Website des ONS.
Dieser Code wurde ursprünglich von Jyldyz Djumalieva, Arthur Turrell, David Copple, James Thurgood und Bradley Speigner geschrieben. Martin Wood hat aktuellere Code-Updates und Verbesserungen bereitgestellt.
Wenn Sie diesen Code verwenden, geben Sie bitte Folgendes an:
Turrell, A., Speigner, B., Djumalieva, J., Copple, D. & Thurgood, J. (2019). Umwandlung natürlich vorkommender Textdaten in Wirtschaftsstatistiken: Der Fall von Online-Stellenausschreibungen (Nr. w25837). Nationales Büro für Wirtschaftsforschung.
@techreport{turrell2019transforming, title={Umwandlung natürlich vorkommender Textdaten in Wirtschaftsstatistiken: Der Fall von Online-Stellenausschreibungen}, Autor={Turrell, Arthur und Speigner, Bradley und Djumalieva, Jyldyz und Copple, David und Thurgood, James}, Jahr={2019}, institution={National Bureau of Economic Research} }
Eine vollständige Liste der Python-Pakete finden Sie unter setup.py.
occupycoder basiert auf NLTK und verwendet „Wordnet“ (ein Korpora, Nummer 82 auf ihrer Liste) und die Punkt Tokenizer-Modelle (Nummer 106 auf ihrer Liste). Wenn der Codierer ausgeführt wird, erwartet er, diese in ihren üblichen Verzeichnissen zu finden. Wenn Sie nltk installiert haben, können Sie die Korpora mit nltk.download()
abrufen, wodurch sie in den richtigen Verzeichnissen installiert werden, oder Sie können zu http://www.nltk.org/nltk_data/ gehen, um sie manuell herunterzuladen (und den Anweisungen folgen). Installationsanweisungen).
Einige andere Pakete, wie zum Beispiel Rapidfuzz, sind nicht in der Anaconda-Distribution von Python enthalten. Sie können diese über pip installieren (sofern Sie Zugang zum Internet haben) oder die entsprechenden Binärdateien herunterladen und manuell installieren.
occupationcoder/coder.py
wendet SOC-Codes auf Stellenbeschreibungen anoccupationcoder/cleaner.py
enthält Hilfsfunktionen, die hauptsächlich Zeichenfolgen manipulierenoccupationcoder/createdictionaries
wandelt den ONS-Index des SOC-Codes in Wörterbücher um, die von occupationcoder/coder.py
verwendet werdenoccupationcoder/dictionaries
enthält die von occupationcoder/coder.py
verwendeten Wörterbücheroccupationcoder/outputs
ist das Standardausgabeverzeichnisoccupationcoder/tests/test_vacancies.csv
enthält „Test“-Stellen, auf denen der Code ausgeführt werden kann, die von Unittests verwendet werden und für Sie zugänglich sind!Laden Sie das Paket herunter und navigieren Sie zum Download-Verzeichnis. Dann verwenden
python setup.py sdist
cd dist
pip install occupationcoder- < version > .tar.gz
Die erste Zeile erstellt die .tar.gz-Datei, die zweite navigiert zu dem Verzeichnis mit dem gepackten Code und die dritte Zeile installiert das Paket. Die zu verwendende Versionsnummer ist aus dem Namen der .tar.gz-Datei ersichtlich.
Importieren und Erstellen einer Instanz des Codierers
import pandas as pd
from occupationcoder . coder import SOCCoder
myCoder = SOCCoder ()
Um den Code mit einer einzelnen Abfrage auszuführen, verwenden Sie die folgende Syntax mit der Methode code_record(job_title,job_description,job_sector)
:
if __name__ == '__main__' :
myCoder . code_record ( 'Physicist' , 'Calculations of the universe' , 'Professional scientific' )
Beachten Sie, dass Sie einige Felder leer lassen können und der Algorithmus trotzdem einen SOC-Code zurückgibt.
Um den Code für eine Datei (z. B. CSV-Name „job_file.csv“) mit Struktur auszuführen
Berufsbezeichnung | Jobbeschreibung | job_sector |
---|---|---|
Physiker | Machen Sie Berechnungen über das Universum, forschen Sie, führen Sie Experimente durch und verstehen Sie die physikalische Umgebung. | Berufliche, wissenschaftliche und technische Tätigkeiten |
verwenden
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' )
Die Argumente für den Spaltennamen sind optional, die oben gezeigten sind Standardwerte. Dadurch wird ein neuer Datenrahmen mit angehängten SOC-Codeeinträgen in einer neuen Spalte zurückgegeben:
Berufsbezeichnung | Jobbeschreibung | job_sector | SOC_code |
---|---|---|---|
Physiker | Machen Sie Berechnungen über das Universum, forschen Sie, führen Sie Experimente durch und verstehen Sie die physikalische Umgebung. | Berufliche, wissenschaftliche und technische Tätigkeiten | 211 |
Wenn Sie alle relevanten Pakete in der Datei „requirements.txt“ haben, laden Sie den Code herunter und navigieren Sie zum Ordner „occupycoder“ (der die README-Datei enthält). Dann lauf
python -m occupationcoder.coder path/to/foo.csv
Dadurch wird im Ordner „outputs/“ eine Datei „processed_jobs.csv“ erstellt, die den Originaltext und eine zusätzliche Spalte „SOC_code“ mit den zugewiesenen SOC-Codes enthält.
Um die Tests in Ihrer virtuellen Umgebung auszuführen, verwenden Sie
python -m unittest
im Besetzungscoder-Verzeichnis der obersten Ebene. Schauen Sie in test_occupationcoder.py
nach, was ausgeführt wird und nach Anwendungsbeispielen. Die Ausgabe erscheint in der Datei „processed_jobs.csv“ im Ordner „outputs/“.
Wir sind Emmet Cassidy sehr dankbar, dass er diesen Algorithmus getestet hat.
Dieser Code wird „wie besehen“ bereitgestellt. Wir würden uns freuen, wenn Sie es verbessern oder auf andere Länder erweitern würden. Alle geäußerten Ansichten sind unsere persönlichen Ansichten und nicht die eines Arbeitgebers.
Die Entwicklung dieses Pakets wurde von der Bank of England unterstützt.
Dieses Paket wurde mit Cookiecutter und der Projektvorlage audreyr/cookiecutter-pypackage erstellt.