説明する相手は、
-英語の読み・書きがあまりできない
-機械翻訳の原理は、基本的に、理解していないし知らない
-「構文木」などの用語を見てもわからない
という人だと想定していただければと思います。
なお、ウィキペディア日本語版の「機械翻訳」の項は参照済です。
http://ja.wikipedia.org/wiki/%E6%A9%9F%E6%A2%B0%E7%BF%BB%E8%A8%B3
これは「難しそう」と思うだけだが、機械翻訳への期待は高い(「使えれば便利だよねー」的に)、という人に説明するにはどうしたらよいか、というのが質問の主旨です。
※ご回答は私のダイアリの「機械翻訳」のエントリで引用・流用させていただくかもしれません。予めご了解ください。
http://d.hatena.ne.jp/nofrills/searchdiary?word=%2a%5b%b5%a1%b3%a3%cb%dd%cc%f5%5d
機械翻訳には、大きく分けて、
*構文解析してから翻訳するタイプ と
*構文解析を(あまり真面目には)せずに翻訳するタイプがあります。
商品化されている機械翻訳ソフトのほとんどは、前者をベースにしていると思います。
統計的機械翻訳といわれるのは後者の急先鋒で、最近活発に研究されています。
(ということは発展途上ということでもあります)
まず、構文解析してから翻訳する、というのがどういうものかを簡単に説明します。
日本語の
青い目の女の子が来た
という文を英語に翻訳するとします。
まず、構文解析器に構文解析をしてもらいます。すると、
<主語><形容詞><名詞>青い目</名詞>をした</形容詞><名詞>女の子</名詞>が</主語><述語><動詞>来た</動詞></述語>
理想的にはこんな感じに、単語やそのまとまりの品詞を調べて、区切ってくれます。
次に、適切なまとまりごとに翻訳をします。
<主語><形容詞><名詞>blue-eye</名詞>をした</形容詞><名詞>girl</名詞>が</主語><述語><動詞>came</動詞></述語>
さらに、英語と日本語の語順を考慮して並べ替えしつつ、残っている部分を翻訳します。
<主語>a <名詞>girl</名詞><形容詞>with <名詞>blue-eyes</名詞></形容詞></主語><述語><動詞>came</動詞></述語>
これでできあがりです。
これは概念的な説明ですが、難点は分かるんじゃないかと思います。
上の説明では、いろいろ「都合よく」すすめた部分があるからです。
まず構文解析では、実際にはもっと色々解析の仕方がありえて、選ぶのが難しいです。
(「青い目をした女」の子、かもしれないし、青い「目をした女」(?)の子かもしれない)
適切なまとまりごとに、というのも難しくて、
例えば「女の子」がa child of a womanに翻訳される、というも候補としてありえます。
日本語にない冠詞を、それらしく補っている、というところも、うまくできるものとしていました。
構文解析ベースの機械翻訳で難しいのは、こういった
正しそうな候補がたくさんできてしまって選べない、
という問題をいかに解決するかということです。
一方、統計的機械翻訳は、この選べない、というところに目をつけて、
まずここから解決しようとしています。
構文解析して翻訳するときに選べないという状況は、
人間だとどうやって解決しているかを考えてみると分かるのですが、
実は全部「慣用」で決めています。
つまり、「典型的にはこういう意図(構文)のつもりであることが多い」
「そういう表現の方がよく使われている」から、です。
(実はもうひとつ、文脈で選んでいる、という強力な原因がありますが、省略します)
統計的機械翻訳では、
「よく使われているものを、よく使われているように翻訳する」
を機械で実現するために、大量の文例を利用します。
まず、翻訳前と翻訳後の関係になっている文例を、大量に集めておきます。
そして、構文解析ベースの翻訳がやっていることを、
全部この文例データベースを使ってやってしまいます。
まず、まとまりを切り出して、対応している部分同士をみつけることをします。
このとき「日本語側と英語側で同時に現れやすい単語の並び」が対応している、
とみなしてしまいます。
たとえば、「青い目」を含む文と、blue eye を含む文のペアがデータベースの文例に多ければ、
このふたつの部分は対応している、とみなされやすくなります。
翻訳する時も、上で作ったたくさんの対応部分を参照します。
青い目はblue eyeに対応付けられたり blue-eyed に対応付けられたりしそうですが、
統計的機械翻訳だと、その中から「文例データベースで一番多く起こるもの」を選びます。
結果を仕上げるときにも、翻訳後言語の文例をたくさん集めておき、
そこにないような単語の並びができるだけ出てこないように調整します。
こうした統計的機械翻訳の原理的な弱点は、
文例データベースの質と量が悪いと、とたんにうまく動かなくなる、ということです。
現実的な問題として、こうした大量の文例が翻訳済みで手に入る世界は限られていて、
ニュースであったり、国会議事録であったり、それぞれ特殊な世界です。
これが原因で、「中学校で最初に習うような文」が翻訳できなかったりします。
たとえば、国会議事録には、ぜったい I have a pen. は出てきません。
量も問題で、たとえば文例データベースで purple-eyed が一回しか出てこなかったとしたら、
どこまでをまとまりとみなしていいか判断がつかず、翻訳結果がめちゃくちゃになったりします。
統計的機械翻訳に翻訳をさせるときは、文例データベースの中身と、
自分が翻訳させたい文の種類が合わない場合は、まずうまくいかないと思った方がいいでしょう。
「xxxいうときは○○○と言う」と教わって外国語に慣れていく、
といった状況を想像してください。
最初はなんのことかわからずにいても、繰り返していると
「ああ、こういうものか」とわかって、後は組み合わせで
いくようになります。これが「統計的翻訳」の原理です。
統計というのは、2つ3つではだめでも、何百万と重なれば、
それなりの効果がでます。そして、子供と違って、
コンピュータは、教えられれば何百万例を記憶することは楽にできます。
「習うより慣れろ」もありますが、大学に入ってからをおもってください。
そうすると、どうしても「文法」というのが頭にきて、
例えば「猫が(主語)ねずみを(目的語)捕まえます(動詞)」→
「A cat(主語) catches(動詞で、主語が3人称単数なので、
3単現の形になる。この形は原則としてsだが、語尾がchだとesとなる)、
a rat(目的語)」などと文法の決まりを覚えて、使うようになります。
実はこういう文法中心の手法がコンピュータは得意なのです。
もちろん、その場合、「今晩は」はThis evening is. ではなくて
「Good evening!」だ、のように、文法の決まりだけでは
ダメな例文は記憶させます。
説明を省いたことがあります。いくら多数、両言語の組を
コンピュータに教えたところで、それだけでは応用がきかないことです。
その意味で人間の脳はすごいことをやっていますが、どうやって
いるかは解明されていません。そこで、コンピュータに対しては、
文法中心の手法ももちろん取り入れていて、例文の組から、
文法の仕組みを推論させる、といった高度な手法をとりいれています。
これが「統計的手法」がやっと最近実用になってきた技術的背景です。
この下のトラックバックのところからも飛べますが、ここにも転記しておきます。
--
「Google翻訳が面白すぎる件 - Cozy Ozy」へのブックマークのコメントで
http://b.hatena.ne.jp/entry/http://d.hatena.ne.jp/Ozy/20080916
「仕組みを考えたら当たり前の結果である」という主旨の指摘があるのを見て、
その「仕組み」についての前提が共有されていないからこそ
「ネタ」視されてしまうという残念なことになっているのでは、と思い、質問してみることにしました。
面倒な質問ですが、そういった基本的な前提を共有すること
(わかりやすい説明を多くの人が見るネット上の場所に置くこと)もまた重要なことかと思い、
しかしながら私ではどうにもならないので、人力検索に頼りました。
知見のある方、もしご覧になっていらしたらよろしくお願いいたします。
-ところで、Google翻訳は使ったことがなかったので、「A,B」であれ?、と思ってやってみたら、普通の単語ならOKですね。
・犬は動物です。→ Dogs are animals.
・犬はかわいい動物です。→ The dogs are cute animals.
ここで、日本語の文としては、意味が通じないのをやってみました。
・動物はかわいい犬です。→ Dogs are cute animals.
あれあれ、語順が。。。日本語の文を修正して意味が通じるように直した?
> ここで、日本語の文としては、意味が通じないのをやってみました。
慧眼! これおもしろいですね。SVCだけでなくSVOでやってみてもおもしろいかも。
・動物はかわいい犬を読みます。→ Read the animals cute dog.
・動物はかわいい犬を買います。→ Buy a dog is a cute animal.
・動物はかわいい犬を見ます。→ Look at the cute dog animals. ※look atだと厳密にはSVOになりませんが、流してください。
うむ、どれもこれも「主語」とか「目的語」といった考え方が不在であることを示すばかりです。
ここでまた、あえて「A」「B」に戻すと:
・AはBを読みます。→ A to B reads.
・AはBを買います。→ B of A to buy.
・AはBを見ます。→ A look at the B. ……おっ、やっとまともにまともに「主語」が出た!と思って次もやってみると
・AはBを聞きます。→ Listen to the B-A.
……ガックリ。
その数時間前(25日の夕方から夜にかけて)に手動で終了させたいと思います。
それまでオープンにしておきます。
どちらの方にも同じくらい感謝しています。
ダイアリに書いたらここにトラックバックを送信します。(少し時間が空くかもしれませんが。)
ポイントは、はてなへの手数料 (16pt) を含め、350ポイントを、
感覚的に(つまり立派な根拠なく)、情報量と文字量基準で配分させていただきました。
いるかは、私個人にとって「説明方法」のインスピレーションを与えてくださったことに感謝してwhymさんに。
この先、また同系統の質問をすることがあるかと思いますが、今後ともよろしくお願いいたします。
Google翻訳が出ていたのでついでにご紹介しますが、
実は、Googleは機械翻訳の研究コミュニティのなかでトップクラスです。
下記のデータだと、抜きん出てトップ (Arabic-to-English) のケースさえあります。
http://nist.gov/speech/tests/mt/2006/doc/mt06eval_official_results.html
(ただしこれは人の手による評価ではなく、それをある程度近似できるとされている自動評価です)
「評価基準がGoogle有利」「ウェブサービスと研究用はエンジンが異なるかも」
とか色々考えられる事情はありますが、
Google翻訳の現状を見ると、統計的機械翻訳、ひいては機械翻訳の発展途上具合を感じざるをえません。