-
Notifications
You must be signed in to change notification settings - Fork 2
/
README.ruhyphal
118 lines (100 loc) · 6.67 KB
/
README.ruhyphal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
Комментарии к выпуску новых таблиц переносов ruhyphal.tex
Зачем еще одна таблица переносов для русского языка?
В настоящее время для работы в TeX с текстами на русском языке получили
распространение шесть таблиц генерации переносов, использующих в своей
основе алгоритм Франка Лянга. Эти таблицы собраны в пакет ruhyphen
Владимиром Воловичем и Вернером Лембергом и в настоящее время являются
частью стандартного дерева каталогов texmf. Это -- таблицы, созданные
Дмитрием Вулисом (ruhyphdv.tex в обозначениях пакета ruhyphen, далее
сокращенно по имени составителя -- dv), их последующая модификация
М.Воронцовой и С.Львовским (ruhyphvl.tex, vl), их более существенная
переработка, сделанная для CyrTUG (ruhyphct.tex, ct), а также две независимые
разработки, сделанные Сергеем Знаменским (ruhyphzn.tex, zn) и Андреем
Слепухиным (ruhyphas.tex, as). Совсем недавно в пакет была включена еще
одна таблица переносов (ruhyphmg.tex, mg), составленная Михаилом Гринчуком.
К сожалению, все эти таблицы далеки от совершенства. Сравнения, проведенные
на реальных текстах (один и тот же TeX'овский текст форматировался с
каждой из указанных таблиц и затем анализировался на предмет появления
ошибок и "неблагозвучностей" при переносе), показали, что все (!) таблицы
дают ошибки в переносах, причем наилучшие результаты, на первый взгляд,
получались при использовании таблиц Вулиса (dv) и ее производных (vl, ct).
Для более внимательного анализа различий таблиц были изучены файлы различий
в переносах для слов, сгенерированных из моего орфографического словаря
(ftp://scon155.phys.msu.su/pub/russian/ispell/rus-ispell.tar.gz), которые
показали, что различия носят систематический характер.
Так, таблица vl является простым расширением таблиц dv, в которой запрещены
все переносы, при которых последний слог остается без гласной (например,
без-дн), а также ряд переносов, позволяющих получить в перенесенной строке
неприличные слова. Все остальные неточности таблиц dv таблица vl просто
копирует.
В таблицах ct исправлено множество неточностей таблиц dv (добавлено,
например, множество отсутствовавших переносов, скорректирован ряд ошибок
переносов на границе приставка-корень), но все равно ошибки остались,
например: ва-ку-ум-и-ро-ва-ние, вы-с-ка-жу, древ-нее-врей-ский,
ис-ко-ре-жь-те, нео-пас-ный, од-у-ри, плац-д-ар-ме, под-ур-не-е-те, со-сн,
сра-зи-мся (знаки переноса указывают на места возможных переносов; правила
переносов смотри в сопровождающем файле hyphen.rules). При этом не все
исправления можно признать удачными (пропадает часть переносов, иногда
возникают ошибки).
Таблицы as, zn содержат заметно больше ошибок, которые при форматировании
текста средствами TeX проявляются как неудачный перенос в суффиксе или
как неправильное отделение приставки от корня. Так, в таблицах as
появляется разбиение букв ст в суффиксах (ав-тор-ст-во, акушерс-т-во,
ано-ним-нос-ти), и ряд других ошибок (антик-ри-зис-ный, вб-ли-зи,
внес-лу-жеб-ный, дву-хъ-ярус-ный, ме-жа-том-ный, оду-хот-во-рен-но,
стройп-ло-щад-ка, те-хот-де-ле, че-хос-ло-вац-кий, трех-п-ро-цент-ный,
фель-дъ-еге-рю, фут-бо-лис-ты, чис-топ-лю-ев, шерс-тя-ной). Несколько
лучшее впечатление остается от таблиц zn, хотя в них присутствует то же
надоедливое разбиение букв ст в суффиксах (ар-тис-тич-нос-тью,
из-да-тель-ст-во, стро-гос-ти, шес-тью) и ошибки (бе-стар-ная,
бо-гоп-ро-тив-ный, за-вот-де-лом, ки-но-съ-емоч-ный, ме-теос-вод-кой,
мо-но-кль, пе-ре-йден-ный, фь-ор-ды, шь-ет).
Таблицы mg отличает их малый размер (небольшое число правил переноса),
однако при этом количество ошибок в них оказывается намного больше.
Безусловно, ошибки при переносе неизбежны, тем более что строгие правила
переносов отсутствуют, а сами правила содержат исключения (например,
первый перенос в слове изу-че-ние отрывает гласную от корня, что запрещено
формальными правилами, но тем не менее считается правильным). Кроме того,
переносы должны расставляться так, чтобы разорванное слово оставалось
легко узнаваемым. Например, слова пере-оформленный, наи-важнейший,
гео-графия узнаются гораздо легче, чем формально верные в смысле переносов
слова перео-формленный, на-иважнейший, ге-ография. По этой причине некоторые
переносы лучше запретить.
Так появилась идея создать (по крайней мере для своей работы) таблицы,
содержащие возможно меньшее число ошибок. На первом этапе было решено
модифицировать таблицы Вулиса, которые являются public domain, разрешены
для модификации и, как мне показалось, содержат сравнительно немного ошибок.
Возможно, модификация таблиц Знаменского была бы более эффективной, но она
запрещена лицензией. Новая таблица была названа (в соответствии со схемой
наименования, предложенной в пакете ruhyphen) ruhyphal.tex.
На первом этапе в таблицу были включены правила, исключающие генерацию
последнего слога без гласной (типа мо-но-кль); найдены и добавлены аналогичные
правила для исключения появления первого слога без гласной (таких как шь-ет);
исключено большинство случаев появления в середине слова слогов, состоящих
из одних согласных; переписаны правила переносов слов, содержащих буквы й, ъ.
По сравнению с исходными таблицами dv было изменено (исключено или переделано)
примерно 25% правил. Был исправлен ряд ошибок, возникающих на границе
приставка-корень, и практически все ошибки при генерации окончаний.
Кроме того, из эстетических соображений добавлено правило, по которому не
могут переноситься слоги, состоящие из двух гласных без согласной (типа
ау-дитория). Сделанные исправления коснулись написания более 51 тысяч
слов.
Следующая (вторая) версия таблиц ruhyphal.tex создана с помощью программы
patgen на основе достаточно тщательно выверенного списка слов с переносами,
полученных на первом этапе. По сравнению с первым этапом, на втором
этапе в списке было скорректировано написание около 24 тысяч слов.
Последняя (настоящая) версия таблиц ruhyphal.tex также создана с помощью
программы patgen на основе расширенного списка слов (990 тысяч словоформ)
с множеством дополнений и улучшений в переносах.
Одновременно с таблицами ruhyphal.tex в пакет включена дополнительная
таблица cyryoal.tex, содержащая все существенные правила формирования
переносов в словах, содержащих букву ё. Эти таблицы генерируются с помощью
программы mkcyryo, из которых затем с помощью моего орфографического
словаря (адрес которого был указан выше) удаляются все неиспользуемые правила.
После четырех лет работы над таблицами, как мне кажется, их качество стало
лучше, чем качество остальных таблиц переноса. Однако окончательное
суждение по этому вопросу могут сделать только пользователи. Сами таблицы
в кодировке koi8-r можно найти по адресу:
ftp://scon155.phys.msu.su/pub/russian/hyphen/ruhyphal.tar.gz
Свои комментарии и пожелания вы можете направлять составителю таблиц,
Александру Лебедеву <[email protected]>.