lubyagin / hyphen-ru Goto Github PK
View Code? Open in Web Editor NEWThis project forked from gsnoff/hyphen-ru
Russian hyphenation patterns for LibreOffice/OpenOffice.org
This project forked from gsnoff/hyphen-ru
Russian hyphenation patterns for LibreOffice/OpenOffice.org
Комментарии к выпуску новых таблиц переносов 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]>.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.