Programování pro korpusovou lingvistiku II - ALINV368B
Anglický název: Programming for corpus linguistics II
Zajišťuje: Ústav obecné lingvistiky (21-ULING)
Fakulta: Filozofická fakulta
Platnost: od 2023
Semestr: letní
Body: 0
E-Kredity: 3
Způsob provedení zkoušky: letní s.:
Rozsah, examinace: letní s.:0/2, Z [HT]
Počet míst: neurčen / neurčen (neurčen)
Minimální obsazenost: neomezen
4EU+: ne
Virtuální mobilita / počet míst pro virtuální mobilitu: ne
Kompetence:  
Stav předmětu: nevyučován
Jazyk výuky: čeština
Způsob výuky: prezenční
Způsob výuky: prezenční
Úroveň:  
Je zajišťováno předmětem: AMLV00063
Vysvětlení: Další informace lze najít po kliknutí na kód předmětu, který výuku zajišťuje.
Poznámka: předmět je možno zapsat mimo plán
povolen pro zápis po webu
Garant: Mgr. David Lukeš, Ph.D.
Rozvrh   Nástěnka   
Anotace -
Poslední úprava: Mgr. David Lukeš, Ph.D. (03.01.2021)
Seminář navazuje na předmět AMLV00058 (Programování pro korpusovou lingvistiku: Python a NLTK). Absolvování předchozího předmětu není přísnou prerekvizitou, nicméně:

1. studenti, kteří jej absolvovali, budou mít při zápisu přednost
2. předmět není vhodný pro začátečníky, předpokládá se předchozí znalost Pythonu přibližně na úrovni prvních pěti kapitol http://www.nltk.org/book/

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ů. Oproti předchozímu semestru půjdeme více do hloubky: podíváme se na složitější algoritmy používané při zpracování přirozeného jazyka, a zároveň se naučíme psát delší a komplikovanější programy a propojovat je s dalšími existujícími nástroji.
Podmínky zakončení předmětu -
Poslední úprava: Mgr. David Lukeš, Ph.D. (26.11.2019)

Požadavky k zápočtu: pravidelná docházka, aktivní účast na seminářích, průběžné plnění zadávaných úkolů, vypracování zápočtového úkolu.

Literatura -
Poslední úprava: Mgr. David Lukeš, Ph.D. (16.08.2018)

Bird, S., Klein, E., & Loper, E. (2014). Natural Language Processing with Python: Analyzing Text with the Natural Language Toolkit. Retrieved from http://www.nltk.org/book/

Gries, P., Campbell, J., & Montojo, J. (2013). Practical Programming: An Introduction to Computer Science Using Python 3 (2nd ed.). Dallas, Texas: Pragmatic Bookshelf.

Jurafsky, D., & Martin, J. H. (2019). Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition (3rd ed.). Retrieved from https://web.stanford.edu/~jurafsky/slp3/

Lukeš, D. (2016, January 27). How computers handle text: A gentle but thorough introduction to Unicode. Retrieved August 15, 2018, from https://dlukes.github.io/unicode.html

Matthes, E. (2015). Python Crash Course: A Hands-On, Project-Based Introduction to Programming (1st ed.). San Francisco: No Starch Press.

McEnery, T., & Hardie, A. (2011). Corpus Linguistics: Method, Theory and Practice. Cambridge University Press.

Moran, S., & Cysouw, M. (2018). The Unicode cookbook for linguists: managing writing systems using orthography profiles. Berlin: Language Science Press. Retrieved from http://langsci-press.org/catalog/book/176

Skiena, S. S. (2008). The Algorithm Design Manual. London: Springer London. https://doi.org/10.1007/978-1-84800-070-4

Sweigart, A. (2018). Cracking Codes with Python: An Introduction to Building and Breaking Ciphers. San Francisco: No Starch Press.

Vaughan, L. (2018). Impractical Python: Playful Programming Activities to Make You Smarter. San Francisco: No Starch Press.

Zinoviev, D. (2016). Data Science Essentials in Python: Collect – Organize – Explore – Predict – Value (1st ed.). Raleigh, North Carolina: Pragmatic Bookshelf.

Sylabus
Poslední úprava: Mgr. David Lukeš, Ph.D. (03.01.2021)

Hlavní okruhy (zde pro přehlednost tematicky sdružené, pořadí v rámci semestru se částečně liší):

1. pohled "pod kapotu" různých postupů využívaných při zpracování přirozeného jazyka

·         generování textu

·         morfologické značkování

·         klasifikace textu

2. seznámení s příkazovou řádkou, psaní programů pro příkazovou řádku

3. správa zdrojového kódu

·         organizace / strukturace delších programů, volba textového editoru

·         verzování (git, https://github.com/)

·         zveřejňování (free / libre / open-source software)

4. objektově orientované programování v Pythonu

·         tvorba vlastních nových typů objektů, tzv. tříd

·         jak poznat situace, kdy se vyplatí po těchto složitějších nástrojích sáhnout