機械翻訳

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

機械翻訳(きかいほんやく)とは、ある自然言語を別の自然言語へ機械的に変換する技術をいう。機械翻訳の概念自体はコンピュータの存在以前より存在するため、機械翻訳と翻訳ソフトは同義ではないが、現在ではほとんど翻訳ソフトとして実装される。例として、英語の文章を入力するとそれを翻訳した日本語の文章を出力する英和翻訳ソフトウエアなどがある。自動翻訳ともいう。近年は統計人工知能、コンピュータ処理能力、データベース、記憶容量の進歩により急速に成長している分野である。

尚、翻訳方法のもう一つとして、「人力翻訳(人の手による翻訳)」がある。

歴史[編集]

機械翻訳の発想は、暗号解読技術に由来すると言われている。アメリカの数学者ウォーレン・ウィーバーが1947年3月にノーバート・ウィーナーに送った手紙によると、ロシア語で書かれた文章について、「暗号化された英語の文章」と見なせば暗号解読の要領で機械的に翻訳できるのではないかと提案している。しかし、同年4月のウィーナーの返信によれば、言語は曖昧な表現が多いために、暗号のように機械的な手段は適用できないのではと懐疑的であった。

研究成果としての機械翻訳は、1954年にジョージタウン大学などの研究グループにより発表された。これを皮切りに、形態素解析係り受け解析などの機械翻訳に必要な技術の研究が始まり、計算言語学という分野が誕生した。しかし、1964年に発表された「ALPACレポート」は、機械翻訳の様々な問題点を指摘し、実用レベルには程遠いことを示した。これにより、米国では機械翻訳の研究に予算がつかず、約10年にわたって研究が停滞することとなった。しかし研究は緩やかに進み、1980年代になると、ルールに基づく機械翻訳システムが一定の成果を上げるようになった。

一方、IBMは1990年代に異なる言語間の単語対応を統計的に獲得する「IBMモデル」という手法を提案した。これが統計機械翻訳の始まりである。 初期の統計ベースの翻訳は単語の並べ替えに基づくものであったが、2000年代に句構造を利用した翻訳手法が発表され、語族が異なる言語間でも翻訳の精度が飛躍的に向上することとなった。

アプローチ[編集]

機械翻訳の手法は大きく分けて「ルールに基づく翻訳」と「統計に基づく翻訳」がある。 また、どちらの手法においても、主に3つの翻訳スタイルがある。

用例に基づく翻訳[編集]

特許やマニュアルなど、文のスタイルがほとんど変わらない状況では、汎化能力が小さくてもシステムとして十分機能する場合がある。 用例に基づく翻訳では、翻訳の例文を記憶した「用例辞書」と単語対応を記憶した「単語辞書」を使用する。

システムの大まかな流れは以下の通りである。

  1. システムに原文fが与えられる。
  2. 用例辞書からfと似た文\tilde{f}とそのペア\tilde{e}を検索する。
  3. システムは、f\tilde{f}の差分を取る。
  4. 訳文\tilde{e}内の適切な単語を単語辞書により置き換える。
  5. 置き換え結果を訳出として出力する。

単語・フレーズに基づく翻訳[編集]

用例に基づく翻訳では、データベースが文全体を記憶していた。一方、単語・フレーズに基づく翻訳では、文を細かな単位に分割し、出現確率や並べ替え確率といった情報を利用することで、コーパスに存在しない文に対する汎化能力を上げる。

構文木に基づく翻訳[編集]

単語・フレーズに基づく翻訳は、文の構造を利用しない翻訳のため、文法的に誤った訳出が多く見られる。また、日英翻訳のように単語の並べ替え距離が大きい場合、正確な翻訳を行おうとすると、探索空間が爆発的に大きくなってしまう問題があった。構文木に基づく翻訳では、構文情報を利用することにより、言語構造的に誤った並べ替えを探索空間から除外し、より正確な翻訳をすることができる。

