Автоматизируем работу переводчика: разбиваем том на главы, каждую главу в файл

На днях возникла задача — надо было проалайнить книгу (= сделать из книги translation memory), а из доступных инструментов, которые делают автоалайнмент, на руках был только SDL Trados Studio 2021.

Я распознал через Finereader две книги по 400 страниц — одну на русском, одну на английском — скормил автоалайнеру, и оставил на ночь. Утром прихожу — он еще в раздумьях, где-то до середины дошел и в общем-то вроде как и не завис, но по ощущениям он нифига не алайнит. Ступор какой-то.

Провел эксперимент: вырезал ручками по одной главе из каждой книжки, и скормил их алайнеру — через 2 минуты он их проалайнил. Ага, значит, кошечка по имени Традос тупо поперхнулась большим объемом книжки.

Отсюда вывод, надо скармливать алайнеру книгу главами. Но как это сделать? Ручками? Но там ок. 30 глав в каждой, задолбаюсь. Тут я вспомнил, что мы недавно переводили на эту тему ролик, там этот процесс автоматизировался через Python.

Привожу здесь код на примере файла alice.txt и разделительного слова CHAPTER:

#читаем TXT-файл
with open("alice.txt", "r") as f:
    text = f.read()
#ставим разделительные символы перед найденным разделителем
    formatted_text = text.replace("CHAPTER", "=-CHAPTER")   
#режем по добавленным символам
    split_text = formatted_text.split("=-")
#убираем первый кусок, он пустой
    del split_text[0]
#каждый найденный кусок нумеруем, даем название и сохраняем в отдельный файл 
    for i in split_text:
        name = i.split("\n\n")
        form_name = name[0].replace(".", "_").replace(" ",
                                                      "_").replace("?", "")
        print(form_name)
        with open(f"./chapters/{form_name}.txt", "a+") as f:
            f.write(i)

Когда у вас в книжке 5 глав, это можно сделать и ручками. Если их по 30-50 в каждом томе — имеет смысл автоматизировать.

Подробнее см. в видео (ниже) и Google.Colab.

P.S. И такие штуки мы тоже будем обсуждать/практиковать на курсе «ИТ-перевода и автоматизации работы переводчика».