Celem wykładu jest omówienie metod stosowanych w analizie i przetwarzaniu
tekstów w języków naturalnych, ze szczególnym uwzględnieniem wyników, które
można przełożyć na efektywnie działające implementacje. Największy nacisk
położony będzie na technologie pasujące do języka polskiego.
Będziemy zajmowali się takimi zadaniami, jak:
* tworzeniem różnych modeli języka oraz stosowaniem ich do korekty błędów, rozpoznawania mowy czy też pisma
* znajdowaniem struktury wypowiedzi
* metodami ujednoznaczniania wypowiedzi, która może być odczytana na wiele sposobów (przykładowo w zdaniu: Janek je słonecznik i śmieci)
* automatyczną analizą treści dokumentu, automatycznym określaniem tematyki dokumentu, czy
* algorytmami streszczania
* automatyczną generacją tekstu o określonych właściwościach
* wyciąganiem użytecznej wiedzy z analizy bardzo dużych kolekcji tekstów
Omówione zostaną między innymi następujące zagadnienia: łańcuchy Markowa,
warunkowe pola losowe (CRF) różne formalizmy opisu języka (np. gramatyki
atrybutowe, probabilistyczne gramatyki bezkonteksowe), traktowanie dokumentu
jako multizbioru słów, różne algorytmy parsingu tekstów, parsing
powierzchniowy oraz analiza zależności. Ponadto będziemy zajmować się
współczesnymi metodami wykorzystującymi sieci neuronowe. Przedstawiona też
zostanie potrzebna wiedza lingwistyczna, oczywiście z perspektywy informatyka.
Zajęciami dodatkowymi, wspomagającymi zrozumienie materiału i odnoszącymi
omawiane zagadnienia do sfery praktycznej, będą ćwiczenia połączone z
pracownią.
Od studenta oczekujemy zaliczenie Metod programowania, umiejętności
programowania w języku wyższego rzędu. Nie zaszkodzi znajomość podstawowych
pojęć z teorii języków formalnych (język regularny, bezkontekstowy,
kontekstowy) Pewne zagadnienia będą ilustrowane za pomocą pakietu NLTK-Lite
(Natural Language ToolKit), napisanego w Pythonie. Dobrze mieć zatem
podstawową znajomość tego języka lub chęć poświęcenia 1-2 godzin na
samodzielne nabycie tej znajomości.