====== 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, ...