分野特定のニューラル機械翻訳エンジンを作ってみた 〜 データ収集とパフォーマンス検証を中心に(その1)

はじめに

2015年以降、AI業界の技術ニューラルネットワークの発展に伴い、ニューラル翻訳(Neural Machine Translation、以下はNMT)という新しい機械自動翻訳が登場しました。
誕生わずか数年のNMTですが、従来のルールベース翻訳(Rule Base Machine Translation。以下、RBMT)や統計翻訳(Statistical Machine Translation。以下、SMT)と比べたら、より精度の良い翻訳が可能なので、一気に機械翻訳方式の主流になりました。
さて、分野を特定した翻訳の話に入りますが、分野特定の翻訳は、機械より人手に任せた方がいい、という認識が濃厚です。
その原因として、

1. 専門文書の翻訳難易度は高く、人手翻訳と比べ品質差は大きい
2. 用語の出力訳が毎回異なったり、分野に不適切な誤訳が出力したりする

などが挙げられます。

しかし、現実では、作業量・費用・品質を総合的に考えると、人手での分野特定の翻訳にもいろいろ制限があります。
逆に用途によって、ある程度満足できるレベルの訳を提供すれば、機械翻訳でもよいという顧客の期待が増えました。
NMTがブームになった今、このような期待に応えられる分野特定NMTを作ることはできるのでしょうか?
また、その作り方とパフォーマンスは如何に?
これから検証してみましょう。

エンジン作成の第一要素:データ

言うまでもなく、分野特定NMTエンジンを作るには、データが必要です。そして、データ自体が対訳で、かつ分野特定なものでなければなりません。
対訳データとは、文とその対訳文が揃い、かつ対応付け済みのデータです。例えば、日本語とその中国語訳が結びついている、というように。
分野特定は、すなわち、スポーツ分野のエンジンを作るには、スポーツのデータを利用するということです。なぜかというと、汎用の対訳データを用いると、特定の分野のデータにはそぐわない訳となってしまったり、また、他の分野のデータが悪影響を及ぼす恐れがあるからです。
なお、NMTの仕組み上、従来のSMTより大量の対訳データが必要になります。
したがって、分野特定の大量の対訳データを確保することが最初にクリアすべき問題となります。

分野特定の対訳データの収集方法

しかし実際には、対訳データの収集は容易ではありません。さらに、分野特定という指定が加わると、データを集めることはさらに難しくなります。
では、「大量」の「分野特定」の「対訳」データを収集するにはどうすればよいでしょうか。
それには、以下の3つの手法が考えられます

1. 対訳データの抽出
(1) 文レベルの対訳データが存在しない場合、ある程度の量、例えばファイルレベルで対応している両言語データを確保します。
(2) (1)のファイルレベルのデータから、文レベルの対応付けを決め、「対訳」の文ペアを抜き出します。

2. 分野類似データの抽出
(1) 対訳データ自体は存在するが、複数の分野のデータが混在し、区別されていない場合は、まずデータから少量の分野特定の対訳データを選定します。
(2) 文の類似度計算を利用して、選定した分野特定データと似ているデータを検索します。

3. 言語変換
(1) 単言語データを確保します。
(2) それを別の言語に変換します。
(3) それを対訳データとして扱います。

以上、対訳データの収集について3つの手法を紹介しましたが、今回は、紹介した一つ目の手法の「1. 対訳データの抽出」を利用して、実際にIT分野特定の日中対訳データを収集してみました。
一般的にIT系の技術文書が掲載されているサイトのうち、ページごとに複数言語が対応しているサイトは多数存在しています。
したがって、そのようなサイトから日中対訳データを大量入手することが可能なのです。
入手したデータはあくまでもページファイルレベルでの対応ですが、アライメントツールを作り、日中データを文のレベルまで対応付けする処理をします。
ここで言う“アライメント”とは、自動的に文の対応付けをすることで、手法については別の機会に紹介することにします。
この処理の結果、最終的に、約60万文ペアの中日対訳データを集めることができました。
最先端の汎用NMTを用いたデータ量と比べたら、まだまだ少なくはありますが、NMTエンジンの試作には十分な量です。

次回は、ここで集めたIT分野の中日対訳データを利用して、分野特定した日中・中日NMTエンジンを実際に試作した過程について掲載していきます。

>>> 分野特定のニューラル機械翻訳エンジンを作ってみた 〜 データ収集とパフォーマンス検証を中心に(その2)