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

20
Algorytmy grupowania Algorytmy grupowania przedrostków i rozbudowy przedrostków i rozbudowy komputerowego słownika komputerowego słownika dla jęz. polskiego dla jęz. polskiego Ispell” Ispell” Promotor: prof. zw. dr hab. inż. Jacek Mościński Konsultant: mgr inż. Krzysztof Rzecki

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 ...

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

„„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

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

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

rozwiązaniaOsiągnięte rezultaty

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

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

Page 4: „Algorytmy grupowania przedrostków i rozbudowy komputerowego słownika dla jęz. 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

Page 5: „Algorytmy grupowania przedrostków i rozbudowy komputerowego słownika dla jęz. polskiego  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

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

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

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

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

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

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

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

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

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

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

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

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”

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

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

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

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)

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

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%)

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

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

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

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

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

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

8,73%

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

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

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

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