Главное Авторские колонки Вакансии Образование
😼
Выбор
редакции
19 161 18 В избр. Сохранено
Авторизуйтесь
Вход с паролем

Как быстро привести текст в божеский вид

Основатель Школы траблшутеров Олег Брагинский о том, как они вместе с учеником за 24 дня разработали инструмент для автоматической коррекции текстов.

Как-то внимательность помогла сдать экзамен по бухгалтерии группе юристов. Первым пошёл на экзекуцию, неся на животе рюкзак с маломесячной дочкой. Преподаватель думала, что ребёнок станет точкой давления на жалость, но этого не потребовалось. Упражнение заняло пять минут, шедшие после справлялись быстрее.

Декан нашёл виновника «выдающихся» знаний, и меня вызвали «на ковёр». При условии действительности полученных оценок рассказал секрет: на третьем вопросе стал очевиден недочёт компьютерной программы — перед верным ответом стоял лишний пробел. Заметить помогла привычка выравнивать текст ассемблера.

Вторая встреча с непечатаемым знаком настигла через 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 часа в сутки, включая время исследований) создали пресловутую «кнопку», приводящую в экстаз редакторов СМИ и педантичных читателей. Динамика размера «Корректора» отражает попытки оптимизации кода для ускорения работы макроса:

Не зря говорят: «Желание и труд всё перетрут». Чего и вам искренне желаем!

Читайте также:

Бесплатные курсы программирования от самых лучших ВУЗов мира: подборка

Где открыть бизнес и как сфокусировать мобильную рекламу

Подписчик по 49 копеек: миф или реальность?

Как приманить сильных сотрудников

0
В избр. Сохранено
Авторизуйтесь
Вход с паролем