Przetwarzanie Języka Naturalnego dr inż. Krzysztof Rzecki. Przetwarzanie Języka Naturalnego konspekt (30 godzin) Dr inż.

Podobne dokumenty
Lingwistyczny system definicyjny wykorzystujący korpusy tekstów oraz zasoby internetowe.

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

AUTOMATYKA INFORMATYKA

Podstawy programowania: Python. Wprowadzenie. Jolanta Bachan

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane

REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką

Przetwarzanie i analiza danych w języku Python / Marek Gągolewski, Maciej Bartoszuk, Anna Cena. Warszawa, Spis treści

Forma. Główny cel kursu. Umiejętności nabywane przez studentów. Wymagania wstępne:

Analiza danych tekstowych i języka naturalnego

Podstawy i języki programowania

Opisy efektów kształcenia dla modułu

Rok akademicki: 2012/2013 Kod: JFM s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja I

Wydział Elektrotechniki, Informatyki i Telekomunikacji. Instytut Informatyki i Elektroniki. Instrukcja do zajęć laboratoryjnych

KATEGORIA OBSZAR WIEDZY

Zapisywanie algorytmów w języku programowania

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Rozkład materiału nauczania

PODSTAWY PROGRAMOWANIA STRUKTURALNEGO (C) SYLABUS A. Informacje ogólne

Semantyczne podobieństwo stron internetowych

Uczeń: -podaje przykłady ciągów liczbowych skończonych i nieskończonych oraz rysuje wykresy ciągów

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja II

Program do wagi SmartScale

WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE STOPNIE Z INFORMATYKI W KLASIE 8 opracowane na podstawie podręcznika

Zał nr 4 do ZW. Dla grupy kursów zaznaczyć kurs końcowy. Liczba punktów ECTS charakterze praktycznym (P)

Matematyczne podstawy informatyki Mathematical Foundations of Computational Sciences. Matematyka Poziom kwalifikacji: II stopnia

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Algorytmy i struktury danych, C3

Systemy operacyjne. Laboratorium 8. Perl find

System wspomagania harmonogramowania przedsięwzięć budowlanych

Bazy danych. dr Radosław Matusik. radmat

Metodyki i techniki programowania

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

KARTA PRZEDMIOTU. Algorytmy i struktury danych, C4

Inteligentne wydobywanie informacji z internetowych serwisów społecznościowych

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

3.1. Na dobry początek

Algorytmy sortujące i wyszukujące

Autorski program nauczania

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

PRZEWODNIK PO PRZEDMIOCIE

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Realizacja w roku akademickim 2016/17

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Bieżący sylabus w semestrze zimowym roku 2016/17

Jerzy Berdychowski. Informatyka. w turystyce i rekreacji. Materiały do zajęć z wykorzystaniem programu. Microsoft Excel

KARTA MONITOROWANIA PODSTAWY PROGRAMOWEJ KSZTAŁCENIA OGÓLNEGO

Metodyki i techniki programowania

PRZEWODNIK PO PRZEDMIOCIE

Metody indeksowania dokumentów tekstowych

Wymagania edukacyjne na poszczególne oceny. z przedmiotu Informatyki. w klasie VI

Wizja maszynowa w robotyce i automatyzacji Kod przedmiotu

Elektrotechnika I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) Niestacjonarne (stacjonarne / niestacjonarne)

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Automatyczna klasyfikacja zespołów QRS

Wymagania edukacyjne z informatyki w klasie VIII

Ekstrakcja informacji oraz stylometria na usługach psychologii Część 2

Karta (sylabus) modułu/przedmiotu Mechatronika Studia pierwszego stopnia. Podstawy automatyzacji Rodzaj przedmiotu: obowiązkowy Kod przedmiotu:

Internet, jako ocean informacji. Technologia Informacyjna Lekcja 2

Zasady programowania Dokumentacja

I. Podstawy języka C powtórka

WYMAGANIA EDUKACYJNE Z ZAJĘĆ KOMPUTEROWYCH DLA KLASY SZÓSTEJ W ZAKRESIE WIADOMOŚCI I UMIEJĘTNOŚCI UCZNIÓW

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

Lokalizacja Oprogramowania

Proporcje podziału godzin na poszczególne bloki. Tematyka lekcji. Rok I. Liczba godzin. Blok

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści

EGZAMIN MATURALNY 2011 INFORMATYKA

Język programowania C C Programming Language. ogólnoakademicki

Dział II Budowa sieci komputerowej, typologie sieci. Ocena dostateczna. Ocena dobra. Ocena bardzo dobra [1+ 2] [ ] [ ] Uczeń:

Spis treści. Podstawy posługiwania się komputerem

Wymagania edukacyjne z informatyki kl. VIII

Wymagania - informatyka

PROGRAM NAUCZANIA DLA I I II KLASY GIMNAZJUM

Wymagania na poszczególne oceny w klasach 3 gimnazjum

Narzędzia do automatycznego wydobywania słowników kolokacji i do oceny leksykalności połączeń wyrazowych

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

Struktury Danych i Złożoność Obliczeniowa

Algorytm. Algorytmy Marek Pudełko

PRZEWODNIK PO PRZEDMIOCIE

WYMAGANIA EDUKACYJNE Z INFORMATYKI dla klasy III gimnazjalnej, Szkoły Podstawowej w Rychtalu

Plan wynikowy dla klasy 8 szkoły podstawowej zgodny z podręcznikiem Lubię to!

Uwaga: Akceptowane są wszystkie odpowiedzi merytorycznie poprawne i spełniające warunki zadania.

Algorytmy i struktury danych

Propozycja planu wynikowego z rozkładem materiału dla klasy 1 branżowej szkoły I stopnia

Wstęp do poradnika metodycznego Przykładowy rozkład materiału 13 I rok nauczania...13 II rok nauczania...13 Rozkład materiału:...

Wyszukiwanie dokumentów/informacji

4. Plan wynikowy (kryteria edukacyjne)

PLAN WYNIKOWY Z INFORMATYKI DLA KLASY VI

PLAN REALIZACJI MATERIAŁU NAUCZANIA Z INFORMATYKI II. Uczeń umie: Świadomie stosować się do zasad regulaminów (P).

Extensible Markup Language (XML) Wrocław, Java - technologie zaawansowane

Przetwarzanie tekstu 2. Operacje na plikach tekstowych w systemie Linux

biegle i poprawnie posługuje się terminologią informatyczną,

Pobieranie i przetwarzanie treści stron WWW

Matematyczne Podstawy Informatyki

Opis założonych osiągnięć ucznia wymagania na poszczególne oceny szkolne dla klasy VIII. Opracowano w oparciu o pomoce naukowe Migra (

Podstawy Informatyki Computer basics

PRZEWODNIK PO PRZEDMIOCIE

Narzędzia do automatycznego wydobywania kolokacji

Egzamin / zaliczenie na ocenę*

Bazy dokumentów tekstowych

Transkrypt:

Przetwarzanie Języka Naturalnego konspekt (30 godzin) Dr inż. Krzysztof Rzecki Literatura: W. Lubaszewski, Słowniki komputerowe i automatyczna ekstrakcja informacji z tekstu, AGH Kraków 2009. Kłopotek M., Inteligentne wyszukiwarki internetowe, Akademicka Oficyna Wydawnicza Exit, Warszawa 2001. Saloni Z., Świdziński M., Składnia współczesnego języka polskiego, Wyd. V., Warszawa 2001. Daciuk J., zbiór informacji na http://www.eti.pg.gda.pl/~jandac/. Gusfield D., Algorithms on Strings, Trees, and Sequences: Computer Science and Computational Biology, Cambridge University Press, 1997. Jurafsky D., Martin J.H., Speech and language processing, An Introduction to Natural Language Processing, Computational Linguistics and Speech Recognition, Prentice- Hall, Inc., Upper Saddle River, New Jersey 07458, 2000. W trakcie zajęć wszystkie zadania do zrealizowania są wyjaśniane, analizowane na przykładach, a także pokazywane są modelowe rozwiązania w celu wyrobienia intuicji, jaki jest oczekiwany wynik danego ćwiczenia. 1. Wprowadzenie do języka Perl, wyrażenia regularne. wprowadzenie do programowania w języki Perl podstawowych programów, zapoznanie się z podstawowymi strukturami danych w języku Perl, opanowanie metodologii układania wyrażeń regularnych. napisać skrypt w języku Perl realizujący podstawowe operacje na tekście (wprowadzanie, wycinanie, zliczanie, zmiana kolejności), napisać skrypt w języku Perl wyszukujący zadane ciągi znaków w tekście, napisać skrypt w języku Perl zamieniający w zadanym pliku tekstowym kolejność słów w każdej linii. 2. Zaawansowane typy danych i ich persystencja. opanowanie operowaniem zaawansowanymi strukturami danych w języku Perl, zapoznanie się z technikami realizacji persystencji struktur danych. zaprojektować strukturę danych do przechowywania hash a tablic, zaprojektować i zaimplementować strukturę drzewa binarnego, sprawdzić działanie exists(), defined(), zaimplementować program wczytujący drzewo binarne do pamięci i zapisujący całą strukturę do pliku na dysku; następnie wczytać tę strukturę i sprawdzić poprawność. 3. Parsowanie dokumentów tekstowych i analiza leksykalna. zaprojektowanie wyrażeń regularnych do parsowania dokumentów tekstowych: implementacja analizatora leksykalnego, przechowywanie przetworzonych danych w pamięci RAM i na dysku twardym.

napisać program implementujący wyrażenia regularne wydobywające słowa (napisy składające się z liter) z pliku tekstowego przez: o wyrażenia regularne do wyszukania znaczników, o wyrażenia regularne do zamiany znaczników, o znaczniki pojedyncze (np. <br>), o znaczniki obejmujące tekst (np. <div> i </div>), o znaczniki agregujące (np. table, tr, td), rozbudować program o zamienianie wszystkich liter w napisach na małe, rozbudować program o przetwarzanie wszystkich plików w zadanym katalogu i zapisywanie do nowych plików samych napisów małą literą. 4. Algorytmy pozyskiwania tekstów i budowy korpusu tekstowego. zapoznanie się z technikami Web-crawlingu i działania robaków internetowych, zapoznanie się z technikami wydobywania informacji ze stron WWW. zaprojektować i napisać program potrafiący chodzić po stronach WWW poprzez zawarte na kolejnych stronach linki do innych stron internetowych, zaprojektować i napisać program parsujący strony HTML z portali internetowych wydobywający treściwe informacje (np. przez budowę drzewa semantycznego), zebrać korpus tekstów o wielkości min. 100 MB czystego tekstu (bez znaczników HTML). 5. Analiza statystyczna korpusu tekstowego. zbadanie własności statystycznych tekstów w języku polskim. przeprowadzić analizę statystyczną tekstów w języku polskim i sporządzić wykresy: o kołowy częstości (słowo, częstość, %), o przyrostu słownictwa (przyrostu słów bez powtórzeń), o pokrycia tekstu (czyli OX: od najczęściej występujących, OY: ile % tekstu pokrywają słowa od 0 do danej wartości). 6. Indekser dokumentów tekstowych, wyszukiwarka dokumentów. zapoznanie się z technikami indeksowania dokumentów tekstowych, konstrukcja prostej wyszukiwarki dokumentów tekstowych. zbudować indekser dokumentów z wagami (przez TF-IDF), tj. obliczyć wagi dla wszystkich termów przez TF-IDF, zaimplementować wyszukiwarkę do zbudowanego indeksera, która działa z linii komend i przyjmuje jako argument frazę do wyszukania; wyniki wyszukiwania posortować od najlepszego wyniku. 7. Automaty słownikowe. konstrukcja różnych algorytmów słownikowych, zbadanie własności struktur i algorytmów słownikowych.

zaprojektować trzy rodzaje struktur do przechowywania słowników: o struktura tablicowa (jedna komórka, to jedno słowo), o struktura drzewiasta (kolejna pozycja litery w słowie to kolejny poziom drzewa), o struktura zminimalizowanego automatu skończonego. zaimplementować słowniki w strukturach: o tablicowej, o drzewiastej o w bazie danych (z i bez indeksów), zbadać i zilustrować: o wydajność czasową poszukiwania słowa w słowniku, o zajętość pamięciową, o porównać z możliwościami algorytmu Folda (zostanie podane rozwiązanie). 8. Własności stop-listy, algorytm budowy. zapoznanie się z własnościami stop-list, opracowanie stop-listy na bazie własnego korpusu. opracować listy standardowe: o słowa zdefiniowane (przysłówki, zaimki, spójniki, itp. pełna lista zostanie podana na ćwiczeniach), o słowa najczęściej występujące. wykazać, że wśród słów z podanych list znajdują się słowa będące dobrymi kandydatami na słowa kluczowe, przygotować stop-listę w oparciu o współczynnik zmienności: o wybrać jako listę słowa o współczynniku mniejszym od 1, o do konstrukcji listy połączyć cały korpus w jeden plik, o tak połączony plik dzielić podziałami na N=10, 100, 1000, 10000, o nakreślić wykres, OX: średnia wystąpień, OY: odchylenie std, o sprawdzenie pisowni: TAK, lematyzacja: NIE. 9. Analiza morfologiczna tekstu, lematyzacja bezkontekstowa. poznanie własności morfologicznych słów języka polskiego, poznanie własności statystycznych analizy morfologicznej. korzystając z zadanej bazy danych SQL napisać program realizujący funkcjonalność lematyzatora słów z języka polskiego, wykonać lematyzację korpusu tekstów, zbadać procentową niejednoznaczność lematyzacji, zbadać i zilustrować na wykresie wydajność lematyzatora, zilustrować przyrost słownictwa zlematyzowanego w tekstach i porównać z wykresem przyrostu słownictwa niezlematyzowanego, rozbudować indekser i wyszukiwarkę dokumentów o unifikację poprzez lematyzację.

10. Binaryzacja i wektoryzacja tekstu, wskaźniki dopasowania. poznanie techniki wektoryzacji tekstu, poznanie własności statystycznych wskaźników podobieństwa. przygotować bazę wektorów dla tekstów z posiadanego korpusu: o do modelu boolowskiego, o do modelu wektorowego, baza może być przechowywana w pliku txt, jako hash lub w bazie danych, skonstruować wyszukiwarkę w oparciu o: o model boolowski, wskaźnik 'cosine', o model wektorowy, wskaźnik 'taxi', użytkowanie wyszukiwarki: jak w przypadku zadania z indekserem, porównywanie wyników wyszukiwania: o przygotować losowe frazy 1, 2, 3,... 100 wyrazowe, o wykonać badanie: przy pomocy wyszukiwarki opartej o TF-IDF przygotować listę wyszukań (listę dokumentów), przy pomocy modelu bool i wektorowego, zweryfikować kolejność na liście wyników (badanie na kolejność), o wykonać badanie: przy pomocy każdej z trzech wyszukiwarek (TF-IDF, model bool, model wektorowy), przygotować listy wyników, porównać listy ze sobą (badanie na jednolitość wyników). 11. Programowanie dynamiczne i wskaźniki podobieństwa. poznanie technik programowania dynamicznego, poznanie własności programowania dynamicznego algorytmów, obliczanie wskaźników podobieństwa uwzględniających kolejność słów. zaimplementować wspólną bibliotekę algorytmów porównywania dokumentów: o Levenshtein, o LCS-substring, o LCS-subsequence, za wartości w komórkach porównywanych przyjąć słowa, zbadać własności algorytmów na krótkich tekstach. 12. Badanie kontekstu informacji, konstrukcja n gramów. przygotować bazę bi-gramów (plik, hash lub baza danych) taką, że: o pierwsze słowo to słowo zlematyzowane jednoznacznie, o drugie słowo to słowo zlematyzowane jednoznacznie, ale posiadające formę lematyzowalną niejednoznacznie, o podać dla każdego bi-gramu parawdopodobieńśtwo wystąpienia słowa drugiego pod warunkiem wystąpienia słowa pierwszego, zaimplementować lematyzator kontekstowy korzystający z w/w bazy, jeśli podane do lematyzatora słowo ma więcej niż jeden lemat, to: o pobierane jest słowo występujące przed tym słowem,

o szukane są w bazie wszystkie bi-gramy zlematyzowane pasujące do poszukiwanego bi-gramu, jako wynik lematyzacji wybieramy ten bi-gram, który ma największe prawdopodobieństwo wystąpienia, zbadać jakość lematyzacji (można podać wykres: OX: % pewności, OY: liczność przypadków). 13. Reprezentacja wiedzy, generowanie tekstu, odpowiedzi poznanie technik reprezentacji wiedzy, poznanie metod generowania tekstu, techniki udzielania odpowiedzi. zbadać własności n-gramów dla n>2, zaimplementować program przechowujący bazę ekspercką (szczegóły zostaną wyjaśnione w trakcie zajęć), opracować i zaimplementować bezkontekstowy generator tekstu. 14. Projekt i implementacja systemu przetwarzania tekstu. podsumowanie zadań implementacyjnych z całego semestru, przygotowanie pod kompletny system przetwarzania tekstu o szerokim przeznaczeniu. w usystematyzowany sposób uporządkować wszystkie programy wykonane w trakcie semestru, wybrać najlepsze (zdaniem studenta) rozwiązania, zaproponować przeznaczenie systemu przetwarzania tekstu i zintegrować programy w celu uzyskania oczekiwanego systemu. 15. Testowanie systemu przetwarzania tekstu. testowanie skonstruowanego systemu. zaproponować zestaw testów (danych treningowych) dla skonstruowanego systemu, przeprowadzić testy na zestawach, opracować wyniki i zilustrować je w sprawozdaniu.