Charles Explorer logo
🇨🇿

Programování pro korpusovou lingvistiku: Python a NLTK

Předmět na Filozofická fakulta |
AMLV00058

Sylabus

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

Anotace

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.