-*- POD -*-

機械翻訳を活用するための 100 のヒント (草稿)

関西学院大学 理工学部

大崎 博之 (oosaki[atmark]lsnl.jp)

Tips for computer-based Japanese-to-English translation

$Id: index.pod,v 1.10 2020/10/01 05:40:15 ohsaki Exp ohsaki $

1. はじめに

この文書では、具体的な例を挙げて、機械翻訳サービスを上手に活用するためのヒント を紹介します。ここで紹介するヒントは、私が経験的に学んだものなので、あまり洗練 されていないものや、有効性が ??? のものもありますが、何かの参考になれば幸いで す。

2. どの機械翻訳サービスを使えばいいか?

私はこれまで、以下の機械翻訳サービスを実際に使用し、どの機械翻訳サービス翻訳精 度が一番良いかを比較検討しました。

  Google Translate
  https://translate.google.com/

  Yandex Translator
  https://translate.yandex.com/

  Bing Translator
  http://www.bing.com/Translator

  Excite 翻訳
  https://www.excite.co.jp/world/
  
  Weblio 翻訳
  https://www.weblio.jp/translate/

  Infoseek 翻訳
  http://translation.infoseek.ne.jp/

  DeepL
  https://www.deepl.com/translator

その結果、日英翻訳では「DeepL」の翻訳精度が最も高く、「Google Translate」と 「Yandex Translate」がそれに続くようなレベルでした。

以下では、次のような例文を取りあげ、機械翻訳サービスを用いて英訳する手順を紹介 します。

  そこで本稿では、文献[1]の解析結果を利用することにより、GridFTPにおける
  並列TCPコネクション数の最適化手法(自動パラメータ設定機構)を提案する。
  提案する手法は、まず、GridFTPクライアントにおいて、ネットワークの状態
  (GridFTPのグッドプットやラウンドトリップ時間など)を計測する。次に、こ
  れらの情報をもとに並列TCPコネクション数を調整するといったものである。
  本稿では、並列TCPコネクション数の調整方法が異なる、3種類の動作モード
  (MIモード、MI+モード、AIMDモード)を考える。さらに、シミュレーション実
  験により、提案する自動パラメータ設定機構の性能評価を行う。その結果、提
  案する自動パラメータ設定機構によりGridFTPの性能が大幅に向上することを
  示す。

ここで紹介する考え方は、機械翻訳サービスによらず共通だと思いますので、他の機械 翻訳サービスを使っている人にも参考になると思います。

3. Emacs から「機械翻訳サービス」を利用するための準備

作業効率を上げるためにも、Emacs から機械翻訳サービスを利用できるようにしましょ う。簡単なものですが、Emacs から機械翻訳サービスを対話的に起動するために、私が 使用している Elisp である pytrans.el を公開しておきます。

http://www.lsnl.jp/~ohsaki/software/elisp/pytrans.el

翻訳したい文にポイントを合わせて、M-x pytrans-translate とすれば、その文を翻訳し た結果が別ウィンドウに表示されます。また、C-u M-x pytrans-translate とすれば、そ の文がコメントアウトされ、翻訳した結果が最後に挿入されます。複数の文をまとめて 翻訳するには、リージョンを指定して M-x pytrans-translate-region とします。

4. LaTeX のソースを翻訳するには

LaTeX のソースには、数式や LaTeX のコマンドが埋め込まれているため、そのままで は普通の機械翻訳サービスでは正しく処理できません。数式や LaTeX のコマンドが含 まれていると、機械翻訳サービスは文の区切を正しく判定できず、翻訳された結果が無 茶苦茶になってしまいます。そのため、以下のような方法を使うといいでしょう。

(1) Emacs から pytrans.el を利用して翻訳する

上で紹介した Elisp を使えば LaTeX のコマンドや数式が含まれたまま、機械翻訳サー ビスで翻訳することができます。特に理由がない限り、こちらの方法をお勧めします。

  pytrans.el
  http://www.lsnl.jp/~ohsaki/software/elisp/pytrans.el

pytrans.el のインストール方法については、ファイル中のコメントを参照してください。 pytrans.el は、pytrans と呼ばれる Python スクリプトを利用していますので、こちらも忘 れずにインストールしてください。

  pytrans
  http://www.lsnl.jp/~ohsaki/software/elisp/pytrans

pytrans の実行には、perlcompat、htmltree、tbdump モジュールのインストールが必 要です。

  sudo pip3 install perlcompat tbdump

としてインストールしておいてください。htmltree モジュールは

  http://www.lsnl.jp/~ohsaki/software/elisp/htmltree.py

からダウンロードして、Python のサーチパスが通っている場所 (例: /usr/local/lib/python*.*/dist-packages) にコピーしておいてください。

