Spacy 如何获得用于计算NER模型指标的混淆矩阵?

Spacy 如何获得用于计算NER模型指标的混淆矩阵?,spacy,Spacy,与上一个问题类似 spaCy在写出经过训练的NER模型时,在meta.json文件中提供精度、召回率和F1分数。运行求值命令python-m spacy evaluate时,这些值也可用。但是,是否有可能获得用于计算这些值的TP、FP、FN计数 此外,是否可以输出导致假阳性或假阴性的实际文本/标记?我认为在使用 scorer = nlp.evaluate(testset) TP = scorer.ner.tp FP = scorer.ner.fp FN = scorer.ner.fn 以及在使

与上一个问题类似

spaCy在写出经过训练的NER模型时,在
meta.json
文件中提供精度、召回率和F1分数。运行求值命令
python-m spacy evaluate
时,这些值也可用。但是,是否有可能获得用于计算这些值的TP、FP、FN计数


此外,是否可以输出导致假阳性或假阴性的实际文本/标记?

我认为在使用

scorer = nlp.evaluate(testset)
TP = scorer.ner.tp
FP = scorer.ner.fp
FN = scorer.ner.fn
以及在使用

scorer = nlp.evaluate(testset)
for ent_type, scorer_ent_type in scorer.ner_per_ents.items():
    TP = scorer_ent_type.tp
    FP = scorer_ent_type.fp
    FN = scorer_ent_type.fn
    print('Ent_type:', ent_type, 'TP:', TP, 'FP:', FP, 'FN:', FN)
据我所知,在培训和评估spacy NER模型时,所有实体的分数都是在spacy代码中计算的。每个实体的分数以单位计算。在这两种情况下,都会调用该函数。它更新记分器中的TP、FP和FN。如果在这些行上设置断点并进行调试,则可以查看变量
doc
cand\ents
gold\ents
,并使用

print(doc)
print(cand_ents-gold_ents) #FP
print(gold_ents-cand_ents) #FN
迟交的答案,但我希望它有帮助