Библиотека дефисов: что означает "вектор переносов"?

Библиотека дефисов, кажется, очень популярный и бесплатный способ использовать переносы в вашем приложении.

Что означает вектор переноса?

Я запускаю пример, прикрепленный к исходному коду библиотеки. Пример вывода:

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 устарел).

Другие вопросы по тегам