Skip to content

rfatkiev/proofreading-rus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Инструмент для литературной и технической правки русских текстов

Автоматическая техредактура документов с использованием 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)

Использование

1. Простая версия (review_word.py)

# Автоматически обрабатывает первый .docx в папке
python review_word.py

Что делает скрипт review_word.py

Скрипт review_word.py — это автоматический корректор русского текста для Microsoft Word.

Он открывает документ, включает режим Track Changes (исправления) и выполняет набор типографических и стилистических правок, сохраняя все изменения видимыми для последующей проверки редактором.

Основной алгоритм работы

  1. Определение входного файла

    • Если путь не передан через аргумент командной строки — берёт первый .docx файл в текущей папке.
    • Создаёт копию с суффиксом _reviewed.docx.
  2. Запуск Microsoft Word

    • Через win32com запускает Word.
    • Открывает документ.
    • Включает режим отслеживания исправлений (TrackRevisions = True).
  3. Сбор имён собственных

    • Проходит по всему тексту документа.
    • Собирает слова и словосочетания, начинающиеся с заглавной буквы.
    • Эти данные используются позже для умной обработки буквы «ё».
  4. Применяемые правки

    • Замена ... (типографское многоточие)
    • Замена [...] и […]<…>
    • Схлопывание множественных пробелов
    • Удаление лишних пробелов внутри кавычек (« текст » → «текст»)
    • Исправление тире:
      • Диапазоны чисел → короткое тире (en-dash)
      • Тире между словами → длинное тире (em-dash) с пробелами
    • Удаление пробелов в больших числах (1 000 0001000000)
    • Добавление пробела перед сносками: слово[1]слово [1]
    • Замена проценты%
    • Добавление пробела перед знаком процента: 5%5 %
    • Расшифровка сокращений:
      • и т.д.и т. д.
      • т.е.то есть
      • и пр.и прочее
    • Выделение жёлтым цветом упоминаний иллюстраций (Илл., Иллюстрация и т.п.)
    • Удаление слова Глава в начале абзаца
    • Замена буквы ё на е во всех словах, кроме имён собственных
  5. Завершение работы

    • Сохраняет исправленный документ.
    • Сохраняет список найденных имён собственных в отдельный текстовый файл.
    • Закрывает Word.
    • Выводит время выполнения.

Технические особенности

  • Работает через COM-интерфейс Microsoft Word (pywin32).
  • Использует вспомогательные функции для точечных замен с сохранением форматирования (_replace_regex_in_range, _set_char_at).
  • Часть правок выполняется глобальным поиском/заменой, часть — проходом по параграфам.

Вывод: Это практичный «рабочий конь» для ежедневной техредактуры русскоязычных документов в Word. Простой по структуре, но эффективный.

С указанием файла

python review_word.py "Документ.docx"

2. Продвинутая версия (full_review.py)

python full_review.py --input "input.docx" --output "reviewed.docx"

Что делает скрипт full_review.py

Скрипт full_review.py — это продвинутая версия автоматического корректора русских текстов.

В отличие от простой версии, он работает преимущественно через библиотеку python-docx, выполняет более глубокий и гранулярный анализ, лучше сохраняет форматирование и предоставляет подробное логирование всех изменений.

Основной алгоритм работы

  1. Обработка аргументов

    • Принимает путь к входному файлу (input_path) и опционально путь к выходному (output_path).
    • По умолчанию сохраняет результат как filename_edited.docx.
  2. Сбор имён собственных

    • Проходит по всем параграфам, таблицам, колонтитулам и сноскам.
    • Собирает словосочетания и слова с заглавной буквы для корректной обработки буквы «ё».
  3. Основная обработка документа

    • Обрабатывает каждый параграф, таблицу и ячейку.
    • Применяет множество правил через регулярные выражения и точечные замены внутри Run (с сохранением стилей).
  4. Применяемые правки и функции

    • Типографика и пунктуация:

      • Правильные кавычки (« »), многоточия, тире (en-dash, em-dash)
      • Удаление лишних пробелов внутри и вокруг кавычек
      • Нормализация пробелов и неразрывных пробелов
    • Числа и единицы:

      • Преобразование чисел в слова и обратно в определённых контекстах
      • Форматирование больших чисел с неразрывными пробелами
      • Обработка дат, годов, возрастов
    • Сокращения и стилистика

      • Расшифровка распространённых сокращений
      • Замена ёе (с исключением имён собственных и специальных слов)
    • Визуальные и смысловые маркеры:

      • Выделение курсивом определённых конструкций
      • Поиск и пометка иллюстраций (Илл.)
      • Удаление лишнего слова «Глава» в начале
      • Флаги для ручной проверки (повторы, смешанный латиница/кириллица, стилистические стоп-слова и т.д.)
    • Проверка парных конструкций («с одной стороны / с другой», «не только / но и» и др.)

  5. Завершение

    • Сохраняет отредактированный документ.
    • Создаёт файл proper_nouns.txt со списком имён собственных.
    • Выводит статистику изменений и флагов.

Технические особенности

  • Глубокая работа с Run объектами (разбиение, замена без потери форматирования).
  • Хорошее логирование каждого изменения (logging).
  • Поддержка таблиц и колонтитулов.
  • Более модульная и расширяемая архитектура по сравнению с review_word.py.

Вывод: Это современная, более мощная и удобная для разработки версия корректора. Подходит для регулярного использования и дальнейшего расширения.

Что делают скрипты

  • review_word.py — простой и надёжный вариант, работает напрямую через Word API.
  • full_review.py — более современная версия с гранулярной обработкой текста, логированием и лучшим контролем стилей.

About

A Python + Microsoft Word proofreading toolkit for Russian editorial cleanup, technical normalization, and tracked-change document review.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages