もう英語を勉強する必要がなくなる…？？

英語嫌いの私にとっては素晴らしく嬉しいニュースです．

Google翻訳の精度が大幅上昇です!!!

translate.google.com

Swiftドキュメントを翻訳してみる

プログラミングする時にネックになるもの…

そう，英語で書かれたドキュメントの翻訳です．

ちょっとドキュメントを翻訳してみましょう．

まずは，Railsのドキュメント．

Ruby on Rails API を翻訳してみたいと思います!!

Rails is a web-application framework that includes everything needed to create database-backed web applications according to the Model-View-Controller (MVC) pattern.

これを翻訳すると…

Railsは、Model-View-Controller（MVC）パターンに従ってデータベースバックアップされたWebアプリケーションを作成するために必要なすべてを含むWebアプリケーションフレームワークです。

え？すごくないですか，この精度．完璧じゃないですか．

めっちゃテンション上がったので，ついでにSwiftのドキュメントも．

The Swift Programming Language (Swift 3.0.1): About Swift の翻訳です．

Swift adopts safe programming patterns and adds modern features to make programming easier, more flexible, and more fun. Swiftは安全なプログラミングパターンを採用し、プログラミングをより簡単に、より柔軟に、より楽しくするためのモダンな機能を追加しています。

今まで，ありえない日本語翻訳の数々を提示してきたGoogle翻訳さんが，ここまでの精度で翻訳するとは…

Swiftとか，固有名詞であることもしっかり理解してアルファベットのまま置かれてます．

今までだったらスウィフトとかカタカナで直してたはずですが，ここも精度の向上!!

ニューラルネットワーク

Google翻訳では今まで，統計的なデータを使って翻訳していたものを，機械学習を使った翻訳にシステムを切り替えたわけですね．

話の簡単化のため，お詳しい方からするとあれ？となるかもしれませんが，あくまでこの記事のメインは上部のGoogle翻訳の性能向上の凄さを伝えることだと思ってお読みください．

Google翻訳では，ニューラルネットワークと呼ばれる機械学習の手法を使用しています．

高校の生物あたりで習うんですが，脳の中には多数のニューロンと呼ばれる神経細胞があります．

各ニューロンは，他のニューロンから信号を受け取ったり，信号を受け渡したりすることによって，情報を処理しています．

この仕組みをコンピュータで実現しようとしたのがニューラルネットワークです．

今回のGoogle翻訳の精度向上について少し調べてみました． 以下，「Google翻訳」にニューラルネット機械翻訳技術を採用 まずは中国語→英語で – ITmedia ニュース より一部引用

Neural Machine Translation（NMT）を大まかに説明すると、ある言語の単語を系列データとして固定長のベクトルに置き換え、それを別の言語の系列データに変換する「エンコーダ・デコーダ」モデルをニューラルネットワークで行うというものだ。

まぁ難しいこといってますが，Googleのアルゴリズムで改善されたのは以下の点です．

とてもざっくりいうと，言語っていうのは，単語からなるわけです．

単語自体を英語から日本語に変えるのは簡単です，今までのGoogle翻訳でも出来ました．．

Appleをりんごにすればいいわけですから．

ですが，「I ate an apple」をそのまま翻訳すると，「私食べたりんご．」っていうわかりにくい日本語ができます．

このわかりにくい日本語が今までの翻訳機です．

さらにそれを，大量の単語の組合せのルールを機械学習によって覚え込ませることにより，圧倒的精度の翻訳を実現しているわけですね，

機械学習めちゃめちゃ夢があって楽しいですよね．