System Korekty Tekstu Polskiego Plan prezentacji
Transkrypt
System Korekty Tekstu Polskiego Plan prezentacji
System Korekty Tekstu Polskiego ● Plan prezentacji Geneza problemu i cele pracy ● Opis algorytmu bezkontekstowego ● Opis algorytmów kontekstowych ● Wyniki testów ● ● Rozszerzenie pracy - uproszczona wersja algorytmu dla języka hiszpańskiego Wnioski Grzegorz Szuba Geneza problemu ● ● ● ● rosnąca ilość błędów w tekstach (niedbałość, brak ogonków, ortograficzne z premedytacją) brak programów dostosowanych do języka polskiego i jego ogonków i fleksji brak programów badających kontekst gramatyczny i znaczeniowy problem przypadkowo poprawnych wyrazów Cel powstania pracy ● ● stworzenie systemu korekty dla języka polskiego problem uwzględniającego ww. kwestie uwzględnienie kontekstu, fleksyjności (CLP), błędów ortograficznych i alfabetu Metody inżynierii lingwistycznej ● ● odległość edycyjna (Damerau-Levenshteina – liczba operacji prostych) zasada Pareto 80/20 - prawo George'a Zipfa N-gramy – sekwencja n elementów – mając dany ciąg liter/słów jakie są prawdopodobieństwa następnych elementów – unigramy, bigramy i trigramy 1000000 100000 częstotliw ość ● 10000 1000 100 10 1 1 10 100 1000 10000 pozycja w rankingu 100000 1000000 Algorytm bezkontekstowy ● ● ● ● ● ● metoda działania – próba odgadnięcia błędu - 1,2 mln form, 120 tys. słów zmienna głębokość przeszukiwania (+-3, 24) rodzaje poprawianych błędów: zamiana liter miejscami, wstawienie, usunięcie i zmiana znaku na inny (klawiatura), ogonki, ortograficzne, trigramy ze znaków - mechanizm środkowych liter magazynowanie wyników – gdy sprawdzanie po stronie serwera (Google) wyrazy sklejone lub podzielone Algorytmy kontekstowe ● nie tylko błędne – lista z bezko-wego i zmieniamy porządek ● częstość występowania pojedynczego wyrazu – ▪ ● ● ● mieszak-wieszak, fleksyjność mianowniku czy w dp'czu częstość występowania pary wyrazów (niezależnie od form obu słów): frazeologiczne: kolokacje (rąbać drzewo), biała flaga, idiomy (urwanie głowy), związki przynależności (mówić o/do/po) częstość występowania pary wyrazów (z uwzględnieniem formy obu słów) – zgody, rządu (podróżować + narzędnik „autem” (dopełnienie) bo nie miejscownik (okolicznik „ do domu”), związki frazeologiczne „gorące uczynki” a „gorącym uczynku”; nieistniejące: Rzeczpospolita Polska, Jaś Fasola częstość występowania dwóch wyrazów w tym samym zdaniu (jeżeli to, bardziej niż, od do, ani ani” Algorytmy kontekstowe c.d. ● analiza tematu tekstu - synonimy ● analiza gramatyki ▪ związek zgody – obok siebie ▪ wyrażenia przyimkowe= przyimek + rzeczownik w funkcji dopełnienia określany przez przymiotnik w funkcji przydawki, też wyrazy nieodmienne, np. partykuły, wykrzykniki Testy – wybór tekstów ● Teksty i błędy pochodzące z rzeczywistych wypowiedzi i publikacji ▪ forum Onetu ▪ grupy dyskusyjne Usenetu ▪ komunikator Gadu - Gadu ▪ teksty skanowane ▪ teksty przepisywane na klawiaturze ▪ tekst bez polskich znaków diakrytycznych ▪ tekst z Gazety Wyborczej (tak - tam) Testy – podsumowanie Ilość słów zawierających błędy: 1133 rodzaj błędu brak polskiego znaku diakrytycznego błąd ortograficzny zamiana litery na inną (nie licząc braku ogonka) dodana nadmiarowa litera pominięta jedna litera zamiana miejscami sąsiadujących liter sklejenie sąsiednich wyrazów podział słowa na dwa ilość wystąpień błędu 258 49 223 98 136 37 122 34 Porównanie stopni algorytmu check_word +2 check_word -3 check_word +3 check_word -4 check_word 24 check_word +4 check_word +2 gcnpP check_word -3 gcnpP check_word +3 gcnpP check_word -4 gcnpP check_word 24 gcnpP check_word +4 gcnpP 0,0% 10,0% 20,0% 30,0% 1 2 40,0% 3-5 6-10 50,0% 11-25 60,0% 26+ 70,0% 80,0% 90,0% 100,0% Porównanie z innymi programami ● Porównywane programy: Aspell, Ispell, Microsoft Office Word, Google Docs (Writely) ispell Writely aspell fast aspell normal Word check_word +2 check_word 24 check_word +2 gcnpP check_word 24 gcnpP 0,0% 10,0% 20,0% 30,0% 1 ● 2 40,0% 3-5 6-10 42 – 48 – 51 – 59 – 64 (/82) 50,0% 11-25 60,0% 26+ 70,0% 80,0% 90,0% 100,0% Porównanie z innymi programami brak ogonka błędy ortograficzne naciśnięcie sąsiedniej litery nazwy własne przypadkowo poprawne słowa słowa sklejone słowa podzielone Ispell Aspell Word Writely mój program + + +/-/ę + +/+ + + + +/+ + + + ++ + węze -> węzę połonczom, normalnom nie porównywać wielkości słownika sklejone - 13% - 24% => 58%, bo błąd oprócz sklejenia Porównanie metod kontekstowych bezkontekstowy temat tekstu gramatyka dwa słowa w zdaniu pary słów bez form pary słów z formami słowa pojedynczo pojedyncze + pary bez form + pary z formami wszystkie opcje jednocześnie 0,0% 10,0% 20,0% 1 30,0% 2 3-5 40,0% 6-10 11-25 50,0% 26+ 60,0% 70,0% 80,0% 90,0% 100,0% Metody kontekstowe - podsumowanie ● ● ● ● częstość pojedynczego wyrazu częstość par wyrazów (niezależnie od ich formy) 110tys -> 12 mld par 25GB ale 15mln – 10mln „1” = 5 mln (48/słowo) częstość par wyrazów (z uwzględnieniem form słów) – 20 form/słowo 5 bln par=10teraB, ale 23 – 14 = 9 mln częstość występowanie dwóch wyrazów jednocześnie w zdaniu ∞ - 93 – 63 = 30mln = 233MB ● analiza tematu tekstu ● analiza zasad gramatycznych Wersja dla języka hiszpańskiego ● ● ● różnice z programem dla języka polskiego ▪ inny alfabet ▪ inne błędy ortograficzne algorytm kontekstowy ▪ różnice – połączenie metod p i n ▪ nowa baza częstości testy ▪ sztucznie generowane błędy w tekstach Wersja dla języka hiszpańskiego ● Wyniki testów: ispell aspell ultra aspell fast aspell normal aspell bad-spellers check_word +2 check_word -3 check_word +3 check_word +3 g check_word +3 t check_word +3 c check_word +3 N check_word +3 cNt 0,0% 10,0% 20,0% 30,0% 1 ● 2-5 40,0% 6-10 11-25 50,0% 60,0% 26+ Porównanie z językiem polskim 70,0% 80,0% 90,0% 100,0% Wnioski i podsumowanie ● ● ● korzyści z uwzględnienia ogonków i błędów ortograficznych badanie kontekstu wyrazu daje dobre wyniki badanie tematu i gramatyki wymaga ulepszenia ● korzyści z wykorzystania fleksyjności języka ● algorytm można adaptować dla innych języków Dziękuję za uwagę!