Table of Contents

Spam filter: Specifikace

Na této stránce jsou popsány požadavky, jimž musíte vyhovět! Jejich nedodržení by mohlo vést k tomu, že vaše řešení úlohy nebude uznáno jako platné!

  • Spam filtr musí fungovat v Pythonu 3.5.x (2018-12-11 upraveno na Python 3.6.x), který bude nainstalován na strojích pro automatické hodnocení! Jinak se může stát, že vaše kódy nebudou fungovat správně!
  • Je dán předepsaný formát dat a metadat, která budete buď číst nebo vytvářet. Když jej nedodržíte, váš filtr nebude rozumět datům, která mu budeme předkládat při testování, nebo my nebudeme rozumět výstupům, které váš filtr vytvoří.
  • Úloha má definovány 2 kontrolní body, jejichž požadavky jsou detailně popsány níže:
    1. Specifikace pro sp_eval.
    2. Specifikace pro sp_filt.

xx_sp_eval

Účelem prvního kontrolního bodu je zajistit, že všichni máte k dispozici funkci, který správně ohodnotí kvalitu filtru. Předmětem testování v této fázi bude pouze funkce compute_quality_for_corpus() (a kód, který tato funkce využívá), jejíž detailnější specifikaci najdete v kroku 3.

Míra kvality filtru

“Kvalita filtru”, podle níž budou přidělovány body, se bude počítat podle následujícího vzorce:

<latex>

$$q = \frac{TP + TN}{TP + TN + 10 \cdot FP + FN}$$

</latex>

Pozitivní případy (P) zde odpovídají mailům, které filtr označil jako spam, negativní (N) pak těm, které filtr označil jako korektní emaily. FP tedy označuje počet korektních emailů označených jako spam, FN označuje počet spamů označených jako korektní email. Zdůrazňujeme, že hodnoty TP, FP, TN, FN ve výše uvedeném vzorci představují počty případů, nikoli procenta.

Co odevzdat?

xx_sp_filt

Cílem druhého kontrolního bodu je otestovat a ohodnotit vámi vytvořený filtr. Předmětem testování bude třída MyFilter, jejíž detailnější specifikace najdete v kroku 6.

Časové požadavky

Velikost uploadu

Filtr nesmí

Co odevzdat?