構文木に基づく手法はいくつか存在するが、以下に句構造に基づく翻訳の一例を示す。

  1. 原文fを句構造解析する。
  2. 得られた構文木を、定められた規則に従って部分木ごとに変換し、訳文eの構文木を得る。
  3. 変換した構文木から、訳出を生成する。

例として、英語から日本語への翻訳を考える。 以下のような原文が与えられたとする。

 "I have a pen."

この文を句構造解析して得られる構文木は次のようになる:

EnglishSyntaxTreeSample1.png

ここで、以下のような辞書を使って英語の単語を日本語の単語に置き換える:

英語 日本語
I
have 持っている
a - (空白)
pen ペン

構文木は次のようになる:

 (S (NP (pron 私)) (VP (verb 持っている) (NP (det -) (noun ペン))))

しかしまだ語順が正しくないし、助詞もない。 ここで構文木に対して以下のような規則を適用して変換をおこなう:

  • "S → NP VP" というノードがあれば、それを "S → NPVP" に変換せよ。
  • "VP → verb NP" というノードがあれば、それを "VP → NPverb" に変換せよ。

すると変換された木はこのようになっている:

 (S (NP (pron 私)) は (VP (NP (det -) (noun ペン)) を (verb 持っている)))

ここから、以下のような翻訳文を生成できる:

 "私はペンを持っている。"

これは非常に単純な例である。 実際には英語の have は複数の語義をもつので、語義の曖昧性解消をしなければ単純に「have → 持っている」という変換をすることはできない。 また、モダリティの考慮や、照応の解決、敬語の扱い、自然な言いまわしの文の生成など実用的な翻訳ソフトウエアをつくるためには多くのことを考慮に入れる必要がある。

構文木に基づく翻訳では、構文解析誤りが翻訳結果に悪影響を及ぼす場合がある。その場合の解決策として、複数の構文木の候補(森)を考慮した翻訳手法も存在する。

統計翻訳[編集]

計算機の発達によって1990年代以降研究が盛んになっているのは統計的な手法を用いた機械翻訳である。

ルールベースの翻訳では、人間が想定しなかった入力文には対応できない問題がある。また、翻訳ルールの記述や見直しには膨大な手間がかかるため、効率が悪い。そこで、パラレルコーパスと呼ばれる文同士の対応がついた2言語間のコーパスを利用し、翻訳のルールを自動的に獲得し、各ルールの確率を統計的に推定するものが統計翻訳である。

統計翻訳は音声認識の分野で用いられていた雑音チャネルモデルを応用したもので、元言語(翻訳元の言語) f は目的言語(翻訳後の言語) e が雑音のある通信路を通る間に変化してしまったものであると捉え、翻訳とは元言語から目的言語への復号であると考える。 この時、復号誤りが最も小さくなる翻訳結果 \hat{e} は以下の式を満たすことによって得られる。

\hat{e} = \mathrm{argmax}_{e} P(e|f)

しかし、このままではモデル化が難しいため、ベイズの定理を用いて以下のように変形する。

\mathrm{argmax}_{e} P(e|f) = \mathrm{argmax}_{e} \frac{P(e)P(f|e)}{P(f)} = \mathrm{argmax}_{e}P(e)P(f|e)

よって

\hat{e} = \mathrm{argmax}_{e} P(e)P(f|e)

ここで P(e) をモデル化したものを言語モデル、P(f|e) をモデル化したものを翻訳モデルと呼び、言語モデルは言語としての確からしさを、翻訳モデルは翻訳の確からしさをモデル化していると言える。そして、これらのモデルから翻訳候補を生成し、最も確率の高い翻訳結果を探索する処理系をデコーダと呼ぶ。

翻訳モデルのみでは目的言語として正しくない文となってしまうため、言語モデルによって目的言語として正しくない文を取り除けると考えられる。また、言語モデルについての研究は音声認識などの分野において既に研究が行われており、その知見を生かすこともできる。

