
弊社ブログでは、これまでにChatGPTを翻訳に活用することに焦点を当てた記事を掲載しています。
関連ブログ:
>ChatGPTとDeepL①:製造業・IT分野の日英翻訳精度比較
本記事でもChatGPT×翻訳というテーマの一環として、翻訳品質管理にChatGPTを活用する試みをご紹介します。
1.翻訳品質管理における正規表現の活用
翻訳においては、校正の段階で特定の記号/用語を別の記号/用語に全置換して修正するという場面がしばしばあります。全て一律に置換するだけで良いのであれば、置換ウィンドウに記号や用語を入力すれば簡単です。しかし、「この記号の後に出現する用語をすべて置き換えたい」「特定の用語が行末に出てくる場合のみ置換えたい」など条件が重なってくると、単純な全置換では対応できません。正確な正規表現を用いて対象箇所を指定する必要があります。
ただし、この時に効率的な正規表現を考えつけるか否かは校正者の知識量に左右されてしまいます。その都度正規表現を調べて自力で作成していくのには時間もかかりますし、慣れていない場合には調べるのも難しい場合があります。
「それならば、ChatGPTに最適な正規表現を作成してもらおう!」 本記事では、翻訳品質管理に使用する正規表現をChatGPTに作成してもらった例をご紹介していきます。
2.ChatGPTを用いた正規表現の作成
■活用例①-ブラケット内のスペース
活用例①の背景
特定の記号の前後にスペースを置くか否かという点は、校正のタイミングで重点的にチェックする項目の一つです。実際の翻訳現場で発生した事例を用いてChatGPTに正規表現を作成してもらった例をご紹介します。
修正対象の文章は下記です。赤文字部分に問題があります。
Click [ Price range ] button.
[ Batch Log List ] is displayed.
Press [ Retry ].
赤文字に注目すると、[ 用語 ]のようにブラケットと用語の間に余計なスペースが入ってしまっています。
正しくは下記とすべきです。
Click [Price range] button.
[Batch Log List] is displayed.
Press [Retry].
人間が文章を入力する場合はあまり想定されないエラーですが、このケースではお客様のご意向により「機械翻訳+人間による訳文修正(ポストエディット)」という翻訳手法を取っており、初めの機械翻訳の段階で余計なスペースが入った訳文が出力されてしまいました。
これを、正規表現による全置換で解決していきます。
実際に使ってみる
<トライ1>
ChatGPTに以下の文を送ってみました。
以下の例文で、[の直後のスペースと]の直前のスペースだけを削除したいです。 テキストエディタ―の置換機能を用いたいです。 置換前と置換後の正規表現を教えてください。
Click [ Price range ] button.
[ Batch Log List ] is displayed.
Press [ Retry ].
すると、下記の回答が返ってきました。
もちろんです。以下が正規表現を使用した置換の例です。
置換前の正規表現: \[\s*(.*?)\s*\]
置換後の文字列: $1
実際に置換文字列に上記の正規表現を入力して置換を実施すると・・・

おかしいですね。ブラケットが消えてしまいました!
<トライ2>
ChatGPTに問題点を伝えてみました。
置換後の文章で、[と]の記号が消えてしまいました。
この記号は残したいです。
正規表現を修正してください。
すぐに新しい正規表現を教えてくれました。
了解しました。正規表現を修正して、[と]の記号を残すようにします。
置換前の正規表現: (\[\s*)(.*?)(\s*\])
置換後の文字列: $1$2$3
もう一度置換を試してみます。

残念ながら、今回は何の変化も起こりませんでした。
<トライ3>
気を取り直してもう一度問題点を伝えてみます。
それでは、[の直後と]の直前のスペースが消えません。
再度正規表現を教えてくれました。こちらはうまくいくでしょうか。
置換前の正規表現: (?<=\[)\s*|\s*(?=\])
置換後の文字列: 空白
上記の正規表現を入力して対象箇所を表示させてみました。
問題のスペースだけを指定する正規表現のようですね。これを空白で置き換えるという指示なので、上手くいきそうです。

置換を実行してみます。

