Программа ёфикации русских текстов

"Нужна ли русскому языку буква "Ё"?" - вопрос, страсти вокруг которого кипят, по-видимому, со времён её изобретения Карамзиным (или Дашковой?). Я далёк от экстремизма обоих направлений в этом вопросе, но склоняюсь к тому, что буква эта полезна, а иногда и необходима, так как ведёт к повышению внятности и шумоустойчивости русской письменности. А посему представляю вам свою программу "Yo" ("Ё"). Выглядит её основное окно примерно так:

Скриншот программы Yo

"Yo" предназначена для грамматически корректной замены буквы "е" на "ё" в русских текстах ("ёфикации"), а также проверки правильности уже расставленных "ё". Полностью решить эту задачу без участия человека она, разумеется, не может, поэтому работает интерактивно, в сомнительных случаях обращаясь за помощью к вам.

"Yo" работает с текстами в кодировке CP-1251 и, в первую очередь, в формате "Plain text". Существует также возможность читать и записывать файлы в формате "Rich text" (RTF). Однако этот режим протестирован довольно поверхностно, поэтому могут быть проблемы.

Как ёфицировать текст за 5 минут (очень краткая справка)

  1. Скачайте архивы с программой и словарём;
  2. Распакуйте эти архивы в какой-нибудь каталог;
  3. Запустите yo.exe;
  4. Перетащите мышкой в окно программы текст, предназначенный для ёфикации;
  5. Нажмите Ctrl-F9;
  6. В спорных случаях программа будет спрашивать вас, менять ли "е" на "ё". Нажимайте "2", если вы согласны, и "1" - если нет;
  7. Нажмите F2 и сохраните ёфицированный файл под нужным именем.
Если вам этой информации недостаточно - читайте ниже

Более подробное описание

Итак, для работы вы должны скачать саму программу (архив, ~400K) и один из словарей:

Кроме того, вам можете скачать маленький примерный словарь словосочетаний yo_combi.dat, который используется в режиме "Анализ словосочетаний" (см. ниже). Программа будет работать и без него, однако он, по мысли автора, может повысить качество ёфикации.

Авторы словарей пытались, с одной стороны, учесть все возможные варианты написания, а с другой - не отступить от правил современной русской орфографии. Однако всего предусмотреть невозможно, особенно применительно к стихам, к текстам с диалектизмами, вульгаризмами, устаревшими словами, и т.п. Кроме того, разумеется, в словарях могут быть ошибки и лакуны. Поэтому обработанные программой тексты не следует рассматривать как тексты, гарантированно не содержащие ошибок в расстановке "е/ё". Если вы хотите получить текст, близкий к идеалу (вообще говоря, недостижимому) в смысле ёфикации, то включайте опцию "Всегда подтверждать замену" и в сомнительных случаях справляйтесь в словарях - например, на сайте www.gramota.ru (хотя и это не всегда помогает).

Замечу также, что словари не нужно рассматривать в качестве нормативных. Сомнения в существовании варианта слова с "ё" иногда решались в его пользу (то есть оно заносилось в словарь со знаком "?"). Таким образом, то, что программа предлагает вам выбрать один из вариантов написания, может не означать, что оба они одинаково грамотны!

Смысл некоторых пунктов меню

"Редактировать"

"Ёфикация"

"Опции"

О словарях

Словарь слов ("основной словарь", или ОС, или просто "словарь") - это упорядоченный по алфавиту (при этом "е" и "ё" считаются неразличимыми) список словарных строк и комментариев. Комментарий - это произвольная строка, начинающаяся с "#", программа её игнорирует. Словарная строка - это слово с буквой "ё", состоящее из букв русского алфавита в кодировке CP-1251 (пробелы и знаки препинания не допускаются), к которому могут быть добавлены служебные символы "*" или "?". После слова может стоять знак "?", если допустимы оба варианта - как с буквой "е" так и с буквой "ё" (в этом случае программа попросит подтверждение при замене буквы "е" на "ё"). Перед словом и(или) после него может стоят метасимвол "*", который означает любое (в том числе и нулевое) количество букв. Программа сначала ищет данное слово текста среди слов ОС, не содержащих метасимвола ("словоформ"), и только затем - среди слов с метасимволом ("правил").

При модификации ОС рекомендую использовать правила крайне осторожно, так как всегда есть вероятность, что вы чего-то не учли. Например, введя в ОС правило "берём*" и имея в виду слова "берём" и "берёмся", вы, безо всякого на то основания, сообщите программе, что правильно писать "берёменная" :) Поэтому, если у вас есть хотя бы минимальные сомнения - используйте словоформы.

Начиная с версии 0.91 в программу введён режим "Анализ словосочетаний" и соответствующий ему "Словарь словосочетаний" (СС). Словосочетание - это группа из более одного и не более трёх слов (т.е. последовательностей букв русского алфавита), разделённых небуквенными символами (т.е. любыми текстовыми символами, кроме русских букв) и, быть может, ими начинающаяся или оканчивающаяся (см. примеры в файле yo_combi.dat). Словосочетания в СС тоже должны быть упорядочены по алфавиту. Обратите внимание на то, что дефис - тоже небуквенный символ, поэтому, например, вопреки правилам русской грамматики, слово "всё-таки", с точки зрения программы, является словосочетанием.

В словосочетании допустим метасимвол "\0", заменяющий любую последовательность цифр.

Если программа нашла в тексте слово, требующее запроса на замену, но это слово входит в словосочетание, присутствующее в СС, то запроса не происходит, а буквы "ё/е" в слове расставляются буквально так, как в соответствующей строке СС. В случае, когда слово входит в несколько словосочетаний, приоритет имеют более длинное, а из одинаковых по длине - то, в котором слово стоит ближе к началу. Например, если в СС присутствуют строки "обо всём" и "всем на свете", то в тексте "забыв обо всем на свете" замены "ё" на "е" в слове "все" не произойдёт.

В данный момент с программой поставляется примерный, почти пустой СС yo_combi.dat и предполагается, что пользователи, по мере необходимости, будут заполнять его сами.

По умолчанию программа использует основной словарь yo.dat и пустой словарь словосочетаний. Для задания других словарей нужно воcпользоваться командой меню "Загрузить словарь" или "Загрузить словарь словосочетаний".

О регистре слов в словарях

Начиная с версии программы 0.935 в ОС допускается использование слов с первой буквой в верхнем регистре. При этом словарь упорядочивается согласно следующему порядку букв: "АаБб...Е(=Ё)е(=ё)...Яя". Словарная строка, написанная с использованием заглавной буквы, относится только к словам в тексте, первая буква которых тоже большая. Так, строка "Алёша" будет относиться только к словам "Алёша", "АЛЕША" и т.д. (но не "алёша"), тогда как строке "алёша" будут соответствовать любой регистр букв. Программа ищет в ОС сначало слово с заглавной буквой, а если не находит его, то с прописной.

В СС допустимы буквы обоих регистров в любой позиции. При этом, в отличие от ОС. если словосочетание написано с использованием заглавных букв, то в тексте ему соответсвует строка, написанная буквально так же.

О русских фамилиях

Нормы написания фамилий, вообще говоря, гораздо более размыты, чем в случае нарицательных имён. Поэтому при дополнениях и изменениях большого словаря, начиная с версии 1.3, русские фамилии и производные от них почти всегда имеют знак запроса "?". Дело в том, что, скажем, фамилии Ж.И. Алфёрова и Е.И. Пугачёва пишутся через "ё", но никто не поручится, что не существуют вариантов написания этих же фамилий через Е. Исключения могут касаться только известных иностранных фамилий (например, "Гёдель") и популярных русских, алтернативное написание которых кажется мне весьма сомнительным (например, "Семёнов"). Если вас не устраивает подобная ситуация, вы всегда можете использовать кнопки "Всегда Е/Ё" в окне запроса.

Редактор словарей

Не предполагается, что вы будете часто нуждаться в редакторе словарей, поэтому опишу его очень кратко. Редактор словарей вызывается нажатием клавиши F4. Он состоит из "окна словаря" (вверху или слева) и "окна (добавляемых) слов" (внизу или справа). В редакторе вы можете:

Команда "Создать формы слова" может быть полезна при массированной вставке новых слов в словарь. Она работает, если в рабочем каталоге программы присутствует файл morphs.dat. Файл описывает правила генерации косвенных форм слова из основной (существительного или прилагательного именительного падежа единственного числа, инфинитива глагола). О формате файла не рассказываю - тот, кому понадобится его редактировать, разберётся сам. Для генерации форм слова следует:

  1. Подвести курсор к нужному слову в "окне слов";
  2. Нажать Ctrl-Insert;
  3. Выбрать тип слова из выпадающего списка;
  4. Отредактировать созданные словоформы (среди них могут быть лишние или несуществующие!);
  5. Нажать кнопку "Принять";

История изменения программы

Основные словари и история их изменения

СловарьВерсияКоличество слов (правил)КомментарииСписок изменений относительно предыдущей версии
yo.dat 1.46 4338 (920) Компиляция В. Иванова  
yo2.dat 1.00 59459 Переведённая в формат Yo словарная база для скриптов Е. Миньковского (см. ниже)  
yo2.dat 1.01 59482 Небольшие изменений относительно версии 1.00 diff_yo2_101.dat
yo2_12.dat 1.2 85560 Объединение предыдущего словаря и слов на "ё" из "Толково-словообразовательного словаря русского языка" Т.Ф. Ефремовой diff_yo2_12.dat
yo2_127.dat 1.27 87187 Последняя версия yo2_12*.dat, не содержащая заглавных букв diff_yo2_127.dat
yo2_13.dat 1.3 117283 Начат процесс изменения первой буквы имён собственных на заглавную.
Добавлены примерно 30 тысяч производных от русских фамилий с буквой "ё".
diff_yo2_13.dat

Известные проблемы

Cтраница программы Yo

Последнюю версию программы, а также комментарии к ней, вы можете найти здесь: http://vgiv.narod.ru/yo.html.

С автором вы можете связаться по адресу: vgivanov (at) mail (dot) ru

Другие ресурсы по ёфикации

Владимир Иванов, май 2007.