技能提取库:从招聘广告中解析技能需求

3 阅读7分钟

引言

目前,关于英国招聘广告中普遍要求的技能,尚无公开可用的数据。因此,无论是对于英国不同地区存在的技能专业领域,还是特定职业所需的技能,人们的了解都非常有限。鉴于此,某机构于2021年开始着手收集英国的招聘广告,并开发算法从中提取结构化信息。两年后,该机构的开放就业观测站已收集了超过五百万份招聘广告。

该项目帮助我们为关于招聘广告及其所含技能的诸多问题提供见解,例如:

  • 哪些地区或职业的招聘广告占全英广告总量的比例最高?
  • 每种职业通常需要哪些技能?
  • 哪些职业所需的技能相似?
  • 常用技能要求存在哪些地区差异?

我们最近改进了从招聘广告中提取技能的算法,并将其开源,发布在我们的新技能提取库中。这个Python包允许任何用户从招聘广告文本中提取技能短语,并使用现有的、由专家精心策划的技能分类法,将这些短语映射到一个标准化的技能列表中。通过将提取的技能短语映射到现有分类法,我们可以将那些可能用略微不同的措辞描述的技能进行标准化。例如,“团队监管”或“监管团队”这两个技能短语都可以映射到“监管团队”。目前,技能短语可以映射到由其他组织创建的两种分类法之一:欧盟委员会的欧洲技能、能力和职业分类法和某机构的开放技能分类法。

在本文中,我们将讨论技能提取库的工作原理、使用方法、它的优点以及使用时需要注意的事项。

方法论

我们从招聘广告中提取标准化技能的方法分为两步:

  1. 第一步是使用一个模型来提取技能,该模型可以预测招聘广告中哪些部分(“实体”)是技能。该模型使用了spaCy的命名实体识别神经网络架构进行训练。
  2. 第二步涉及将从招聘广告中提取的技能实体映射到现有的技能分类法。为此,我们需要为每个提取的技能实体找到语义上最接近的分类法技能;例如,“Excel”可能被映射到分类法技能“使用电子表格软件”。语义接近度是通过使用huggingface的sentence-transformers/all-MiniLM-L6-v2预训练模型对所有技能实体和分类法技能进行数值表示,然后计算这些数值表示之间的相似度来确定的。

关于这两个步骤的更详细信息,可以在我们的模型卡中找到。

使用该库

您可以通过两种方式使用该库:

  • 如果您想从单个招聘广告中提取技能,并且不熟悉Python编程语言,可以使用我们的用户界面工具。
  • 如果您想从大量招聘广告中提取技能,并且熟悉Python,那么可以使用我们的Python库ojd-daps-skills。关于此库使用的更多信息,可以在我们的文档页面中找到。

技能提取库的优势与局限

优势

技能提取库的优势有三点:

  1. 它可以提取以前未见过的技能。例如,尽管分类法分类法中不包含编程技能“React”,但该模型能够从句子“您具备原生JavaScript技能(包括React、Node和TypeScript)”中检测出“React”是一项技能,并将其映射到分类法技能“使用脚本编程”。
  2. 该库可以适应您选择的分类法。我们在编写库时采用了一种方式,使得您可以根据需要将技能映射到自定义的分类法。
  3. 您可以匹配到分类法的不同层级。当招聘广告提到一个广泛的技能组,而不是一项特定技能时,这会非常方便。

为了了解我们算法的性能,我们随机抽取了近200个由算法提取并映射到分类法的技能实体。然后,我们人工逐一检查了这些实体,判断提取的技能是否恰当,以及匹配到的分类法技能是否也恰当。我们判定只有6%的技能实体是不恰当的;一个例子是“通用条款和条件”被提取为一项技能。在94%被恰当提取的技能实体中,有88%也被判定为恰当地映射到了分类法技能。因此,我们对算法提取的技能充满信心,并相信它与其他技能提取算法的结果相比具有竞争力。

关于算法性能、评估以及与其他算法比较的更多信息,请参阅库的模型卡和指标文档。

局限

尽管我们的算法在评估恰当技能时表现良好,但仍有一些细微差别有时会导致生成不恰当的技能实体或分类法映射。在审查模型结果时,务必牢记这些。

首先,尽管用于映射语义的语言模型有时能理解隐喻,但隐喻偶尔仍可能导致不恰当的匹配。例如,短语“理解全局”会被提取为一个技能实体,然后匹配到名为“解释技术文档和图表”的分类法技能。

其次,该算法在处理包含多个技能的句子时可能会遇到困难。例如,一则招聘广告可能提到短语“开发可视化应用和应用”,其中包含技能“开发可视化应用”和“开发应用”。在这些较基础的例子中,技能提取器会使用语义规则将短语拆分为单个技能,例如将“[动词][宾语1]和[宾语2]”拆分为“[动词][宾语1]”和“[动词][宾语2]”。然而,在更复杂的例子中,提取器无法应用拆分规则。当这种情况发生时,我们最终会将整个短语与分类法进行匹配,这有时会导致遗漏短语中的技能。

最后,我们的命名实体识别模型满足了多种需求,但仍有改进空间。例如,它可能提取一些并非技能的实体,但这些实体随后却匹配到了所选分类法中的一项技能。例如,在一则广告中,“协助进行”这个短语被识别为一个技能实体,并匹配到了分类法中的“为人们提供一般性帮助”。正是出于这个原因,我们建议,未经专家评审和输入,不应使用提取的技能来衡量技能需求,也不应将其用于任何歧视性的招聘实践。

结论

技能提取算法还有进一步改进的空间。未来的工作可能包括改进它将多技能实体拆分为单个技能实体的方式,或者允许将更长的技能实体映射到分类法中的多项技能。另一个可以探索的途径是使用特定于招聘的文本训练我们自己的句子嵌入模型,这可能会潜在地改进神经网络模型和分类法映射步骤。

尽管在方法上还有改进的余地,但我们对技能提取库目前的结果充满信心。该库目前正用于某机构的开放就业观测站,从数百万份招聘广告中提取技能。我们已经能够分析这些数据,以深入了解雇主所要求的技能、职业技能的相似性以及技能的地理差异。您可以在我们的交互式分析博客中阅读相关内容。未来的分析可以探索不同行业的技能差异,或者,如果有可用数据的话,还可以研究按年龄和性别划分的技能需求。

我们也希望通过将该库开源,其他人可以用它从自己的招聘广告中提取技能。FINISHED