xmlhack.ru logo
>> статьи на xmlhack.ru

Перевод XML-документов с помощью xml:tm

Автор: Андрзей Зидронь
Перевод: Александр Савенков
Опубликовано на XML.com (07.01.2004, англ.): http://www.xml.com/pub/a/2004/01/07/xmltm.html
Опубликовано на xmlhack.ru (27.01.2004, рус.): http://xmlhack.ru/texts/04/translation.memory/xmltm.html
В закладки:   Del.icio.us   reddit

Введение

Рано или поздно созданный вами XML-документ кто-то захочет перевести на другой язык. В действительности XML-документы переводить гораздо легче нежели другие электронные документы, т. к. они разделяют форму и содержание и соответствуют строгому стандарту и установленному синтаксису.

Существуют различные подходы к оптимизации процесса перевода.

Машинный перевод

Языковая технология в последние 40 лет развивалась довольно разнообразно. Ранние надежды на дешёвый автоматический перевод вскоре привели к фрагментации и по сути незначительной роли данной технологии, используемой ныне для понимания смысла некоторых текстов на иностранном языке. За этот период языковая технология значительно продвинулась вперёд, и все мы ежедневно вкушаем её плоды, когда используем проверку грамматики, орфографии и навороченные поисковые системы. Тем не менее от практического машинного перевода произвольного текста нас всё ещё отделяет долгий путь, хотя были и некоторые подвижки, если текст очень строго контролировался и был из очень узкой области.

Переводческая память

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

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

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

Перевод XML-документов

Подход к переводу XML-документов до настоящего времени состоял в конвертации переводимого текста и атрибутов во внешний, обыкновенно частный формат, в котором в данных ищутся совпадения переводческой памяти. По завершении процесса перевода заново переведённые предложения записываются в обычные нестандартизированные базы переводческой памяти. XML в системах такого класса рассматривается только как один из форматов.

Особого упоминания стоят некоторые важные стандарты, основанные на XML, касающиеся технологии перевода:

  1. Спецификация OASIS’а XLIFFXML-формат файлов обмена локализациями»), определяющая XML-модель для обмена переводимого текста из любого частного формата. Подробнее об XLIFF чуть ниже.

  2. LISA (Ассоциация стандартов локализационной отрасли) объединяет множество основанных на XML программ под патронажем своего рабочего комитета OSCAR («Открытого стандарта для контейнеров/документов, позволяющих многократно их использовать»), помимо прочих включающего TMX. TMX позволяет обменивать переводческую память, используя XML.

Все эти замечательные стандарты направлены на обмен информацией, используя XML, а не на собственно перевод XML-документов

xml:tm

xml:tm — радикально новый подход к проблеме перевода XML-документов. Это основанный на пространствах имён XML синтаксис, использующий возможности XML для внедрения дополнительной информации в сам XML-документ. xml:tm даёт дополнительные преимущества, которые являются следствием самого использования технологии.

В основе xml:tm лежит концепция «текстовой памяти». Текстовая память состоит из двух компонентов:

  1. Авторская память

  2. Переводческая память

Авторская память

Пространство имён XML используется для привязки текстовой памяти к документу. Данный процесс называется сегментацией. Текстовая память работает на уровне предложения — текстовой единицы. Каждой отдельной текстовой единице xml:tm назначается уникальный идентификатор. Этот уникальный идентификатор неизменен на протяжении всего периода существования документа. По мере прохождения документом своего жизенного цикла уникальные идентификаторы сохраняются и по мере надобности добавляются новые. Этот аспект текстовой памяти называется авторской памятью. Он может использоваться для построения систем авторской памяти, которые в свою очередь могут применяться, чтобы упростить документ и сделать его более логичным.

Следующая диаграмма показывает, как пространство имён tm привязывается к существующему XML-документу:

Диаграмма привязки xml:tm

Рис. 1. Диаграмма привязки xml:tm

На рисунке “te” означает текстовый элемент (XML-элемент, содержащий текст), а “tu” означает текстовую единицу (одно предложение или одиночный фрагмент текста).

Ниже приведён пример фрагмента документа, использующего xml:tm. Элементы xml:tm подсвечены красным, при этом показано, как xml:tm привязывается к существующему XML-документу.


<?xml version="1.0" encoding="UTF-8"?>
<office:document-content xmlns:text="http://openoffice.org/2000/text"
                         xmlns:tm="urn:xmlintl-tm-tags"
                         xmlns:xlink="http:// www.w3.org/1999/xlink">
 <tm:tm>
 …
  <text:p text:style-name="Text body">
   <tm:te id="e1" tuval="2">
    <tm:tu id="u1.1">xml:tm is a revolutionary technology for dealing with
    the problems of translation memory for XML documents by using XML
    techniques to embed memory directly into the XML documents
    themselves.</tm:tu>
    <tm:tu id="u1.2">It makes extensive use of XML namespace.</tm:tu>
   </tm:te>
  </text:p>
  <text:p text:style-name="Text body">
   <tm:te id="e2">
    <tm:tu id="u2.1">The “tm” stands for “text memory”.</tm:tu>
    <tm:tu id="u2.2">There are two aspects to text memory:</tm:tu>
   </tm:te>
  </text:p>
  <text:ordered-list text:continue-numbering="false" text:style-name="L1">
   <text:list-item>
    <text:p text:style-name="P3">
     <tm:te id="e3">
      <tm:tu id="u3.1">Author memory</tm:tu>
     </tm:te>
    </text:p>
   </text:list-item>
   <text:list-item>
    <text:p text:style-name="P3">
     <tm:te id="e4">
      <tm:tu id="u4.1">Translation memory</tm:tu>
     </tm:te>
    </text:p>
   </text:list-item>

И скомпонованный документ:

Composed document

Рис. 2. Скомпонованный документ

Переводческая память

Когда документ в пространстве имён xml:tm готов к переводу, само пространство имён указывает текст, который необходимо перевести. Пространство tm может быть использовано для создания XLIFF-документа на перевод.

XLIFF

XLIFF — стандарт OASIS’а, расшифровывается как «XML-формат обмена локализациями». Это ещё один XML-формат, оптимизированный для перевода. Используя XLIFF, можно защитить синтаксис исходного документа от случайной порчи в процессе перевода. Кроме того можно записать иную соответствующую информацию, например переводческую память или предпочтительную терминологию.

Далее следует пример XLIFF-документа, основанного на предыдущем примере:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xliff PUBLIC "-//XML-INTL XLIFF-XML 1.0//EN" "file:xliff.dtd">
<xliff version="1.0">
 <file datatype="xml" source-language="en-USA" target-language="ru">
  <header>
   <count-group name="Totals">
    <count count-type="TextUnits" unit="transUnits">40</count>
    <count count-type="TotalWordCount" unit="words">416</count>
   </count-group>
  </header>
  <body>
   <trans-unit id="t1">
    <source>xml:tm</source>
    <target ts="matched">xml:tm</target>
   </trans-unit>
   <trans-unit id="t2">
    <source>xml:tm is a revolutionary technique for dealing with the
    problems of translation memory for XML documents by using XML
    techniques and embedding memory directly into the XML documents
    themselves.</source>
    <target>xml:tm is a revolutionary technique for dealing with the
    problems of translation memory for XML documents by using XML
    techniques and embedding memory directly into the XML documents
    themselves.</target>
   </trans-unit>
   <trans-unit id="t3">
    <source>It makes extensive use of XML namespace.</source>
    <target>It makes extensive use of XML namespace.</target>
   </trans-unit>
   <trans-unit id="t4">
    <source>The “tm” stands for “text memory”.</source>
    <target>The “tm” stands for “text memory”.</target>
   </trans-unit>
   <trans-unit id="t5">
    <source>There are two aspects to text memory:</source>
    <target>There are two aspects to text memory:</target>
   </trans-unit>
   <trans-unit id="t6">
    <source>Author memory</source>
    <target>Author memory</target>
   </trans-unit>
   <trans-unit id="t7">
    <source>Translation memory</source>
    <target>Translation memory</target>
   </trans-unit>

