Wnioski Grzegorz Szuba 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
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 częstotliw ość 1000000 100000 10000 1000 100 10 1 1 10 100 1000 10000 100000 1000000 pozycja w rankingu
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 ilość wystąpień błędu brak polskiego znaku diakrytycznego 258 błąd ortograficzny 49 zamiana litery na inną (nie licząc braku ogonka) 223 dodana nadmiarowa litera 98 pominięta jedna litera 136 zamiana miejscami sąsiadujących liter 37 sklejenie sąsiednich wyrazów 122 podział słowa na dwa 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% 40,0% 50,0% 60,0% 70,0% 80,0% 90,0% 100,0% 1 2 3-5 6-10 11-25 26+
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% 40,0% 50,0% 60,0% 70,0% 80,0% 90,0% 100,0% 1 2 3-5 6-10 11-25 26+ 42 48 51 59 64 (/82)
Porównanie z innymi programami Ispell Aspell Word Writely mój program brak ogonka - + + +/-/ę + błędy ortograficzne - - +/- - + naciśnięcie sąsiedniej litery - + - - + nazwy własne - - + +/- - przypadkowo poprawne słowa - - - - + słowa sklejone - + + + ++ słowa podzielone - - - - + 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% 30,0% 40,0% 50,0% 60,0% 70,0% 80,0% 90,0% 100,0% 1 2 3-5 6-10 11-25 26+
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% 40,0% 50,0% 60,0% 70,0% 80,0% 90,0% 100,0% 1 2-5 6-10 11-25 26+ Porównanie z językiem polskim
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ę!