====== Formát dat ====== V této úloze se pracuje s množinou (množinami) emailových zpráv, které mohou být opatřeny meta-informací. Takové množině se často říká [[wp>Text_corpus|korpus]]. Meta-informacemi budou v našem případě údaje o tom, zda jeden každý email skutečně je nebo není spamem, a o tom, zda spam filtr odhadl, že jeden každý email je spamem. Máte k dispozici {{:courses:b4b33rph:cviceni:spam:spam-data-12-s75-h25.zip|2 sady dat}} pocházející ze stejného zdroje. Domluvme se následovně: emailový korpus pro nás bude představovat * adresář, v němž budeme všechny soubory považovat za emaily, až na * soubor **''!truth.txt''**, který bude obsahovat na každém řádku jméno souboru a informaci o tom, zda email uložený v daném souboru je či není spam, a * soubor **''!prediction.txt''**, který bude obsahovat na každém řádku jméno souboru a informaci o tom, zda email uložený v daném souboru je spam filtrem považován za spam nebo ne. (Tento soubor samozřejmě v datech, které od nás dostáváte, nenajdete - tento soubor bude vytvářet váš spam filtr.) Tyto dva soubory v adresáři být mohou, ale také nemusí: - Spam filtr sám při **klasifikaci emailů** žádný z těchto souborů nepotřebuje. Bude ale muset umět vytvořit soubor ''!prediction.txt'', který bude obsahovat jeho odhady. - Při **vytváření (učení) spam filtru** budete potřebovat tzv. //trénovací korpus//, tj. adresář, v němž je soubor ''!truth.txt''. Jinak byste nevěděli, které emaily jsou spam a které ne. - Budeme-li chtít **vyhodnotit kvalitu spam filtru**, budeme potřebovat oba soubory - ''!truth.txt'' i ''!prediction.txt''. Porovnáním údajů v těchto dvou souborech zjistíme, jak moc se předpovědi filtru shodují se skutečností. (Vlastní emaily zde vlastně ani nebudeme potřebovat). ===== Obsah souborů s emaily ===== S obsahem souborů lze pracovat jako s prostým textem, aniž byste předpokládali, že soubory mají nějakou vnitřní strukturu. Pokud ale chcete jejich strukturu využít (což samozřejmě můžete), vězte, že tyto soubory měly odpovídat normě [[https://tools.ietf.org/html/rfc5322|RFC5322]] (příp. [[http://tools.ietf.org/html/rfc2822.html|RFC2822]]). V ní se v článku [[https://tools.ietf.org/html/rfc5322#section-3.6|3.6]] píše: The only required header fields are the origination date field and the originator address field(s). All other header fields are syntactically optional. **Nespoléhejte tedy na to, že všechny emaily budou mít subjekt, nebo další pole!!!** V tomtéž dokumentu se také dočtete: It is important to note that the header fields are not guaranteed to be in a particular order. They may appear in any order, ...