狙い通り、不要なスペースだけを削除することができました!
ついでにChatGPTに解説をお願いしてみました。
(?<=\[)\s*|\s*(?=\]) を解説してください
すると、以下の回答を得られました。
もちろんです。この正規表現は、肯定の後読み(positive lookbehind)と肯定の先読み(positive lookahead)を使用しています。
(?<=\[)\s*: これは \[ の後に0個以上のスペースがある場合にマッチします。(?<=\[) は肯定の後読みで、マッチする条件が [ の直後であることを確認します。\s* は0個以上のスペースを表します。
|\s*(?=\]): これは ] の前に0個以上のスペースがある場合にマッチします。(?=\]) は肯定の先読みで、マッチする条件が ] の直前であることを確認します。|\s* はもしくは演算子で、0個以上のスペースを表します。
これにより、置換の対象となるスペースが [ ] 内の直後と直前に限定され、これを空白なしに置換することができます。
さきほどの正規表現に使われていた肯定先読み・後読みについて解説してくれました。
■活用例②-品質チェックに使用する用語集の品質向上
活用例②の背景
翻訳においては、固有名詞や専門用語に対し、お客様から訳語指定をいただくケースが多くあります。こうしたケースでは、翻訳に指定用語が漏れなく使われているか、ご納品前に徹底的にチェックします。
この際頻繁に用いるのがQA Distiller(Yamagata Europe社)というツールです。 なお、QA Distillerでの用語チェックについては下記のブログでもご紹介しています。
関連ブログ:
QA Distillerでの用語チェックには、「原文用語-指定訳語」の対訳表をQA Distiller専用に加工したDictionaryファイル(.dict)を使用します。
Dictionaryファイルは、以下のように「原文|訳文」の形で1行ずつ用語が羅列された構成になっています。
上記のDictionaryにはいくつか問題点があります。
・訳語が無い用語がある(「キャンセル」「ネットワーク選択」)
・スペースの羅列がある(「キャンセル」の上下)
元の対訳表の状態(作成途中で全ての用語の訳が決まっているわけではない等)により、Dictionaryファイルにこのような問題が残るケースがまれにあります。
この状態でQA Distillerでのチェックを実行すると、意図しないエラーが出る場合があるので、解消していきたいと思います。
実際に使ってみる
上記の問題を解決するには、訳語が無い行と空行を削除する正規表現が必要です。 それぞれChatGPTに作成してもらいました。
<訳語が無い用語の検出>
|という文字で終わっている行全体を検索するための正規表現は?
↓
文字列全体を検索するための正規表現は、次のようになります。
^.*\|$
・^: 文字列の先頭を示します。
・.*: 任意の文字列を表します。* は直前の文字やパターンが0回以上繰り返されることを示します。つまり、行の先頭から任意の文字列が来ます。
・\|: パイプ | をエスケープしており、文字列中にパイプを含むことを示しています。
・$: 文字列の末尾を示します。
したがって、この正規表現は、行の先頭から任意の文字列があり、そして最後にパイプ | がある行に一致します。
<訳語が無い用語の検出>
スペースしかない行全体を検索する正規表現は?
↓
スペースしか含まれていない行全体を検索するための正規表現は次の通りです。
^\s*$
・^: 文字列の先頭を示します。
この正規表現は、行の先頭 ^ から始まり、\s* は0個以上の空白文字を表します。$ は行末を示します。つまり、スペースしかない行に一致します。
2つとも回答を得られました。いずれもシンプルな正規表現ですが、ふと思い出せない時にすぐにChatGPTに聞けるのは便利ですね。 この2つの正規表現を使用してDictionaryを修正していきます。
<訳語が無い用語の削除>
特に、正規表現は「実際に正しいかどうか」をすぐに確かめることができます。ChatGPTは度々「本当らしく嘘を言う」のが落とし穴と言われますが、正しいかどうかをすぐに確認できる正規表現であれば、その落とし穴の回避も可能でしょう。
<スペースの羅列の削除>
<修正後>
修正できました。これで用語チェックができるようになりました。
3. まとめ
今回はChatGPTに正規表現を作成してもらい、翻訳チェックに活用する試みをご紹介しました。活用例①の複雑な例では、何度かトライする必要がありましたが、最終的には意図通りの回答を得られました。活用例②のような単純な例では、1回で意図通りに作動する正規表現を教えてもらえました。
正規表現は、慣れている人には簡単でも、知識が無いと使いこなせなかったり思い出せなかったりすることが多いですよね。ここをChatGPTにお任せするのは、ChatGPTの使い方としては非常にシンプルですが、翻訳品質チェックには大きく役立つと考えられます。
特に、正規表現は「実際に正しいかどうか」をすぐに確かめることができます。ChatGPTは度々「本当らしく嘘を言う」のが落とし穴と言われますが、正しいかどうかをすぐに確認できる正規表現であれば、その落とし穴の回避も可能でしょう。