.. _sec_machine_translation: 機械翻訳とデータセット ====================== 現代の RNN に対する広範な関心を引き起こした 主要なブレークスルーの一つは、 応用分野である統計的 *機械翻訳* における大きな進歩でした。 ここでは、モデルにある言語の文を与え、 対応する別の言語の文を予測させる。 なお、ここでは文の長さが異なる場合があり、 また、2つの文における対応する単語が 同じ順序で現れないこともある。 これは、2つの言語の文法構造の違いによるものである。 このような、2つの「整列していない」系列の間の写像という性質をもつ問題は 他にも多くある。 例としては、対話のプロンプトから応答への写像や、 質問から答えへの写像が挙げられる。 広く言えば、このような問題は *sequence-to-sequence*\ (seq2seq)問題と呼ばれ、 本章の残りと :numref:`chap_attention-and-transformers` の大部分で 私たちが扱うテーマである。 この節では、機械翻訳問題と、 後続の例で用いるデータセットの例を紹介する。 何十年もの間、言語間翻訳の統計的定式化は 研究者がニューラルネットワークによる手法を実用化する以前から 人気があった :cite:`Brown.Cocke.Della-Pietra.ea.1988,Brown.Cocke.Della-Pietra.ea.1990` (これらの手法はしばしばまとめて *neural machine translation* という用語で呼ばれていた)。 まず、データを処理するための新しいコードが必要である。 :numref:`sec_language-model` で見た言語モデリングとは異なり、 ここでは各例が2つの別々のテキスト系列からなり、 一方はソース言語、もう一方は(翻訳された)ターゲット言語である。 以下のコード片では、前処理済みデータを 学習用のミニバッチに読み込む方法を示す。 .. raw:: html