在简历 (NER) 中标记自定义实体

Posted

技术标签:

【中文标题】在简历 (NER) 中标记自定义实体【英文标题】:Label custom entities in Resume (NER) 【发布时间】:2020-06-08 23:51:53 【问题描述】:

如何为自定义命名实体执行 NER。例如如果我想确定特定单词是否是简历中的技能。如果(Java,c++)出现在我的文本中,我应该能够将它们标记为技能。我不想将 spacy 与自定义语料库一起使用。我想创建数据集,例如 单词将是我的特征,标签(技能)将是我的因变量。

处理这些问题的最佳方法是什么。

【问题讨论】:

【参考方案1】:

自定义词典和公报的替代方法是创建一个数据集,您可以在其中为每个单词分配相应的标签。您可以定义一组标签(例如 OTHER, SKILL)并使用以下示例创建数据集:

I        OTHER
can      OTHER
program  OTHER
in       OTHER
Python   SKILL
.        OTHER 

使用足够大的数据集,您可以训练模型来预测相应的标签。

您可以尝试从在您的 CV 语料库上训练的词嵌入中获取“编码语言”同义词列表(或您正在寻找的特定技能),并使用此信息自动标记其他语料库。我想说,关键是要找到一种至少部分自动化标签的方法,否则你将没有足够的例子来训练你的自定义 NER 任务的模型。使用像 https://prodi.gy/ 这样的工具来减少标记工作。

作为功能,您还可以使用词嵌入(或其他典型的 NLP 功能,如 n-gram、POS 标签等,具体取决于您使用的模型)

另一种选择是应用来自其他 NER/NLP 模型的迁移学习,并在您的 CV 标记数据集上对其进行微调。

我会更加努力地创建正确的数据集,然后逐步测试更复杂的模型,选择最适合您需求的模型。

【讨论】:

感谢您的回复。有道理

以上是关于在简历 (NER) 中标记自定义实体的主要内容,如果未能解决你的问题,请参考以下文章

将自定义 NER 模型添加到 spaCy 管道

spaCy 2.0:保存并加载自定义NER模型

使用 spaCy 3 进行自定义 NER 训练会引发 ValueError

使用自定义数据集训练 SpaCy NER

带有自定义数据的 Huggingface NER

在 LinqToSql 中,如何对实体的自定义属性启用更改跟踪?