Dělení slov

  • Toto téma obsahuje celkem 10 odpovědí. Do diskuze (2 diskutující) se naposledy zapojil uživatel otula a poslední změna proběhla před 11 roky a 11 měsíci.
Aktuálně je na stránce zobrazeno 11 příspěvků - 1. až 11. (celkem z 11)
  • Autor
    Příspěvky
  • #148
    otula
    Účastník

    Po dlouhé době si dovolím opět položit dotaz:Dá se něco dělat s dělením slov, které je prakticky nefunkční? Tento dotaz nemyslím jako útok na vývojáře, ale zajímalo by mne, jak se mohu dopracovat k alespoň trochu lepšímu dělení slov. Pokud tvořím nějaký časopis, tak musím cca 99 % slov dělit ručně. Pak stačí trochu pohnout s nějakým obrázkem a mohu začít znovu. Je to frustrující  😮Ovšem trochu by se hodilo i do vývojářů kopnout, neboť jsem se díval, že hyphenation slovník se používá stejný, jako například v OpenOffice, kde ovšem dělení slov funguje o něco lépe (nikoliv dobře, ale lépe, než ve Scribu).Příklad: slovo "uplynulém" Scribus nerozdělí vůbec, OOo ho rozdělí uply-nulém. (Správně by asi mělo být uply-nu-lém).

    #582
    otula
    Účastník

    Teď doma jsem ještě vyzkoušel, že problém na straně Scribu je vyřešen ve verzi 1.5.0, která se již chová stejně, jako OpenOffice.org (určitě by nebylo na škodu, aby vývojáři tuto opravu backportovali i do řady 1.4 – Michale, nechtělo by se vám je s tím otravovat?  🙂 )Pak mi ovšem zbývá stále ten problém, že i tak dělení slov nefunguje úplně dobře, což už není sice problém Scribu, ale dokázal by mi někdo poradit, jak ten slovník dělení slov vylepšit? Respektive, jaká je syntaxe toho slovníku? Nikde to nemohu najít.

    #583
    otula
    Účastník

    Tak si nakonec sám odpovím  🙂Jednak jsem ještě teď zjistil, že v Linuxu funguje dělení správně i v řadě 1.4 (ráno jsem problém řešil ve Windows, tam to z nějakého důvodu fungovalo jaksi hůř) a především jsem se nakonec dovtípil, jak asi ten slovník funguje:Jsou v něm totiž "prapodivné" kombinace písmen, číslic, teček...No a ta čísla jsou na místech, kde se mají slova dělit, předpokládám, že jejich výše představuje jakousi váhu (i když mi není jasné, nač vůbec váhu dělat). Tečky by snad mohly být zástupné znaky (asi jako v TeXu, jelikož právě z TeXu tento slovník pochází). Každopádně když jsem do slovníku doplnil nu3lé, tak se mi slovo uplynulém dělilo i na uplynu-lém. Také jsem zkusil slovník uložit v kódování UTF-8 (a první řádek přepsal na UTF-8) a rovněž s tím nebyl problém. Snad tohleto pomůže někomu dalšímu, koho by trápil stejný problém.  😛A pokud mi někdo vysvětlí tu syntaxi slovníku přesně, vadit mi to nebude  🙂

    #584
    Anonymní uživatel
    Host

    http://sourceforge.net/projects/hunspell/files/Hyphen/documentation/ ale určite toho bude viac, iba to neviem nájsť – samého by ma to zaujímalo, aj v slovenskom slovníku sú chyby.

    #585
    otula
    Účastník

    Julo, díky za odkaz. Moc mi angličtina nejde, ale přece jen jsem při zběžném prolétnutí dokumentu narazil na docela důležitou informaci ohledně těch čísel:

    A single subregion must contain exactly one hyphenationpoint (indicated by an odd number in Liang’ssyntax). There may also be explicit non-breakablepoints (indicated by even numbers) in the subregion,and any breakable or non-breakable points out of thesubregion.

    Tedy, pokud to správně chápu, dělítko představují pouze lichá čísla, zatímco sudá jsou na místech, kde je dělení slov zakázáno.EDIT:A ještě jsem našel, díky informaci, že je to práce Franka Lianga, tuto práci: http://www.tug.org/docs/liang/liang-thesis.pdf - je to věda, to dělení slov  🙂

    #589
    Michal Hlavatý
    Účastník

    K Windows verzi: Nevíte v čem je problém? Sám to nemůžu otestovat a na Linuxu to běží dobře. Není to způsobené počtem po sobě následujících dělení nebo nastavením jiného jazyku výchozího stylu odstavce/znaku?Co se týče problematiky dělení slov, tak ta jde rozdělit do tří kategorií:

    Vlastní databáze pro dělení. Scribus (ani LibreOffice) si neporadí s odbornými, ale ani trochu vzácnějšími pojmy. Naštěstí to jde napravit v Nastavení > Dělení slov. Určitě se ale zeptám vývojářů, zda by do řady 1.4.X nešla dát novější databáze pro dělení.

  • Chybějící nastavení. K lepšímu výsledku by jistě pomohl minimální počet znaků, které mají zůstat po dělení, zakázat dělení na posledním řádku sloupce/stránky. Viz bug 0009848.
  • Vlastní algoritmus pro dělení slov. Další slabou stránkou je způsob, kterým Scribus dělí/nedělí slova na řádcích. Scribus prostě jen dělí/nedělí řádek podle nastavených pravidel a neoptimalizuje výsledek pro celý odstavec - např. nedělením slova v prvním dělitelém řádku, ale až v následujícím + dalším by vedlo k lepšímu výsledku - a to Scribus neumí. Také neumí dělit v oblasti spojovníku, pomlčky atd. Viz diskuze tady a tady.
#591
otula
Účastník

V čem je problém ve Win verzi, nemám tušení. Ale funkčnost viz přílohu. Hmmm, takže ne viz přílohu – nějak nelze přílohu uložit – ale viz zde: http://otakar.4fan.cz/tmp/scribus-hyphenation-win-versus-lin.pngOhledně té databáze dělení si myslím, že obě verze používají totožnou databázi (ale ověřit to zde nemohu, neboť tady teď nemám aktuální svn verze)EDIT: Asi mne z toho trefí. Když jsem do win verze doplnil to své nu3lé začalo to fungovat. I mezi uply-nulém. Když jsem nu3lé smazal, funkčnost (ly-nu) zůstala. Nějak se to vzpamatovalo po tom šoku z přeuložení slovníku.

#593
Michal Hlavatý
Účastník

Scribus 1.4.0 RC6 na Ubuntu dělí slovo jako na obr. vpravo. Skoro to vypadá, že dělení slov nefunguje vůbec. Stejný vzhled (jako je obr. vlevo) dosáhnu, když dělení slov vypnu.Můžu poprosit další uživatele Windows, aby se to pokusili zreprodukovat?Ještě bych také potřeboval vědět přesné informace o instalaci/OS: Je to instalace z .exe balíku na Windows XP-32bit?

#594
otula
Účastník

Tak jako na tom obrázku vpravo to dělí každý program založený na slovníku od Pavla Janíka, tedy například Scribus nebo OOo. Mimochodem jsem teď doma ověřil, že hyph_cs.dic je zcela identický v řadě 1.4 i 1.5 Scribu. Chtěl jsem napsat, že stejným problémem kvůli slovníku bude trpět i LaTeX, ale než jsem to napsal, zkusil jsem to a dočkal se šoku: http://otakar.4fan.cz/tmp/latex-hyph.pngPřitom i v LaTeXových dokumentech musím často doplňovat ruční dělení, ale zrovna tohle slovo tam funguje zcela správně. A zkusil jsem porovnat slovníky a jsou taktéž zcela identické (pouze na konci je přidáno pár slov pro matematiku od Karla Horáka). Tož to je záhada.Co se toho vzhledu vlevo týká, jak jsem psal, už se to "vzpamatovalo". Odmítalo mi to předtím rozdělit slova, v nichž byla diakritika. Je to standardní instalace z exe instalačky ve Win2k

#649
otula
Účastník

Dovolím si probudit starou diskuzi, neboť jsme o tomto problému nyní trochu pokecali v diskuzi na abclinuxu.cz a vypadá to, že by se mohlo jednat o špatnou implementaci dělení slov ve Scribu. V tomto příspěvku je srovnání, jak dělí za použití stejného slovníku slova LaTeX a Scribus, zdroj je přiložen o příspěvek výše.Chtěl bych tímto poprosit Michala: pokud byste měl čas a chuť, tak jestli byste nechtěl zkusit dát vědět vývojářům (a kdyžtak předem mé výplody raději otestujte u sebe, jestli neplácám kraviny 🙂 )

#648
Michal Hlavatý
Účastník

Podívám se na to a nahlásím. Díky.

Aktuálně je na stránce zobrazeno 11 příspěvků - 1. až 11. (celkem z 11)
  • Pro reakci na toto téma se musíte přihlásit.