CATNIP – еще одна CAT система для переводчиков

    Как-то давно мой знакомый T_Moor рекламировал в хабе «Я пиарюсь» мою систему для переводчиков MT2007 (статья). Данная статья — продолжение той истории.

    С выпуска в свободное плавание MT2007 прошло много времени. Сам я переводами заниматься перестал, а программа медленно устаревала, в основном технологически (написана она была на WinForms под 32-разрядные системы). И наконец наступил момент, когда все больше и больше стало появляться 64х разрядных систем, где MT2007 просто не запускался.

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

    К сожалению, времени катастрофически не хватало и новый проект развивался в темпе медленного вальса (в течение трех лет), с постоянными остановками, пока один из знакомых переводчиков не пришел к выстраданному решению по мере сил проспонсировать это дело. В результате последние полгода я по сути сидел на «зарплате» и писал и писал и писал… Catnip.

    Один из скриншотов:
    image
    Другие скриншоты можно посмотреть по ссылке, приведенной в конце статьи.

    Сейчас финансы закончились и хотя кошка еще не дописана, но уже используется в реальной работе. Скорее всего придется потихоньку сбавлять обороты, брать другие оплачиваемые задачи, но бросать я не собираюсь: слишком много труда вложено. В совокупности все это и подвигло меня написать данную статью. Ну и еще надежда, что возможные положительные отклики эмоционально подбодрят мой несколько угасший внутренний пламень.

    На данный момент это ранняя альфа версия. Некоторых функций, наличествующих в MT2007, тут НЕТ, а именно: центрального репозитория, подключаемых словарей, работы с сайтом Multitran, системы EBMT (Example-based mashine translation). Все это в ближайшее время появится. Но есть кое-что новое:

    • Поддержка большого количества файлов переводов в одном проекте.
    • Возможность подключать неограниченное количество внешних терминологических баз из предыдущих проектов с возможностью их динамически/временно отключать и снова подключать одним щелчком мышки.
    • Возможность подключать неограниченное количества баз переводов предыдущих проектов Catnip или файлов TMX и XLIF в качестве коркорданса с возможностью их динамически/временно отключать и снова подключать одним щелчком мышки.
    • Динамическая статистика о количестве файлов в проекте, предложений для перевода, процент выполненного перевода, время работы над проектом. Все это отображается как в дереве подключенных файлов, так и в списке проектов, с которыми работал переводчик.
    • Быстрый поиск слов, похожих предложений из файлов текущего проекта и коркорданса с цветовым выделением найденного.
    • Один термин может иметь несколько переводов, что при подстановке (предварительном переводе текущего предложения) выглядит в редакторе перевода как гиперссылка, нажатие на которую выдает меню с вариантами перевода. Синтаксис множественности переводов одного термина прост — варианты разделяются символом "|" (вертикальная черта).
    • Простой условный вариативный язык определения терминов. Например: ?(the|a) table означает, что данный термин считается совпавшим и для «the table» и для «a table» и для «table».
    • Мощный модуль поиска терминов в подключенных файлах. На самом деле терминами для упрощенного понимания называются любые слова, словосочетания, последовательность символов, которые встречаются в текстах несколько раз. За пару минут движок найдет все непересекающиеся повторы вплоть до предложений и переводчик может заранее задать переводы для некоторых или всех подобных терминов.
    • Возможность резки предложений и их склеивания прямо в редакторе перевода.
    • Настройка редактора перевода. Например, можно задать каким цветом выделять какие символы. К примеру английские символы могут по умолчанию иметь черный цвет, а кириллица — зеленый или любой другой.
    • Значительно улучшена замена любого текста как в оригинале так и в переводе.
    • В настройках можно выбрать варианты сплиттеров предложений, используемых на начальном этапе при анализе текста. Можно использовать сплиттер на основе регулярного выражения, в том числе настроить его на свой вкус, или же на основе NLP — Natural Language Processor. В Catnip встроен файл модели английского языка из WordNet, который в общем-то неплохо справляется и с разбивкой на предложения для других языков, например для русского. Однако, если пользователь может найти модель другого языка, то он может его споскойно подключить к Catnip.


    Ну, понятно, что есть проверка орфографии для обоих языков (оригинала и перевода) на основе известного Hunspell и еще кое-какие удобства. В принципе документация для предка Catnip’а – МТ2007 подходит и тут.

    Да, Catnip бесплатен для любого использования кем угодно. Честно говоря я просто сомневаюсь, можно ли вообще как-то на этом заработать одному разработчику без службы поддержки, конкурируя с известными брендами подобных систем, при этом не завышая цену продукта до заоблачных вершин. Возможно можно выставить цену для неких сервисов для групповой работы, например для Бюро Переводов, но это пока мысли вслух. Поэтому — бесплатно.

    Вот в общем-то и все. Надеюсь я зря отнял ваше время.

    Сайт: Catnip
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 11

      +4
      (написана она была на WinForms под 32-разрядные системы). И наконец наступил момент, когда все больше и больше стало появляться 64х разрядных систем, где MT2007 просто не запускался.

      Это как, простите? 32-битные приложения спокойно запускаются на 64-битной системе благодаря WOW64.
      Или вы делали сборку под AnyCPU, при этом делая P/Invoke на 32-битный неуправляемый код? Ну так это решается одной директивой в проджект-файле.
        +2
        Вы совершенно правы. Возможно я просто не так расставил акценты. Перестала запускаться в том состоянии, в каком была выпущена последняя версия в исторической перспективе. Поправить-то можно было, что я и сделал в свое время, но кажется для кого-то отдельно, кто попросил. Развивать же тот код было дело сложным, так как он писался без учета возможного развития в том направлении, в каком нужно было. Ну и если уж вопрос стал делать серьезную вещь, а не игрушку для себя, то надо было все переделывать с нуля. Зато сейчас подключение дополнительных модулей не представляет труда, все более-менее прилично. Сама логика отдельных модулей обработки перешла из старой программы, где-то даже почти без изменений, а где-то переписываясь с нуля. Ну, как обычно оно бывает.
        +2
        [Надеюсь я зря отнял ваше время.] — зря надеетесь :)
          +1
          Очень красивая и полезная программка, между прочим. Я как вспомню, как я, дурак, переводил англоязычные тексты в блокноте методом «вставить абзац на английском, перевести на русский, удалить английский, повторить», так стыдно перед этой программой становится.

          Поцепите, что-ли, какой-нибудь донейт на сайт себе.
            0
            Поцепите, что-ли, какой-нибудь донейт на сайт себе.

            Указал реквизиты на сайте Catnip на страничке контактов
            +2
            Было бы здорово опубликовать для нубов (типа меня) методику перевода с использованием программ наподобие Вашей. До сих пор перевожу огромные объемы технического текста по старинке — с помощью текстового редактора, иногда лишь заглядывая на такие сервисы, как www.translate.ru. И не вижу никакой другой альтернативы, кроме ручной работы, ибо автоматический перевод убог и ужасен. Что вообще дает переводчику Ваша программа?
              +4
              CAT это не автоматические переводчики, это помощь переводчику человеку. Позволяют видеть одновременно текст на обоих языках (причем с соответствием абзацев/предложений), могут иметь встроенные словари и т.д. Есть системы, которые запоминают перевод фраз и предложений и предлагают в дальнейшем использовать их (экономят время на ввод)
                +5
                Полезность подобного рода «кошек» для нового человека, ни разу с ними не сталкивавшегося, очевидна не сразу. Однако конкретно вам уже должна быть понятной ущербность работы в вашем стиле. К примеру, если вы переводите похожие или однотипные документы, то вы все время должны вспоминать «такое я уже переводил. Где же? А вот!» — ищете файлы, открываете, ищете нужный текст, чтобы посмотреть, как вы формулировали перевод похожей фразы или предложения или термина… Ведь порой над адекватным переводом приходится биться не одну минуту, бывает и десятки. Понятно, что вы понимаете, что написано, но корректно сформулировать даже на своем родном языке перевод порой бывает затруднительно. И хуже того — потом вы можете забыть с таким трудом сформулированную мысль. А ведь она была так красива! Бьюсь об заклад, при этом вы внутренне все время материтесь :-)
                Ну так вот. Кошки, типа catnip, trados, DeJavu и прочие нацелены на то, чтобы вы могли заниматься переводом не отвлекаясь на то, чтобы вспомнить, что вы делали раньше; облегчить подготовительную работу (заранее подготовить тематические переводы терминов например); чтобы вы работали в одной среде независимо от формата исходного файла, а на выходе получить документ в том же формате, что и оригинал, но с подставленным переводом вместо оригинала. При этом по возможности сохранить оригинальное форматирование.
                Когда вы только начинаете работать с кошкой, поначалу из преимуществ у вас остаются обработка разноформатных текстов, некий сервис удобства ввода перевода, поиск терминов (повторяющихся сущностей) в текстах, просто поиск произвольных данных, анализ проделанной работы. Во время работы, если вы ввели переводы терминов, при переходе на новое предложение происходит своего рода предварительный перевод — берется оригинал и в него вставляется в нужном месте перевод термина. По мере нарастания базы перевода и в процессе оного вам могут автоматом показываться похожие на текущее предложения, но которые вы перевели ранее в проекте, а если совпадение стопроцентное, то автоматом поставится перевод. Понятно, что чем больше вы сделали переводов, а значит при создании нового проекта подключили свои ранние переводы, которые чем-то похожи на текущий, например они общей тематики, тем больше вам предлагается вариантов перевода или тем больше происходит автоматического предварительного перевода. В идеале, если вы например переводите однотипные юридические контракты, то с каждым новым переводом тратите меньше времени на сам перевод, а то и вообще может так получиться, что новый текст может быть автоматом переведен в достаточно большом объеме. То есть основное — вы всегда видите то, что переводили раньше (оригинал-перевод), но что по смыслу похоже на то, что вам надо перевести сейчас. Несколько сумбурно, но вроде понятно описал.
                Существуют еще дополнительные сервисы, повышающие «интеллект» кошек. У меня например это EBMT — машина перевода на основе примеров. То есть она анализирует оригиналы и их переводы и если найдет похожие оригиналы и сможет понять чем они различаются, а так же если может так же выцепить различия в переводе, то запоминает эти раздельные сущности и дальше предлагает их в переводах-подстановках наряду с терминами. То есть она пытается понять перевод отдельных фраз в предложении.
                Или еще обработка на основе регулярных выражений. Например вы можете задать, что формат даты в оригинале типа 03/23/1999, а в переводе он должен быть 23.03.1999 и тогда когда встретится подобный формат даты, он тоже автоматом преобразуется в указанный. Все одно меньше телодвижений делать.
                Ну, понятно, проверка орфографии, словари, мультитран сервис, автоматический перевод например Microsoft Translate (игрушка, но помогает иногда понять смысл непонятного предложения). Как я писал, некоторые из функций еще недореализованы, но и до них дойдут руки.
                  +1
                  Это именно то, что хотел услышать! Премного благодарю. Надо будет озадачиться изучением подобного инструментария.
                    +1
                    Тут стоит добавить, что если над текстом работают несколько переводчиков, то ценность вышеперечисленного возрастает. Не будет такой неразберихи, когда в одном месте термин переведён так, а в другом — эдак.
                0
                Тем временем выпустил небольшое обновление.
                версия 1.0.1.9.
                Добавлен новый сплиттер предложений на основе формата SRX (Segmentation Rules eXchange format). Этот формат достаточно точно описывает правила разбиения предложений для конкретного языка и им удобнее всего пользоваться
                Добавлен модуль импорта переводов в файл проекта из внешнего файла в форматах, понимаемыми Catnip. По сути это функционал существующих утилит TextAlign. Этим модулем можно пользоваться для создания коркорданса или для иных целей.

                Only users with full accounts can post comments. Log in, please.