給定職位名稱、職位描述和工作部門,演算法會為該職位分配英國 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)。將自然發生的文字資料轉換為經濟統計資料:線上職缺發布案例(編號 w25837)。國家經濟研究局。
@techreport{turrell2019transforming, title={將自然發生的文本資料轉化為經濟統計:線上職缺發布案例}, 作者={特雷爾、亞瑟和斯佩尼納、布拉德利和朱馬利耶娃、Jyldyz 和科普爾、大衛和瑟古德、詹姆斯}, 年={2019}, 機構={國家經濟研究局} }
有關 Python 套件的完整列表,請參閱 setup.py。
職業編碼器建立在 NLTK 之上,並使用「Wordnet」(一個語料庫,在其清單中排名第 82)和 Punkt Tokenizer 模型(在其清單中排名第 106)。當編碼器運行時,它將期望在它們的常用目錄中找到它們。如果您安裝了 nltk,您可以使用nltk.download()
來取得它們的語料庫,這會將它們安裝在正確的目錄中,或者您可以前往http://www.nltk.org/nltk_data/ 手動下載它們(並依照安裝說明)。
Python 的 Anaconda 發行版中沒有附帶其他幾個軟體包,例如rapidfuzz。您可以透過 pip 安裝它們(如果您可以存取互聯網)或下載相關的二進位檔案並手動安裝。
occupationcoder/coder.py
將 SOC 代碼應用於職位描述occupationcoder/cleaner.py
包含主要操作字串的輔助函數occupationcoder/createdictionaries
將 SOC 程式碼的 ONS 索引轉換為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 檔案的名稱中可以明顯看出要使用的版本號碼。
導入並建立編碼器的實例
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 |
如果您在requirements.txt 中擁有所有相關套件,請下載程式碼並導航至職業編碼器資料夾(其中包含自述文件)。然後運行
python -m occupationcoder.coder path/to/foo.csv
這將在輸出/資料夾中建立一個「processed_jobs.csv」文件,其中包含原始文字和一個額外的「SOC_code」列,其中包含指派的 SOC 程式碼。
若要在虛擬環境中執行測試,請使用
python -m unittest
在頂級職業編碼器目錄中。查看test_occupationcoder.py
以了解運行的內容和使用範例。輸出顯示在outputs/資料夾中的“processed_jobs.csv”檔案中。
我們非常感謝 Emmet Cassidy 測試了這個演算法。
該代碼按“原樣”提供。如果您能改進它或將其擴展到其他國家,我們將非常高興。所有表達的觀點均為我們個人觀點,不代表任何雇主。
該方案的製定得到了英格蘭銀行的支持。
該套件是使用 Cookiecutter 和 audreyr/cookiecutter-pypackage 專案範本建立的。