Библиотека дефисов: что означает "вектор переносов"?
Библиотека дефисов, кажется, очень популярный и бесплатный способ использовать переносы в вашем приложении.
Что означает вектор переноса?
Я запускаю пример, прикрепленный к исходному коду библиотеки. Пример вывода:
hibernate // input word
030412000 // output hyphenation vector
hi=ber=nate // hyphen points
- hi=bernate
- hiber=nate
Нечетные числа в векторе указывают точки переноса. Но что все эти значения означают?
1 ответ
Ласло Немет подробно описывает алгоритм в документации OpenOffice.
В библиотеке используется алгоритм, разработанный Фрэнком М. Лянгом ("Перечень слов в Com-Pu-ter"): всем буквам в диграммах, триграммах и длинных шаблонах присваиваются числовые значения, указывающие, что это "обычный". 'место (нечетное число) или' необычное 'место (четное число) для дефиса. Чем выше число, тем больше значение - шаблон почти никогда не будет разбит на большее четное число и почти всегда на большее нечетное число. Числовые последовательности статистически определены на корпусе слов с предварительным переносом.
Обратите внимание, что цифры предназначены для позиций между двумя символами. Лучшее обозначение было бы
h i b e r n a t e
0 3 0 4 1 2 0 0 (0)
(где последний 0
устарел).