Table of Contents

Spam filter - krok 4

Vytvořte 3 jednoduché neadaptivní filtry, paranoidní, naivní a náhodný, a u každého z nich určete, jak kvalitní predikce poskytuje.

Testy ke kroku 4:

Příprava

Rozmyslete si a načrtněte na kus papíru:

Příprava: Dědičnost

Prostudujte si, jak v OOP funguje a jak se v Pythonu realizuje dědičnost. Informace najdete např.

Jednoduché filtry

Úkoly:

K čemu nám to bude:

Specifikace

Abychom umožnili pozdější automatické testování vašeho finálního filtru, budeme vyžadovat, aby se třída vašeho filtru jmenovala MyFilter a byla umístěna v modulu filter.py. V tomto kroku ale máte vytvořit 3 třídy pojmenované NaiveFilter, ParanoidFilter a RandomFilter umístěné v modulu simplefilters.py.

Filtr pro nás bude představován třídou, která bude mít minimálně dvě metody: train() a test(). Filtry, které se nebudou učit z dat, budou mít metodu train() prázdnou. Další struktura třídy je libovolná.

Metoda train():

Vstupy Cesta k adresáři s ohodnocenými emaily, tj. adresář musí obsahovat soubor !truth.txt. (Pro jednoduché filtry je to jedno.)
Výstupy Nic.
Efekty Vytvoření a nastavení vnitřních datových struktur třídy, aby byly později využitelné metodou test().

Metoda test():

Vstupy Cesta k adresáři s maily. (Adresář nebude obsahovat soubor !truth.txt.)
Výstupy Nic.
Efekty Vytvoří v zadaném adresáři soubor !prediction.txt.

Hodnocení kvality jednoduchých filtrů

Vytvořte jednoduchý skript, který vypočte kvalitu predikcí zvoleného filtru. Skript: