Algoritmus dělení slov - Hyphenation algorithm
A algoritmus dělení slov je sada pravidel, zejména ta kodifikovaná pro implementaci do počítačového programu, která rozhoduje, ve kterých bodech může být slovo rozděleno na dva řádky pomocí pomlčka. Může o tom rozhodnout například algoritmus dělení slov obžaloba lze rozdělit jako obžaloba nebo im-broskev ale ne utrpení.
Jedním z důvodů složitosti pravidel dělení slov je to, že různé „dialekty“ angličtiny mají tendenci se lišit v dělení slov[Citace je zapotřebí ]: americká angličtina má tendenci pracovat na zvuku, ale Britská angličtina má sklon hledat původ slova a poté znít. Existuje také velké množství výjimek, což věci dále komplikuje.
Některá pravidla lze najít v dokumentu Major Keary's: „On Hyphenation - Anarchy of Pedantry.“[1] Mezi algoritmické přístupy k dělení slov, implementované v Sázecí systém TeX je široce používán. Je důkladně dokumentován v prvních dvou svazcích Počítače a sazba a v disertační práci Franklina Marka Lianga.[2] Cílem práce Lianga bylo získat algoritmus co nejpřesnější, jak prakticky dokázal, a udržovat malý slovník výjimek.
V původních vzorcích dělení slov pro TeX pro americkou angličtinu obsahuje seznam výjimek pouze 14 slov.[3]
V TeXu
Porty algoritmu dělení teXu jsou k dispozici jako knihovny pro několik programovacích jazyků, včetně Haskell, JavaScript, Perl, PostScript, Krajta, Rubín, C# a TeX lze pomocí příkazu zobrazit pomlčky v protokolu showhyfeny
.
v Latex, uživatelé mohou přidat opravu dělení slov pomocí:
pomlčka {slova}
The dělení slov
příkaz deklaruje povolené body dělení, ve kterých jsou slova seznamem slov oddělených mezerami, ve kterých je každý bod dělení označen -
charakter. Například,
dělení slov {Fortran er-go-no-mic}
prohlašuje, že v současné práci by „Fortran“ neměl být pomlčován a že pokud musí být pomlčka „ergonomická“, bude to v jednom z označených bodů.[4]
Existuje však několik omezení. Například akcie dělení slov
příkaz přijímá pouze ASCII ve výchozím nastavení písmena, takže ji nelze použít k opravě dělení slov u slov se znaky jinými než ASCII (jako A, E, C), které jsou velmi časté téměř ve všech jazycích kromě angličtiny. Jednoduchá řešení však existují.[5][6]
Reference
- ^ Major Keary. „O dělení slov - anarchie pěchoty“. Aktualizace PC. Austrálie: Melbourne PC User Group. Archivovány od originál 10. března 2005. Citováno 6. října 2005.
- ^ Liang, Franklin Mark (srpen 1983), „Word Hy-phen-ation by Com-puter“, Disertační práce, Stanfordská Univerzita oddělení Počítačová věda, STAN-CS-83-977
- ^ "Obyčejné tabulky dělení slov TeX". Citováno 23. června 2009.
- ^ " dělení slov". Hypertextová pomoc s LaTeXem. Yale.
- ^ „Slova s diakritikou nejsou rozdělena na pomlčky“. TeX FAQ.
- ^ "Jak funguje dělení slov v TeXu?". Často kladené dotazy.
- „Vzory dělení TeX“. Skupina uživatelů TeX (TUG).
- „TeX-pomlčka“. Komplexní síť archivů Perl. Citováno 18. října 2005.
- "spojovník textu". RubyForge. Archivovány od originál 12. dubna 2016. Citováno 18. října 2005.
- „Knuth-Liangovo dělení slov pro jazyk PostScript“. anastigmatix.net. Citováno 6. října 2005.
- „TeXHyphenator-J: TeX Hyphenator in Java“. Citováno 14. září 2006.
- „Dělení slov v Pythonu pomocí algoritmu Franka Lianga“. Citováno 10. července 2007.
- „Hyphenator.js-Hyphenation in JavaScript, using Frank Liang's algorithm“. Citováno 28. července 2015.
- "Tex :: Hyphen - Perl implementace pravidel dělení TeX82".
- "phpSyllable - implementace PHP algoritmu Franka Lianga". 2020-01-04.
- „Hyphenator - implementace JavaScriptu algoritmu Franka Lianga“. 2019-03-27.
- „NHyphenator - verze C # algoritmu dělení slov Knuth-Liang“. 2019-04-12.