Table of Contents

Spam filter - krok 3

Vytvořte sadu tříd a funkcí potřebných k posouzení kvality filtru.

Testy ke kroku 3:

Příprava

Prostudujte si:

Na kus papíru napište:

Matice záměn

Úkol:

K čemu nám to bude:

Třída tedy bude mit alespoň 3 veřejné metody: as_dict(), update() a compute_from_dicts().

as_dict() Vrátí matici záměn ve formě slovníku.
Vstup: Nic.
Výstup: Slovník obsahující klíče tp, tn, fp, fn a jejich hodnoty.
Efekty: Nic.
update(truth, pred) Zvyš hodnotu jednoho ze 4 čítačů podle hodnot truth a pred.
Vstup: Skutečná a predikovaná třída.
Výstup: Nic.
Efekty: Zvýšení hodnoty jednoho z čítačů TP, TN, FP, FN, nebo výjimka ValueError.
compute_from_dicts(truth_dict, pred_dict) Napočítej celou matici záměn na základě hodnot uložených ve slovnících.
Vstup: Slovníky obsahující skutečné a predikované třídy pro množinu objektů (emailů).
Výstup: Nic.
Efekty: Prvky matice se nastaví na počty pozorovaných TP, TN, FP, FN.

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íčů.

Funkce ''quality_score()''

Úkol:

quality_score(tp, tn, fp, fn) Vypočti skóre kvality pro danou matici záměn.
Vstupy Čtveřice hodnot TP, TN, FP, FN.
Výstupy Číslo mezi 0 a 1 udávající naši míru kvality predikce.

Funkce ''compute_quality_for_corpus()''

Náseldující specifikace pro funkci compute_quality_for_corpus() jsou povinné a musíte jim vyhovět!

Úkol:

K čemu nám to bude:

compute_quality_for_corpus(corpus_dir) Vypočti kvalitu predikcí v korpusu.
Vstupy Adresář ohodnoceného korpusu (obsahující soubory !truth.txt a !prediction.txt).
Výstupy Číslo mezi 0 a 1 udávající naši míru kvality predikce.