Search
Vytvořte sadu tříd a funkcí potřebných k posouzení kvality filtru.
Testy ke kroku 3:
Prostudujte si:
Na kus papíru napište:
Úkol:
confmat.py
BinaryConfusionMatrix
pos_tag
neg_tag
pos_tag=“SPAM”
neg_tag=“OK”
as_dict()
tp, tn, fp, fn
update(truth, prediction)
truth
prediction
ValueError
compute_from_dicts(truth_dict, pred_dict)
K čemu nám to bude:
>>> cm1 = BinaryConfusionMatrix(pos_tag=True, neg_tag=False) >>> cm1.as_dict() {'tp': 0, 'tn': 0, 'fp': 0, 'fn': 0} >>> cm1.update(True, True) >>> cm1.as_dict() {'tp': 1, 'tn': 0, 'fp': 0, 'fn': 0}
>>> truth_dict = {'em1': 'SPAM', 'em2': 'SPAM', 'em3': 'OK', 'em4':'OK'} >>> pred_dict = {'em1': 'SPAM', 'em2': 'OK', 'em3': 'OK', 'em4':'SPAM'} >>> cm2 = BinaryConfusionMatrix(pos_tag='SPAM', neg_tag='OK') >>> cm2.compute_from_dicts(truth_dict, pred_dict) >>> cm2.as_dict() {'tp': 1, 'tn': 1, 'fp': 1, 'fn': 1}
Třída tedy bude mit alespoň 3 veřejné metody: as_dict(), update() a compute_from_dicts().
update()
compute_from_dicts()
pred
Pozn.: Můžete očekávat, že slovníky budou mít stejnou množinu klíčů. Rozmyslete si ale, jak byste chtěli, aby se metoda chovala v případě, že bychom jí předali slovníky s různými množinami klíčů.
quality_score(tp, tn, fp, fn)
quality.py
Náseldující specifikace pro funkci compute_quality_for_corpus() jsou povinné a musíte jim vyhovět!
compute_quality_for_corpus()
compute_quality_for_corpus(corpus_dir)
!truth.txt
!prediction.txt
read_classification_from_file()
quality_score()