带有自定义数据的 Huggingface NER

Posted

技术标签:

【中文标题】带有自定义数据的 Huggingface NER【英文标题】:Huggingface NER with custom data 【发布时间】:2021-09-30 00:36:19 【问题描述】:

我有一个 csv 数据如下。

**token**      **label**
0.45"      length
1-12       size
2.6"       length
8-9-78     size
6mm        length

每当我得到如下文字时

6mm 8-9-78 silver head

我应该可以说length = 6mmsize = 8-9-78。我是 NLP 世界的新手,我正在尝试使用 Huggingface NER 解决这个问题。我浏览了各种文章。我不知道如何使用自己的数据进行训练。我应该使用哪个model/tokeniser?还是我应该自己建造?任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

我可能会先看看 spaCy 的模式匹配 + NER。 spacy 提供的模式匹配规则非常强大,尤其是与它们的统计 NER 模型结合使用时。您甚至可以使用您开发的模式来创建您自己的自定义 NER 模型。这将使您很好地了解您仍然存在差距或复杂性的地方,这些差距或复杂性可能需要其他东西,例如 Huggingface 等。

如果您愿意付费,您还可以利用 prodigy,它提供了一个带有 Human In the Loop 交互的漂亮 UI。

Adding REGEX entities to SpaCy's Matcher

【讨论】:

【参考方案2】:

我有两种选择,一种是Spacy(由@scarpacci 建议),另一种是SparkNLP。我选择了SparkNLP 并找到了解决方案。我将数据格式化为 CoNLL 格式并使用 Spark 的 NerDlApproachGLOVE word embedding 进行训练。

【讨论】:

以上是关于带有自定义数据的 Huggingface NER的主要内容,如果未能解决你的问题,请参考以下文章

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

HuggingFace:使用自定义 data_loader 和 data_collat​​or 从本地目录流式传输数据集

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

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

Huggingface 微调 - 如何在预训练的基础上构建自定义模型

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