"Нужна ли русскому языку буква "Ё"?" - вопрос, страсти вокруг которого кипят, по-видимому, со времён её изобретения Карамзиным (или Дашковой?). Я далёк от экстремизма обоих направлений в этом вопросе, но склоняюсь к тому, что буква эта полезна, а иногда и необходима, так как ведёт к повышению внятности и шумоустойчивости русской письменности. А посему представляю вам свою программу "Yo" ("Ё"). Выглядит её основное окно примерно так:
"Yo" предназначена для грамматически корректной замены буквы "е" на "ё" в русских текстах ("ёфикации"), а также проверки правильности уже расставленных "ё". Полностью решить эту задачу без участия человека она, разумеется, не может, поэтому работает интерактивно, в сомнительных случаях обращаясь за помощью к вам.
"Yo" работает с текстами в кодировке CP-1251 и, в первую очередь, в формате "Plain text". Существует также возможность читать и записывать файлы в формате "Rich text" (RTF). Однако этот режим протестирован довольно поверхностно, поэтому могут быть проблемы.
yo.exe
;
Итак, для работы вы должны скачать саму программу (архив, ~400K) и один из словарей:
yo2_12x.dat
(архив, ~220K) - текущая версия большого словаря, полученного добавлением к словарной базе для скриптов Е. Миньковского (см. ниже) форм слов на "ё" согласно "Толково-словообразовательному словарю русского языка" Т.Ф. Ефремовой (М.: "Русский язык", 2000). Содержит примерно 87000 слов, в том числе некоторое количество устаревших, диалектных и просторечных. Словарь регулярно пополняется, его последняя версия - 1.26 от 08.04.2007. Рекомендую вам использовать именно его.
yo.dat
(архив, ~15K) - скомпилированный мною словарь, который включает примерно 5000 слов и правил, позволяющий расставлять "ё" примерно в 15000 слов. Не содержит имён собственных. В данный момент словарь находится в латентном состоянии - он не пополняется, в нём только исправляются ошибки.
Кроме того, вам можете скачать маленький примерный словарь словосочетаний yo_combi.dat
, который используется в режиме "Анализ словосочетаний" (см. ниже). Программа будет работать и без него, однако он, по мысли автора, может повысить качество ёфикации.
Авторы словарей пытались, с одной стороны, учесть все возможные варианты написания, а с другой - не отступить от правил современной русской орфографии. Однако всего предусмотреть невозможно, особенно применительно к стихам, к текстам с диалектизмами, вульгаризмами, устаревшими словами, и т.п. Кроме того, разумеется, в словарях могут быть ошибки и лакуны. Поэтому обработанные программой тексты не следует рассматривать как тексты, гарантированно не содержащие ошибок в расстановке "е/ё". Если вы хотите получить текст, близкий к идеалу (вообще говоря, недостижимому) в смысле ёфикации, то включайте опцию "Всегда подтверждать замену" и в сомнительных случаях справляйтесь в словарях - например, на сайте www.gramota.ru (хотя и это не всегда помогает).
Замечу также, что словари не нужно рассматривать в качестве нормативных. Сомнения в существовании варианта слова с "ё" иногда решались в его пользу (то есть оно заносилось в словарь со знаком "?"). Таким образом, то, что программа предлагает вам выбрать один из вариантов написания, может не означать, что оба они одинаково грамотны!
Словарь слов ("основной словарь", или ОС, или просто "словарь") - это упорядоченный по алфавиту (при этом "е" и "ё" считаются неразличимыми) список словарных строк и комментариев. Комментарий - это произвольная строка, начинающаяся с При модификации ОС рекомендую использовать правила крайне осторожно, так как всегда есть вероятность, что вы чего-то не учли. Например, введя в ОС правило Начиная с версии 0.91 в программу введён режим "Анализ словосочетаний" и соответствующий ему
"Словарь словосочетаний" (СС). Словосочетание - это группа из более одного и не более трёх слов (т.е. последовательностей букв русского алфавита), разделённых небуквенными символами (т.е. любыми текстовыми символами, кроме русских букв) и, быть может, ими начинающаяся или оканчивающаяся (см. примеры в файле В словосочетании допустим метасимвол "\0", заменяющий любую последовательность цифр.
Если программа нашла в тексте слово, требующее запроса на замену, но это слово входит в словосочетание, присутствующее в СС, то запроса не происходит, а буквы "ё/е" в слове расставляются буквально так, как в соответствующей строке СС. В случае, когда слово входит в несколько словосочетаний, приоритет имеют более длинное, а из одинаковых по длине - то, в котором слово стоит ближе к началу. Например, если в СС присутствуют строки В данный момент с программой поставляется примерный, почти пустой СС По умолчанию программа использует основной словарь Начиная с версии программы 0.935 в ОС допускается использование слов с первой буквой в верхнем регистре. При этом словарь упорядочивается согласно следующему порядку букв: В СС допустимы буквы обоих регистров в любой позиции. При этом, в отличие от ОС. если словосочетание написано с использованием заглавных букв, то в тексте ему соответсвует строка, написанная буквально так же.
Не предполагается, что вы будете часто нуждаться в редакторе словарей, поэтому опишу его очень кратко.
Редактор словарей вызывается нажатием клавиши F4. Он состоит из "окна словаря" (вверху или слева) и
"окна (добавляемых) слов" (внизу или справа).
В редакторе вы можете:
Команда "Создать формы слова" может быть полезна при массированной вставке новых слов в словарь.
Она работает, если в рабочем каталоге программы присутствует файл
Смысл некоторых пунктов меню
"Редактировать"
"Ёфикация"
"Опции"
<BINARY ...>
и до конца файла;
О словарях
"#"
, программа её игнорирует. Словарная строка - это слово с буквой "ё", состоящее из букв русского алфавита в кодировке CP-1251 (пробелы и знаки препинания не допускаются), к которому могут быть добавлены служебные
символы "*"
или "?"
. После слова может стоять знак "?"
, если допустимы оба варианта -
как с буквой "е" так и с буквой "ё" (в этом случае программа попросит подтверждение при замене буквы "е" на "ё"). Перед словом и(или) после него может стоят метасимвол "*"
, который означает любое (в том числе и нулевое) количество букв. Программа сначала ищет данное слово текста среди слов ОС, не содержащих метасимвола
("словоформ"), и только затем - среди слов с метасимволом ("правил").
"берём*"
и имея в виду слова "берём" и "берёмся", вы, безо всякого на то основания, сообщите программе, что правильно писать "берёменная" :) Поэтому, если у вас есть хотя бы минимальные сомнения - используйте словоформы.
yo_combi.dat
).
Словосочетания в СС тоже должны быть упорядочены по алфавиту. Обратите внимание на то, что дефис - тоже небуквенный символ, поэтому, например, вопреки правилам русской грамматики, слово "всё-таки", с точки зрения программы, является словосочетанием.
"обо всём"
и "всем на свете"
, то в тексте "забыв обо всем на свете" замены "ё" на "е" в слове "все" не произойдёт.
yo_combi.dat
и предполагается, что пользователи, по мере необходимости, будут заполнять его сами.
yo.dat
и пустой словарь словосочетаний. Для задания других словарей нужно воcпользоваться командой меню "Загрузить словарь" или "Загрузить словарь словосочетаний".
О регистре слов в словарях
"АаБб...Е(=Ё)е(=ё)...Яя"
. Словарная строка, написанная с использованием заглавной буквы, относится только к словам в тексте, первая буква которых тоже большая. Так, строка "Алёша"
будет относиться только к словам "Алёша", "АЛЕША" и т.д. (но не "алёша"), тогда как строке "алёша"
будут соответствовать любой регистр букв. Программа ищет в ОС сначало слово с заглавной буквой, а если не находит его, то с прописной.
О русских фамилиях
Нормы написания фамилий, вообще говоря, гораздо более размыты, чем в случае нарицательных имён.
Поэтому при дополнениях и изменениях большого словаря, начиная с версии 1.3, русские фамилии и производные от них
почти всегда имеют знак запроса "?"
. Дело в том, что, скажем, фамилии Ж.И. Алфёрова и Е.И. Пугачёва пишутся через "ё", но никто не поручится, что не существуют вариантов написания этих же фамилий через Е. Исключения могут касаться только известных иностранных фамилий (например, "Гёдель") и популярных русских, алтернативное написание которых кажется мне весьма сомнительным (например, "Семёнов"). Если вас не устраивает подобная ситуация, вы всегда можете использовать кнопки "Всегда Е/Ё" в окне запроса.
Редактор словарей
insert.log
, в который заносятся все слова, заносимые из "окна слов" в "окно словаря";
morphs.dat
. Файл описывает правила генерации
косвенных форм слова из основной (существительного или прилагательного именительного падежа единственного
числа, инфинитива глагола). О формате файла не рассказываю - тот, кому понадобится его редактировать,
разберётся сам.
Для генерации форм слова следует:
История изменения программы
0.936 beta1
- по просьбам трудящихся добавлена возможность видеть окно запроса в основном окне (режим "Встроенная форма запроса", пока в режиме тестирования);
- убран режим "Плавающая форма запроса";
- вроде бы, наконец, исправлен глюк с двумя полосами прокрутки при включённых темах XP;
- теперь генератор словоформ понимает вопросительные знаки;
- исправлены некоторые баги редактора словарей (и добавлены новые);
beta2
- индивидуальная настройка горячих клавиш окна запроса (щелчком правой клавиши на нужной кнопке в режиме "Встроенная форма запроса");
- восстановлен откат в старом окне запроса;
- иконки в меню;
- поиск по регулярным выражениям;
- мелкие поправки;
- программа понимает метасимвол "\0" в СС;
- при поиске в СС символы табуляции (#009) и неразрывного пробела (#160) приравниваются к пробелу;
- в окне замены можно выбрать вариант "Всегда (заменять на) Е/Ё" (см.);
- исправляются ё в неправильных позициях ("бёреза",
"трёхвёдёрный");
- исправлена ошибка, по которой иногда не срабатывали клавиши F9 и Ctrl-F9;
- команда "Обнулить статистику" (Shift-F9) перекрашивает помеченные буквы в чёрный цвет;
- команда "Сохранить текст как" всегда предлагает имя последнего файла;
- программа запоминает каталог, в котором в последний раз находились текстовые файлы;
- появились опции "Ширина контекста" и "Количество строк промотки";
- предположительно ошибочные слова при запросе выделяются красным фоном;
- изменён вид статистики замены;
- режим "Только интерактивные замены";
- возможность вертикального разделения окон в редакторе;
- список последних файлов;
- ускорен поиск в больших текстах;
- модифицирован поиск в словарях;
- пересмотрен смысл заглавных букв в ОС;
- команда "Сбор новых Ё";
- сбор детальной статистики;
- модификации редактора словарей;
- другие мелкие изменения;
- начиная с этой версии используется компилятор Delphi 7;
- добавлена возможность прерывания некоторых долгих операций при помощи Esc и индикаторы прогресса в них;
- добавлена автоматическая установка режима "Словарь словосочетаний" при загрузке соответствующего словаря в редактор;
- статистика ёфикации теперь обнуляется только по запросу (Shift-F10);
- при переносе из окна слов в окно словаря строка преобразуется в нижний регистр;
- сменены некоторые горячие клавиши;
- убрана возможность менять цвет шрифта в главном окне;
- декоративные изменения;
- добавлена возможность копировать в редактор словарей выделенного
текста из окна запроса (Ctrl-I);
- в редактор словарей добавлена команда "Удалить дубли из словаря" (Ctrl-D);
- расширены возможности поиска ошибок по Ctrl-E в редакторе словарей;
- шрифт некоторых побочных окон изменён на Courier New размера 10;
- декоративные изменения;
- продолжена ловля багов;
- упрощена обработка тэга <BINARY ...>
в режиме "Формат "FictionBook"";
- продолжена ловля багов;
- удалена опция командной строки "-d"
, теперь словари загружаются из меню;
- изменён формат ini-файла;
- теперь программа запоминает имя последнего загруженного словаря;
- сделан режим "Плавающая форма запроса";
- из программы удалена "краткая справка" - теперь она находится в этом тексте.
- при запросе на замену текст в окне проматывается на две строки ниже
выделенного слова;
- исправлена ошибка при открытии текстов в Yo при помощи пункта контекстного меню "Open with";
- добавлена опция "Формат "FictionBook"" (пока - с минимальной работоспособностью);
- словарь теперь загружается командным параметром -d<dicname>
,
где <dicname>
- имя словаря;
- декоративные изменения;
- переключение режима WordWrap теперь работает правильно;
- добавлена команда "Закрыть";
- теперь замена "ё" на "е" всегда требует подтверждения;
Основные словари и история их изменения
Словарь | Версия | Количество слов (правил) | Комментарии | Список изменений относительно предыдущей версии |
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 |
Последнюю версию программы, а также комментарии к ней, вы можете найти здесь: http://vgiv.narod.ru/yo.html.
С автором вы можете связаться по адресу: vgivanov (at) mail (dot) ru
Другие ресурсы по ёфикации
Владимир Иванов, май 2007.