PMKrol / CC-SJP

Polish dictionary for mobile readers based on SJP.pl, Wikipedia and Wiktionary
17 stars 1 forks source link

Brak odmian w PocketBook #1

Closed PMKrol closed 1 year ago

PMKrol commented 1 year ago

Rozmowa z https://swiatczytnikow.pl/slownik-jezyka-polskiego-dla-kindle-nowa-wersja-luty-2023/comment-page-1/#comment-1387117

wrzucam wersję testową dic na zabałaganionemiejsce. Wersja z wulgarnie wyciętym html i dodatkowymi polami (powiązane, przykłady itd.), więc może to wyglądać bardzo źle – niestety nie mam jak sprawdzić, więc zdaję się na Was ;) Jutro, jeśli będzie trzeba będę się brał za to ponownie.

Łukaszu, ja z tym skryptem w perlu walczyłem i walczyłem, w końcu zapchał mi ram i swap. Straciłem cierpliwość i napisałem skrypt generujący od razu xdxf, który oczywiście też już jest dostępny na stronie.

Przepraszam, jeżeli wprowadziłem w błąd swoim opisem o „konwerterze” (miałem na myśl converter.exe). Nawet nie próbowałem uruchomić tego perlowego skryptu, od razu zacząłem kombinować nad swoim skryptem do przetworzenia txt na xdxf do nakarmienia *.exe. Z tego co zauważyłem converter ignoruje/obcina nagłówki xdxf i poza brakiem informacji o nazwie/językach, po wrzuceniu słowników (mój i Twój) do PB widzi tylko jeden słownik w kategorii „other”. Zrzuty: https://imgur.com/a/zzz7SIC (Twój, mój i podgląd wpisu dla „pulardy” z mojego xdxf).

Dla zainteresowanych, wersja PocketBook raportuje „Total words: 186330”

Widzę, że moja wersja wygląda naprawdę źle bez html, więc przywróciłem najważniejsze znaczniki. Inaczej converter się wykrzacza. Nowa wersja do pobrania ze strony.

Obcinanie nagłówków to bardzo ważna informacja, trzeba będzie poszukać co producent o tym sądzi, bo najwyraźniej ma inne zdanie niż autorzy standardu xdxf xD.

W Twoim kodzie nie widzę odmian, jak to działa na czytniku?

PB zdaje się ignorować odmiany, więc wywaliłem je aby nie śmiecić (w przypadku wyszukiwania słów w tekście trzeba będzie wyedytować słowo, ale PB zdaje się tak już ma). Aby nadać nazwę słownikowi trzeba wrzucić nazwę w tag full_name np.: Creative Commons SJP ({last_edited}) (całą sekcję meta_info ze standardu xdxf można wyrzucić, i tak converter to olewa). https://imgur.com/a/KNHGk4h

Nie, no ja się na to nie godzę! Boję się, że na rzeczy jest np. to: https://github.com/Markismus/LanguageFilesPocketbookConverter/blob/main/pl/morphems.txt. Tu (https://www.mobileread.com/forums/showpost.php?p=2723531&postcount=4) i tu (https://www.mobileread.com/forums/showpost.php?p=3964092&postcount=9) trochę informacji. Mogę spróbować wygenerować taki plik Morphems, ale wolałbym najpierw wiedzieć, że to zadzała. Można też spróbować zebrać te końcówki z zasad odmian. Dzięki za hint z full_name. ma być CC-SJP 2012-12-12 ZAMIAST czy wewnątrz?

to full_name zauważyłem analizując skrypt perl tam nagłówek to odpowiednio tagi: xml xdxf (niby z atrybutami lang_from lang_to, ale to nie działa) fullname CC-SJP YYY-mm-dd /fullname description date (chociaż tej też nigdzie nie widać)/date (opis, niewidoczny) /description i dalej już definicje (bez lexicon! to też ignoruje) /xdxf

https://www.mobileread.com/forums/showpost.php?p=1155148&postcount=32 Czy mógłbyś zbudować słownik z kilkoma hasłami i spróbować do pliku morphems.txt dorzucić prawdziwe polskie odmiany i zobaczyć jak to działa?

trop morfem okazał się strzałem w 10: wcześniej zauważyłem, że przy zaznaczeniu słowa „ubóstwa” w tekście słownik podpowiadał definicję „ubóstwiana”. Po dopisaniu poniższej linijki do pliku morphems wskazało poprawną definicję: ^?twa=.two [daszek, znak zapytania, „twa”, znak równości, kropka, „two”] -> rozpisałem gdyby formatowanie ucięło ;)

Ekstra! Spróbuję wygenerować morfy na podstawie tego co mam w bazach. Ale to możliwe, że już nie dziś.

madalinski commented 1 year ago

stworzyłem tak na szybko plik z morfami, który zdaje się działać poprawnie https://madalinski.it/pb/morphems.txt

PMKrol commented 1 year ago

są tu błędy:

^?'e{{poradniapwn|id=15042|hasło=odmieniamy=.
(...)
^?ej[http://isip.sejm.gov.pl/servlet/search?todo=open&id=wmp19480780692=.a
(...)
^?snowi{{poradniapwn|id=986|hasło==.

Mogę też spróbować coś wygenerować. Podobno za długie morfy są obcinane xD (nie pamiętam gdzie to przeczytałem).

madalinski commented 1 year ago

Na pewno są błędy, bo morfy tworzone są przy okazji tworzenia xdxf'a, chociaż i tak jestem zadowolony z tego jak (już) działa. Wygląda jakby definicje wleciały do zmiennej z odmianami, może jest jakiś błąd w tabulacji *.txt (coś nie poszło z pythonowymi f-stringami?). chłopiec chłopca, chłopcach, chłopcami, chłopce, chłopcem, chłopcom, chłopcu, chłopcy, chłopcy{{poradniapwn|id=10726|hasło=chłopak, chłopcze, chłopców, chłopiec Edit: wywaliłem '{{' i '//' i posortowałem

PMKrol commented 1 year ago

Jeszcze to:

^?'owania=.'owanie
^?'owaniach=.'owanie
^?'owaniami=.'owanie
^?'owanie=.'owanie
^?'owaniem=.'owanie
^?'owaniom=.'owanie
^?'owaniowi=.'owanie
^?'owaniu=.'owanie
^?'owań=.'owanie

^?czas&nbs;rzyszły&nbs;rosty(ełniący=.otrafić

^?io=.'

Ale trzeba przyznać - robota pierwszoklaśna i chyba całkiem szybko!

Wrzuciłem wersję z Twoimi morfami, sprawdzisz? Co ciekawe nowa wersja jest lżejsza o 9 MB.

madalinski commented 1 year ago

teraz w obu widzę te same błędy:

🙈

PMKrol commented 1 year ago

Ale to chyba jesteśmy ofiarami tej konwencji morphsów... Chyba, że... Bo ja na początku skupiałem się na tej składni z / (co mnie potwornie zniechęcało). Ty podszedłeś do tego w stylu 1:1 - co wydało mi się w sumie genialnym pomysłem, ale może autorzy mieli na myśli jednak coś sensownego. Ja niestety nie mogę porobić testów, więc decyduj: uznajemy to za dość satysfakcjonujące czy popróbujesz z różnymi rozwiązaniami morphów? Ja ze swojej strony mogę spróbować wygenerować morphy pod względem popularności (np. -ą -> -zacja powinna występować rzadziej niż -ą -> a). To też raczej półśrodek, ale zawsze... Dużo do przemyślenia, programowania pewnie trochę mniej.

madalinski commented 1 year ago

1:1 nie działało w ogóle (za długa lista i coverter nie ogarniał), udostępniłem już i tak skróconą, ale regexy są problemowe. Chyba lepiej będzie gdy będzie mniej - te najpopularniejsze/uniwersalne. Będę kombinował, ale na razie dobrze jest jak jest (domyślny słownik EN/PL albo EN/EN jeszcze mniej ogarniał).

PMKrol commented 1 year ago

A spróbuj czegoś takiego: Najpierw ą=a/zacja, Potem ą=zacja/a. Nie pamiętam składni, ale wiesz o co mi chodzi, mam nadzieję ;)

madalinski commented 1 year ago

Stwierdziłem, że najlepsza będzie mrówcza robota, w tej chwili mam taką listę:

^?ce=.cy ^?cym=.cy ^?dze=.dz ^?e=.a ^?ego=.y ^?ki=.k ^?ków=.k ^?na=.ny ^?ne=.ny ^?nym=.ny ^?ty=.ta ^?ów=. ^?ów=.owa ^?ą=.a ^?ędzy=.ądz

jeżeli coś jest głupie, ale działa... PXL_20230225_084339169 MP

PMKrol commented 1 year ago

To nie głupie tylko strasznie pracochłonne. Pewnie lepiej by było przeanalizować koniugacje w j. polskim i na ich podstawie to zbudować.

Jak generowałeś poprzednio morphy? To: ^?ą-miastem=.a-miasto? Niepokoi mnie ekonomistą -> ekonomizacja, bo wg tego pliku tekstowego nie powinien przetłumaczyć -stą na -zacja.

madalinski commented 1 year ago

Poprzednia lista tworzona była na podstawie pętli porównującej wyraz/hasło z odmianami, i odejmującej ostatnią literę z wyrazu, tak długo aż nie znalazła tego (skróconego) wyrazu w odmianie. Teraz ekonomistą/a jest poprawnie rozpoznawany, przy ponad 20k morfów w liście z automatu nie wiadomo co z czym porównywało (może byłoby lepiej gdyby zawsze zostawała choć jedna litera po prawej stronie, zamiast kropki).

PMKrol commented 1 year ago

Wstępna macierz morfów wygenerowana na podstawie różnic pomiędzy słowem a odmianą. Nieposortowane jeszcze. morphs_array.txt

  ["ek"]=>
  array(48) {
    ["ka"]=>
    int(3245)
    ["kiem"]=>
    int(3676)
    ["kowi"]=>
    int(3661)
    ["ku"]=>
    int(3673)
    ["kach"]=>
    int(3661)
    ["kami"]=>
    int(3663)
    ["ki"]=>
    int(3568)
    ["kom"]=>
    int(3662)
    ["ków"]=>
    int(3461)
    ["kowie"]=>
    int(1013)
    ["ki,"]=>
    int(3)
    ["kach,"]=>
    int(37)
    ["kowie/animki"]=>
    int(1)
    ["ków/animki"]=>
    int(1)
    ["ce"]=>
    int(200)
    ["ko"]=>
    int(200)
    ["ką"]=>
    int(200)
    ["kę"]=>
    int(200)
    ["ku,"]=>
    int(7)
    ["kach."]=>
    int(9)
    ["kami."]=>
    int(9)
    ["ki."]=>
    int(9)
    ["kom."]=>
    int(9)
    ["ków."]=>
    int(9)
    ["kowie,"]=>
    int(1)
    ["cy"]=>
    int(6)
    ["ów"]=>
    int(1)
    ["ka/daszku"]=>
    int(1)
    ["u"]=>
    int(1)
    ["ach"]=>
    int(1)
    ["lom"]=>
    int(1)
    ["kowie/"]=>
    int(1)
    ["ki{{poradniapwn|hasło"]=>
    int(1)
    ["owi"]=>
    int(1)
    ["kiem,"]=>
    int(2)
    ["ki}}"]=>
    int(1)
    ["ęk"]=>
    int(2)
    ["ękach"]=>
    int(2)
    ["ękami"]=>
    int(2)
    ["ęki"]=>
    int(2)
    ["ękiem"]=>
    int(2)
    ["ękom"]=>
    int(2)
    ["ękowi"]=>
    int(2)
    ["ęku"]=>
    int(2)
    ["ęków"]=>
    int(2)
    ["ka,"]=>
    int(1)
    ["ku{{poradniapwn|hasło=miasto"]=>
    int(1)
    ["kowie."]=>
    int(1)
  }

trzeba to czytać tak: jeśli znalazłeś słowo z końcówką -ek, poszukaj tego słowa z końcówką -ka, -kiem itd. Wierzę, że jak zrobić ^?ek=.ka/.kiem, to będzie po kolei szukał tych końcówek, więc kolejność wg popularności tu się sprawdzi. =>int(_popularność). Od razu widać skąd mogły być problemy typu kilometromiejsce, np przez ["ku{{poradniapwn|hasło=miasto"]=>

madalinski commented 1 year ago

Zdaje się, że odwrotnie - po lewej odmieniec, prawej słowo właściwe (właściwa końcówka), czyli dla powyższego przykładu:

^?ka=.ek ^?kiem=.ek np. człowieka/człowiekiem -> człowiek Update: w zasadzie dla tego przykładu samo .k byłoby poprawniejsze

madalinski commented 1 year ago

Jeszcze jedna kwestia - sporo haseł z SJP to słowa odmienione/w liczbie mnogiej/zdrobnienia 🫣 Właśnie znalazłem taki przykład: żołnierza -> żołnierzyk

PMKrol commented 1 year ago

Wg mnie kolejność jest jak należy

           foreach($forms as $form){
                $a_str = $form;
                $b_str = $word;

                if(strpbrk($a_str, "(){}[-],;='\"/?><.&#")!==false){
                        continue; //usuwa słowa z ^ tymi znakami
                }

                $a = mb_str_split($a_str);
                $b = mb_str_split($b_str);

                $len = min(count($a), count($b));

                $pos = -1;

                for($i = 0; $i < $len; $i++){
                        if($a[$i] != $b[$i]){
                                $pos = $i;
                                break;
                        }
                }

                if($pos > 2){    //przynajmniej różnica od 3 znaku, bo robił się problem z przedrostkami. Te trzeba zebrać z internetu, bo generowanie ich jest bez sensu.
                        $a_end = mb_substr($a_str, $pos);
                        $b_end = mb_substr($b_str, $pos);

                        @$morphs_arr[$a_end][$b_end]++;
                }
            }

Ale, niestety, może to być wina niekonsekwencji SJP. Myślałem kiedyś, żeby powyrzucać słowa, które są w odmianach innych słów, ale to wywaliłoby część słów pożądanych...

Usunąłem konwersje z popularnością <10. morphs_array.txt

PMKrol commented 1 year ago

Zobacz to: morphs.txt

Jeszcze trzeba by było skleić:

^?łaby=.ć/.nąć/.ny/.nie/.jący/.ony/.enie/.nia/.cie/.ty/.sz/.na/.j/.ący
^?łabym=.ć/.nąć/.ny/.nie/.jący/.ony/.enie/.nia/.cie/.ty/.sz/.na/.j/.ący
^?łabyś=.ć/.nąć/.ny/.nie/.jący/.ony/.enie/.nia/.cie/.ty/.sz/.na/.j/.ący
^?łam=.ć/.nąć/.ny/.nie/.jący/.ony/.enie/.nia/.cie/.ty/.sz/.na/.j/.ący
^?łaś=.ć/.nąć/.ny/.nie/.jący/.ony/.enie/.nia/.cie/.ty/.sz/.na/.j/.ący
^?łby=.ć/.ny/.nąć/.nie/.jący/.ony/.enie/.nia/.sz/.na/.j/.ty/.ący
^?łbym=.ć/.ny/.nąć/.nie/.jący/.ony/.enie/.nia/.sz/.na/.j/.ty/.ący
^?łbyś=.ć/.ny/.nąć/.nie/.jący/.ony/.enie/.nia/.sz/.na/.j/.ty/.ący
^?łeś=.ć/.nąć/.ny/.nie/.jący/.ony/.enie/.nia/.sz/.na/.j/.ty/.ący
^?ło=.ć/.nąć/.ny/.nie/.jący/.ony/.enie/.nia/.cie/.ty/.sz/.na/.j/.ący
^?łoby=.ć/.nąć/.ny/.nie/.jący/.ony/.enie/.nia/.cie/.ty/.sz/.na/.j/.ący
^?ły=.ć/.nąć/.ny/.nie/.jący/.ony/.enie/.nia/.cie/.ty/.eł/.na/.j/.ący
^?łyby=.ć/.nąć/.ny/.nie/.jący/.ony/.enie/.nia/.cie/.ty/.sz/.na/.j/.ący
^?łybyście=.ć/.nąć/.ny/.nie/.jący/.ony/.enie/.nia/.cie/.ty/.sz/.na/.j/.ący
^?łybyśmy=.ć/.nąć/.ny/.nie/.jący/.ony/.enie/.nia/.cie/.ty/.sz/.na/.j/.ący
^?łyście=.ć/.nąć/.ny/.nie/.jący/.ony/.enie/.nia/.cie/.ty/.sz/.na/.j/.ący
^?łyśmy=.ć/.nąć/.ny/.nie/.jący/.ony/.enie/.nia/.cie/.ty/.sz/.na/.j/.ący

do ^?łaby/^?łabym/.../^?łyśmy=.ć/.nąć/.ny/.nie/.jący/.ony/.enie/.nia/.cie/.ty/.sz/.na/.j/.ący

To już powinno być proste ;)

PMKrol commented 1 year ago

Dobra, chyba gotowe. Sprawdź proszę, ja już mam dość na dziś ;) morphs2.txt

madalinski commented 1 year ago

Zacna lista. To można nawet wyrzucić, bo póki co nie jest w ogóle używane:

%1=aąeęiouóy
%2=bcćdfghjklmnńpqrsśtvwxyzżź

(na moje to zbiór samogłosek/spółgłosek, używany odpowiednio jako 1/2 zamiast ?) Jak na razie wychwyciłem:

^?em=.o/.y/.a/.owie/.ów/.ie/.i/.u brakuje przypadków . i e na przykład: projektem wskazuje na projektodawca zamiast projekt miejscem wskazuje na miejscokilometr zamiast miejsce

PMKrol commented 1 year ago

To można nawet wyrzucić, bo póki co nie jest w ogóle używane: Racja.

z kropką to się zgadzam, e to chyba greedy preg ;) ten przypadek wpada w ^?m=.ć/.wie/.jący/.e/.ny/.nie/.ła/.nia/.ść/.j/.dzieć/.ły

madalinski commented 1 year ago

Zgodziłbym się gdyby przykład z miejscem działał, ale nie działa. Z ciekawości sprawdziłem miejscee - też nie działa, ale działa za to miejsceem . PS: po dodaniu kropki projektem jest ok. Edit: po zastanowieniu - gdyby w przypadku z m była opcja kropki, to powinno zadziałać.

PMKrol commented 1 year ago

Już. morphs3.txt Nowy słownik na (w?) zabałaganionymiejscu.

madalinski commented 1 year ago

Dla większości przypadków działa... ale znalazłem wyjątek, który niby powinien działać, ale nie działa: wynalazku -> wynalezienie Teoretycznie powinna zadziałać ta linijka: ^?ka/^?kach/^?kami/^?kom/^?kowi/^?ku/^?ków=.ek/.cy

PMKrol commented 1 year ago

cat morphs3.txt | grep ienie ^?=./.ć/.a/.o/.e/.in/.yć/.ić/.y/.ać/.eć/.cy/.ący/.enie/.ony/.jący/.i/.ny/.nie/.ieć/.ie/.ienie/.iony/.ła/.any/.sz/.wie/.ca/.ść/.ona/.em/.m/.ły/.enia ^?cie=.ć/.t/.ta/.yć/.ić/.ać/.eć/.ący/.enie/.ony/.ty/./.jący/.to/.ny/.nie/.ieć/.ść/.ienie/.iony/.ła/.any/.sz/.j/.ły/.ąca/.enia ^?my=.ć/.yć/.ić/.ać/.eć/.ący/.enie/.ony/./.jący/.ny/.nie/.ieć/.ienie/.iony/.ła/.any/.sz/.ść/.j/.ona/.ły/.enia ^?cież/^?myż=.yć/.ić/.ać/.eć/.ący/.enie/.ony/./.ć/.ieć/.ienie/.iony/.any/.ąca ^?że=.yć/.ić/.ać/.eć/.ący/.enie/.ony/./.ć/.zać/.ieć/.ienie/.iony/.c/.any/.gać/.ąca ^?ęście/^?edli/^?edliby/^?edlibyście/^?edlibyśmy/^?edliście/^?edliśmy/^?ęsie/^?ęsiecie/^?ęsiemy/^?ęsieni/^?ęsienia/^?ęsieniach/^?ęsieniami/^?ęsienie/^?ęsieniem/^?ęsieniom/^?ęsieniu/^?ęsiesz/^?ęsień/^?ęsiona/^?ęsione/^?ęsionego/^?ęsionej/^?ęsionemu/^?ęsiono/^?ęsiony/^?ęsionych/^?ęsionym/^?ęsionymi/^?ęsioną/^?ęsą/^?ęsę/^?ęsła/^?ęsłaby/^?ęsłabym/^?ęsłabyś/^?ęsłam/^?ęsłaś/^?ęsło/^?ęsłoby/^?ęsły/^?ęsłyby/^?ęsłybyście/^?ęsłybyśmy/^?ęsłyście/^?ęsłyśmy/^?ęś/^?ęścież/^?ęśli/^?ęśliby/^?ęślibyście/^?ęślibyśmy/^?ęśliście/^?ęśliśmy/^?ęśmy/^?ęśmyż/^?ęśże=.ąść ^?dł/^?dłby/^?dłbym/^?dłbyś/^?ceni/^?cenia/^?ceniach/^?ceniami/^?cenie/^?ceniem/^?ceniom/^?ceniu/^?ceń/^?ciecie/^?ciemy/^?ciesz/^?ciona/^?cione/^?cionego/^?cionej/^?cionemu/^?ciono/^?ciony/^?cionych/^?cionym/^?cionymi/^?cioną/^?tli/^?tliby/^?tlibyście/^?tlibyśmy/^?tliście/^?tliśmy/^?dli/^?dliby/^?dlibyście/^?dlibyśmy/^?dliście/^?dliśmy/^?dz/^?dzcie/^?dzcież/^?dzeni/^?dzenia/^?dzeniach/^?dzeniami/^?dzenie/^?dzeniem/^?dzeniom/^?dzeniu/^?dzeń/^?dzmy/^?dzmyż/^?dzona/^?dzone/^?dzonego/^?dzonej/^?dzonemu/^?dzono/^?dzony/^?dzonych/^?dzonym/^?dzonymi/^?dzoną/^?dzże/^?dą/^?dę/^?dnie/^?dniecie/^?dniemy/^?dniesz/^?dnij/^?dnijcie/^?dnijcież/^?dnijmy/^?dnijmyż/^?dnijże/^?dnięcia/^?dnięciach/^?dnięciami/^?dnięcie/^?dnięciem/^?dnięciom/^?dnięciu/^?dnięć/^?dną/^?dnę/^?dziona/^?dzione/^?dzionego/^?dzionej/^?dzionemu/^?dziony/^?dzionych/^?dzionym/^?dzionymi/^?dzioną/^?dła/^?dłaby/^?dłabym/^?dłabyś/^?dłam/^?dłaś/^?dłem/^?dłeś/^?dło/^?dłoby/^?dły/^?dłyby/^?dłybyście/^?dłybyśmy/^?dłyście/^?dłyśmy/^?siecie/^?siemy/^?sieni/^?sienia/^?sieniach/^?sieniami/^?sienie/^?sieniem/^?sieniom/^?sieniu/^?siesz/^?sień/^?siona/^?sione/^?sionego/^?sionej/^?sionemu/^?siono/^?siony/^?sionych/^?sionym/^?sionymi/^?sioną/^?sł/^?sła/^?słby/^?słbym/^?słbyś/^?słem/^?słeś/^?dnięto/^?dziono/^?dłszy=.ść ^?ziecie/^?ziemy/^?zieni/^?zienia/^?zieniach/^?zieniami/^?zienie/^?zieniem/^?zieniom/^?zieniu/^?ziesz/^?zień/^?ziona/^?zione/^?zionego/^?zionej/^?zionemu/^?ziono/^?ziony/^?zionych/^?zionym/^?zionymi/^?zioną/^?zł/^?zła/^?złaby/^?złabym/^?złabyś/^?złam/^?złaś/^?złby/^?złbym/^?złbyś/^?złem/^?złeś/^?zło/^?złoby/^?zły/^?złyby/^?złybyście/^?złybyśmy/^?złyście/^?złyśmy=.źć

Może pierwszy wiersz.

madalinski commented 1 year ago

Wtedy rozbicie na dwa wiersze nic by nie dało...:

^?ka/^?kach/^?kami/^?kom/^?kowi/^?ku/^?ków=.ek/.cy
^?ku=.ek/.cy

Tak, tyle wystarczyło :|

PMKrol commented 1 year ago

Nie rozumiem. Edit. Sprawdzisz jakieś inne "długie" definicje? Może jest w tym jakaś reguła.

madalinski commented 1 year ago

Przekonwertowałem plik xdxf używając listy morphs3.txt z dodatkową (nadmiarową) linijką ^?ku=.ek/.cy i słownik wskazał na wynalazek zamiast na wynalezienie Edit:

wyjątku -> wyjąwszy
zarazku -> zarazowate
kwotami -> kwotowanie
gwoździe -> gwoździk
półkami -> półkanton

może rozdzielanie slashem działa tylko za znakiem równości?

PMKrol commented 1 year ago

Sprawdź z dwiema końcówkami przed =, a ja niedługo wygeneruję wersję pojedyncza. Edit. Bez sensu. Wygeneruję od razu pojedyncze. Przecież to pewnie ma znikomy wpływ na produkt końcowy...

PMKrol commented 1 year ago

morphs4.txt - rozdzielenie nie wpłynęło na rozmiar słownika co do kB. Nowy słownik na stronie.

Trzymam kciuki.

edit. przepraszam, wpłyneło - wzrost wagi pliku o 4kB. xD

madalinski commented 1 year ago

Sprawdziłem i jak dotąd tylko na gwoździach się rozdrobniło (bo przypadków z "źdź" brak), ale po za tym - RE-WE-LA-CJA. Dzięki wielkie!

PMKrol commented 1 year ago

Też dziękuję, myślę, że korporacje mogłyby nam pozazdrościć tempa. Ale jeszcze nie skończyliśmy. Zamykam ten wątek jako rozwiązany i zapraszam do nowego. Tym razem przedrostki ^^