CamelCase と ALLUPPER CASE を自作する

翻訳に役立ってくれそうなツール 」の記事です。今回は、Trados と正規表現です。


私はしつこく Xbench CamelCase Mismatch と ALLUPPER CASE Mismatch を有効にできない ことです。有料版の V3 以降では有効にできるらしいですが、V2.9 では DISABLED と表示されるだけで、これを有効にするオプションがありません。このチェックは、大文字の単語 (WAF や HTTP など) とキャメルケースの単語 (GetStatus や SetTranslationMemory など) が原文と訳文で一致しているかを確認してくれるものだと思います。英単語は「必ず原文からコピーする」というルールを徹底していれば間違うはずはないのですが、それでも抜けてしまったりすることがあるので、こうしたチェックはどうしても必要になります。

そこで、今回はこのチェックを Trados の QA Checker を使って再現することに挑戦します。日英翻訳と英日翻訳の両方向について再現する方法を考えてみました。で、考えてみたので今回はその方法を紹介しますが、実はあまりうまく機能しないケースがあります。どうしても誤検出が増えてしまいます。もし、改善案などありましたら、教えて頂けると嬉しいです。



QA Checker の正規表現


QA Checker の詳細については、以前の記事「 正規表現なしで、検証機能を使う 」を参照してください。この記事でも書いているとおり、QA Checker の設定はファイルにエクスポートして保存しておくことができます。同じように、正規表現にも [アクション]の中に [アイテムのエクスポート] [アイテムのインポート]が用意されています。この画面のエクスポートは正規表現のみをエクスポートします。また便利な点として、この画面のインポートは削除をせず、追加と更新だけをしてくれます。つまり、既存のアイテムはそのまま残り、新しいアイテムは追加され、そして更新されたアイテムは更新されます。QA Checker 全体のプロファイルからインポートをすると、総入れ替えになるので古いアイテムは削除されます。


104_1.png




日本語 -> 英語の場合


日英翻訳の場合は、大文字やキャメルケースなど関係なく単純に「英単語を抜き出す」と考えればよいので簡単です。


英単語

104_2.png


原文: ([a-zA-Z0-9\-\.]+)
訳文: $1

私は、数字、ハイフン、ピリオドも含めて上記のように設定しています。これで、英語の小文字、大文字、数字、ハイフン、ピリオドで構成される単語を原文から抽出できます。訳文の $1 は「原文の ( ) 内とまったく同じ内容」ということを意味します。原文から CATが抽出されたら、訳文でも CATを探します。


全角の英単語

ここまでは簡単ですが、日英翻訳で問題になるのは全角です。原文が日本語の場合、英数字が全角で書かれていることがあります。上記の式は全角にはマッチしません。そこで、私は以下の式も追加しています。

原文: ([a-zA-Z0-9]+)
訳文: $1

これで全角の英数字も抽出できます。抽出はできますが、訳文の $1 はうまく機能しません。訳文の英語では英数字は半角にするので、原文の全角 CATを訳文で正しく半角 CATに変換していてもすべてエラーとして検出されます。安全のためにこの式を使ってはいますが、誤検出が多くなります。



英語 -> 日本語の場合


原文が英語の場合は、当然ながらすべてが英単語なので上記のように単純にはいきません。大文字とキャメルケースを指定する必要があります。


大文字で構成される単語

大文字は比較的簡単です。私は、ハイフンも含めて以下のように指定しています。「大文字かハイフンが 2 回以上連続する」という意味です。

原文: ([A-Z\-]{2,})


1 文字の英数字

上記の条件は「2 回以上」という指定なので server Aなどにはマッチしません。そこで、英数字 1 文字だけを抽出する式も追加します。

原文: (\b[\w\d]\b)

\b は単語の始まりまたは終わりを示します。 \w は英文字、 \d は数字です。この式は「単語の始まりがあって、英数字が 1 つあって、単語の終わりになる」という条件になります。私は数字も含めていますが、数字は数字チェックの機能が別にあるのでここに含めなくても OK です。


キャメルケース