Текст, подсвеченный розовым, обозначает места, в которых переведённый текст заменит текст на исходном языке, как показано ниже:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xliff PUBLIC "-//XML-INTL XLIFF-XML 1.0//EN" "xliff.dtd">
<xliff version="1.0">
 <file datatype="xml" source-language="en-USA" target-language="ru">
  <header>
   <count-group name="Totals">
    <count count-type="TextUnits" unit="transUnits">40</count>
    <count count-type="TotalWordCount" unit="words">416</count>
   </count-group>
  </header>
  <body>
   <trans-unit id="t1">
    <source>xml:tm</source>
    <target>xml:tm</target>
   </trans-unit>
   <trans-unit id="t2">
    <source>xml:tm is a revolutionary technique for dealing with the
    problems of translation memory for XML documents by using XML
    techniques and embedding memory directly into the XML documents
    themselves.</source>
    <target>xml:tm — революционная методика решения проблем переводческой
    памяти для XML-документов, использующая технологию XML и встраивание
    памяти непосредственно в XML-документы.</target>
   </trans-unit>
   <trans-unit id="t3">
    <source>It makes extensive use of XML namespace.</source>
    <target>Она широко использует пространства имён XML.</target>
   </trans-unit>
   <trans-unit id="t4">
    <source>The “tm” stands for “text memory”.</source>
    <target>“tm” означает «текстовая память».</target>
   </trans-unit>
   <trans-unit id="t5">
    <source>There are two aspects to text memory:</source>
    <target>Существует два аспекта текстовой памяти:</target>
   </trans-unit>
   <trans-unit id="t6">
    <source>Author memory</source>
    <target>Авторская память</target>
   </trans-unit>
   <trans-unit id="t7">
    <source>Translation memory</source>
    <target>Переводческая память</target>
   </trans-unit>

По завершении перевода текст на целевом языке может быть объединён с исходным документом для создания новой версии документа на целевом языке. В итоге получается идеально упорядоченный исходный документ и документ на целевом языке.

Ниже приводится пример переведённого документа xml:tm:


<?xml version="1.0" encoding="UTF-8"?>
<office:document-content xmlns:text="http://openoffice.org/2000/text"
                         xmlns:tm="urn:xmlintl-tm-tags"
                         xmlns:xlink="http://www.w3.org/1999/xlink">
 <tm:tm>
 …
  <text:p text:style-name="Text body">
   <tm:te id="e1" tuval="2">
    <tm:tu id="u1.1">xml:tm — революционная методика решения проблем
    переводческой памяти для XML-документов, использующая технологию XML и
    встраивание памяти непосредственно в XML-документы.</tm:tu>
    <tm:tu id="u1.2">Она широко использует пространства имён XML.</tm:tu>
   </tm:te>
  </text:p>
  <text:p text:style-name="Text body">
   <tm:te id="e2">
    <tm:tu id="u2.1">“tm” означает «текстовая память».</tm:tu>
    <tm:tu id="u2.2">Существует два аспекта текстовой памяти:</tm:tu>
   </tm:te>
  </text:p>
  <text:ordered-list text:continue-numbering="false" text:style-name="L1">
   <text:list-item>
    <text:p text:style-name="P3">
     <tm:te id="e3">
      <tm:tu id="u3.1">Авторская память</tm:tu>
     </tm:te>
    </text:p>
   </text:list-item>
   <text:list-item>
    <text:p text:style-name="P3">
     <tm:te id="e4">
      <tm:tu id="u4.1">Переводческая память</tm:tu>
     </tm:te>
    </text:p>
   </text:list-item>

Вот пример скомпонованного переведённого текста:

Скомпонованный переведённый документ

Рис. 3. Скомпонованный переведённый документ

