Search
yield
read_classification_from_file()
encoding
open(filename, mode, encoding='utf-8')
Používáte-li k vývoji v Pythonu prostředí PyCharm, doporučujeme vám vytvořit si pro řešení úlohy projekt. PyCharm tak bude schopen lépe analyzovat váš kód a udržovat stav vaší práce mezi jednotlivými sezeními. Při vytváření projektu dejte pozor, abyste vybrali správnou verzi interpreteru! Na cvičeních používáme Python 3 (ideálně 3.4, ale může být i 3.2). Tutoriály k vytváření projektů v PyCharm na stránkách JetBrains: Vytváření projektů od nuly Vytvoření projektu z existujících zdrojových kódů Stručný postup: Udělejte jednu z následujících věcí: Na uvítací obrazovce v sekci Quick start vyberte možnost Create new project. V nabídce File zvolte položku New project. V dialogu, který se objevil, vyplňte název projektu (Project name), např. “spam”, adresář (Location), kde projekt chcete mít, např. “/skola/rph”, typ projektu (Project type) nastavte na Empty project a uveďte cestu k vašemu interpretu Pythonu (Interpreter), pokud ji tam nemáte již vyplněnou. Dejte pozor na správnou verzi! Klikněte na OK, v následujícím okně vyberte, zda chcete projekt otevřít ve stávajícím nebo v novém okně a opět klikněte na OK. Tím by se měl vytvořit adresář projektu (v našem případě např. /skola/rph/spam a uvnitř něj další (skrytý) adresář .idea, kam si PyCharm ukládá různá nastavení (ale s tímto adresářem byste prakticky neměli přijít do styku). Soubory do projektu můžete vložit v zásadě dvěma způsoby: Vytvoříte nový soubor uvnitř projektu, např. pomocí menu File > New …, nebo volbou položky New z kontextového menu po kliknutí pravým tlačítkem na název projektu v nástroji Project. Existující soubory prostě nahrajete do adresáře projektu. Stáhněte si testy ke kroku 1 a testy ke kroku 2 a rozbalte je do adresáře projektu (přidejte je do projektu). Měli byste soubory s testy vidět v okně nástroje Project. 2014/10/22 09:43 · xposik
Používáte-li k vývoji v Pythonu prostředí PyCharm, doporučujeme vám vytvořit si pro řešení úlohy projekt. PyCharm tak bude schopen lépe analyzovat váš kód a udržovat stav vaší práce mezi jednotlivými sezeními.
Při vytváření projektu dejte pozor, abyste vybrali správnou verzi interpreteru! Na cvičeních používáme Python 3 (ideálně 3.4, ale může být i 3.2).
Tutoriály k vytváření projektů v PyCharm na stránkách JetBrains:
Stručný postup:
/skola/rph/spam
.idea
Existuje celá řada možností, jak skript/program spustit. Každá se hodí na něco jiného, má své výhody a nevýhody. Spouštění v Python shellu Spustí skript, jako byste jej řádek po řádku napsali do konzole Pythonu: Otevřete skript v editoru. Označte celý text (CTRL-A). Klikněte pravým tlačítkem na výběr a z kontextové nabídky vyberte Execute Selection in Console (Alt-Shift-E). Je samozřejmě možné postup provést jen pro část skriptu. Konfigurace pro běh a ladění Run/Debug Configurations: Skripty/programy/aplikace se v PyCharmu obvykle spouštějí pomocí nástroje Run, který lze vyvolat na mnoha místech PyCharmu. Nejdřív si ale pojďme říct, co vlastně znamená “spustit skript/program/aplikaci”. Zdrojové kódy vašeho projektu (ať už je to jediný soubor nebo tisíce souborů v mnoha adresářích) se dají “použít” v mnoha “módech”. Typický jednoduchý skript v Pythonu bude obsahovat kód, dokumentaci ve formě komentářů a třeba doctesty (opět uvnitř komentářů). S takovým skriptem můžete chtít dělat různé věci: spustit ho (třeba s různými argumenty), spustit nástroj, který z dokumentace uvnitř komentářů vytvoří HTML nebo PDF dokumentaci, spustit doctesty, které se nacházejí uvnitř komentářů, … Pro každý takový “mód použití” vašeho projektu je třeba v PyCharmu nadefinovat vlastní konfiguraci pro běh a ladění (Run/Debug configuration), viz odkazy v rámečku níže. Tutoriály k spouštění/ladění skriptů v PyCharm na stránkách JetBrains: Vytváření a úpravy konfigurací pro běh a ladění Vytváření a ukládání //dočasných// konfigurací pro běh a ladění PyCharm se pro každý skript/soubor snaží odhadnout výchozí konfiguraci (která může a nemusí být tím, co se souborem skutečně chcete dělat). Pokud se PyCharmu jeho odhad nepovede, musíte konfiguraci změnit ručně, viz návody v rámečku. Všechny dostupné konfigurace (výchozí i ručně specifikované) najdete v drop-down boxu v nástrojové liště (vedle zeleného tlačítka Run). Spouštění pomocí nástroje Run Skript spustí v nové instanci Pythonu: Možnost 1: V drop-down boxu vyberte příslušnou konfiguraci (budete-li ji používat opakovaně, tento krok znovu samozřejmě provádět nemusíte). Stiskněte zelené tlačítko Run (nebo použijte klávesovou zkratku Shift-F10). Možnost 2: V menu Run zvolte položku Run… (Alt-Shift-F10). V následném okně vyberte konfiguraci, kterou chcete spustit. 2014/10/22 09:43 · xposik
Existuje celá řada možností, jak skript/program spustit. Každá se hodí na něco jiného, má své výhody a nevýhody.
Spustí skript, jako byste jej řádek po řádku napsali do konzole Pythonu:
Je samozřejmě možné postup provést jen pro část skriptu.
Run/Debug Configurations:
Skripty/programy/aplikace se v PyCharmu obvykle spouštějí pomocí nástroje Run, který lze vyvolat na mnoha místech PyCharmu. Nejdřív si ale pojďme říct, co vlastně znamená “spustit skript/program/aplikaci”.
Zdrojové kódy vašeho projektu (ať už je to jediný soubor nebo tisíce souborů v mnoha adresářích) se dají “použít” v mnoha “módech”. Typický jednoduchý skript v Pythonu bude obsahovat kód, dokumentaci ve formě komentářů a třeba doctesty (opět uvnitř komentářů). S takovým skriptem můžete chtít dělat různé věci:
Pro každý takový “mód použití” vašeho projektu je třeba v PyCharmu nadefinovat vlastní konfiguraci pro běh a ladění (Run/Debug configuration), viz odkazy v rámečku níže.
Tutoriály k spouštění/ladění skriptů v PyCharm na stránkách JetBrains:
PyCharm se pro každý skript/soubor snaží odhadnout výchozí konfiguraci (která může a nemusí být tím, co se souborem skutečně chcete dělat). Pokud se PyCharmu jeho odhad nepovede, musíte konfiguraci změnit ručně, viz návody v rámečku. Všechny dostupné konfigurace (výchozí i ručně specifikované) najdete v drop-down boxu v nástrojové liště (vedle zeleného tlačítka Run).
Skript spustí v nové instanci Pythonu:
Možnost 1:
Možnost 2:
Opět existuje několik způsobů, jak testy spustit. Vyberte si ten, který vám nejvíc vyhovuje. Spuštění testů z jednoho modulu v Python shellu Spustí testy v jednom modulu: Pokud chcete modul testovat tímto způsobem, je třeba mít přímo v kódu modulu zajištěno vykonání testů, tedy např: if __name__=="__main__": import doctest doctest.testmod() v případě doctestů, nebo if __name__=="__main__": import unittest unittest.main() v případě použití modulu unittest. Postupujte jako v případě spuštění normálního skriptu, viz předchozí sekce (označte celý kód a nechte jej ohodnotit v Python konzoli). Spuštění testů jednoho modulu v nástroji Test Spustí testy v jednom modulu. Otevřete modul s testy v editoru. PyCharm pravděpodobně správně odhalí, že soubor obsahuje unittesty a vytvoří výchozí konfiguraci. Proveďte jednu z následujících akci: Klikněte pravým tlačítkem na název souboru v okně Project. Z kontextové nabídky vyberte možnost Run 'Unittests in …' V drop-down menu v nástrojové liště vyberte Unittests in … a klikněte na zelené tlačítko Run. Z menu Run vyberte položku Run … a vyberte konfiguraci Unittest in … Výsledky testů byste měli vidět v přehledné stromové struktuře v okně nástroje Run. Pokud PyCharm z nějakého důvodu nenabízí výchozí konfiguraci Unittests in …, můžete si ji ručně nadefinovat, viz postup níže. Spuštění všech testů v adresáři (projektu) najednou v nástroji Test Spustí všechny testy. Pro tuto možnost je nutné nadefinovat si vlastní konfiguraci pro běh a ladění. V menu Run vyberte položku Edit Configurations …. V otevřeném dialogovém okně Run/Debug configurations klikněte na tlačítko zelené plus. V nabídce, která se objeví, vyberte Python tests > Unittests. Vytvoří se prázdná konfigurace, kterou je třeba vyplnit v pravé části dialogu. Vložte jméno konfigurace do políčka Name, např. “All tests”. Na záložce Configuration, ve skupině Unittests, vyberte pro položku Tests možnost All in folder. Do položky Folder vložte cestu k vašim souborům s testy, tedy např. “/skola/rph/spam”. Ostatní nastavení by nemělo být třeba měnit. Po kliknutí na OK by měla být konfigurace dokončena a připravena k použití. Spusťte konfiguraci. V okně s výsledky byste měli vidět, že se spustily testy ze všech souborů “test_*.py”. 2014/10/22 09:43 · xposik
Opět existuje několik způsobů, jak testy spustit. Vyberte si ten, který vám nejvíc vyhovuje.
Spustí testy v jednom modulu:
Pokud chcete modul testovat tímto způsobem, je třeba mít přímo v kódu modulu zajištěno vykonání testů, tedy např:
if __name__=="__main__": import doctest doctest.testmod()
if __name__=="__main__": import unittest unittest.main()
unittest
Spustí testy v jednom modulu.
Pokud PyCharm z nějakého důvodu nenabízí výchozí konfiguraci Unittests in …, můžete si ji ručně nadefinovat, viz postup níže.
Spustí všechny testy.
Pro tuto možnost je nutné nadefinovat si vlastní konfiguraci pro běh a ladění.
http://docs.python.org/py3k/library/unittest.html
Stáhněte si testy ke kroku 1 úlohy Spam filtr. Archiv rozbalte do adresáře, kde vyvíjíte spam filter.
Zopakujte (podle potřeby) výše uvedené i pro testy ke kroku 2.
return
next
for
Corpus
emails()
Pokud se vám to nepodařilo už na cvičení, dokončete:
Příprava na krok 3 úlohy spam filtr:
Prostudujte si: V článku Binary Classification najděte a pochopte význam zkratek TP, FP, TN, FN. Na kus papíru napište: co podle vás tyto zkratky znamenají pro problém filtrování spamu co budeme potřebovat, abychom tyto statistiky mohli napočítat 2010/09/14 15:03
Prostudujte si:
Na kus papíru napište:
Příprava na krok 4 úlohy spam filtr:
Rozmyslete si a načrtněte na kus papíru: Jakým způsobem se spam filtr vlastně používá? Jaký je z hlediska implementace rozdíl mezi učicím se filtrem a filtrem, který se učit neumí? Existuje nějaká část, kterou budou mít všechny spam filtry společnou? Je lepší realizovat spam filtr jako funkci nebo jako objekt s vlastnostmi a metodami? Jaké jsou minimální požadavky na tuto realizaci? Co všechno by měla umět? Jaké musí mít vstupy a co musí být jejím výstupem? 2010/09/14 15:04
Rozmyslete si a načrtněte na kus papíru: