aviarypl / team

Attic
http://attic.aviary.pl
5 stars 0 forks source link

Spellchecker issues #21

Open baryluk opened 4 years ago

baryluk commented 4 years ago

Firefox 74.0.1 and Firefox 75.0, Linux, 64-bit

firefox                                                     74.0.1-1
firefox                                                     75.0-2
firefox-l10n-pl                                             75.0-2
firefox-esr-l10n-pl                                         68.7.0esr-1
ispell                                                      3.4.00-8
ipolish                                                     20190812-1ispell
hunspell                                                    1.7.0-2+b1
hunspell-pl                                                 1:6.4.3-1hunspell
aspell                                                      0.60.8-1
aspell-pl                                                   20150428-3

Słownik sprawdzania pisowni sugeruje aby Moze zastąpić przez Morze, Mozę, Mezo, Mozie, Moza. Gdzie jest Może?

Dla moze, sugestie to: możne, morze, może, muzę, mocze. (W tej kolejności). Dlaczego może nie jest pierwsze na liście (ma najniższy dystans w metryce Levenshteina, i jest najbardziej popularnym słowem z tej listy)?

Dla Kazdy słownik sugeruje: Kaidy, Mazdy, Kajdy, Jazdy, Gazdy. Gdzie jest Każdy? To popularne słowo nawet na początku zdania. Na przykład Każdy sobie rzepkę skrobie, Każdy wie co naprawdę się wydarzyło.

Dla Mozna słownik sugeruje: Monza, Moza, Mona, Moszna, Pozna. Gdzie jest można?

I wiele podobnych sytuacji. Koldra (Kołdra powinno być na liście pierwsza, a jest druga), Czolg (Czołg powinien być pierwszy na liście, a jest 5ty), sa, ( powinno być pierwsze, a jest drugie), Wieza (Wieża nie ma na liście).

Wydaje mi się że to jest jakiś bug związany z UTF-8 / kodowaniem polskich znaków. Ponieważ polskie litery (jak ż), to dwa bajty w UTF-8, więc może to 1 usunięcie, i 2 dodania, dystans 3, mimo że powinien być 2 (1 usunięcie i 1 dodanie). W metryce Damerau–Levenshteina, 2 zamiast 1. To może powodować niepoprawne priorytetyzowanie słów.

Sprawdziłem aspell i sugeruje też nie najlepiej ale w innej kolejności są pierwsze słowa, ale poprawne podpowiedzi zwykle są drugie na liście. Nie udało mi się sprawdzić używając ispell, bo interfejs jest koszmarny i nie działa prawidłowo.

Tak czy siak, Firefox nie używa tych słowników czy bibliotek i tak, ale lista słów do nich prawdopodobnie pochodzi z podobnego źródła.

hunspell sugeruje pewne słowa lepiej, pewne gorzej niz aspell / ispell, ale wygląda że sugeruje dokładnie tak jak Firefox, z dokładnie takimi sami problemami, brakującymi podpowiedziami i złą kolejnością. (np. Wieza daje te same 5 pierwszych podpowiedzi, i Wieża jest na 7-mej pozycji; Kazdy daje te same 5 pierwszych podpowiedzi, i Każdy jest na 6-tej pozycji, itp).

Przykład bezsensownych podpowiedzi z hunspell (pierwsze 5 pozycji jest takie same jak sugestie w Firefoxie):

Zeby
& Zeby 15 0: Zery, Weby, Peby, Zety, Zuby, Żeby, Teby, Łeby, Heby, Zęby, Bezy, Zeny, Zebu, Zebry, Zdeby
# Prawidłowa i naturalna podpowiedź na pozycji 6 i 10.

Czolo
& Czolo 8 0: Colo, Czolom, Czole, Czoło, Czołu, Czuło, Czelo, Czolowie
# Zla kolejność.

Kazda
& Kazda 12 0: Kazia, Kaida, Kazka, Mazda, Kajda, Jazda, Gazda, Ka zda, Ka-zda, Każda, Każdą, Karda
# Prawidłowa i naturalna podpowiedź na pozycji 10.

Kazdy
& Kazdy 10 0: Kaidy, Mazdy, Kajdy, Jazdy, Gazdy, Każdy, Azdyk, Kandy, Kardy, Kazby
# Prawidłowa i naturalna podpowiedź na pozycji 6.

Mozna
& Mozna 13 0: Monza, Moza, Mona, Moszna, Pozna, Dozna, Mo zna, Mo-zna, Można, Możną, Moona, Morna, Mowna
# Prawidłowa i naturalna podpowiedź na pozycji 9.

Zla
& Zla 13 0: Za, La, Zola, Zela, Zula, Ala, Zia, Dla, Ula, Bla, Ila, Ola, Ela
# Brak prawidłowej podpowiedzi na liście.

Wieza
& Wieza 15 0: Wiena, Wiera, Wisza, Pieza, Wi eza, Wi-eza, Wieża, Wieżą, Więżą, Ziewa, Wiza, Wiesza, Wiedza, Wiewa, Witza
# Prawidłowa i naturalna podpowiedź na pozycji 7. Brakuje też Wiąza (Dopełniacz słowa Wiąz, gatunek drzewa, drzewo takiego gatunku).

Koldra
& Koldra 6 0: Kozdra, Kołdra, Kołdrą, Kol dra, Kol-dra, Kolendra

Saczy
& Saczy 15 0: Sycza, Saczyn, Siczy, Soczy, Raczy, Saszy, Paczy, Kaczy, Daczy, Baczy, Sachy, Haczy, Sączy, Osaczy, Sraczy
# Prawidłowa i naturalna podpowiedz na pozycji 13! Brakuje tez pewnych opcji, jak Samczy, czy Smaczny.

Zloz
& Zloz 4 0: Aloz, Złóż, Zlot, OZZL

Zloto
& Zloto 13 0: Iloto, Ploto, Floto, Kloto, Zlotu, Złoto, Złotu, Zlot, Zeloto, Zlotom, Zloty, Zlot o, Lotto

Wspólnym mianownikiem tych problemów jest: Słowo rozpoczynające się z dużej litery (słowa rozpoczynające się z małej litery mają prawidłową lub lepszą kolejność), oraz prawidłowe słowo ma polski litery diakrytyczne, a startowe słowo ma tą literę zamienioną na jedną bez znaku diakrytycznego.

Wydaje mi się że metryka odległości jest źle sformułowana i ma dwa problemy: