「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>言語処理(AI)]] --機械翻訳 > [[翻訳関連]] ---[[Google翻訳]]~ ---[[Google翻訳]] ---[[DeepL翻訳]] ---[[動画音声の翻訳]] --[[Transformer、GPT-n、BERT>自己符号化器(AE:オートエンコーダ)]] ---[[ChatGPT]] ---[[OSSのLLM]] *目次 [#b0137fc8] #contents *概要 [#wda534f5] *詳細 [#xc7ea4fb] **サービス [#k91e1265] ***[[Google翻訳]] [#d6d0109b] ***[[DeepL翻訳]] [#z3c4a76e] **歴史 [#p5fd042e] ***1930年代 [#i554c78b] -機械翻訳の発想が始まる。 -ロシア --本格的な取り組みが始まる --が、実用に至らなかった。 -1947年に英仏機械翻訳 --英語とフランス語は同じ文法体系 --単語だけ置き換える単語置換のロジック ***1950年代 [#u0ba3a8b] -ロシア語・英語の機械翻訳のデモを開発。 -当初はわずか250単語しか扱えない代物だった。 -セマンティック・ストラクチャー --1957年、Chomsky --文法を解析して翻訳~ 現在まで脈々と続いている言葉の解析の初め ***1960年代 [#p86d604e] アメリカ政府が開発を試みるが、品質・効率が悪く、開発を中止 ***1970年代 [#h056eb3e] -英語・フランス語の天気を翻訳する METEO を開発 -Systran 社創設、[[RbMT>#ja92add2]]が本格化 --機械翻訳の世界で先に実用化した[[RbMT>#ja92add2]] --冷戦の真っ只中だったため、~ 対応可能言語は英語とロシア語のみ --アメリカ空軍に取り入れられ、 ---ロシア語の科学・技術マニュアルなどの英訳に使われた。 ---分野によって対訳のあらましを掴むぐらいの性能はあった。 --後に、米ソが協力したアポロ・ソユーズテスト計画にも使用された。 -Systran のそこそこの成功を受けて、欧州連合も似たようなシステムに取り組んだ。 --各加盟国が欧州連合の様々な資料を読めるようにするべく、Eurotra という新システムの開発に大きな資金と時間を費やした。 --結局、開発過程が複雑化したために、実用的な機械翻訳を作るのに失敗したが、これまでの研究が後のものに役立つことになる。 ***1980年代 [#s9253c1f] -長尾真が[[EbMT>#tcfae899]]を提案・研究 -残念ながら、このモデルは [[RbMT>#ja92add2]]より簡単だったにも関わらず、実用化せずに終わった。 ***1980-90年代 [#j9be96f7] -1980-90年代に [[SMT>#m53ddda3]]が王道の機械翻訳モデルになった(用例 → 統計)。 --[[SMT>#m53ddda3]]は、1949年に科学者・数学者の Warren Weaver が思いついた機械翻訳モデル --当時のコンピューター性能では品質の高い[[SMT>#m53ddda3]] は不可能だったが、 --[[EbMT>#tcfae899]]の成功を契機に、概念が蘇りIBM社で[[SMT>#m53ddda3]]を提案・研究、実用化に成功。 -1997年に、DEC と Systran が共同で、 --Babel Fish というネット上の機械翻訳サービスを公開。 --初めて一般人を対象にした機械翻訳サービスでユーザーは無料で使うことができた。 -2016年に[[NMT>#m65ab882]]に移行するまで、 --長年メインの機械翻訳のモデルとして活躍 --Google、Microsoft、Systran、Yandex は皆[[SMT>#m53ddda3]]を使用。 ***2000年以降 [#n8d403ad] -2006年: Google Translate 登場([[SMT>#m53ddda3]]を使用) -2015年: Google Translateが[[NMT>#m65ab882]]を採用 --2014年: 機械翻訳に[[ニューラルネットワーク]]を採用しようという科学論文が発表 --2015年: 機械翻訳大会でOpenMT'15 という始めての[[NMT>#m65ab882]]の試作機が登場 --2016年: (以降、)同大会の勝者の9割は[[NMT>#m65ab882]]のシステムとなった。 -2017年: 同様に[[NMT>#m65ab882]]を採用したDeepLは非常に自然な翻訳をするとして注目を浴びる。 **種類 [#tecc8ecb] ***ルールベース機械翻訳(RMT) [#ja92add2] RbMT: Rule-based Machine Translation -概要 --登録済みのルールを適応することで原文を分析し、訳文を出力する機械翻訳の方法 --現在、この[[古い技術の RbMT>#h056eb3e]] は使われていないが、無料ソフトの形で RbMT がレガシーを残している。 ---51言語ペアに及ぶ無料ソフト Apertium ---北ゲルマン語群/英語をメインに対応している Gram Trans -仕組み --文法ルールを軸(モデル)に機能している方式 --単語・文法情報が必要 ---元言語(SL: Source Language) ---翻訳言語(TL: Target Language) --文法は、多くの場合、手動で言語学者が設定。 --単語については、大量の辞書が必要だった。 -構成要素 --文法 ---元言語を解析する機械 ---元言語を対象言語に翻訳する機械 ---対象言語の文章を生成する機械 --単語 ---元言語の辞書 ---対象言語の辞書 ---SL を TL に翻訳するための二言語辞典 -ステップ --[[形態素解析 > 構文解析 > 意味解析 > 文脈解析>言語処理#e5070d8f]] --各単語を TL に翻訳し、出力を適切な形で適切な位置に置く -トレードオフ --メリット ---ルールはカスタマイズ可能 ---エラーをルールで調整可能 ---従って品質向上可能 ---既存の翻訳データがいらない --デメリット ---複雑で手間がかかる ---手動でやらなければいけないことが多い ---分野によって、高品質の辞書が少ない ***用例ベース機械翻訳(EMT) [#tcfae899] EbMT: Example-based Machine Translation -概要 --文章の例を用い、完全にルール作成というステップを省く。 --バイリンガル・[[コーパス>言語処理(AI)#ee57ac60]](二言語対訳集)が将来登場するモデルに大きな影響を与えた。 -仕組み~ 二言語対訳集から対象文章に一番近い例をピックアップして翻訳の文章を出力する。 --言葉を一つ一つ参照するのではなく、フレーズ・表現という大きな単位で参照して、翻訳を行う --基本的に例として参照できる対訳集が大きければ大きいほど、翻訳の品質が上がる -構成要素~ バイリンガル・[[コーパス>言語処理(AI)#ee57ac60]](二言語対訳集) -ステップ --元文章と対訳集を比べる。 --似ている例から部分を拾う。 --他の例を用いて欠損部を埋める。 -トレードオフ --メリット ---[[RbMT>#ja92add2]] より簡単でルール作成・調整をせずに済む。 ---既存のバイリンガル・[[コーパス>言語処理(AI)#ee57ac60]](二言語対訳集)さえあれば翻訳できる。 ---更にバイリンガル・[[コーパス>言語処理(AI)#ee57ac60]](二言語対訳集)を足せば品質が上がる。 --デメリット ---実用化しなかった ---フレーズ単位で翻訳するため、~ ・複雑な文章の例は見つかり難い~ ・細かな翻訳が難しい ***統計的機械翻訳(SMT) [#m53ddda3] SMT: Statistical Machine Translation -概要~ [[EbMT>#tcfae899]]と同じように、バイリンガル・[[コーパス>言語処理(AI)#ee57ac60]](二言語対訳集)を多量に取り入れるモデル --しかし、[[EbMT>#tcfae899]]より遥かに複雑な処理を行い、単語単位もフレーズ単位も翻訳ができる。 --同様に、二言語対訳集が大量にあればあるほど、翻訳結果は、より正確になる。 -仕組み~ フレーズをピックアップするのではなく、対訳集からパターンを覚え翻訳された文章の正しさを「確率」で表す。 --二言語対訳集を学習データとして使用する。 --学習データで学習して統計モデルを構築する。 --統計モデルを翻訳器として機械翻訳を実現する。 --統計モデルは翻訳モデルと言語モデルに分かれ、翻訳の確かさと文法の確かさを評価 --膨大な対訳データ(バイリンガル・[[コーパス>言語処理(AI)#ee57ac60]](二言語対訳集))を利用しても精度の高い翻訳は出来なかった。 -構成要素 --バイリンガル・[[コーパス>言語処理(AI)#ee57ac60]](二言語対訳集) --翻訳モデル、言語モデル ---翻訳モデル:それぞれどの単語同士が意味的に対応する可能性が高いかを考慮 ---言語モデル:原文に対応すると考えられる単語が訳語として自然かを考慮 -ステップ --翻訳モデルに通して、単語を翻訳する。 --言語モデルの評価を利用し、語順を並び替える。 -トレードオフ --メリット ---以前より流暢な出力 ---既存のアルゴリズムが豊富 ---サーバー負担、コストが低い ---[[EbMT>#tcfae899]]と同様、~ ・文法・ルール設定不要で言語学者不要~ ・対訳集があるほど品質が上がる --デメリット~ ---品質が不安定でエラーはすぐに修正できない ---特にスラング・話し言葉の翻訳が困難 ---バイリンガル・[[コーパス>言語処理(AI)#ee57ac60]](二言語対訳集)~ ・...の作成コストが高い~ ・...の品質に翻訳品質が左右される ***ニューラル機械翻訳(NMT) [#m65ab882] NMT: Neural Machine Translation -概要 --[[SMT>#m53ddda3]] と同様に、既存の翻訳データが多ければ多いほど、機械翻訳の質が上がる。 --[[ニューラルネットワーク]]を採用しているために、機械学習が大事な要素となっている。 --1つの[[ニューラルネットワーク]]で、訓練と翻訳を完結させる(End-to-End)。 --[[BERT>言語処理(AI)#a5995dbe]]で「文脈(コンテキスト)を読むこと」が実現され精度の高い翻訳が出来るようになった。 -仕組み --人間が多量に既存の翻訳データを入れて学習をさせる。 --文を数字化(ベクトル化)するのがポイントになる。 -構成要素 --バイリンガル・[[コーパス>言語処理(AI)#ee57ac60]](二言語対訳集) --翻訳に[[RNNの発展形のEnc-Dec、Seq2Seq>再帰型ニューラルネットワーク(RNN)#c141d604]]を使用する。~ ---Encoder:入力文を変換する。 ---Decoder:出力文を生成する。 --Encoder、Decoderの間には、Neural Translation Modelがある。~ コレは、翻訳を文章単位で行う(翻訳中に文章内の単語を一つ一つ順番に予測する)。 -ステップ ---Encoderで、原文の単語を数字列に変換する(例:犬 -> 23) ---Neural Translation Modelによって、数字列(中の単語を意味するデータ)を並び替える。 ---Decoderで、数字列を文字に変換する(例:23 -> dog)し翻訳文を生成する。 -トレードオフ --メリット ---より流暢な翻訳品質 ---既存翻訳データが少なくても利用を続けることで学習できる。 ---頻出頻度の低い珍しい単語に対応可能、あらゆる分野に対応可能 --デメリット ---学習時間が長い、翻訳統一が困難 ---固有名詞・専門文章の翻訳に弱い ---ブラックボックス故に、問題検査・エラー修正が困難 -発展 --[[Attention>言語処理(AI)#qc74fd48]] ---Attention前:[[RNN Enc-Dec>RNN Encoder-Decoder(Sequence-to-Sequence)#h871aa88]] ---Attention以後:[[RNN search>RNN Encoder-Decoder(Sequence-to-Sequence)#oc99a385]] --[[Transformer>言語処理(AI)#a5995dbe]] --[[BERT>言語処理(AI)#l0841a18]] *参考 [#u61bdb76] -機械翻訳がたどってきた歴史からみる進歩を解説!今後の可能性も紹介~ https://mx.wovn.io/blog/0003