직위, 직무 설명 및 직무 부문이 주어지면 알고리즘은 영국의 3자리 표준 직업 분류(SOC) 코드를 해당 직무에 할당합니다. 알고리즘은 SOC 2010 표준을 사용하며, 자세한 내용은 ONS 웹사이트에서 확인할 수 있습니다.
이 코드는 원래 Jyldyz Djumalieva, Arthur Turrell, David Copple, James Thurgood 및 Bradley Speigner가 작성했습니다. Martin Wood는 최신 코드 업데이트 및 개선 사항을 제공했습니다.
이 코드를 사용하는 경우 다음을 인용해 주세요.
Turrell, A., Speigner, B., Djumalieva, J., Copple, D., & Thurgood, J. (2019). 자연 발생하는 텍스트 데이터를 경제 통계로 변환: 온라인 구인 공고 사례(No. w25837). 국립 경제 연구국.
@techreport{turrell2019변형, title={자연스레 발생하는 텍스트 데이터를 경제 통계로 변환: 온라인 구인 공고 사례}, 저자={Turrell, Arthur 및 Speigner, Bradley 및 Djumalieva, Jyldyz 및 Copple, David 및 Thurgood, James}, 연도={2019}, 기관={국립경제조사국} }
Python 패키지의 전체 목록은 setup.py를 참조하세요.
occcer는 NLTK 위에 구축되었으며 'Wordnet'(말뭉치, 목록에서 82번) 및 Punkt Tokenizer Models(목록에서 106번)를 사용합니다. 코더가 실행되면 일반적인 디렉터리에서 이러한 항목을 찾을 것으로 예상됩니다. nltk가 설치되어 있는 경우 nltk.download()
사용하여 코퍼스를 얻을 수 있습니다. 그러면 올바른 디렉토리에 설치됩니다. 또는 http://www.nltk.org/nltk_data/로 이동하여 수동으로 다운로드할 수 있습니다(다음 지침을 따르세요). 설치 지침).
rapidfuzz와 같은 몇 가지 다른 패키지는 Python의 Anaconda 배포판과 함께 제공되지 않습니다. pip를 통해 설치하거나(인터넷에 액세스할 수 있는 경우) 관련 바이너리를 다운로드하여 수동으로 설치할 수 있습니다.
occupationcoder/coder.py
직업 설명에 SOC 코드를 적용합니다.occupationcoder/cleaner.py
에는 주로 문자열을 조작하는 도우미 함수가 포함되어 있습니다.occupationcoder/createdictionaries
ONS의 SOC 코드 색인을 occupationcoder/coder.py
에서 사용하는 사전으로 바꿉니다.occupationcoder/dictionaries
에는 occupationcoder/coder.py
에서 사용되는 사전이 포함되어 있습니다.occupationcoder/outputs
기본 출력 디렉터리입니다.occupationcoder/tests/test_vacancies.csv
에는 단위 테스트에서 사용되며 귀하가 액세스할 수 있는 코드를 실행할 '테스트' 공석이 포함되어 있습니다!패키지를 다운로드하고 다운로드 디렉터리로 이동합니다. 그런 다음 사용
python setup.py sdist
cd dist
pip install occupationcoder- < version > .tar.gz
첫 번째 줄은 .tar.gz 파일을 생성하고, 두 번째 줄은 패키지된 코드가 있는 디렉터리로 이동하며, 세 번째 줄은 패키지를 설치합니다. 사용할 버전 번호는 .tar.gz 파일 이름에서 알 수 있습니다.
Coder의 인스턴스 가져오기 및 만들기
import pandas as pd
from occupationcoder . coder import SOCCoder
myCoder = SOCCoder ()
단일 쿼리로 코드를 실행하려면 code_record(job_title,job_description,job_sector)
메서드와 함께 다음 구문을 사용합니다.
if __name__ == '__main__' :
myCoder . code_record ( 'Physicist' , 'Calculations of the universe' , 'Professional scientific' )
일부 필드를 비워둘 수 있으며 알고리즘은 여전히 SOC 코드를 반환합니다.
구조가 있는 파일(예: csv 이름 'job_file.csv')에서 코드를 실행하려면
직업_제목 | 직업_설명 | 직업_분야 |
---|---|---|
물리학자 | 우주에 대해 계산하고, 연구하고, 실험하고, 물리적 환경을 이해합니다. | 전문적이고 과학적이고 기술적인 활동 |
사용
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' )
열 이름 인수는 선택 사항이며 위에 표시된 기본값은 기본값입니다. 그러면 새 열에 SOC 코드 항목이 추가된 새 데이터프레임이 반환됩니다.
직업_제목 | 직업_설명 | 직업_분야 | SOC_코드 |
---|---|---|---|
물리학자 | 우주에 대해 계산하고, 연구하고, 실험하고, 물리적 환경을 이해합니다. | 전문적이고 과학적이고 기술적인 활동 | 211 |
요구 사항.txt에 관련 패키지가 모두 있는 경우 코드를 다운로드하고 README가 포함된 직업 코더 폴더로 이동하세요. 그런 다음 실행
python -m occupationcoder.coder path/to/foo.csv
이렇게 하면 원본 텍스트와 할당된 SOC 코드가 있는 추가 'SOC_code' 열이 있는 'processed_jobs.csv' 파일이 출력/ 폴더에 생성됩니다.
가상 환경에서 테스트를 실행하려면 다음을 사용하세요.
python -m unittest
최상위 직업 코더 디렉토리에 있습니다. 실행되는 내용과 사용 예는 test_occupationcoder.py
를 참조하세요. 출력은 Outputs/ 폴더의 'processed_jobs.csv' 파일에 나타납니다.
이 알고리즘을 테스트해 주신 Emmet Cassidy에게 매우 감사드립니다.
이 코드는 '있는 그대로' 제공됩니다. 더 좋게 만들거나 다른 국가에서도 사용할 수 있도록 확장해 주시면 감사하겠습니다. 표현된 모든 견해는 고용주의 견해가 아닌 우리의 개인적인 견해입니다.
이 패키지의 개발은 영국 은행의 지원을 받았습니다.
이 패키지는 Cookiecutter 및 audreyr/cookiecutter-pypackage 프로젝트 템플릿을 사용하여 생성되었습니다.