Od třídy Corpus
odvoďte třídu TrainingCorpus
, která bude obalovat korpus se známým ohodnocením emailů, tedy korpus, který je možno použít k učení filtru.
Testy ke kroku 5:
Třída TrainingCorpus
není nijak povinná a její implementace není pevně dána. Implementujte jen ty metody, které se vám budou hodit. Dodávané testy kontrolují všechny níže uvedené metody - rozhodnete-li se nějaké z nich neimplementovat, smažte (nebo zakomentujte) příslušné testy ve třídě TrainingCorpusTest
.
TrainingCorpus
) umět, aby vám usnadnila učení filtru. T.j. co musí umět navíc vzhledem k třídě Corpus
.
Úkol:
trainingcorpus.py
vytvořte třídu TrainingCorpus
.
K čemu nám to bude?
TrainingCorpus
bude umožňovat jednodušší tvorbu učicích se filtrů, pokud se nakonec rozhodneme učení implementovat. Bude obalovat adresář s emaily včetně jejich správné klasifikace ze souboru !truth.txt
.
Specifikace tohoto úkolu není pevná, záleží na vás, jaké metody se vám budou hodit. Následující berte jako inspiraci. (Unit testy ale tyto metody testují.)
get_class()
, jejímž vstupem bude název souboru s emailem a výstupem buď kód OK
nebo SPAM
.
is_ham()
a is_spam()
, jejichž vstupem bude opět název souboru s emailem a výstupem pravdivostní hodnoty True
nebo False
.
spams()
a hams()
, které budou generátory a budou fungovat podobně jako metoda emails()
ve třídě Corpus
, tj. budou postupně vracet jména souborů a těla všech spamů, resp. všech hamů jako řetězce.
Záleží jen na vás, zda některé z metod implementujete nebo zda se rozhodnete pro jiný přístup.