Kurz částečně vychází z knížky Natural Language Processing with Python (viz http://www.nltk.org/book/), která je pozvolným, souběžným úvodem do Pythonu i Natural Language Toolkit, určeným pro humanitně zaměřené studenty. Psát programy v jazyce Python (viz https://www.python.org/) lze mnoha různými způsoby, my budeme primárně používat prostředí Jupyter (viz https://try.jupyter.org/), které umožňuje bezprostřední interakci a je tak přívětivé k začátečníkům. Navíc běží v prohlížeči, takže odpadají starosti s instalací. Zkušenějším kolegyním a kolegům ovšem nebude nijak bráněno v tom, aby používali prostředí jiné, jsou-li na ně zvyklí. Hlavní okruhy (zde pro přehlednost tematicky sdružené, ale pořadí v rámci semestru se částečně liší, abychom vyvážili přísun nových informací s praktickým procvičováním):
1. ochutnávka, abychom věděli, k jakému cíli směřujeme · jak vypadají složitější programy v Pythonu · čeho lze s jejich pomocí dosáhnout
2. úvod do programovacího jazyka Python · interaktivní programování jako konverzace s počítačem o objektech v jeho paměti · různé typy kolekcí: textové řetězce, seznamy, slovníky, množiny, n-tice · řídicí struktury: for-cyklus, podmínky · tvorba vlastních funkcí (funkce = uložený postup, recept, který lze kdykoliv spustit)
3. základy kvantitativní analýzy jazykových dat · abstraktní druh jazykové jednotky (typ) vs. její konkrétní výskyt v textu (token) · frekvence a disperze jevů jako základní kvantifikační postupy · práce s předpřipravenými jazykovými daty v NLTK · vizualizace (wordcloud, dispersion plot)
4. zpracování surových textových dat · formát "čistého textu", tzv. plain text · kódování, zejm. Unicode a UTF-8 · regulární výrazy
5. algoritmizace, aneb jak poskládat jednoduché dílčí úkony, které nám Python dává k dispozici, tak, aby dohromady tvořily postup, který řeší nějaký netriviální úkol
6. práce s větším množstvím dat · správa korpusů pomocí NLTK · orientace ve strukturovaných plaintextových datech: zpracování korpusu ve formátu tzv. vertikály
7. využití lingvistické anotace při analýze jazykových dat · lemmatizace, morfologické a syntaktické značkování
8. pokročilejší Python
Seminář je určen pro studenty humanitních, především filologických oborů se zájmem o korpusovou lingvistiku a počítačové zpracování textů. Nepředpokládá se žádná předchozí zkušenost s programováním, pouze základní uživatelská práce s PC. Absolventi kurzu se naučí pracovat s moderním, jednoduchým, leč o to užitečnějším programovacím jazykem Python a sadou nástrojů Natural Language Toolkit, která uživateli umožňuje sestavení vlastních korpusů, jejich prohledávání, vyhodnocování analýz (frekvenční seznamy, n-gramy...) a mnoho dalšího. Smyslem kurzu je ukázat, že na některých úkonech je snadnější, flexibilnější a rychlejší se s počítačem domluvit volným kombinováním příkazů v plnohodnotném (programovacím) jazyce, spíš než jen posunky (klikáním myši na položky v menu). Absolventi získají intuici i základní praktické dovednosti k tomu, aby dokázali identifikovat a následně i vyřešit úkoly, u nichž se přímo nabízí programátorský přístup. Díky němu vás do budoucna místo repetitivní ruční práce s daty čeká kreativní přemýšlení nad obecnými recepty (algoritmy), podle nichž za vás většinu dřiny udělá počítač.
V dalším semestru je možné navázat kurzem Programování pro korpusovou lingvistiku II, v němž se budeme věnovat pokročilejším metodám a podíváme se za hranice jazyka Python, abychom se naučili kombinovat svoje vlastní programy s cizími, často psanými v jiných jazycích.