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ę!