редакции Выбор
Как быстро привести текст в божеский вид
Как-то внимательность помогла сдать экзамен по бухгалтерии группе юристов. Первым пошёл на экзекуцию, неся на животе рюкзак с маломесячной дочкой. Преподаватель думала, что ребёнок станет точкой давления на жалость, но этого не потребовалось. Упражнение заняло пять минут, шедшие после справлялись быстрее.
Декан нашёл виновника «выдающихся» знаний, и меня вызвали «на ковёр». При условии действительности полученных оценок рассказал секрет: на третьем вопросе стал очевиден недочёт компьютерной программы — перед верным ответом стоял лишний пробел. Заметить помогла привычка выравнивать текст ассемблера.
Вторая встреча с непечатаемым знаком настигла через 15 лет корпоративной жизни. Оказалось, лишний пробел в договорах потребительского кредитования приводил к ежегодному расходу дополнительных $80’000. Такова сила масштаба и цена невнимательности к рядовым мелочам. Кто бы знал, что пустота имеет «вес»?
Совершенствуя стилистику нормативной
базы, в 2013 году наткнулся на потрясающий документ «РИА Новости»: 20 страниц
доходчивой инфографики наглядно и придирчиво демонстрировали неочевидные правила
оформления текста. Начались доказательные бои с методическими подразделениями и
канцелярией.
Появилась «дурацкая» привычка «доводить» документ до ума, прежде чем дать ответ по существу. Искоренял двойные пробелы, восстанавливал «справедливое» тире, следил за корректностью написания цен. Полюбил неразрывные пробелы у коротких слов, стал козырять верными видами кавычек: «ёлочек и „лапок“».
Научился ставить «ё», отбивать тройки цифр в числах, запомнил правила сокращений. Бесило только одно: приходилось постоянно объяснять коллегам, как и что следует писать. Нередко подкатывало отчаяние, а в мечтах зрела идея о «кнопке», нажав которую, получал бы идеальный документ.
Три недели назад на занятиях Школы траблшутеров по Excel знаниями блеснул новый ученик — студент 3-го курса Факультета вычислительной математики и кибернетики МГУ Максим Мухтаров. Договорились написать группу макросов «Корректор» для исправления очевидных ошибок и выдачи гипотез, о которых молчит Word.
Создавая инструмент «Типограф» начали с простых замен:
1) двойных пробелов на одинарные
2) недопустимых удвоений знаков препинания
3) дефисов и сверхдлинных тире, обрамлённых пробелами, на корректные аналоги
и удалений:
4) непечатаемых знаков перед концом строк
5) пробелов в качестве последних символов в ячейках таблиц
6) мягких переносов слов, произраставших из «древних» источников.
Кнопке «Разместить»
(слева внизу формы) придали функциональность, которой Word лишён начисто: аккуратно разместить панель макроса рядом с окном
редактирования файла, чтобы не заслонять текст:
Занялись сокращениями, пишущимися с неразрывным пробелом: «т. е.», «т. п.»,
«т. д.»., «т. к.», «т. ч.», «н. э.». Продолжили единицами
измерений, после которых точка противопоказана:
И сокращениями, в
которых она обязательна:
Учли требование неразрывности 1-3 буквенных предлогов с последующим словом:
И аналогичное правило для союзов:
Междометиями решили не
заморачиваться — редки в деловых текстах, а вот на вкладку «Формулы» вынесли
правила написания арифметических действий, операций сравнения и указания времени:
Особыми посчитали случаи, когда:
1) текст содержит неявные гиперссылки, выглядящие как обычный стиль
2) слова состоят из смешанных букв — латиница и кириллица, нераспознаваемые Word
3) необходимо
посчитать количество глав документа или приблизительное время чтения:
Слова смешанных букв массово обнаружились в переменных исследований, наткнулись на неочевидное символоподобие: написание английского слова party через кириллическое «г». Поняли, что Word не позволяет быстро дать «язык» блоку текста и создали выделенные кнопки для английского и русского.
После коррекции очевидных и бесспорных небрежностей увлеклись гипотезами:
1) кавычки, знаки валют, проценты
2) лишние переводы строк, групповые табуляции
3) многоточие
как символ, а не цепочка трёх знаков:
Не смогли остановиться и перешли
к более сложным случаям. Знаете, как сочетаются восклицательный и вопросительный
знаки? Второй всегда идёт первым: «?!», а дружат с многоточием так: «!..» и
«?..»:
Гипотезы, работающие с вероятностью ниже 50%, решили не отбрасывать — перенесли
на вкладку «Слабые», чтобы продолжить исследование и уточнить правила. Здесь же
разместили разделение на триады четырёхзначных чисел, начинающихся единицей и
двойкой — чаще оказываются годами:
Пройдясь по старым
документам, с удивлением узнали, что многие содержат численные помарки.
Количество неточностей доходило до сотни на многостраничный файл. Решили
разработать инструмент «Ищейка», чтобы в потоковом режиме собирать ошибки для
анализа или массово править автоматически:
Начали со сбора неточностей
силами самого Word: спрашивали программу, какие слова неизвестны.
После обработки 100 документов «родился» файл на 32’000 сводных ошибок:
Стали править очевидные упущения
вроде слова «ее». Программа проверки орфографии Microsoft предлагает варианты: «ею», «ещё», «еде», «еже», «еле», хотя не верен ни
один. Так родился «Ёкатор», исправляющий ошибки забывчивости «ё» поштучно или
сразу все:
Столкнулись с полезным сопутствующим эффектом: исправленные документы ожили красными и голубыми подчёркиваниями. Выяснили, что Word имеет ограничение на количество отмечаемых спорных фрагментов текста, но так увлеклись добавлением слов, содержащих «ё», что уткнулись в новую границу.
Оказалось, есть предел количеству кнопок на формах макросов. Пришлось написать процедуру «собственных» элементов управления, мимикрируя под стиль Microsoft. Смогли обеспечить коррекцию 73% ошибок на девяти вкладках. Начали переходить от фрагментов текста к словоформам, но об этом напишем в другой раз.
Разобрались, что Word медленно работает с гиперссылками, — поняли, что ошибки следует искать не с
начала документа, а после оглавления — на нём программа жутко «тормозит». Очередным шагом стала
попытка «Ищейки» массово оценивать количество ошибок в файлах и править в
автономном режиме на уровне папок:
Так, мы за 24 дня (работая вдвоём по 4 часа в сутки, включая время
исследований) создали пресловутую «кнопку», приводящую в экстаз редакторов СМИ
и педантичных читателей. Динамика размера «Корректора» отражает попытки
оптимизации кода для ускорения работы макроса:
Не зря говорят: «Желание и труд всё перетрут». Чего и вам искренне желаем!
Читайте также:
Бесплатные курсы программирования от самых лучших ВУЗов мира: подборка
Где открыть бизнес и как сфокусировать мобильную рекламу