import spacy
from spacy.gold import GoldParse
from spacy.scorer import Scorer
from spacy.attrs import ENT_IOB, ENT_TYPE
from spacy.tokens import Span
nlp = spacy.load('en_core_web_sm')
def evaluate(ner_model, examples):
scorer = Scorer()
for input_, annot in examples:
doc_gold_text = ner_model.make_doc(input_)
gold = GoldParse(doc_gold_text, entities=annot)
pred_value = ner_model(input_)
scorer.score(pred_value, gold)
return scorer.scores
examples = [
('I like London and Berlin. India',
[(7, 13, 'GPE'), (18, 24, 'LOC')])]
ner_model = spacy.load('en_core_web_sm') 'en_core_web_sm'
results = evaluate(ner_model, examples)
results
Результаты: {'ents_f': 40.0, 'ents_p': 33.33333333333333, 'ents_r': 50.0, 'las': 0.0, 'tags_acc': 0.0, 'token_acc': 100.0, 'uas': 0.0} Почему 'las', 'uas' и 'tags_acc' равны 0 независимо от того, сколько предложений пропущено для оценки. enter code here