给定职位名称、职位描述和职位部门,算法会为该职位分配一个英国 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 项目模板创建的。