我当前的自定义 NER 模型在召回方面很好,但我想专注于提高精度,是否可以更改配置文件中的优化器指标?
如何使 spacy 3.0 自定义 NER 模型训练以优化精度而不是召回?
数据挖掘
斯派西
2021-10-11 05:08:55
2个回答
我不知道 Spacy 自定义 NER,但该模型不太可能针对召回进行优化,否则它将绝对将所有内容标记为实体以达到完美召回。
您的模型恰好具有良好的召回率,但这并不意味着算法为此进行了优化。可能有一些技术参数,但性能很可能主要取决于训练数据。如果你获得了很好的召回率但很差的精度,这可能是因为训练数据包含的实体比例高于测试数据。如果是这种情况,提高精度的方法是提供更多的反例,例如没有任何实体的句子。这应该会提高精度,因为模型会更加注意否定词,但它也可能会降低召回率。
您可以通过修改配置文件来更改模型加权精度/召回/f1 的方式。
[training.score_weights]
ents_per_type = null
ents_f = 1.0
ents_p = 0.0
ents_r = 0.0
这为 f1 赋予了全部权重,但您可以将其更改为具有ents_p = 0.75and ents_r = 0.25。
(同样的问题出现在spaCy 讨论中)