Я хочу оценить свою обученную модель spaCy с помощью встроенной функции Scorer с помощью этого кода:
def evaluate(ner_model, examples):
scorer = Scorer()
for input_, annot in examples:
text = nlp.make_doc(input_)
gold = Example.from_dict(text, annot)
pred_value = ner_model(input_)
scorer.score(gold)
return scorer.scores
examples = [('Brief discussion about instument replcement and Product ...confirmation', {'entities': [(48, 55, 'PRODUCT')]})('Met with special chem lead. Did not yet move assays from immulite to produc. Follow up with PhD tomorrow.', {'entities': [(57, 68, 'PRODUCT'), (45, 51, 'DATE'), (97, 105, 'DATE')]}), ('Discuss new products for ...', {'entities': [(36, 51, 'PRODUCT')]})]
ner_model = spacy.load(r'D:\temp\model') # for spaCy's pretrained use 'en_core_web_sm'
results = evaluate(ner_model, examples)
При запуске функции я получаю следующее сообщение об ошибке:
TypeError: [E978] Метод Tokenizer.score принимает список объектов Example, но получил: <class 'spacy.training.example.Example'>
Я уже пытался вводить аннотации типа {"entities": annot} и некоторые другие их версии. Я проверил Google, но каждая статья, кажется, связана с версией 2.xx spaCy.
Что я делаю не так? Как я могу рассчитать полноту, точность и оценку F1 с помощью spacy Score()?