Dado un título de trabajo, una descripción de trabajo y un sector de trabajo, el algoritmo asigna un código de clasificación ocupacional estándar (SOC) de tres dígitos del Reino Unido al trabajo. El algoritmo utiliza el estándar SOC 2010 , del cual se pueden encontrar más detalles en el sitio web de la ONS.
Este código fue escrito originalmente por Jyldyz Djumalieva, Arthur Turrell, David Copple, James Thurgood y Bradley Speigner. Martin Wood ha proporcionado actualizaciones y mejoras de código más recientes.
Si utiliza este código por favor cite:
Turrell, A., Speigner, B., Djumalieva, J., Copple, D. y Thurgood, J. (2019). Transformación de datos de texto que aparecen naturalmente en estadísticas económicas: el caso de las ofertas de empleo en línea (núm. w25837). Oficina Nacional de Investigaciones Económicas.
@techreport{turrell2019transformando, title={Transformación de datos de texto naturales en estadísticas económicas: el caso de las ofertas de empleo en línea}, autor = {Turrell, Arthur y Speigner, Bradley y Djumalieva, Jyldyz y Copple, David y Thurgood, James}, año={2019}, institución={Oficina Nacional de Investigación Económica} }
Consulte setup.py para obtener una lista completa de los paquetes de Python.
Ocupationcoder está construido sobre NLTK y utiliza 'Wordnet' (un corpus, el número 82 en su lista) y los modelos Punkt Tokenizer (el número 106 en su lista). Cuando se ejecuta el codificador, esperará encontrarlos en sus directorios habituales. Si tiene nltk instalado, puede obtener los corpus usando nltk.download()
, que los instalará en los directorios correctos o puede ir a http://www.nltk.org/nltk_data/ para descargarlos manualmente (y seguir las instrucciones). instrucciones de instalación).
Algunos otros paquetes, como rapidfuzz, no vienen con la distribución Anaconda de Python. Puede instalarlos mediante pip (si tiene acceso a Internet) o descargar los binarios relevantes e instalarlos manualmente.
occupationcoder/coder.py
aplica códigos SOC a las descripciones de puestosoccupationcoder/cleaner.py
contiene una función auxiliar que manipula principalmente cadenasoccupationcoder/createdictionaries
convierte el índice de código SOC del ONS en diccionarios utilizados por occupationcoder/coder.py
occupationcoder/dictionaries
contiene los diccionarios utilizados por occupationcoder/coder.py
occupationcoder/outputs
es el directorio de salida predeterminadooccupationcoder/tests/test_vacancies.csv
contiene vacantes de 'prueba' para ejecutar el código, utilizadas por unittests, ¡accesibles para usted!Descargue el paquete y navegue hasta el directorio de descarga. Entonces usa
python setup.py sdist
cd dist
pip install occupationcoder- < version > .tar.gz
La primera línea crea el archivo .tar.gz, la segunda navega al directorio con el código empaquetado y la tercera línea instala el paquete. El número de versión a utilizar será evidente por el nombre del archivo .tar.gz.
Importar y crear una instancia del codificador
import pandas as pd
from occupationcoder . coder import SOCCoder
myCoder = SOCCoder ()
Para ejecutar el código con una sola consulta, utilice la siguiente sintaxis con el método code_record(job_title,job_description,job_sector)
:
if __name__ == '__main__' :
myCoder . code_record ( 'Physicist' , 'Calculations of the universe' , 'Professional scientific' )
Tenga en cuenta que puede dejar algunos campos en blanco y el algoritmo seguirá devolviendo un código SOC.
Para ejecutar el código en un archivo (por ejemplo, nombre csv 'job_file.csv') con estructura
título profesional | descripción del trabajo | sector_trabajo |
---|---|---|
Físico | Hacer cálculos sobre el universo, investigar, realizar experimentos y comprender el entorno físico. | Actividades profesionales, científicas y técnicas. |
usar
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' )
Los argumentos del nombre de la columna son opcionales; los que se muestran arriba son valores predeterminados. Esto devolverá un nuevo marco de datos con entradas de código SOC adjuntas en una nueva columna:
título profesional | descripción del trabajo | sector_trabajo | código_SOC |
---|---|---|---|
Físico | Hacer cálculos sobre el universo, investigar, realizar experimentos y comprender el entorno físico. | Actividades profesionales, científicas y técnicas. | 211 |
Si tiene todos los paquetes relevantes en requisitos.txt, descargue el código y navegue hasta la carpeta de ocupación (que contiene el archivo README). Entonces corre
python -m occupationcoder.coder path/to/foo.csv
Esto creará un archivo 'processed_jobs.csv' en la carpeta salidas/ que tiene el texto original y una columna adicional 'SOC_code' con los códigos SOC asignados.
Para ejecutar las pruebas en su entorno virtual, utilice
python -m unittest
en el directorio de codificación de ocupación de nivel superior. Busque en test_occupationcoder.py
qué se ejecuta y ejemplos de uso. La salida aparece en el archivo 'processed_jobs.csv' en la carpeta salidas/.
Estamos muy agradecidos con Emmet Cassidy por probar este algoritmo.
Este código se proporciona "tal cual". Nos encantaría que lo mejoraras o lo ampliaras para que funcione en otros países. Todas las opiniones expresadas son nuestras opiniones personales, no las de ningún empleador.
El desarrollo de este paquete contó con el apoyo del Banco de Inglaterra.
Este paquete fue creado con Cookiecutter y la plantilla de proyecto audreyr/cookiecutter-pypackage.