また、DeepL を使うためにはDEEPL_AUTH_KEY を指定する必要があります。Amazon Translate を使うためには、AWS CLI のインストールおよび設定 (AWS アクセスキーお よび AWS シークレットアクセスキーの設定) が必要です。

  DeepL API Authentication
  https://www.deepl.com/docs-api/accessing-the-api/authentication/

  Understanding and getting your AWS credentials
  https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys
(2) LaTeX のコマンドや数式を取り除いてから翻訳する

ここでは、機械翻訳サービスで扱えるように、数式や LaTeX のコマンドを取り除く方 法を紹介します。

私が使用している Perl のスクリプトを公開しておきます。

http://www.lsnl.jp/~ohsaki/software/perl/tex2txt

例えば、以下のような LaTeX のソースに対して、

  $ cat analysis.tex
  解析モデルを図 \ref{fig:data-streaming-model} に示す。
  GridFTP サーバから GridFTP クライアントへのファイル転送を考え、
  GridFTP サーバ--クライアント間のリンク帯域を $B$、
  ラウンドトリップ時間を $\tau$ とする。

tex2txt を実行すれば、以下のようなテキストファイルが得られます。

  $ tex2txt -l analysis.tex >analysis.txt
  $ cat analysis.txt
  解析モデルを図00003に示す。
  GridFTPサーバからGridFTPクライアントへのファイル転送を考え、
  GridFTPサーバ-クライアント間のリンク帯域を00001、
  ラウンドトリップ時間を00002とする。
  
  __END__
  
  00001 $B$
  00002 $\tau$
  00003 \ref{fig:data-streaming-model}

図への参照 \ref{} や数式が 00001 〜 0003 のようなラベルに変換されています。こ のテキストファイルに対して機械翻訳サービスを実行します。多くの機械翻訳サービス は 00001 〜 0003のようなラベルが混在していても、文の区切を正しく認識できます。

なお、tex2txt の -x オプションを使用すれば、テキストファイル中のラベルを元 に戻すことができます。例えば、上記のテキストファイルを、以下のように翻訳したと します (英語はいいかげんです)。

  $ cat analysis.txt
  An analytic model is shown in Fig. 00003.  The file transfer from a
  GridFTP server to a GridFTP client is considered, the link bandwidth
  between GridFTP server-clients is set to 00001, and round-trip time is
  set to 00002.
  
  __END__
  
  00001 $B$
  00002 $\tau$
  00003 \ref{fig:data-streaming-model}

tex2txt を以下のように実行すれば、ラベルを元に戻すことができます。

  $ tex2txt -x analysis.txt
  An analytic model is shown in Fig. \ref{fig:data-streaming-model}.  The file transfer from a
  GridFTP server to a GridFTP client is considered, the link bandwidth
  between GridFTP server-clients is set to $B$, and round-trip time is
  set to $\tau$.
  
  __END__

これを、LaTeX のソースの該当箇所にペーストします。

5. とりあえず翻訳してみる

まず、何も考えずに、初期設定のまま機械翻訳サービスで日英翻訳を実行してみます。 Emacs 上でリージョンを指定して、M-x pytrans-translate-region とします。もしく は、コマンドラインから

  $ pytrans < sample.txt | fmt

と実行します。

  In this paper, we propose an optimization method (automatic parameter setting
  mechanism) for the number of parallel TCP connections in GridFTP by using the
  analysis result of [1]. The proposed method first measures the network status
  (GridFTP goodput, round trip time, etc.) in the GridFTP client. Next, the
  number of parallel TCP connections is adjusted based on such information. In
  this paper, we consider three different operation modes (MI mode, MI + mode,
  AIMD mode) with different adjustment method of the number of parallel TCP
  connections. Furthermore, we will evaluate the performance of the proposed
  automatic parameter setting mechanism by simulation experiments. As a result,
  we show that the proposed automatic parameter setting mechanism will
  significantly improve the performance of GridFTP.

最近の機械翻訳サービスはレベルが高いので、ある程度のレベルの英語になります。い くつか手を入れて、さらに英文のクオリティを高めましょう。そこで、まず、原文に対 して、C-u M-x format-paragraph

http://www.lsnl.jp/~ohsaki/software/elisp/format-paragraph.el

を実行して、編集しやすいように整形します。

  そこで本稿では、文献[1]の解析結果を利用することにより、
  GridFTPにおける並列TCPコネクション数の最適化手法(自動パラメータ
  設定機構)を提案する。
  提案する手法は、まず、
  GridFTPクライアントにおいて、
  ネットワークの状態(GridFTPのグッドプットやラウンドトリップ時間など)を
  計測する。
  次に、これらの情報をもとに並列TCPコネクション数を
  調整するといったものである。
  本稿では、並列TCPコネクション数の調整方法が異なる、
  3種類の動作モード(MIモード、
  MI+モード、AIMDモード)を考える。
  さらに、シミュレーション実験により、
  提案する自動パラメータ設定機構の性能評価を行う。
  その結果、提案する自動パラメータ設定機構によりGridFTPの性能が大幅に
  向上することを示す。

pytrans.el を使用せずに機械翻訳サービスにを使用している場合、機械翻訳サービス によっては、文中に空白 (タブやスペース) があると構文解析に失敗するします。です ので、括弧の前後の空白なども含めて、余計な空白はすべて削除しておくのが安全です。

pytrans.el を使用していれば、空白は自動的に削除されますので気にしなくても構い ません。

6. 一文ずつ翻訳する

各文において M-x pytrans-translate を実行することにより、各文を機械翻訳サービ スによって英訳します。

翻訳された英語の文章の修正に時間をかけるのではなく、機械翻訳サービスによって正 しく解釈されるように、「日本語の文章の修正に時間を割く」というのがポイントです。

機械翻訳サービスの特性上、前置詞、冠詞、名詞の単複は正しく認識されません。です ので、それ以外について正しく訳出されることを目標として修正します。目安として、 「(前置詞、冠詞、名詞の単複の誤りを除いて) 英語として 95% くらいの完成度になる まで」原文を修正します。

主語が省略された文であっても、単純な構造であれば受動態の形で正しく翻訳されます ので、翻訳結果を見ながら、必要であれば主語を追加してゆきます。論文であれば、た いての場合は動作主体である「我々は」を追加してゆけばよいでしょう。この時、(日 本語としては不自然ですが) 動詞の直前に主語を置くとうまく認識されるようです。

  その結果、提案する自動パラメータ設定機構によりGridFTPの性能が大幅に
  向上することを示す。
    ↓
  その結果、提案する自動パラメータ設定機構によりGridFTPの性能が大幅に
  向上することを我々は示す。
              ======

もともと日本語としておかしい文章があれば、「原文」のほうを修正します。ここはあ る程度の思考錯誤が必要です。ここで頑張ると、後の作業が非常に楽になります。

DeepL は非常に翻訳精度が高いので、原文のままでここまで英訳されます。

  %% そこで本稿では、文献 [1] の解析結果を利用することにより、
  %% GridFTP における並列 TCP コネクション数の最適化手法 (自動パラメータ設定機構) 
  %% を提案する。 [DeepL]
  In this paper, we propose a method for optimizing the number of parallel TCP
  connections in GridFTP (an automatic parameter setting mechanism) using the
  analysis results in [1].
  %% 提案する手法は、まず、
  %% GridFTP クライアントにおいて、
  %% ネットワークの状態 (GridFTP のグッドプットやラウンドトリップ時間など) を
  %% 計測する。 [DeepL]
  The proposed method first measures the network state (e.g., GridFTP goodput
  and round-trip time) in the GridFTP client.
  %% 次に、これらの情報をもとに並列 TCP コネクション数を調整するといったものである。 [DeepL]
  Next, the number of parallel TCP connections is adjusted based on this
  information.
  %% 本稿では、並列 TCP コネクション数の調整方法が異なる、
  %% 3 種類の動作モード (MI モード、
  %% MI+ モード、AIMD モード) を考える。 [DeepL]
  This paper considers three modes of operation (MI mode, MI+ mode, and AIMD
  mode) with different ways of adjusting the number of parallel TCP connections.
  %% さらに、シミュレーション実験により、
  %% 提案する自動パラメータ設定機構の性能評価を行う。 [DeepL]
  In addition, the performance of the proposed automatic parameter setting
  mechanism is evaluated by simulation experiments.
  %% その結果、提案する自動パラメータ設定機構により GridFTP の性能が大幅に
  %% 向上することを示す。 [DeepL]
  The results show that the proposed automatic parameter setting mechanism
  significantly improves the performance of GridFTP.
  

機械翻訳だけでここまでできるとは素晴しいですね。

7. 前置詞・冠詞・名詞の単複を意味を考えて付け直す & 訳文全体を修正する

前置詞および冠詞は、意味を考えてすべて付け直します。また、名詞の単数・複数も前 後の文脈を考えてすべて修正します。

最後に、副詞の位置や語順の調整、英語としておかしい箇所の修正をします。

  In this paper, we propose a method for optimizing the number of parallel TCP
  connections in GridFTP (an automatic parameter tuning mechanism) using the
  analysis results in [1].  The proposed method first measures the network
  state (e.g., GridFTP goodput and round-trip time) at the GridFTP client.
  Next, the number of parallel TCP connections is adjusted based on this
  information.  This paper considers three modes of operation (MI mode, MI+
  mode, and AIMD mode) with different ways of adjusting the number of parallel
  TCP connections.  In addition, the performance of the proposed automatic
  parameter tuning mechanism is evaluated by simulation experiments.  The
  results show that the proposed automatic parameter tuning mechanism
  significantly improves the performance of GridFTP.

Hiroyuki Ohsaki (ohsaki[atmark]lsnl.jp)