Исходный и целевой текст связаны на уровне предложения уникальными идентфикаторами xml:tm. При редактировании документа изменённым и новым текстовым единицам назначаются новые идентификаторы. При извлечении текста на перевод из обновлённого исходного документа текстовые единицы, которые не были изменены, могут быть автоматически замещены текстом на целевом языке. Получающийся при этом XLIFF-файл может выглядеть следующим образом:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xliff PUBLIC "-//XML-INTL XLIFF-XML 1.0//EN" "xliff.dtd">
<xliff version="1.0">
 <file datatype="xml" source-language="en-USA" target-language="ru">
  <header>
   <count-group name="Totals">
    <count count-type="TextUnits" unit="transUnits">40</count>
    <count count-type="TotalWordCount" unit="words">416</count>
   </count-group>
  </header>
 <body>
  <trans-unit id="t1">
   <source>xml:tm</source>
   <target ts="matched">xml:tm</target>
  </trans-unit>
  <trans-unit id="t2">
   <source>xml:tm is a revolutionary technique for dealing with the
   problems of translation memory for XML documents by using XML
   techniques and embedding memory directly into the XML documents
   themselves.</source>
   <target ts="matched">xml:tm — революционная методика решения проблем
   переводческой памяти для XML-документов, использующая технологию XML и
   встраивание памяти непосредственно в XML-документы.</target>
  </trans-unit>
  <trans-unit id="t3">
   <source>It makes extensive use of XML namespace.</source>
   <target ts="matched">Она широко использует пространства имён XML.</target>
  </trans-unit>
  <trans-unit id="t4">
   <source>The “tm” stands for “text memory”.</source>
   <target ts="matched">“tm” означает «текстовая память».</target>
  </trans-unit>
  <trans-unit id="t5">
   <source>There are two aspects to text memory:</source>
   <target ts="matched">Существует два аспекта текстовой памяти:</target>
  </trans-unit>
  <trans-unit id="t6">
   <source>Author memory</source>
   <target ts="matched">Авторская память</target>
  </trans-unit>
  <trans-unit id="t7">
   <source>Translation memory</source>
   <target ts="matched">Переводческая память</target>
  </trans-unit>

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

Совпадение, описанное в предыдущем разделе, называется идеальным совпадением. Так как память xml:tm встроена в XML-документ, у неё имеется вся контекстная информация, необходимая для точного идентифицирования текстовых единиц, которые не поменялись со времён предыдущей редакции документа. В отличие от регулируемых совпадений идеальные совпадения не требуют вмешательства переводчика, уменьшая тем самым стоимость перевода.

Следующая диаграмма показывается, как работает идельное совпадение:

Диаграмма механизма идеального совпадения

Рис. 4. Диаграмма механизма идеального совпадения

Совпадение с xml:tm

xml:tm даёт гораздо более сфокусированные типы совпадений чем традиционные системы переводческой памяти. Существуют следующие типы совпадений.

  1. Идеальные совпадения.

    Авторская память даёт точные подробности о любых изменениях в документе. Там, где текстовые единицы для ранее переведённого документа не были изменены, можно сказать, что мы имеем идеальное совпадение. Понятие идеального совпадения является ключевым. С традиционными системами переводческой памяти переводчику всё равно приходится проверять каждое совпадение, т. к. нет способа проверить уместность совпадения. Проверка обычно оплачивается по ставке 60% от стоимости стандартного перевода. С идеальным совпадением необходимость проверки отпадает, что положительно отражается на стоимости перевода.

  2. Регулируемые совпадения в документе.

    xml:tm кроме того может использоваться для регулируемых совпадений в документе, которые более будут соответствовать заданному документу чем обычные регулируемые совпадения переводческой памяти.

  3. Регулируемые совпадения.

    При переводе документа xml:tm процесс перевода обеспечивает идеально совмещённые текстовые единицы на исходном и целевом языке. Они последовательно и автоматически могут использоваться для создания дополнительной переводческой памяти.

  4. Нечёткие совпадения в документе.

    При редактировании авторской памяти можно пометить текстовые единицы, которые изменились незначительно. Если существует соответствующий перевод для предыдущей версии исходной текстовой единицы, переводчику могут быть предложены предыдущие исходная и целевая версия в качестве разновидности нечёткого совпадения.

  5. Нечёткие сопадения.

    Текстовые единицы, содержащиеся в базе данных регулируемой памяти также могут быть применены для создания нечётких совпадений с похожим ранее переведённым текстом. На практике нечёткие совпадения могут мало чем помочь переводчику за исключением случаев, когда текстовые единицы достаточно длинны, а разница между исходным и существующим предложением очень мала.

  6. Непереводимый текст.

    В технических документах зачастую можно видеть большое число текстовых единиц, составленных лишь из цифровых, буквенно-цифровых, пунктуационных единиц и единиц измерения. При помощи xml:tm такие единицы можно определить при написании текста и пометить как непереводимые, уменьшая тем самым количество слов для перевода. У текстовых единиц, состоящих только из цифр и единиц измерения, разделители десятков и тысяч можно автоматически конвертировать в соответствии с требованиями целевого языка.

