Friday, February 3, 2012

TMX(翻訳メモリデータ規格)の紹介

はじめまして! hayashiです。

一介の語学マニアとして「翻訳は休憩」という標語を唱えているせいか、社内の翻訳業務に携わる機会が多々あります。オープンソースという環境も手伝っているかもしれません。

業務として(主にIT系の)色々なドキュメントを翻訳していく中で、翻訳の効率化、訳の一貫性、ナレッジ管理、メソドロジなどのTo Beについて個人的に考えることもあるのですが、その前提としてまずは、翻訳作業を取り巻くIT環境について考察していこうと思います。初回のテーマは「TMX(翻訳メモリデータ規格)」についてです。
[翻訳メモリとは] 
TMXについて説明する前に、「翻訳メモリ」という言葉を説明します。
翻訳作業を取り巻くIT環境といっても、さまざまな側面がありますが、その中でもCAT(Computer Assisted Translation)と呼ばれる翻訳支援の仕組みがあり、その中心として「翻訳メモリTranslation Memory」というものがあります。翻訳をメイン業務として行っている会社・個人では翻訳メモリの使用はほぼ必須となっている感がありますが、それ以外の業界にとってはかなり馴染みの薄い分野なのではないでしょうか。

翻訳メモリとは、一言で言えば翻訳用の辞書みたいなもので、Wikipediaによれば、

「原文と翻訳文を一対としてデータベース化し、その内容を自動的に繰り返し利用することで翻訳を支援するソフトウェアである。」


翻訳メモリは、翻訳を仕事とする人の業務の効率化と質の向上を支援するためのソフトウェアである。「翻訳メモリ」は厳密には原文と訳文のデータベースを指し、それを利用するソフトウェアは「翻訳メモリ ツール」と呼ばれる。「翻訳メモリ ツール」のことを「翻訳メモリ」と呼ぶことも多い。


とあります。
私自身はふだんOmegaTというオープンソースの翻訳メモリツールを使用することが多いです。

対照的な概念として挙げられる自動的な機械翻訳と異なり、翻訳メモリは登録されたメモリに或る程度マッチする訳例を提示するだけで、最終的には翻訳者が手動で訳を確定・補完する必要があります。

翻訳メモリツールを使った翻訳のメリットとしては、以下のようなものが考えられます。
・効率化
同じ(あるいは似ている)訳語を手作業で打ち込まない。DRYの精神。
なお、翻訳会社によっては翻訳メモリがカバーできない範囲を見積もりの基準にすることもあります。
・一貫性
同一のフレーズに対する訳の一貫性が保たれる。特に複数の翻訳者が関わる時など有効。
・専門性
業界ごとの専門用語に特化した翻訳メモリが作成できる。普通の辞書だと様々な訳から適切なものを選択するのに時間が掛かるor訳が見つからないことがある。
・ナレッジの蓄積 
実績として登録された訳例自体が翻訳メモリを育てていくので、上手い訳がナレッジとして蓄積される。
・様々なファイル形式に対応
ツールにより対応するファイル形式は異なるが、XML形式で記述される翻訳メモリを通じて、様々なファイル形式のままで読込・出力が可能。


[TMX 1.4bの仕様について]
(広義の)翻訳メモリツールの多くでは、(狭義の)翻訳メモリデータのデファクトスタンダードな仕様としてTMX(Traslation Memory eXchange)というフォーマットが利用されており、翻訳メモリデータの交換が可能です。各翻訳メモリツールではこの翻訳メモリデータに対してインポートルーチン/エクスポートルーチンを通じて処理を行います。

TMXの仕様はLocalisation Industry Standards Association (LISA)という団体によって定められており、現在は1.4bというバージョンが最新のようです(2004年4月リリース)。

TMX1.4bの仕様は現在なぜかLISAのページではリンク切れで閲覧できない状態ですが、以下のページが原文をLISAから複製しています。
http://www.gala-global.org/oscarStandards/tmx/

TMX1.4bの仕様全文を日本語に翻訳したものはないようで、またTMXを紹介する記事も大変少ないため、上記ページをもとに1.4bの仕様を現在hayashiが鋭意翻訳中ですが(またこのブログでお知らせします!)、大まかにその特徴を説明すると、

・XMLベースのオープンな規格であり、メモリデータの実体は原文に対してタグでマークアップしたデータになる。
・TMXのタグには大きく分けて構造要素とインライン要素の2種類がある。
・構造要素は、原文の分節化に使用される。=> Level 1 実装
・インライン要素は、原文自体がHTMLなどのマークアップ言語である場合の原文のタグに対するメタタグとして使用される。そのためツールの側では、原文のマークアップ構造を保ったまま翻訳ファイルを生成することができる。=> Level 2 実装

TMXによるマークアップの使用ケース例:
・翻訳ユニット(訳語のペア)-> 翻訳ユニットバリアント(各国語での訳)-> セグメント(翻訳対象である任意の分節)、などを構造化する
・ペアになっている原文の開始タグ・終了タグをTMXのタグでマークする
・原文タグの属性が持つ文字列(<a>タグのtitle属性など)をマークする
・原文と訳文で、語順が変わってしまった単語同士をタグの属性を通じて照応させる
 [英語]The black(黒い) cat(猫) eats. ⇔ [仏語]Le chat(猫) noir(黒い) mange.


TMXに準拠したデータの実例として、Alfrescoのローカライズに使われたと思われる翻訳メモリデータが見つかりましたのでリンクを貼っておきます。翻訳メモリがどんなデータになるか、雰囲気が掴めるかと思います。

http://forge.alfresco.com/plugins/scmsvn/viewcvs.php/3.2/Explorer/explorer-level2.tmx?root=languagefr&view=markup


TMX仕様を興味を持って調べ始めた動機の一つとして、翻訳メモリを訳語ごとの文脈(どの業界のドキュメントか、IT系のドキュメントであればそれがメニューバー項目なのか警告メッセージなのか、など)に関連づけて運用することができないか、という考えがありました。
しかしTMXの仕様を見る限り、訳語ペアのセマンティックな属性を指示するようなものは無いようです。
実際にも、文脈に応じた翻訳としては、対象業界ごとの専門辞書を切り替えて使うのが普通のようですが、これだと粒度が粗すぎる事があるのでは、と思っています。(反面、粒度を細かくしすぎると手数が増えて面倒になるきらいがありますが)

このあたりについても、今後触れていく予定です。

No comments: