Skip to content

Spellchecker issues #21

@baryluk

Description

@baryluk

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:

  • Odległość a do ż na przykład wygląda na 2, a powinna być 1.
  • Odległość z do ż na przykład wygląda na 2, a powinna być mniej niż 1 (0.5?), a co najwyżej 1.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions