NER模型预测的启发式

数据挖掘 机器学习 Python nlp 命名实体识别 斯派西
2022-02-27 12:02:03

我正在尝试构建可以在“职位描述”中命名实体的 NER 模型。

实体是:

  1. 必备技能(必须具备java、python、c++等技能)
  2. Nicetohave 技能(候选人“可能”或“可能不”有这个,都可以。)
  3. 学位(学士、硕士……)
  4. 认证
  5. 职称

我准备了数据集,对它们进行了注释并训练了一个 spacy V2.0 模型。该模型在所有标签上都表现良好(在 70-90 秒范围内),除了“很高兴拥有”。它要么是错误分类,要么根本没有预测。所以我试图用 nicetohave 技能来捕捉句子,并“根据某些启发式方法手动重新分类它们。

但是,其中存在一些复杂性。例如:

所需技能:python、c++知识 必须有matlab知识 很高兴拥有技能:有CAD知识者优先 必须有CATIA V5知识

在上面的示例中,从Required Skills 到matlab这个词的技能强制性的,从nice to have: until CATIA V5 everything has to be nicetohave也有可能在某些职位描述中顺序可能会发生变化(首先提到Nicetohave,然后是强制性技能)

或者,也有可能先给出必修技能,然后再有,再有必修。还有更多类似的组合。

那么我该如何处理这种情况呢?我对任何想法、建议持开放态度..

1个回答

假设在枚举开始时几乎总是有明确的标记,即“所需技能”或“很高兴拥有”(或这两者的任何变体),我建议尝试添加自定义功能,例如:

  • 从当前位置看到的最后一个标记,“Nicetohave”或“mandatoryskill”的分类值(实际上是 OHE 的两个布尔特征)
  • 从当前位置到最后看到的标记的单词数距离

获取这些特征的值需要一个预处理步骤,其中标记被提取和/或标记,可能需要一些简单的字符串匹配(假设没有太多的标记变体)。