パラレルコーパスの入手方法として、自前のデータを利用することもあるが、最近では各言語に翻訳された特許文や、Webページのクローリングデータを利用することもある。

統計翻訳においても、翻訳の精度を高めるために、人手により追加されたルールを利用する場合がある。また、近年ではパラレルでないコーパスから翻訳ルールを獲得する研究も為されている。[1]

問題[編集]

ゼロ代名詞[編集]

日本語から他の言語への翻訳で問題となるものの一つにゼロ代名詞問題がある。日本語では代名詞が頻繁に省略されるが、例えば英語に翻訳する際には、それらを補う必要がある。以下に例を示す。

弟は公園に行った。そこで友達と会った。

この文から、友達と会ったのが「弟」であることは明らかであり、挿入すべき代名詞は He であることが分かる。英語に翻訳すると以下のようになる。

My brother went to the park. He met his friend there.

ところが、機械翻訳で単純に文単位の翻訳をした場合、2文目だけでは誰が友達に会ったのか明らかではなく、前後の文を利用して挿入すべき代名詞を推測する必要がある。 さらに、「弟」や「妹」などのように代名詞が容易に判断できる場合は良いが、どのような代名詞を挿入すべきか簡単には判断できない状況もある。

語義の曖昧性[編集]

以下の英語を考える。

I ate rice.

これを翻訳すると「rice」が「ご飯」となり、「私はご飯を食べた」という結果が得られる。では、次の英語を考える。

We will have rice harvest tomorrow.

この場合、「rice」を「ご飯」に翻訳すると「私たちは明日ご飯を収穫します」という不自然な翻訳となる。 日本語では「rice」をその状態や部位に応じて「稲」「(お)米」「ご飯」と使い分けるため、前後の文脈から最善の翻訳を推定しなければならない。

常識[編集]

機械による翻訳の困難さのひとつは、それが文法や単語の意味の解析といった論理的処理だけでは解決しない点にもある。たとえば英文 Time flies like an arrow. について、普通はこれを 「時は矢のように飛び去る 」(光陰矢のごとし)と解釈するが、これを 「時間蠅 は矢を好む 」 と訳することも可能で、文法的にも破綻がない。

当然、普通は後者は間違いなのであるが、後者を捨て去る判断ができるためには、人には時が素早く過ぎると感じられることがあること、矢は速く飛ぶこと、時間蠅という生き物は存在しなさそうなこと、虫が矢を好むことなどありそうにないこと等の知識が必要である。極論すれば、正しい翻訳を行うためにはその文がかかわる世界そのものに関するあらゆる知識や感覚が必要になる。また、ありそうにない時間蠅 も、たとえばルイス・キャロルなら存在させるかもしれず、問題はより複雑になる。
その一方、常識的判断が誤訳をもたらすこともある。 たとえば、昆虫群の移動速度を素早く測定したい生物学者は、英会話が不得手な場合 「矢のように蝿たちを計時せよ 」 と現地人に命ずるかも知れない。 この場合 「光陰矢のごとし」 のほうが、文法的破綻はなくとも現実を反映しない訳ということになる。

翻訳支援[編集]

いわゆる機械翻訳は「自動翻訳」と「翻訳支援」の2つのまったく異なる方向で用いられる。自動翻訳では人間の介入は最小限であり、すべてを機械に翻訳させようとする。これは「翻訳元の言語を理解することができない人」のための技術である。翻訳支援はプロの翻訳者が翻訳作業を効率的かつ高品質に行うために翻訳ソフトを活用するものである。これはすでに一部の先進的な翻訳者によって活用されている。

実用性[編集]

現実の翻訳は互いの言語の関係によっても大きく異なる。言語はそれぞれ孤立して存在するものではなく、多かれ少なかれ互いに影響しあって存在する。特に共通の歴史が長い場合、文法や語彙に共通性、あるいは共通の起源を多く持つことがある。そのような場合、極端に言えば単語を置き換えるだけでもある程度のレベルの翻訳が可能であるから、機械翻訳もより容易い。

だいたいの意味を知るための概訳については、フランス語スペイン語イタリア語などインド・ヨーロッパ語族ロマンス語系諸語間の自動翻訳は比較的順当であり、英語とロマンス語系あるいはゲルマン語系言語との間の自動翻訳も実用レベルに達しているといえる。日本語からの翻訳の場合、実用のレベルにあるのは日韓自動翻訳である。日本語と韓国語は膠着語であるという文法的共通性や、漢語からの借用語もあり、自動翻訳の精度は文体にもよるが普通80% - 90%である。このため、日韓間では「GoKorea」「KJCLUB」などの自動翻訳掲示板なども存在する。

日本語の場合は助詞や同音異義語が多数存在し、主語の省略も行われる。このため、形態素解析の段階で解析誤りが発生し、文脈から推定しなければならないことも数多く存在する。ゆえに一般に英日翻訳に比べて日英翻訳の能力は低い段階にある[2] 。英語の語学力のない人が英訳を行い出来上がった英文の評価が出来ない場合、英訳した文を日本語に再変換してみて日本語で意味が通るかどうか確認してみると良い。

翻訳支援の場合、では、特定の分野の翻訳に適したユーザー辞書を作成することにより、翻訳ソフトの訳質は大幅に向上する。だが一定規模の企業・組織ユーザー以外の、一般ユーザーの小規模な利用シナリオでは、ユーザー辞書の利用効果よりも作成にかかる時間・労力のほうが大きい。その理由には、辞書作成に技能を要する、ユーザー辞書のコンテンツがない、辞書の相互利用のためのインフラがない、翻訳の量が少ない(規模が少ない・頻度が少ない)といったことが考えられる。これらの問題を解決するために、AAMT(アジア太平洋機械翻訳協会)が、ユーザー辞書を共有するための用語集仕様であるUPFを策定した。その後、UPFの検討は中止され、2006年に後継の仕様であるUTXの策定が開始され、2013年現在ではバージョン1.11が公開されている。

アプリケーション[編集]

商用・非商用両方で多くの機械翻訳のアプリケーション、ツールキットが存在する。

プロプライエタリ[編集]

フリーソフトウェア[編集]

  • Moses (フレーズベース・統計)
  • Travatar (ツリーベース・統計)
  • cicada (ツリーベース・統計)

評価[編集]

機械翻訳の評価方法として、人手評価と自動評価がある。

人手評価[編集]

人手評価は、その名前の通り、人間の評価者が翻訳機の出力結果を読んでスコアをつけていく方法である。 スコアとして、例えば以下のような基準を設定する。

  • 5: 不自然さを感じず、意味も正確である。
  • 4: 多少不自然さがあるが、意味は概ね理解できる。
  • 3: 不自然さがあり、意味が分かりにくい。
  • 2: 不自然さがあり、所々誤訳が含まれている。
  • 1: 翻訳が完全に崩壊している。

各文に対して上記のような指針に従ってスコア付けを行い、最後に各評価の割合(どのスコアの文が何パーセント含まれているか)を計算して翻訳システムの評価結果とする。 複数の基準に従って評価したり、評価者が自由にコメントできるようにすることで、単純なスコア付けだけでなく、システムの改善に繋げることが可能である。

自動評価[編集]

自動評価は、機械翻訳の結果を機械的に評価する方法である。 評価を行う場合は、まず、原文と参照訳(翻訳の正解文)を数千対程度用意し、翻訳システムを用いて原文を翻訳する。 次に、翻訳結果と参照訳の類似度を各文に対して計算し、最後に平均を取って翻訳システムの評価とする。

自動評価尺度として、以下のようなものがある。それぞれの尺度に特徴があるため、1つの尺度を信頼するのではなく、複数の尺度を併用することが望ましい。

関連項目[編集]

出典[編集]

  1. ^ S. Ravi and K. Knight (2011). “Deciphering Foreign Language”. Proc. ACL. 
  2. ^ 成田一『パソコン翻訳の世界』