Летом 2019 года к нам обратилась компания "Мидас" с запросом на перевод технической справки к программному комплексу для расчёта и проектирования строительных конструкций MIDAS IT. Объём документации — более двух тысяч переводческих страниц. Язык технической справки — однотипный, достаточно сухой, с большим количеством терминов и устойчивых оборотов. Поэтому мы предложили построить собственный кастомный движок и выполнить полную постредактуру МП редакторами-людьми.
Мы получили в работу три файла документации: два кратких руководства в формате Word и подробную техническую справку в формате RoboHelp. Теперь предстояло разобраться, с чего начать.
Начинать обучение кастомного движка необходимо с 15 тысяч сегментов.
Дело в том, что кастомный движок нельзя купить и построить сразу, — для этого требуется первоначальный корпус текстов объёмом как минимум в 15 тысяч сегментов. Заказчик предоставил в наше распоряжение уже имеющиеся у него материалы: оригинал и перевод справки и руководства, — из которых мы составили память переводов и получили первые 8 тысяч сегментов для обучения. Два кратких руководства в формате Word как раз могли обеспечить нас недостающими 7 тысячами сегментов, и мы решили использовать на первом этапе движок-дженерик.
В аналитических отчетах для пары английский/русский лидировал на то время Yandex, и он действительно показал хорошие результаты на тестовых переводах. Мы выполнили перевод документов, прогнав их через движок-дженерик Yandex в его платной версии, которая обеспечивает конфиденциальность, и подключили к работе двух редакторов МП.
К началу проекта в нашем распоряжении был обширный глоссарий объёмом около 2500 слов и словосочетаний. Тем не менее, работа предстояла большая. Движок-дженерик не попадает в терминологию и не соблюдает её. Порядок слов точно повторяет порядок слов оригинала, и перевод всегда отличается дословностью и буквальностью.
Оригинал | Машинный перевод | Постредактура МП |
Elastic boundary elements are used to define the stiffness of adjoining structures or foundations. | Эластичные граничные элементы используются для определения жёсткости прилегающих конструкций или фундаментов. | Для определения жёсткости прилегающих конструкций или фундаментов применяются упругие граничные элементы. |
They [functions] offer excellent facilities and productivity for the modeling and analysis of complex, large-scale structures. | Они предлагают отличные возможности и производительность для моделирования и анализа сложных крупномасштабных структур. | С их помощью удобно и просто производить расчёты и моделировать составные конструкции большого размера. |
The sign convention for truss element forces is shown in Figure 1.3. | Соглашение о знаке для сил элемента фермы показано на рисунке 1.3. | Условные обозначения усилий в ферменном элементе приведены на Рис. 1.3. |
Перед редактором МП стоит сложная задача. Современные нейронные движки переводят достаточно гладко, не путают падежи и не сбиваются в рамках одного связного предложения. Тем не менее, нетрудно заметить, что каждое слово текста на языке-источнике точно соответствует наиболее частотному переводу в тексте на целевом языке. Поэтому редакторам МП предстояло не только проверить и исправить терминологию, но и изменить каждое предложение таким образом, чтобы оно соответствовало грамматическим и стилистическим нормам целевого, в нашем случае — русского, языка. Например, поставить главную информацию в конец предложения или заменить существительные на глаголы.
Сразу признаемся, что результат получился противоречивым.
Тщательность такой работы особенно важна при построении собственного машинного движка, потому что отредактированный текст отправляется в обучение, и от его качества зависит, чему научится ваш движок и как он будет переводить дальше. А на втором этапе проекта мы как раз применили кастомный движок Globalese: интегрировали его в наш кат-инструмент и обучили на имеющемся корпусе текстов. После этого движок выполнил перевод около 1700 переводческих страниц файлов html основной технической справки. И сразу признаемся, что результат получился достаточно противоречивым.
С одной стороны, наш кастомный движок чётко переводил все частотные термины, встречающиеся в предыдущем, отредактированном корпусе текстов. Он также перенял многие стилистические и лексические особенности наших редакторов. Например, слово same он стал переводить как "аналогичный": аналогичная функция, аналогичный подход и т.д., — вместо предсказуемого машинного "та же" или "тот же". Или типичный машинный перевод "обычно" вводного слова generally он стал заменять на более изысканное "как правило". С другой стороны, движок совершенно не справился с переводом словосочетаний, сокращений, аббревиатур и новых терминов, хотя это было в целом предсказуемо. Приведём несколько примеров:
Оригинал | Машинный перевод | Постредактура МП |
story | сказка, история | этаж |
plane stress | давление на самолёт | плоское напряжённое состояние |
load dir. | нагрузка dir. | направление нагрузки |
ECS | ECS | система координат конечного элемента |
Jacobian matrix | матрица Якоба | матрица Якоби |
infinite element | бесконечный элемент | элемент бесконечной границы |
Править пришлось достаточно много ещё и по той причине, что техническая справка содержала больше коротких предложений или даже словосочетаний, которые машина всегда переводит хуже, чем более длинные предложения. Или, вернее, на коротких предложениях и словосочетаниях неловкости нейронного движка, даже предобученного, особенно хорошо видны. Поэтому для выполнения второго этапа работ нам потребовалось около двух недель и уже шесть редакторов МП. После завершения постредактуры мы отправили готовую память переводов в обучение и получили движок с 48 тысячами сегментов. И следующий перевод, выполненный им, обладал значительно более высокой терминологической точностью, бережным отношением к исходнику и разнообразием конструкций:
Оригинал | Машинный перевод | Постредактура МП |
Free field element takes degree of freedom for displacement in all x, y and z direction of ECS. | Элемент свободного поля принимает степень свободы для перемещения во всех направлениях x, y и z в системе координат элемента. | Элемент свободного поля принимает степень свободы, чтобы перемещаться во всех направлениях осей x, y и z в системе координат конечного элемента. |
Imaginary mid-node is created at the point (a1=b1, a2=b2) and mapping function is considered. | Воображаемый серединный узел создаётся в точке (а1=б1, а2=б2), при этом учитывается функция отображения. | В точке (а1=б1, а2=б2) создаётся промежуточный узел, и при этом учитывается функция отображения. |
Assuming that water and vapor are only existed in void of soil, it [soil component] can be expressed as follows: | Если предположить, что вода и пар существуют только в пустоте грунта, то они могут быть выражены следующим образом: | Если предположить, что вода и пар существуют только в пустотах грунта, то он может быть выражен следующим образом: |
В целом мы остались довольны тем результатом, который получили после второго этапа обучения движка. Ему по-прежнему требуется много внимания со стороны редакторов МП, но уже сейчас отчётливо видно, какой потенциал заложен в машине для совершенствования и роста. Мы вполне можем представить, насколько точным и интересным будет перевод, выполненный кастомным движком, если его база обучения превысит 100 и более тысяч сегментов. При условии, что работа ведётся с постоянным привлечением редакторов МП в пределах одной узкой тематики (например, как в нашем случае, расчёт и проектирование строительных конструкций), то можно с уверенностью сказать, что движок-дженерик никогда не достигнет той же степени точности и грамотности, какой достигает кастомный движок.
Поэтому для нас ответ на вопрос достаточно прост: если в вашем распоряжении нет достаточного корпуса текстов, то лучше использовать движок-дженерик; если память переводов достигла необходимой нижней отметки в 15 тысяч сегментов и будет неуклонно расти, смело начинайте обучение своего движка. Несмотря на значительные трудности в самом начале пути, по прошествии некоторого времени вы будете вознаграждены.