您将如何从职位描述中分类/提取信息?

机器算法验证 分类 分类数据 文本挖掘
2022-03-11 17:41:43

我有一堆用户输入的职位描述。有各种各样的拼写错误和错误的数据。IE:

...
tulane univ hospital
tulip
tullett prebon
... 
weik investment
weill cornell university medical center
weis
weiss waldee hohimer dds
welded constrction l.p.
welder
welder
welder
...

您将采取哪些步骤来通过与工作相关的见解来“增强”这些价值观?

我能想到的最好的办法就是把它交给 wolfram alpha。但我想知道是否还有其他可以使用 python 的可访问技术。

更新:我发现有一个标准职业分类,我真的很想将名称与 SOC 匹配,并将 SOC 与一系列平均工资匹配。

3个回答

开始此操作的一种潜在方法是使用 Python 的自然语言工具包(NLTK),它可用于文本和主题分析,但也具有从字符串中提取某些单词的有用功能。例如,您可以从职位描述中提取“医疗”、“医院”等词,以找到广泛的职业和部门。由于拼写错误和数据质量,我认为它不能以完全自动化的方式完成,这样您最终可能会自己编写 SOC。尽管如此,以这种方式拥有广泛的职业和部门已经使这项任务变得容易得多。

如果您对除此之外的自然语言处理/文本和主题分析/文本挖掘感兴趣,Bird 等人的一本相当便宜但有用的书。(2009 年)“使用 Python 进行自然语言处理”

David Autor 将职业头衔与薪水联系起来。他将当前人口调查中的数据(也用于产生美国失业数据的数据)与 SOC 头衔联系起来,您还可以从中获得每个职业的薪水。根据这些,您可以轻松计算每个职业的平均工资,甚至可以了解每个职业的方差(在职业收入不平等范围内)。David在 MIT的数据档案中提供了他的数据集。

我已经成功使用潜在狄利克雷分配 (LDA) 来查找文本数据中的潜在主题或“主题”。LDA 将根据您的职位描述语料库中的术语(单词)每个职位描述都有一个包含个主题的概率。例如,如果您要求 LDA 将语料库分为 3 个主题,则平面设计师的职位描述可能有 80% 的“photoshop 图形插画家...”、18% 的“HTML CSS JS...”和 2% 的“Java Spring 面向对象...”。有很多关于 LDA 的阅读,只需搜索或从Quora 问题开始。kk

我对 LDA 的分析是在 R 中进行的,但当然有一个Python 包,尽管我从未在自己的工作中使用过它。

您可以考虑选择与 SOC 中的职业编号相对应的主题编号。生成主题后,检查它们并查看是否可以找到有意义的 SOC 链接并相应地调整主题编号,直到您满意为止。

要对每个职位描述进行工资估算,请考虑使用主题概率对每个工资进行加权。例如,如果一个职位描述有 80% 的可能性是软件开发人员,那么 SOC 将工资加权 0.80,其余主题也同样如此。如果这会产生太多噪音,只需设置一个截止值(可能是 20%)并从工资估计中删除剩余的主题权重。

对于拼写错误,您始终可以使用拼写检查器对其进行攻击,并查看它与没有该工具的结果相比如何。还要确保在运行 LDA 之前使用标准的 NLP 技术,例如标点符号删除和词干提取。

这些与其说是职位描述,不如说是职称。如果您确实有来自SOC 定义的此示例的描述,您可以使用 Chris 建议的主题模型:

1011 首席执行官根据董事会或类似管理机构制定的指导方针,确定和制定政策并为公司或私营和公共部门组织提供总体方向。在下属高管和员工经理的帮助下,计划、指导或协调最高管理层的运营活动。

在没有长文本的情况下,您可以使用使用社交网络作为特征的朴素贝叶斯分类器(因为您有分类问题),因为人们可能与他们的朋友从事相同类型的工作。另一个功能可能是与直接匹配标题文件的字符串相似性(我认为这个数据库正是您所需要的),它提供了职位和 SOC 之间的映射。