murawaki の雑記

はてなグループから移転してきました

日本語の機械翻訳が悲惨な原因

ねとすた動画 2月号大反省会 その8を見ていたら、不意に NLP の話が出てきて反応してしまった。twitter に一言だけ書いたけど、残りは長くなったので雑記に投げ捨て。

話の文脈。(twitter にように海外のサービスを使っていても) 結局日本で閉じていて、意外と外国とつながらない。それに答えての東氏の独演会。

話の中心は検索だけど、先に枝葉末節の機械翻訳ネタに反応してしまった。曰く、「自動翻訳が日本語が駄目なのは、結局漢字仮名交じり文と、あと分かち書きしないこと。」20年ぐらい前の認識としては間違ってないかもしれないけど、今は違う。基本的な言葉であれば、ほぼ完璧に自動で分かち書きできる。では基本的な言葉の自動翻訳がうまくいくようになったかというと、全然そんなことはない。仮に人手で分かち書きの正解データを機械翻訳システムに与えたとしても、ちゃんとした英語は生成できない。分かち書きしないことは、山ほどある困難の一つでしかない。

何が問題か。構造と語彙の違いだと考えている。構造の違いとしては、SVO と SOV の語順の違いがよく取り上げられる。話として分かりやすいが、これも当たっていない。(実際に機械翻訳に使っているかは別として) 現在は文中の S や V や O という文法的な範疇を同定するのは、日本語でも英語でもそれほど難しくない。V と O が分かればひっくり返せばよい。*1

構造が違うと何が問題か。同じであれば表層だけを見て変換すればよい。違いがあれば、言語の深層まで計算機が認識しないといけない。あるいは、表層だけを見た力技が通用しにくくなる。

構造の違いで大きな問題の一つは省略。例えば、主語の省略された能動態の日本語文を Excite 翻訳に与えると、やたら不自然な受動態の英語を返してくる。翻訳システムが省略要素の補完を放棄しているから。もう一つの問題として、モダリティの体系が全然違うことも効いていると思うのだが、具体例をすぐに思い浮かべられるほど翻訳をやっていない。

語彙の問題。訳語の選択がいつもまずい印象はある。ただしすぐに例を思う浮かべられない。

反対に、英語とフランス語とドイツ語とスペイン語ぐらいの間で、どうしてある程度翻訳がうまくいっているか。構造と語彙に共通点が多いから。同じ印欧語だからというのではなく、Standard Average European だから。一度発散した言語がまた収束している。SAE は文法上の扱いで、細かい特徴まで似ているという話だが、語彙も似ている。高級語彙がギリシャ語とラテン語を使って共通化している。表層的に違う語でも、翻訳を通じて言語を近代化しているのだから翻訳しやすいのは当然だ。

では日本語と構造と語彙が似ている言語は何か。韓国語。語順はほぼそのまま。語彙だって、元々両方とも漢語の影響下にあるだけでなく、韓国語は日本語をもとに近代化したから共通部分が多い。硬い文章なら全然問題なく翻訳できる。技術的には面白くない。

日本語と微妙な距離の言語の例はモンゴル語。語順などのおおざっぱな構造は日本語と共通。でも SAE と違って細かい文法的特徴はいろいろ違う。歴史上日本語と接点がほとんどない。起源は不明としても、歴史時代は基本的に発散してきた。語彙も共通しない。英語と中国語ばかりやってないで、こういう言語との間にベースラインの翻訳システムを作って、翻訳できなさ具合に頭を抱えるのがいいと思う。というかやりたい。誰かが現在と未来の地位を保証してくれるなら。

適切に例文を添えられない悲惨な論考になってしまった。一旦こうやって書きだしておけば、意識して訳文を見るようになるのではないかと期待してる。

*1:RBMT の話。長距離の語順入れ替えになるので、構造を使わない SMT は爆死する。構造を考慮した SMT ならうまくいくかもしれないし、うまくいかないかもしれない。