====== Spam filtr ====== Úloha bude představena na přednášce přibližně ve 4. týdnu. Filtrování spamu je velmi praktická úloha s velkým reálným dopadem. Současně je to představitel jisté třídy problémů, s nimiž se setkáváme ve strojovém učení, a lze na ní ukázat jejich typické rysy. * [[.uvod|Úvod do problému filtrování spamu]]. * [[.hodnoceni|Hodnocené části úlohy a jejich bodování]]. * [[..program_po_tydnech:start|Doporučený program prací na úloze]]. Viz týdny 4 až 8. ===== Co nám přinese úloha "Spam filtr"? ===== * Ukážeme si základní principy, na nichž jsou postaveny spam filtry. * Dozvíme se (velmi neformálně), co je to //data mining//. * Ukážeme si, jak lze Python využít na strojové zpracování textů. * Procvičíme si Python na další úloze. Některá z uvedených témat budou jen zlehka naťuknuta, ovšem se studenty, kteří se budou cítit nevytížení, lze domluvit individuální přístup. ===== Cíle ===== Na úloze chceme ukázat následující: - Pro řešení některých problémů je schopnost učení (adaptace) zcela zásadní. - Automatické učení obsahuje jistá úskalí, na která je třeba dát si pozor. - Existuje celá řada úloh, u nichž je poměrně obtížné posoudit kvalitu řešení. ===== Formulace úlohy ===== Vaším prvořadým úkolem v této úloze nebude vytvoření kvalitního spam filtru, jak by se mohlo zdát. Metody, které by vám v tom mohly pomoci, ještě neznáte a dozvíte se o nich v dalším průběhu studia. Vaším úkolem bude především * pochopit, oč v této úloze jde, úlohu analyzovat a dekomponovat, * vytvořit si sadu funkcí či objektů v jazyce Python, které by vám umožňovaly snadno použít spam filtr (až nějaký budete mít) a vyhodnotit jeho kvalitu, příp. porovnat dva a více spam filtrů, a * vytvořit jednoduchý (třeba i velmi primitivní) spam filtr, který bude možno použít v rámci vytvořeného "frameworku". ===== Data ===== K dispozici máte {{courses:a4b99rph:cviceni:files:spam-data-12-s75-h25.zip|2 sady dat}} pocházející ze stejného zdroje. Upozorňujeme, že závěrečné hodnocení vašeho spam filtru bude probíhat na jiné sadě dat - váš spam filtr by měl více méně fungovat i na tato nová data.