我有3000个手动标记的数据集,分为训练集和测试集,我已经使用SpaCy训练了NER模型,提取了8个自定义实体,例如“ ACTION”,HIRE-DATE,STATUS等。正在使用SpaCy Scorer。
输出中没有准确性指标,我不确定应该考虑使用哪个指标来确定模型性能是好还是坏?
在某些情况下,精度较低,但召回率是100,f1也较低,例如:
'LOCATION': {'p': 7.142857142857142, 'r': 100.0, 'f': 13.333333333333334},
在上述情况下,我们的结论应该是什么?
以下是记分器的全部结果,其中p =精度,r =召回率,f = F1得分...。它具有整体表现和实体明智的表现。
{
'uas': 0.0,
'las': 0.0,
'ents_p': 86.40850417615793,
'ents_r': 97.93459552495698,
'ents_f': 91.81121419927389,
'ents_per_type': {'ACTION': {'p': 97.17682020802377,
'r': 97.61194029850746,
'f': 97.3938942665674},
'STATUS': {'p': 83.33333333333334,
'r': 96.3855421686747,
'f': 89.3854748603352},
'PED': {'p': 98.61751152073732,
'r': 99.53488372093024,
'f': 99.07407407407408},
'TERM-DATE': {'p': 83.52272727272727,
'r': 98.65771812080537,
'f': 90.46153846153847},
'LOCATION': {'p': 7.142857142857142, 'r': 100.0, 'f': 13.333333333333334},
'DOB': {'p': 10.0, 'r': 100.0, 'f': 18.181818181818183},
'RE-HIRE-DATE': {'p': 34.84848484848485,
'r': 100.0,
'f': 51.685393258426956},
'HIRE-DATE': {'p': 18.96551724137931, 'r': 100.0, 'f': 31.88405797101449},
'PED-CED': {'p': 100.0, 'r': 71.42857142857143, 'f': 83.33333333333333},
'CED': {'p': 100.0, 'r': 100.0, 'f': 100.0}},
'tags_acc': 0.0,
'token_acc': 100.0}
请提出建议。
答案 0 :(得分:0)
这取决于您的应用程序。更糟糕的是:缺少实体,还是错误地将某物标记为实体?如果无法标记实体(假阴性)很不好,那么您可以召回。如果错误地将一个非实体标记为一个实体(假阳性)是不好的,那么您就在乎精度。如果您同时关心精度和精度,请使用F_1。如果您关心精度(误报)是召回率(误报)的两倍,请使用F_0.5。您可以对任何b进行F_b表达您所关心的事情。 Wikipedia page for F Score
上显示并说明了该公式编辑:回答原始帖子中的直接问题:
系统在LOCATION和3个日期实体上表现不佳。其他看起来不错。如果是我,我将尝试使用NER将所有日期提取为一个实体,然后尝试构建一个单独的系统,基于规则或分类器,以区分不同类型的日期。对于位置,您可以使用仅关注地理解析的系统,例如Mordecai。