Ниже приведён пример непереводимого текста в xml:tm:


…
   <text:list-header>
    <text:p text:style-name="P9">
     <tm:te id="e41">
      <tm:tu id="u41.1">Некий новый текст с примерами, не требующими перевода:</tm:tu>
     </tm:te>
    </text:p>
   </text:list-header>
  </text:ordered-list>
  <text:p text:style-name="Hanging indent">
   <tm:te id="e42">
    <tm:tu id="u42.1" type="measure">10 mm</tm:tu>
   </tm:te>
  </text:p>
  <text:p text:style-name="Hanging indent">
   <tm:te id="e43">
    <tm:tu id="u43.1" type="measure">10.50 m</tm:tu>
   </tm:te>
  </text:p>
  <text:p text:style-name="Hanging indent">
   <tm:te id="e44">
    <tm:tu id="u44.1"type="numeric">10,000</tm:tu>
   </tm:te>
  </text:p>
  <text:p text:style-name="P13">
   <tm:te id="e45">
    <tm:tu id="u45.1" type="numeric">9.956</tm:tu>
   </tm:te>
  </text:p>
  <text:p text:style-name="P13">
   <tm:te id="e46">
    <tm:tu id="u46.1" type="alphanum">ABC104/EF</tm:tu>
   </tm:te>
  </text:p>
  …

И пример скомпонованного текста:

Скомпонованный непереводимый текст

Рис. 5. Скомпонованный непереводимый текст

Подсчёт слов

Выходные данные процесса извлечения текста применяются клиентом для автоматического подсчёта слов и совпадений. Это даёт возможность контролировать подсчёт слов ему, а не поставщику. Такое различие существенно, оно позволяет жёстче контролировать издержки.

XLIFF и перевод онлайн

Переводимые файлы xml:tm могут создаваться в формате XLIFF. После этого формат XLIFF может использоваться для создания динамических web-страниц для перевода. Переводчик может получить доступ к этим страницам через обозреватель или проводить весь процесс перевода через интернет. Это означает многочисленные потенциальные выгоды. Могут быть решены проблемы, связанные с наладкой фильтров и задержками, присущими отправке данных на перевод, такие как ненамеренная порча кодировки или синтаксиса документа или же простые проблемы трудопроизводства. Сегодня с использованием технологии XML возможно как уменьшить издержки и увеличить контроль за ними, так и сократить время на перевод и повысить его надёжность.

Схема традиционного перевода:

Схема традиционного перевода

Рис. 6. Схема традиционного перевода

В схеме перевода с помощью xml:tm вся обработка происходит в среде клиента:

Схема перевода с помощью xml:tm

Рис. 7. Схема перевода с помощью xml:tm

Пример онлайновой переводческой среды находится по адресу http://www.xml-intl.com/demo/trans.html

Преимущества использования xml:tm

Ниже приведён список основных преимуществ подхода xml:tm к созданию и переводу текстов:

Заключение

xml:tm — основанная на пространствах имён технология, созданная и поддерживаемая компанией Xml-Intl и опирающаяся на XML и XLIFF, что является плюсом для сообщества XML. Подробности определений xml:tm (определение типа данных XML и XML-схема) находятся на сайте Xml-Intl. Помимо этого Xml-Intl поставляет реализацию xml:tm с использованием Java и Oracle, включающую лингвистически направленные совпадения, как регулируемые базой данных, так и нечёткие.

Планируется дополнить пространство имён текстовой памяти грамматическим пространством имён, чтобы обеспечить возможность внедрения грамматической информации в XML-документы и обмена ею между приложениями.

xml:tm более всего подходит для реализации на уровне предприятия для фирм с большими ежегодными потребностями в переводе и большими системами управления документами. В процессе реализации xml:tm интегрируется в систему управления документами клиента.

Подход xml:tm уменьшает стоимость перевода следующими средствами:



XML.com Copyright © 1998-2007 O'Reilly Media, Inc.
Перевод: xmlhack.ru Copyright © 2000-2007 xmlhack.ru