Автоматическая техредактура документов с использованием Python + Microsoft Word (Track Changes).
Проект помогает корректорам, редакторам и авторам быстро приводить русский текст в порядок, сохраняя все изменения для последующей проверки.
Оба скрипта предназначены для автоматической литературной и технической правки русских .docx документов.
- Исправление русской типографики (кавычки, тире, многоточия, пробелы)
- Нормализация сносок и ссылок
- Обработка процентов и больших чисел
- Умная замена
ёнае(с сохранением в именах собственных) - Расшифровка частых сокращений
- Удаление лишнего слова «Глава»
- Выделение иллюстраций
review_word.py— простой и быстрый вариант, работает напрямую через Microsoft Word с включённым Track Changes.full_review.py— продвинутая версия с более точной обработкой форматирования, логированием изменений и поддержкой таблиц.
Вместе они образуют удобный инструментарий для корректоров и редакторов русскоязычных текстов.
pip install pywin32 python-docx- Windows
- Установленный Microsoft Word (скрипты используют Word Automation через
pywin32)
# Автоматически обрабатывает первый .docx в папке
python review_word.pyСкрипт review_word.py — это автоматический корректор русского текста для Microsoft Word.
Он открывает документ, включает режим Track Changes (исправления) и выполняет набор типографических и стилистических правок, сохраняя все изменения видимыми для последующей проверки редактором.
-
Определение входного файла
- Если путь не передан через аргумент командной строки — берёт первый
.docxфайл в текущей папке. - Создаёт копию с суффиксом
_reviewed.docx.
- Если путь не передан через аргумент командной строки — берёт первый
-
Запуск Microsoft Word
- Через
win32comзапускает Word. - Открывает документ.
- Включает режим отслеживания исправлений (
TrackRevisions = True).
- Через
-
Сбор имён собственных
- Проходит по всему тексту документа.
- Собирает слова и словосочетания, начинающиеся с заглавной буквы.
- Эти данные используются позже для умной обработки буквы «ё».
-
Применяемые правки
- Замена
...→…(типографское многоточие) - Замена
[...]и[…]→<…> - Схлопывание множественных пробелов
- Удаление лишних пробелов внутри кавычек (« текст » → «текст»)
- Исправление тире:
- Диапазоны чисел → короткое тире (en-dash)
- Тире между словами → длинное тире (em-dash) с пробелами
- Удаление пробелов в больших числах (
1 000 000→1000000) - Добавление пробела перед сносками:
слово[1]→слово [1] - Замена
проценты→% - Добавление пробела перед знаком процента:
5%→5 % - Расшифровка сокращений:
и т.д.→и т. д.т.е.→то естьи пр.→и прочее
- Выделение жёлтым цветом упоминаний иллюстраций (
Илл.,Иллюстрацияи т.п.) - Удаление слова
Главав начале абзаца - Замена буквы
ёнаево всех словах, кроме имён собственных
- Замена
-
Завершение работы
- Сохраняет исправленный документ.
- Сохраняет список найденных имён собственных в отдельный текстовый файл.
- Закрывает Word.
- Выводит время выполнения.
- Работает через COM-интерфейс Microsoft Word (
pywin32). - Использует вспомогательные функции для точечных замен с сохранением форматирования (
_replace_regex_in_range,_set_char_at). - Часть правок выполняется глобальным поиском/заменой, часть — проходом по параграфам.
Вывод: Это практичный «рабочий конь» для ежедневной техредактуры русскоязычных документов в Word. Простой по структуре, но эффективный.
python review_word.py "Документ.docx"
python full_review.py --input "input.docx" --output "reviewed.docx"
Скрипт full_review.py — это продвинутая версия автоматического корректора русских текстов.
В отличие от простой версии, он работает преимущественно через библиотеку python-docx, выполняет более глубокий и гранулярный анализ, лучше сохраняет форматирование и предоставляет подробное логирование всех изменений.
-
Обработка аргументов
- Принимает путь к входному файлу (
input_path) и опционально путь к выходному (output_path). - По умолчанию сохраняет результат как
filename_edited.docx.
- Принимает путь к входному файлу (
-
Сбор имён собственных
- Проходит по всем параграфам, таблицам, колонтитулам и сноскам.
- Собирает словосочетания и слова с заглавной буквы для корректной обработки буквы «ё».
-
Основная обработка документа
- Обрабатывает каждый параграф, таблицу и ячейку.
- Применяет множество правил через регулярные выражения и точечные замены внутри
Run(с сохранением стилей).
-
Применяемые правки и функции
-
Типографика и пунктуация:
- Правильные кавычки (« »), многоточия, тире (en-dash, em-dash)
- Удаление лишних пробелов внутри и вокруг кавычек
- Нормализация пробелов и неразрывных пробелов
-
Числа и единицы:
- Преобразование чисел в слова и обратно в определённых контекстах
- Форматирование больших чисел с неразрывными пробелами
- Обработка дат, годов, возрастов
-
Сокращения и стилистика
- Расшифровка распространённых сокращений
- Замена
ё→е(с исключением имён собственных и специальных слов)
-
Визуальные и смысловые маркеры:
- Выделение курсивом определённых конструкций
- Поиск и пометка иллюстраций (
Илл.) - Удаление лишнего слова «Глава» в начале
- Флаги для ручной проверки (повторы, смешанный латиница/кириллица, стилистические стоп-слова и т.д.)
-
Проверка парных конструкций («с одной стороны / с другой», «не только / но и» и др.)
-
-
Завершение
- Сохраняет отредактированный документ.
- Создаёт файл
proper_nouns.txtсо списком имён собственных. - Выводит статистику изменений и флагов.
- Глубокая работа с
Runобъектами (разбиение, замена без потери форматирования). - Хорошее логирование каждого изменения (
logging). - Поддержка таблиц и колонтитулов.
- Более модульная и расширяемая архитектура по сравнению с
review_word.py.
Вывод: Это современная, более мощная и удобная для разработки версия корректора. Подходит для регулярного использования и дальнейшего расширения.
- review_word.py — простой и надёжный вариант, работает напрямую через Word API.
- full_review.py — более современная версия с гранулярной обработкой текста, логированием и лучшим контролем стилей.