„Algorytmy grupowania przedrostków i rozbudowy komputerowego słownika dla jęz. polskiego ...

Post on 08-Jan-2016

47 views 1 download

description

„Algorytmy grupowania przedrostków i rozbudowy komputerowego słownika dla jęz. polskiego Ispell ”. Promotor: prof. zw. dr hab. inż. Jacek Mościński Konsultant: mgr inż. Krzysztof Rzecki Autor: Piotr Baran. Plan prezentacji. Cel i zakres pracy Budowa słownika Ispell Algorytmy deprefiksacji - PowerPoint PPT Presentation

Transcript of „Algorytmy grupowania przedrostków i rozbudowy komputerowego słownika dla jęz. polskiego ...

„„Algorytmy grupowania Algorytmy grupowania przedrostków i rozbudowy przedrostków i rozbudowy komputerowego słownika dla komputerowego słownika dla jęz. polskiego Ispell”jęz. polskiego Ispell”

Promotor: prof. zw. dr hab. inż. Jacek MościńskiKonsultant: mgr inż. Krzysztof RzeckiAutor: Piotr Baran

Plan prezentacjiPlan prezentacjiCel i zakres pracyBudowa słownika IspellAlgorytmy deprefiksacjiNapotkane problemy i

rozwiązaniaOsiągnięte rezultaty

Zakres pracyZakres pracyPrzegląd i porównanie możliwości

oraz wydajności komputerowych słowników języka polskiego

Zaprojektowanie, implementacja i przetestowanie algorytmów służących odnajdywaniu prawidłowych przedrostków oraz grupowaniu wyrazów posiadających te same grupy przedrostków w plikach słownika dla języka polskiego Ispell

Cel pracyCel pracyZmniejszenie rozmiaru słownikaZmniejszenie wymagań

pamięciowychUłatwienie dodawania nowych

wyrazów do słownikaUłatwienie budowy narzędzi

bazujących na słowniku Ispell

Pliki Ispell’aPliki Ispell’apolish.dict – zawiera lematy

języka polskiego (ok. 290 tys.) oraz flagi, na podstawie których zachodzi odmiana

polish.aff – zawiera opis flag odmieniających

polish.hash – plik generowany automatycznie przez Ispell’a na podstawie polish.dict i polish.aff

Polish.dictPolish.dictFragment pliku: czołem czołgać/dHIik czołgowisko/UV czołgowy/bXxY czołg/QsSTSkładnia: lemat/flagi lemat

Polish.aff – przykład flagiPolish.aff – przykład flagi Flaga „s” – mianownik l.mn. dla rzeczowników

nieosobowych rodzaju męskiego oraz osobowych, lecz odmienianych identycznie jak nieosobowe

[^ACĆGJKLŃOŚZŹŻ] > Y # komputery

[CJLYŻ] > E # instruktaż[^CDS] Z > Y # aplauz[CDS] Z > E # utleniacz[KG] > I # pociągĆ > -Ć,CIE # gośćŃ > -Ń,NIE # boleńŚ > -Ś,SIE # goguśŹ > -Ź,ZIE # chabaźO > -O,E # brudzio

Flagi przedrostkoweFlagi przedrostkoweFlagi można użyć również do

definiowania przedrostkówPrzykład:

flag *b:. > NIE #dobry -> niedobry

Część praktyczna pracy polega na wyszukaniu przedrostków w słowniku i utworzeniu dla nich flag

Podstawowy algorytm Podstawowy algorytm wyszukiwania przedrostkówwyszukiwania przedrostkówPobierz wyraz ze słownikaSprawdź czy „kończy się” na

jakikolwiek inny wyraz ze słownika

Jeżeli tak, początkowa część wyrazu jest przedrostkiem

rozchodzić

rozchodzić

I wyraz II wyraz

prefix

Etapy deprefiksacjiEtapy deprefiksacjiWyszukiwanie pseudoprzedrostków

algorytmem podstawowymWybór prawidłowych przedrostkówFiltrowanie niepoprawnych związków

przedrostek-lematUsuwanie nieregularności w odmianieRozwiązanie problemu tzw. wyrazów

wieloprzedrostkowychRozbudowa słownika o nowe wyrazyPodział na słowniki temetyczne

Problemy – złe przedrostkiProblemy – złe przedrostkiAlgorytm podstawowy wyszukuje

wszystkie przedrostki, nawet niepoprawne z punktu widzenia języka polskiego, np. przedrostek woj- w wyrazie „wojna”

Rozwiązanie: filtrowanie przedrostków na podstawie tabeli poprawnych przedrostków ze „Słownika poprawnej polszczyzny PWN”

Problemy – złe przedrostkiProblemy – złe przedrostkiAlgorytm wyszukuje poprawne

przedrostki, ale niepasujące do danej części mowy, np. prefix czasownikowy ob- w rzeczowniku „obraz”

Rozwiązanie: „ręczna” analiza słownika i stworzenie tabeli przyporządkowania przedrostek=>pasujące formy

Problemy - Problemy - nieregularnościnieregularnościRóżnice w odmianie wyrazów z i

bez przedrostka:zarobić => zarabiaćrobić => rabiać #błąd!

Rozwiązanie: wyrazy z nieregularnościami nie są poddawane deprefiksacji (ze wzglądów wydajnościowych i objętościowych)

Problemy - Problemy - wieloprzedrostkowośćwieloprzedrostkowość

W języku polskim występują wyrazy wieloprzedrostkowe, np. przenajświętszy – Ispell nie obsługuje flag wielokrotnych

Rozwiązanie: „zwijanie” tylko zewnętrznego przedrostka (na szczęście mało takich wyrazów – 1,98%)

Problemy – brak flagProblemy – brak flagSłownik Ispell zawiera 26 flag –

definicja przyrostkówWymagane dodatkowe 33 flagi

na zdefiniowanie przedrostkówRozwiązanie: przekompilowanie

korektora Ispell do obsługi wszystkich znaków ASCII jako możliwych flag

Rozbudowa słownikaRozbudowa słownikaDodanie obsługi przedrostków –

rozbudowa funkcjonalnaDodanie przedrostka nie- do

imiesłowów przymiotnikowych (np. nieusprawiedliwiony)

Dodanie przedrostka wielo- do wyrazów z możliwym przedrostkiem jedno- (jednoślad => wieloślad)

Skutek: ponad 6 tys. nowych wyrazów

OsiągnięciaOsiągnięciaZmniejszenie słownika polish.dict o

8,73%

OsiągnięciaOsiągnięciaZmniejszenie pliku polish.hash o 6% (mniejsze zużycie pamięci podczas działania słownika)

Ponad 6 tys. nowych form wyrazowych

Nowa funkcjonalność słownika pozwalająca wykorzystać go w projektach NLP

Dziękuję za uwagęDziękuję za uwagęProszę o pytaniaProszę o pytania