0

我正在尝试NerCrfApproach使用 CoNLL 格式的数据集训练 SparkNLP 模型,该数据集具有产品实体的自定义标签(如 I-Prod、B-Prod 等)。但是,当使用经过训练的模型进行预测时,我只得到“O”作为所有标记的分配标签。当使用在 SparkNLP 研讨会示例中的 CoNLL 数据上训练的相同模型时,分类效果很好。(参见https://github.com/JohnSnowLabs/spark-nlp-workshop/tree/master/jupyter/training/english/crf-ner

所以,问题是:是否NerCrfApproach依赖于 CoNLL 数据使用的 NER 标签的标准标签集?或者我可以将它用于任何自定义标签,如果可以,我是否需要以某种方式指定这些标签?我的假设是标签是从训练数据中推断出来的。

干杯,马丁

更新:这个问题毕竟可能与标签无关。我尝试用 CoNLL 标准标签替换我的自定义标签,但仍然没有得到预期的分类结果。

4

1 回答 1

0

事实证明,这个问题不是由标签引起的,而是由数据集的大小引起的。我出于开发目的使用了一个相当小的数据集。这个数据集不仅非常小,而且严重不平衡,“O”标签比其他标签多得多。通过使用 10 倍于原始大小的数据集(就句子而言)来解决这个问题,我能够获得有意义的结果,即使对于我的自定义标签也是如此。

于 2021-10-14T06:26:29.830 回答