Warning
This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

Spam II

  • Dotazy a odpovědi
  • Testík
  • Diskuse DÚ: confusion matrix, funkce kvality
  • Interaktivní programování: BinaryConfusionMatrix metodou TDD
  • Diskuse: jak dokončit krok 3 spam filtru? Co se bude odevzdávat?
  • Hádanka
  • Diskuse DÚ: jednoduché filtry

Dotazy a odpovědi

Programovací testík

Zadání na interních stránkách.

Diskuse

  • Jak hodnotit kvalitu filtru? Co jsou to TP, FP, TN, FN?
  • Definice funkce kvality

TDD: BinaryConfusionMatrix

Příprava:

  • Projděte si specifikace třídy BinaryConfusionMatrix.
  • Jaké testy (scénáře použití) dokážete pro danou třídu vymyslet?

Krok 0

0. Vytvoření kostry

Krok 1

1. Po vytvoření třídy jsou čítače vynulovány

Krok 2

2. Metoda update() správně upraví čítač TP

Krok 3

3. Ruční refactoring opakujícího se kódu

Krok 4

4. Metoda update() správně upraví čítač TN

Krok 5

5. Metoda update() správně upraví čítač FP

Krok 6

6. Metoda update() správně upraví čítače FN

Krok 7

7. Co má metoda update dělat při chybném vstupu?

Krok 8

8. Refactoring s pomocí IDE

Krok 9

9. Metoda compute_from_dicts() správně updatuje čítače

Krok 10

10. Diskuse: další testy?

Hádanka

Programovací trik

Volání funkce s argumenty připravenými v seznamu nebo slovníku

Diskuse: jednoduché filtry

Pokud jste tak ještě neučinili, přečtěte si specifikace kroku 4 úlohy Spam filtr:

  • Jaké metody filtr musí mít?
  • Musejí být implementovány všechny?
  • Jak tedy bude implementace jednoduchých filtrů přibližně vypadat?

Kontrola DÚ z minulého cvičení

  • Zkontrolovat, zda funkce read_classification_from_file() a třída Corpus procházejí unit testem.
  • Pokud ne, probrat výstup z unit testu a nasměrovat na správnou cestu!

Programovací úloha

  • Dokončete krok 3 úlohy spam filtr, tedy funkci pro výpočet kvality filtru. Od neděle za týden budete modul quality společně s dalšími potřebnými moduly odevzdávat do upload systému!
  • Můžete začít pracovat na kroku 4 úlohy spam filtr, tj. implementujte 3 jednoduché filtry.

Domácí úkol

Programování

V příštích dnech je termín odevzdání 1. části úlohy Spam filtr! Postupujte podle specifikací. Termín najdete v odevzdávacím systému.

  • Vyzkoušejte si/proveďte/dokončete programování třídy BinaryConfusionMatrix podle výše uvedeného návodu. Snažte se přitom pochopit nejen co děláte, ale i proč to děláte.
  • Pokud jste nestihli na cvičení, dokončete krok 3 úlohy spam filtr, tedy funkci pro výpočet kvality filtru.
  • Dokončete krok 4 úlohy spam filtr, implementujte 3 jednoduché filtry:
    • Zkuste je aplikovat na nějaký korpus.
    • Použijte funkci z kroku 3 na odhad kvality filtru.
    • Jaké hodnoty kvality jste dostali pro naše 3 jednoduché filtry???

Příprava

Přečtete si něco o dědičnosti:

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

2018/07/17 13:25

Příprava na krok 5 úlohy spam filtr:

  • Rozmyslete si, co by měla třída vašeho trénovacího korpusu (TrainingCorpus) umět, aby vám usnadnila učení filtru. T.j. co musí umět navíc vzhledem k třídě Corpus.
2018/07/17 13:25
courses/b4b33rph/cviceni/program_po_tydnech/tyden_09.txt · Last modified: 2021/12/08 18:16 by xposik