いよいよキャメルケースです。少し複雑になります。私は、考えていたら複雑すぎてよくわからなくなったので「小文字始まり」と「大文字始まり」の 2 つに分けることにしました。

・小文字始まりキャメルケース ( getTableStatusなど)

原文: (\b[a-z]+\-*[A-Z]+[a-z\-]*)

\b は単語の始まりなので「小文字で始まって、大文字が 1 回以上登場して、また小文字がある」という条件です。念のため、ハイフンもありということにしています。

・大文字始まりキャメルケース ( GetTableStatusなど)

原文: (\b[A-Z]+\-*[a-z]+\-*[A-Z]+[\w\d\-]*)

こちらは「大文字で始まって、小文字が登場して、また大文字が登場する」という条件です。「大文字で始まって、小文字が登場する」だけでは、先頭を大文字にする通常の文すべてに一致してしまうので、2 度目の大文字が必要です。


文頭以外の大文字始まり( This is a Windows serverなど)

大文字の連続やキャメルケースではなく、単に文の中で大文字で始まる単語もチェックしたい場合があります。ただ、英語の文は通常大文字で始まるのでこれがなかなか大変です。文頭の大文字は抽出しないようにする必要があります。

原文: ^.+([A-Z]+\-*[a-z0-9]+\-*\b)

先頭の ^ は正規表現で「文頭」を意味します。この式は「文頭から何か文字があった後に大文字が登場する」という条件になります。すみません、これも考えてはみたものの、かなり誤検出が多くなります。文頭以外に大文字が登場する文は実はかなりあります。たとえば、見出しでヘッドライン スタイルが使われている、文全体が丸括弧で囲まれている、 Note:のようなコロンの後に文が書かれている、などです。こうしたケースを除外しようとするとなかなか面倒です。



原文と訳文を入れ替えてチェックする


さて、いろいろなチェックをしても、コマンドやプロパティ名などが満載の IT 系文書のときは英単語の記述にどうしても不安が残ります。そんなときは、原文と訳文を入れ替えてチェックをしてみます。これはかなり有効です。

Trados の正規表現の一部は「原文から訳文」方向のチェックしか行いません。正規表現の条件をよく見てみると「グループ化された検索表現」は以下の 2 つしか条件がありません。


104_3.png


訳文に $1 などと記述するケースが「グループ化された検索表現」にあたりますが、この場合は必ず原文を先に検索する必要があります。それ以外の場合は「訳文は一致するが〜」や「訳文チェックのみ」が可能ですが、 $1 などを使う場合はそれができません (この画面上ではどの条件も選択できますが、期待どおりの動作になりません)。このため、通常は「訳文に余計な英単語が入っている」というケースは検出できませんが、原文と訳文を入れ替えてチェックをすれば検出できます。

また、上記のとおり、英語 -> 日本語のチェックはかなり複雑で False positive も False negative も多くなります。これを、日本語 -> 英語に変えるとチェックが単純になり、エラーも見つかりやすくなります。英語 -> 日本語の場合、 set getなどの小文字始まりのプログラム コマンドは普通の英語と区別がつかないので検出できませんが、訳出後に日本語 -> 英語に変えて英単語のチェックをすれば検出できます。このチェックは、私の経験上、けっこう有効に機能します。



今回は以上です。Trados で原文と訳文を入れ替える方法については、次回とりあげたいと思います。正規表現をいろいろ考えていると、素直に新しい Xbench を購入した方がいいんじゃないかという考えが頭をよぎらないこともないですが、とりあえず、もう少し頑張ってみます。正規表現はよくわからないことが多いので、アドバイス頂けるととても嬉しいです。






  







最新記事
にほんブログ村 英語ブログ 英語 通訳・翻訳へ
にほんブログ村
 
翻訳ランキング
  翻訳ブログランキング参加中
翻訳ブログ人気ランキング


タグ
検索
ご意見・ご感想

ご意見、ご感想、ご質問をお待ちしております。
こちらから、どうぞお気軽に!

記事一覧
◆パッケージについて
作業前に内容を確認する
作業前に設定を変更する
メモリをアップグレードする (2017 SR1)
格納されているファイルにアクセスする

◆Trados の機能
 表示フィルタ・高度な表示フィルタ
2021 の表示フィルタ
タグの中の検索
プラグイン
プラグイン for 2019
変更履歴
すべてのコンテンツ
 検証機能
全般の設定
QA Checker
QuickInsert
印刷プレビュー
メモリのフィールド
ファイルの解析 ?@
ファイルの解析 ?A
 AutoSggest
ATOK との競合
プラグイン
 ショートカット キー
設定方法
便利なキー
高度な表示フィルタ
変更履歴
繰り返しの自動反映
 upLIFT テクノロジー
フラグメント一致
あいまい一致の自動修正
単語数のカウント
自動置換 > 単位
ジャンプ
用語認識
MultiTerm
変数リスト

◆Trados のバージョン・エディション
2021 SR2 CU9
2021 の新機能
プラグインとアプリの 2021 対応 (2020/08)
2017 SR1 の最近のバグ (2020/05)
プラグインとアプリの 2019 対応 (2019/02)
2019 の新機能
Starter エディション
2017 SR1 の新機能
メモリのアップグレード (2017 SR1)

◆プラグインとアプリ
2024 対応 (2024/08)
フィルタで繰り返しを除外
原文の英数字を訳文にコピー
パッケージの中身を一覧表示
コメントを Excel にエクスポート
選択箇所の検索結果を別画面で一覧表示
メモリをアップグレード
用語集を変換
コメントや変更履歴のユーザー名を変更
sdlxliff ファイルを Excel にエクスポート
Community Advanced Display Filter for 2019
Community Advanced Display Filter
Regex Match AutoSuggest Provider
PackageReader
Comment View Plugin
SegmentSearcher
TM Lifting
Glossary Converter
SDL Batch Anonymizer
Export to Excel

◆トラブルシューティング
QuickInsert の設定が表示されない
QuickInsert が動かない
 訳文生成できない
分節の結合
コメント
表示フィルタのハイライト
ハイパーリンク タグ
 メモリがヒットしてこない
完全一致が登録されていない
検索オプション
言語ペア
サーバー TM
Trados のバージョン
空メモリから作業を始めた場合
単語単位のトークン化
「TM はアップグレードが必要」が消えない
検証の除外設定が効かない
エディタの動きが遅い
エディタが落ちる
ファイルの解析が終わらない
エディタ上のフォントが変わらない
用語が認識されない
同じ用語が何回も表示される
パッケージを正常に開けない

◆翻訳作業に役立つ Tips
タグの中の文字を検索する
複数の分節に分かれている場合の処理
メモリに登録されるユーザー名を変える
自分の訳文用のメモリを作る
Trados の設定を変える
パッケージを別プロジェクトとして開き直す
 訳文を表示する方法
印刷プレビュー
訳文のみで保存
訳文の表示
 単語数・文字数のカウント
解析レポート ?@
解析レポート ?A
単語単位のトークン化
 ショートカット キーを設定する
設定方法
便利なキー
変更履歴を記録する
繰り返しを自動入力する
エディタ上のフォントを変える
1 つの原文に複数の訳文を登録する
単位記号の前にスペースを入れる
英日と日英で同じメモリを使う

◆Trados 以外のツール
 CAT ツール
Memsource
memoQ
 その他のツール
ATOK
   Xbench
変更履歴
使い方【前編】
使い方【後編】
QA Distiller
AutoHotKey
WinMerge
Visual Studio Code
Vale
最新コメント
プロフィール
さくらさんの画像

昔は「Trados さん、頑張って!」とお祈りしながら訳文生成していませんでしたか? 今も、たまにそんな気分になるときがあります。Trados って本当にわからないことばかりです。特に、日本語の情報は少ないですよね。いくら翻訳者とはいえ、日本語の情報が欲しいのです。Trados ユーザーの方々といろいろ情報交換できたらと思っています。




2022年12月18日

この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/11779186
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
Mobilize your Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: