2019年12月11日
用語ベースが巨大すぎる!
先日のお仕事で Trados のプロジェクトに設定されていた用語ベースが、なんと 34 万語もありました。普通の「用語集」としてはあり得ない語数です。なぜこんなことになっていたかというと、UI のデータがそのまま用語ベースに入っていたからでした。こうした用語ベースは、翻訳者としては扱いにちょっと困ります。
UI のデータは、たいてい、画面上の要素 1 個につきレコードが 1 行存在する形になっています。たとえば「表示」というボタンが 10 画面に存在していて合計で 10 個あるとすると、データ上では「表示」というレコードが 10 行存在することになります。こうした形式のデータをそのまま用語ベースにしてしまうと、Trados の用語認識ウィンドウがこんな感じになります。
もうこうなると用語認識の意味がありません。しかも、Trados の用語認識機能は、用語ベースが大きい場合、すべての用語を検索してくれません。今回の記事では、こんな風になってしまう 34 万語の用語ベースをどう扱ったかをグチりたい、じゃなくて説明したいと思います。今回、私が行ったのは、以下の 3 つです。
1. 重複する用語を削除する
2. 用語ベースの検索設定を調整する
3. Xbench を使って手動で検索する
最初から言っておきますが、最後は「手動で検索」しました。Xbench を使えばワンアクションですが、それでも多くの用語でそのワンアクションが必要でした。
UI のデータをそのまま用語ベースにしてくる翻訳会社さんは多いので、重複を削除する処理はよく必要になります。ただ、今回はあまりにも量が多く、この削除が大変でした。私が重複を削除する方法として思い付くのは、以下の 3 つくらいです。
(1) Glossary Converter でマージする
(2) Excel で数式を使う
(3) Excel で [重複の削除] を使う (大文字小文字を区別できない)
(1) Glossary Converter でマージする
用語ベース ファイル (.sdltb) を直接 Glossary Converter で処理します。これが最も簡単で便利だと思います。大文字小文字も区別できます。Glossary Converter は、SDL AppStore から無料でダウンロードできるアプリです。操作方法については、以前の記事「【後編】マイクロソフトの用語集を使いたい」も参照してください。
Glossary Converter を起動して [settings] をクリックすると設定画面が表示されます。[Merging] タブで [Merge Files] チェックボックスをオンにすると、重複する用語をマージできます。今回は日本語原文だったので、用語集の日本語のフィールドを設定してマージしてみました。
で、結果はというと、だめでした。原因は、メモリ不足。何回か試したのですが、毎回途中でエラーになってしまいました。ということで、Glossary Converter は諦めて Excel で処理することにしました。
(2) Excel で数式を使う
Excel で処理するには、当然ながら Excel ファイルが必要です。今回は、翻訳会社さんから用語ベース ファイル (.sdltb) だけでなく、Excel ファイルも提供されていたのでそれを使いました。もし、Excel ファイルが提供されていない場合は、Glossary Converter を使って用語ベースを Excel ファイルに変換します。
Excel には [重複の削除] という機能があり、実はこれを使えば重複しているデータを簡単に削除できます (後述します)。ただし、この機能は大文字小文字を区別しません。今回の用語ベースは UI であり、訳出では大文字小文字を区別する必要があったので、[重複の削除] ではなく、大文字小文字を区別できる方法を先に試しました。
A 列: 日本語
B 列: 英語
C 列: 日本語と英語を結合する
数式 = A2&B2
D 列: 日本語と英語の両方とも同じ用語が既にある場合は空白にする
数式 = IF(SUMPRODUCT(--EXACT(C2,$D$1:$D1)),"",C2)
D 列の数式を簡単に説明すると、EXACT で大文字小文字も含めて一致しているかをチェックし、SUMPRODUCT を使った計算で D 列に既に存在していないかをチェックしています。
たいていの用語集はこれで処理できるのですが、今回はこの方法もだめでした。SUMPRODUCT は D 列全体をチェックすることになるので、34 万行は多すぎたようです。数式を入力した後、一向に結果が戻らず、カーソルがグルグルと回ったままでした。しばらく待っていましたが無理そうだったので、これも諦めました。(気長に待っていればもしかしたら成功したのかもしれないですが、待ちきれませんでした。)
(3) Excel で [重複の削除] を使う
仕方がないので、大文字小文字の区別は諦めて、[重複の削除] を使いました。さすがにこれは成功しました。で、重複を削除した後の語数はというと、約 15 万語でした。かなり減りました!
Excel で重複を削除した後、その Excel ファイルを用語ベース ファイルに変換し、プロジェクトに設定したら、こんな感じでした。だいぶすっきりしました。
でも、これで安心はできません。重複を削除しても、まだ 15 万語ですから。実は、作業をしているうちに、用語ベースに存在するのに用語認識されてこないものがあることに気付きました。そこで、用語ベースの検索設定を少し調整しました。
[プロジェクトの設定] > [言語ペア] > [すべての言語ペア] > [用語ベース] > [検索設定] と選択すると上図の画面が表示されます。この画面で用語ベースの検索方法をいろいろと設定できます。この画面の設定については、以前の記事「用語ベースの設定」も参考にしてください。
用語が認識されてこない原因は、おそらく [検索レベル] です。「レベル」というのが実際に何を意味しているのかは不明ですが、数字を大きくした方が認識される用語は多くなります。ただ、すべての用語が認識されてくるとはいえないようです。
一応、ヘルプは以下のようになっていますが、「中規模」や「大規模」が具体的にどれくらいの語数を指すのかはわかりません。今回は、既定値の 200 を 500 に変更して作業しました (処理速度は、特に気になりませんでした)。ただ、あまりに用語が多いので [用語の重複を許可する] はオフにしました。
いろいろ苦労したのですが、結局、用語認識で必ずすべての用語を認識するのは無理なのかなぁ、と思っています。[検索レベル] を 500 にしても、認識されてこない用語はありました。最大値は 999 ですが、ヘルプの文面からすると、最大値に設定したからといってすべて検索されるということではなさそうな気がします。
最後の手段は、Xbench での検索です。普段から、用語認識だけに頼らず、Xbench での検索を併用するようにはしていますが、それはあくまで念のためです。今回は、用語認識ウィンドウはいっぱいだし、大文字小文字を区別せずに重複を削除してしまっているし、[検索レベル] の影響で認識されていない用語もありそうだし、ということで Xbench での検索が多くなりました。
Xbench で検索をするためには、MultiTerm を使って用語ベースから xml ファイルをエクスポートして、それを Xbench に設定するという方法がベストかと思っています。この辺りの詳細は、またいずれ、ということにしたいと思います。
今回は、以上です。34 万語はとても困りました。ここで説明した方法は、あくまで「用語集に存在することを認識する」までの方法です。実際には、用語集に存在するなら元の Excel ファイルを参照してみたり、複数の選択肢があるなら前後も参照してみたり、とまだまだ作業は続きます。用語集もメモリも、適量以上にたくさんあっても翻訳者としては手間がかかるだけ、ということを強調したくて長い記事にしてみました。最後までお読みくださり、ありがとうございました。
Tweet
UI のデータは、たいてい、画面上の要素 1 個につきレコードが 1 行存在する形になっています。たとえば「表示」というボタンが 10 画面に存在していて合計で 10 個あるとすると、データ上では「表示」というレコードが 10 行存在することになります。こうした形式のデータをそのまま用語ベースにしてしまうと、Trados の用語認識ウィンドウがこんな感じになります。
もうこうなると用語認識の意味がありません。しかも、Trados の用語認識機能は、用語ベースが大きい場合、すべての用語を検索してくれません。今回の記事では、こんな風になってしまう 34 万語の用語ベースをどう扱ったかをグチりたい、じゃなくて説明したいと思います。今回、私が行ったのは、以下の 3 つです。
1. 重複する用語を削除する
2. 用語ベースの検索設定を調整する
3. Xbench を使って手動で検索する
最初から言っておきますが、最後は「手動で検索」しました。Xbench を使えばワンアクションですが、それでも多くの用語でそのワンアクションが必要でした。
1. 重複する用語を削除する
UI のデータをそのまま用語ベースにしてくる翻訳会社さんは多いので、重複を削除する処理はよく必要になります。ただ、今回はあまりにも量が多く、この削除が大変でした。私が重複を削除する方法として思い付くのは、以下の 3 つくらいです。
(1) Glossary Converter でマージする
(2) Excel で数式を使う
(3) Excel で [重複の削除] を使う (大文字小文字を区別できない)
(1) Glossary Converter でマージする
用語ベース ファイル (.sdltb) を直接 Glossary Converter で処理します。これが最も簡単で便利だと思います。大文字小文字も区別できます。Glossary Converter は、SDL AppStore から無料でダウンロードできるアプリです。操作方法については、以前の記事「【後編】マイクロソフトの用語集を使いたい」も参照してください。
Glossary Converter を起動して [settings] をクリックすると設定画面が表示されます。[Merging] タブで [Merge Files] チェックボックスをオンにすると、重複する用語をマージできます。今回は日本語原文だったので、用語集の日本語のフィールドを設定してマージしてみました。
で、結果はというと、だめでした。原因は、メモリ不足。何回か試したのですが、毎回途中でエラーになってしまいました。ということで、Glossary Converter は諦めて Excel で処理することにしました。
(2) Excel で数式を使う
Excel で処理するには、当然ながら Excel ファイルが必要です。今回は、翻訳会社さんから用語ベース ファイル (.sdltb) だけでなく、Excel ファイルも提供されていたのでそれを使いました。もし、Excel ファイルが提供されていない場合は、Glossary Converter を使って用語ベースを Excel ファイルに変換します。
Excel には [重複の削除] という機能があり、実はこれを使えば重複しているデータを簡単に削除できます (後述します)。ただし、この機能は大文字小文字を区別しません。今回の用語ベースは UI であり、訳出では大文字小文字を区別する必要があったので、[重複の削除] ではなく、大文字小文字を区別できる方法を先に試しました。
A 列: 日本語
B 列: 英語
C 列: 日本語と英語を結合する
数式 = A2&B2
D 列: 日本語と英語の両方とも同じ用語が既にある場合は空白にする
数式 = IF(SUMPRODUCT(--EXACT(C2,$D$1:$D1)),"",C2)
D 列の数式を簡単に説明すると、EXACT で大文字小文字も含めて一致しているかをチェックし、SUMPRODUCT を使った計算で D 列に既に存在していないかをチェックしています。
たいていの用語集はこれで処理できるのですが、今回はこの方法もだめでした。SUMPRODUCT は D 列全体をチェックすることになるので、34 万行は多すぎたようです。数式を入力した後、一向に結果が戻らず、カーソルがグルグルと回ったままでした。しばらく待っていましたが無理そうだったので、これも諦めました。(気長に待っていればもしかしたら成功したのかもしれないですが、待ちきれませんでした。)
(3) Excel で [重複の削除] を使う
仕方がないので、大文字小文字の区別は諦めて、[重複の削除] を使いました。さすがにこれは成功しました。で、重複を削除した後の語数はというと、約 15 万語でした。かなり減りました!
Excel で重複を削除した後、その Excel ファイルを用語ベース ファイルに変換し、プロジェクトに設定したら、こんな感じでした。だいぶすっきりしました。
2. 用語ベースの検索設定を調整する
でも、これで安心はできません。重複を削除しても、まだ 15 万語ですから。実は、作業をしているうちに、用語ベースに存在するのに用語認識されてこないものがあることに気付きました。そこで、用語ベースの検索設定を少し調整しました。
[プロジェクトの設定] > [言語ペア] > [すべての言語ペア] > [用語ベース] > [検索設定] と選択すると上図の画面が表示されます。この画面で用語ベースの検索方法をいろいろと設定できます。この画面の設定については、以前の記事「用語ベースの設定」も参考にしてください。
用語が認識されてこない原因は、おそらく [検索レベル] です。「レベル」というのが実際に何を意味しているのかは不明ですが、数字を大きくした方が認識される用語は多くなります。ただ、すべての用語が認識されてくるとはいえないようです。
一応、ヘルプは以下のようになっていますが、「中規模」や「大規模」が具体的にどれくらいの語数を指すのかはわかりません。今回は、既定値の 200 を 500 に変更して作業しました (処理速度は、特に気になりませんでした)。ただ、あまりに用語が多いので [用語の重複を許可する] はオフにしました。
いろいろ苦労したのですが、結局、用語認識で必ずすべての用語を認識するのは無理なのかなぁ、と思っています。[検索レベル] を 500 にしても、認識されてこない用語はありました。最大値は 999 ですが、ヘルプの文面からすると、最大値に設定したからといってすべて検索されるということではなさそうな気がします。
3. Xbench を使って手動で検索する
最後の手段は、Xbench での検索です。普段から、用語認識だけに頼らず、Xbench での検索を併用するようにはしていますが、それはあくまで念のためです。今回は、用語認識ウィンドウはいっぱいだし、大文字小文字を区別せずに重複を削除してしまっているし、[検索レベル] の影響で認識されていない用語もありそうだし、ということで Xbench での検索が多くなりました。
Xbench で検索をするためには、MultiTerm を使って用語ベースから xml ファイルをエクスポートして、それを Xbench に設定するという方法がベストかと思っています。この辺りの詳細は、またいずれ、ということにしたいと思います。
今回は、以上です。34 万語はとても困りました。ここで説明した方法は、あくまで「用語集に存在することを認識する」までの方法です。実際には、用語集に存在するなら元の Excel ファイルを参照してみたり、複数の選択肢があるなら前後も参照してみたり、とまだまだ作業は続きます。用語集もメモリも、適量以上にたくさんあっても翻訳者としては手間がかかるだけ、ということを強調したくて長い記事にしてみました。最後までお読みくださり、ありがとうございました。
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/9485495
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック