Od korpusu do modelu. Metody zbierania, przetwarzania i anotacji tekstów 1500-SZD-OKDM
Zasadniczym celem zajęć będzie praktyczne wprowadzenie uczestników w zagadnienia dotyczące językoznawstwa komputerowego i przetwarzania języka naturalnego, które pozwoli im nabyć umiejętności tworzenia i przetwarzania korpusów tekstów z dodanymi własnymi warstwami anotacyjnymi. Anotacja korpusu polega na wzbogaceniu zbioru surowych danych tekstowych o dodatkowe informacje lingwistyczne, np. charakterystyka poszczególnych segmentów tekstów pod kątem ich przynależności do części mowy. Istniejące narzędzia korpusowe pozwalają na automatyczną anotację danych tekstowych pod kątem informacji z poziomu fleksji oraz składni, niekiedy zaś także z poziomu semantyki oraz pragmatyki. Umiejętność tworzenia własnych warstw anotacyjnych może pozwolić uczestnikom zajęć przezwyciężyć naturalne ograniczenia ogólnodostępnych narzędzi wynikające z ich ogólnego przeznaczenia i przygotować rozwiązanie skrojone na miarę ich projektów badawczych.
W ramach pierwszego bloku zajęć uczestnicy poznają podstawy programowania w języku Python, pakiety tego języka umożliwiające przetwarzanie języka naturalnego i danych tekstowych (np. spaCy), a także zasoby danych (tzw. datasety) wykorzystywane do tworzenia narzędzi pozwalających na budowania korpusów tekstów i automatyczną ich analizę i anotację (takich jak np. Korpusomat czy SketchEngine).
Drugi blok tematyczny zostanie poświęcony metodologii i praktyce anotowania tekstów, czyli tworzenia własnych zasobów danych, oraz technikom uczenia maszynowego (np. uczenie maszynowe i głębokie, z nadzorem i bez nadzoru, różne odmiany zadań związanych z klasyfikacją tekstów). Zasoby przygotowane przez uczestników – w aplikacji Label Studio – zostaną wykorzystane do wytrenowania własnych modeli uczenia maszynowego, opartych na najnowszych architekturach sieci neuronowych, które pozwalają na osiągnięcie relatywnie wysokiej skuteczności na niewielkich zbiorach treningowych.
Korpusy tekstów stanowią naturalną podstawę dla badań ilościowych i jakościowych z zakresu językoznawstwa, literaturoznawstwa czy socjologii. Zakres wykorzystania korpusów nie ogranicza się jednak tylko do tych dziedzin – mogą być one także przydatne badaczom należącym do innych dyscyplin, np. służyć do tworzenia korpusów artykułów z danej dyscypliny badawczej i przeglądu literatury.
Metody i przykłady przedstawione na zajęciach będą dotyczyły głównie języka polskiego, jednakże na ogół bez większych przeszkód uczestnicy będą mogli znaleźć ich odpowiedniki lub przenieść je na grunt innych języków (np. angielskiego, niemieckiego, francuskiego czy włoskiego). Od uczestników nie wymaga się wcześniejszej znajomości języków programowania i umiejętności programistycznych.
Rodzaj przedmiotu
Efekty kształcenia
Wiedza:
Student/Studentka
P8S_WG ma zaawansowaną wiedzę dotyczącą wybranych narzędzi służących do przetwarzania i analizy danych tekstowych
P8S_WG zna podstawy programowania w Pythonie oraz pakiety tego języka służące do przetwarzania i analizy danych tekstowych
P8S_WG zna najważniejsze zasoby tekstowe i sposoby ich wykorzystania na potrzeby istniejących informatycznych narzędzi korpusowych
P8S_WG zna najważniejsze pojęcia i techniki przetwarzania języka naturalnego i uczenia maszynowego
Umiejętności:
Student/Studentka
P8S_UW potrafi pozyskiwać i przetwarzać dane tekstowe na potrzeby analiz jakościowych i ilościowych z wykorzystaniem technik programistycznych
P8S_UW potrafi przeprowadzić anotację zbioru tekstów, uwzględniając wymogi metodologiczne i konsekwencje dla skuteczności trenowanych modeli uczenia maszynowego
P8S_UK potrafi komunikować się na tematy specjalistyczne z zakresu przetwarzania języka naturalnego w stopniu umożliwiającym aktywne uczestnictwo w międzynarodowym środowisku naukowym
Kompetencje społeczne:
Student/Studentka
P8S_KK jest gotów/gotowa do uznawania znaczenia wiedzy z dziedziny przetwarzania języka naturalnego w rozwiązywaniu problemów poznawczych i praktycznych oraz stosowania metod przetwarzania języka naturalnego do realizacji własnych celów badawczych
Kryteria oceniania
Uczestnictwo w zajęciach (dopuszczalne dwie nieobecności)
Zrealizowanie małego projektu indywidualnego lub grupowego polegającego m.in. na zebraniu i zaanotowaniu danych (stworzenie mikrokorpusu) oraz wytrenowaniu na ich podstawie modelu sztucznej inteligencji
Literatura
Hobson, L., Cole, H., Hannes, H. (2021) Przetwarzanie języka naturalnego w akcji. Rozumienie, analiza i generowanie tekstu w Pythonie na przykładzie języka angielskiego. Warszawa: PWN.
Pustejovsky, J., Stubbs, A. (2013) Natural Language Annotation for Machine Learning. Sebastopol, CA: O’Reilly Media.
Sweigart, A. (2020) Automatyzacja nudnych zadań z Pythonem. Nauka programowania. Gliwice: Helion.
Altinuk, D. (2021) Mastering spaCy: An end-to-end practical guide to implementing NLP applications using the Python ecosystem. Birmingham: Packt Publishing.
Kinsley, H., Kukieła, D. (2020) Neural Networks from Scratch in Python. Sentdex, Kinsley Enterprises.
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: