Skip to content

Commit 26bf642

Browse files
authored
Fix issue #7019: Handle None scores in evaluate printer (#7026)
1 parent 6b9026a commit 26bf642

2 files changed

Lines changed: 23 additions & 5 deletions

File tree

spacy/cli/evaluate.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -175,10 +175,13 @@ def render_parses(
175175
def print_prf_per_type(
176176
msg: Printer, scores: Dict[str, Dict[str, float]], name: str, type: str
177177
) -> None:
178-
data = [
179-
(k, f"{v['p']*100:.2f}", f"{v['r']*100:.2f}", f"{v['f']*100:.2f}")
180-
for k, v in scores.items()
181-
]
178+
data = []
179+
for key, value in scores.items():
180+
row = [key]
181+
for k in ("p", "r", "f"):
182+
v = value[k]
183+
row.append(f"{v * 100:.2f}" if isinstance(v, (int, float)) else v)
184+
data.append(row)
182185
msg.table(
183186
data,
184187
header=("", "P", "R", "F"),
@@ -191,7 +194,10 @@ def print_textcats_auc_per_cat(
191194
msg: Printer, scores: Dict[str, Dict[str, float]]
192195
) -> None:
193196
msg.table(
194-
[(k, f"{v:.2f}") for k, v in scores.items()],
197+
[
198+
(k, f"{v:.2f}" if isinstance(v, (float, int)) else v)
199+
for k, v in scores.items()
200+
],
195201
header=("", "ROC AUC"),
196202
aligns=("l", "r"),
197203
title="Textcat ROC AUC (per label)",
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from spacy.cli.evaluate import print_textcats_auc_per_cat, print_prf_per_type
2+
from wasabi import msg
3+
4+
5+
def test_issue7019():
6+
scores = {"LABEL_A": 0.39829102, "LABEL_B": 0.938298329382, "LABEL_C": None}
7+
print_textcats_auc_per_cat(msg, scores)
8+
scores = {
9+
"LABEL_A": {"p": 0.3420302, "r": 0.3929020, "f": 0.49823928932},
10+
"LABEL_B": {"p": None, "r": None, "f": None},
11+
}
12+
print_prf_per_type(msg, scores, name="foo", type="bar")

0 commit comments

Comments
 (0)