职称分类

数据挖掘 nlp
2022-02-07 15:59:50

我有一个包含大约 10000 个未标记职位(主要是非常短的职位)的数据集,例如head of mobilelead iOS developer

我想以两种不同的方式对这些职位进行分类:

第一个分类是根据其所代表的工作类型(即营销、IT、医疗保健、法律......)对职位进行排序

第二个分类是关于特定工作的资历水平(即主管、经理、助理、实习生......)

我尝试了一种基于 Word2Vec 的方法(向量取自 Google Word2Vec 集):

  1. 我清理并阻止了职位名称
  2. 我创建了一个表示职位的向量作为组成它的单词的平均向量
  3. 我创建了一个代表目标值的向量列表(+executive, +chief, -assistant例如,执行可能是平均向量)
  4. 找到职位向量和目标向量之间的最小余弦距离。

虽然这种方法得到了不错的结果(大约 70-80% 的准确率),但对于我计划做的任务来说还不够。

所以我想知道是否可以使用更好的方法(除了手动标记数据并使用它来训练一些算法)

2个回答

一个合理的假设是,共享指示词的标题属于同一部门。

例子:

  1. 正面例子:“高级IOS开发者”和“首席web开发者”似乎都在IT领域,“开发者”这个词是我们的赠品。
  2. 反例:“首席运营官”和“首席数据官”共享 2 个词,但这些词 (chief,officer) 不具有指示性

所以,我会保留一个非指示性词的列表,例如“高级”、“首席”、...

将它们过滤掉,然后对标题之间的单词距离应用层次聚类算法。

我很惊讶你得到了 80% 的准确率,并且认为如果你想改进,你将不得不做一些标记。即使是人也有这个问题!例如:

  • 销售主管 - 主管可能会产生误导,这在 50 年前可能被称为“销售员”
  • 一家科技公司的副总裁与一家银行的副总裁。在后一种情况下,VP更多的是一种敬意,可能不包括任何实际管理。

如果您不想批量标记数据,我会尝试为标题中的常用词分配权重。例如,将“高级”值中的高级/初级替换为 +1 和 -1。如果你对前 100 个单词这样做,我敢打赌这将有助于完全无监督的方法。