Dado um título de trabalho, uma descrição de trabalho e um setor de trabalho, o algoritmo atribui um código de classificação ocupacional padrão (SOC) de 3 dígitos do Reino Unido ao trabalho. O algoritmo utiliza o padrão SOC 2010 , cujos detalhes podem ser encontrados no site do ONS.
Este código foi originalmente escrito por Jyldyz Djumalieva, Arthur Turrell, David Copple, James Thurgood e Bradley Speigner. Martin Wood forneceu atualizações e melhorias de código mais recentes.
Se você usar este código, cite:
Turrell, A., Speigner, B., Djumalieva, J., Copple, D., & Thurgood, J. (2019). Transformando dados de texto que ocorrem naturalmente em estatísticas econômicas: o caso das publicações de vagas de emprego on-line (nº w25837). Escritório Nacional de Pesquisa Econômica.
@techreport{turrell2019transformando, title={Transformando dados de texto que ocorrem naturalmente em estatísticas econômicas: o caso de anúncios de vagas de emprego online}, autor={Turrel, Arthur e Speigner, Bradley e Djumalieva, Jyldyz e Copple, David e Thurgood, James}, ano={2019}, instituição={Escritório Nacional de Pesquisa Econômica} }
Consulte setup.py para obter uma lista completa de pacotes Python.
Occupationcoder é construído sobre NLTK e usa 'Wordnet' (um corpora, número 82 em sua lista) e os Modelos Punkt Tokenizer (número 106 em sua lista). Quando o codificador for executado, ele espera encontrá-los em seus diretórios habituais. Se você tiver o nltk instalado, poderá obtê-los corpora usando nltk.download()
que os instalará nos diretórios corretos ou você pode acessar http://www.nltk.org/nltk_data/ para baixá-los manualmente (e seguir o instruções de instalação).
Alguns outros pacotes, como o rapidfuzz, não vêm com a distribuição Anaconda do Python. Você pode instalá-los via pip (se tiver acesso à internet) ou baixar os binários relevantes e instalá-los manualmente.
occupationcoder/coder.py
aplica códigos SOC às descrições de cargosoccupationcoder/cleaner.py
contém função auxiliar que manipula principalmente stringsoccupationcoder/createdictionaries
transforma o índice do código SOC do ONS em dicionários usados pelo occupationcoder/coder.py
occupationcoder/dictionaries
contém os dicionários usados por occupationcoder/coder.py
occupationcoder/outputs
é o diretório de saída padrãooccupationcoder/tests/test_vacancies.csv
contém vagas de 'teste' para executar o código, usadas por unittests, acessíveis por você!Baixe o pacote e navegue até o diretório de download. Então use
python setup.py sdist
cd dist
pip install occupationcoder- < version > .tar.gz
A primeira linha cria o arquivo .tar.gz, a segunda navega até o diretório com o código do pacote e a terceira linha instala o pacote. O número da versão a ser usada ficará evidente no nome do arquivo .tar.gz.
Importando e criando uma instância do codificador
import pandas as pd
from occupationcoder . coder import SOCCoder
myCoder = SOCCoder ()
Para executar o código com uma única consulta, use a seguinte sintaxe com o método code_record(job_title,job_description,job_sector)
:
if __name__ == '__main__' :
myCoder . code_record ( 'Physicist' , 'Calculations of the universe' , 'Professional scientific' )
Observe que você pode deixar alguns campos em branco e o algoritmo ainda retornará um código SOC.
Para executar o código em um arquivo (por exemplo, nome csv 'job_file.csv') com estrutura
cargo | descrição do trabalho | setor_de_emprego |
---|---|---|
Físico | Faça cálculos sobre o universo, pesquise, realize experimentos e entenda o ambiente físico. | Atividades profissionais, científicas e 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' )
Os argumentos do nome da coluna são opcionais; mostrados acima são valores padrão. Isso retornará um novo dataframe com entradas de código SOC anexadas em uma nova coluna:
cargo | descrição do trabalho | setor_de_emprego | Código_SOC |
---|---|---|---|
Físico | Faça cálculos sobre o universo, pesquise, realize experimentos e entenda o ambiente físico. | Atividades profissionais, científicas e técnicas | 211 |
Se você tiver todos os pacotes relevantes em requisitos.txt, baixe o código e navegue até a pasta professioncoder (que contém o README). Então corra
python -m occupationcoder.coder path/to/foo.csv
Isso criará um arquivo 'processed_jobs.csv' na pasta outputs/ que contém o texto original e uma coluna extra 'SOC_code' com os códigos SOC atribuídos.
Para executar os testes em seu ambiente virtual, use
python -m unittest
no diretório ocupacional de nível superior. Procure em test_occupationcoder.py
o que é executado e exemplos de uso. A saída aparece no arquivo 'processed_jobs.csv' na pasta outputs/.
Estamos muito gratos a Emmet Cassidy por testar este algoritmo.
Este código é fornecido 'como está'. Adoraríamos que você o melhorasse ou o ampliasse para funcionar em outros países. Todas as opiniões expressas são nossas opiniões pessoais, e não as de qualquer empregador.
O desenvolvimento deste pacote foi apoiado pelo Banco da Inglaterra.
Este pacote foi criado com Cookiecutter e o modelo de projeto audreyr/cookiecutter-pypackage.