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 ● Wersja algorytmu dla języka hiszpańskiego ● Wnioski Grzegorz Szuba Geneza problemu ● rosnąca ilość błędów w tekstach ● brak programów dostosowanych do języka polskiego ● brak programów badających kontekst wyrazów ● problem przypadkowo poprawnych wyrazów ● ● Cel powstania pracy stworzenie systemu korekty dla języka polskiego uwzględnienie kontekstu, fleksyjności, błędów ortograficznych i alfabetu Metody inżynierii lingwistycznej ● odległość edycyjna ● prawo Zipfa 1000000 częstotliwość 100000 10000 1000 100 10 1 1 ● N-gramy 10 100 1000 10000 100000 1000000 pozycja w rankingu Algorytm bezkontekstowy ● metoda działania – próba odgadnięcia błędu ● zmienna głębokość przeszukiwania ● rodzaje poprawianych błędów: ogonki, błędy ortograficzne, zamiana liter miejscami, wstawienie, usunięcie i zmiana znaku ● trigramy ze znaków - mechanizm środkowych liter ● magazynowanie wyników ● wyrazy sklejone lub podzielone Algorytmy kontekstowe ● ● ● ● częstość występowania pojedynczego wyrazu częstość występowania pary wyrazów (niezależnie od form obu słów) częstość występowania pary wyrazów (z uwzględnieniem formy obu słów) częstość występowania dwóch wyrazów w tym samym zdaniu Algorytmy kontekstowe c.d. ● analiza tematu tekstu ● analiza gramatyki ▪ związek zgody ▪ wyrażenia przyimkowe 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 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 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 + + +/+ +/+ + + + +/+ + + + ++ + 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) ● ● częstość par wyrazów (z uwzględnieniem form słów) częstość występowanie dwóch wyrazów jednocześnie w zdaniu ● 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 ▪ 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% 26+ 60,0% 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ę!