Download - „Algorytmy grupowania przedrostków i rozbudowy komputerowego słownika dla jęz. polskiego Ispell ”
![Page 1: „Algorytmy grupowania przedrostków i rozbudowy komputerowego słownika dla jęz. polskiego Ispell ”](https://reader030.vdocuments.site/reader030/viewer/2022020721/56813fe8550346895daad9b0/html5/thumbnails/1.jpg)
„„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 ”](https://reader030.vdocuments.site/reader030/viewer/2022020721/56813fe8550346895daad9b0/html5/thumbnails/2.jpg)
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 ”](https://reader030.vdocuments.site/reader030/viewer/2022020721/56813fe8550346895daad9b0/html5/thumbnails/3.jpg)
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 ”](https://reader030.vdocuments.site/reader030/viewer/2022020721/56813fe8550346895daad9b0/html5/thumbnails/4.jpg)
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 ”](https://reader030.vdocuments.site/reader030/viewer/2022020721/56813fe8550346895daad9b0/html5/thumbnails/5.jpg)
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 ”](https://reader030.vdocuments.site/reader030/viewer/2022020721/56813fe8550346895daad9b0/html5/thumbnails/6.jpg)
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 ”](https://reader030.vdocuments.site/reader030/viewer/2022020721/56813fe8550346895daad9b0/html5/thumbnails/7.jpg)
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 ”](https://reader030.vdocuments.site/reader030/viewer/2022020721/56813fe8550346895daad9b0/html5/thumbnails/8.jpg)
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 ”](https://reader030.vdocuments.site/reader030/viewer/2022020721/56813fe8550346895daad9b0/html5/thumbnails/9.jpg)
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 ”](https://reader030.vdocuments.site/reader030/viewer/2022020721/56813fe8550346895daad9b0/html5/thumbnails/10.jpg)
![Page 11: „Algorytmy grupowania przedrostków i rozbudowy komputerowego słownika dla jęz. polskiego Ispell ”](https://reader030.vdocuments.site/reader030/viewer/2022020721/56813fe8550346895daad9b0/html5/thumbnails/11.jpg)
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 ”](https://reader030.vdocuments.site/reader030/viewer/2022020721/56813fe8550346895daad9b0/html5/thumbnails/12.jpg)
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 ”](https://reader030.vdocuments.site/reader030/viewer/2022020721/56813fe8550346895daad9b0/html5/thumbnails/13.jpg)
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 ”](https://reader030.vdocuments.site/reader030/viewer/2022020721/56813fe8550346895daad9b0/html5/thumbnails/14.jpg)
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 ”](https://reader030.vdocuments.site/reader030/viewer/2022020721/56813fe8550346895daad9b0/html5/thumbnails/15.jpg)
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 ”](https://reader030.vdocuments.site/reader030/viewer/2022020721/56813fe8550346895daad9b0/html5/thumbnails/16.jpg)
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 ”](https://reader030.vdocuments.site/reader030/viewer/2022020721/56813fe8550346895daad9b0/html5/thumbnails/17.jpg)
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 ”](https://reader030.vdocuments.site/reader030/viewer/2022020721/56813fe8550346895daad9b0/html5/thumbnails/18.jpg)
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 ”](https://reader030.vdocuments.site/reader030/viewer/2022020721/56813fe8550346895daad9b0/html5/thumbnails/19.jpg)
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 ”](https://reader030.vdocuments.site/reader030/viewer/2022020721/56813fe8550346895daad9b0/html5/thumbnails/20.jpg)
Dziękuję za uwagęDziękuję za uwagęProszę o pytaniaProszę o pytania