マーリンアームズ株式会社

機械翻訳 しっかり入門

第6章 辞書登録機能 — 共起情報の登録

前の章では,手軽にできる辞書登録の方法を紹介しましたが,翻訳者が自分で望む訳をできるだけ多く出力してもらうためには「共起情報」を指定した辞書登録が欠かせません。

共起情報とは

「共起」という単語は普通の国語辞典には載っていないようですが,自然言語処理関係者の間ではごく一般的に使われる単語です。試しにGoogleで「"共起情報"」と引用符付きで検索して,この4文字が連続しているページだけを検索しても,466件もマッチします。マッチしたページをザーッと見てみると,自然言語処理関連のページばかりのようです。

「共起」とは読んで字のごとく「共に起きる」ことを言います。2つ以上の単語が「共に起きる」わけです。どこから起きるかというと人間の頭の中から起き出してきて,文章や言葉として世の中に表れるということなのでしょう。

共起とイディオム

複数の語が「共に起きる」,「共に表れる」と言うと,「イディオム(成句)」のことではないかと思われる方も多いでしょう。イディオムは"rain or shine"(「降っても晴れても」「どんな場合でも」)とか"an Achilles' heel"(「アキレス腱」「弱点」「急所」),"See you later, alligator"(このalligatorに「ワニ」の意味はない)などのように「個々の語の意味からは全体の意味が推測できない単語の列」のことです。「アキレス腱」はアキレスという名前(の人)の腱という文字どおりの意味とはまったく別の意味を持っているわけです。

これに対して,「共起」は,通常「個々の意味から全体の意味が推測できる」場合に関わってくるといってよいでしょう。日本語の例だと「蝉は鳴く」であり「赤ん坊は泣く」となるとか,「ラジオは聴く」が「テレビは聴かない」で「テレビは見る」となるといったたぐいの情報を言うわけです。たとえば,「『蝉』と『鳴く』は同時に使われる(ことが多い)」「『赤ん坊』と『泣く』は同時に使われる(ことが多い)」といった共起情報を記憶しておくと「あんぼうがなく」という平仮名の文字列を仮名漢字変換するときに,「鳴く」ではなく「泣く」を選ぶことができるわけです。

翻訳と共起情報

上の例は仮名漢字変換(ワープロ)の例でしたが,機械翻訳に関わる共起情報としてどのようなものがあるか見ていきましょう。機械翻訳でも最終的にはワープロと同じように日本語を出力(生成)しますから,「蝉が泣く」と出してはいけないという点ではワープロで使うような情報が含まれている必要がありますが,もっともよく使われるのは訳語選択の補助情報ということになるでしょう。

典型的な例としては,英語の動詞と目的語の共起情報があります。 たとえば,"I take a bus."は「バスに乗る」だが"I take a bath."は「風呂に入る」といった具合です。「これはイディオムじゃないか」と言われる方があるかもしれませんが,"take"という動詞は"bus"に対して作用して日本語では「乗る」という単語で表される動作を表現するのですが,英語では"take"は非常に広い範囲の動作を表現する単語であって,"bus"に対して"take"という動作をするということは自然なわけです。とくに新しい意味を表現するわけではありません。もっとも,イディオムかそうでないかは微妙な場合もあり,きちんと線が引けるわけではないようです。

20年以上前の初期の機械翻訳システムではこの種の共起の記述もなかなかできませんでしたから,だいたいの場合"take"は「取る」などと訳されてしまっていました。今では"take a bus","take a bath"など一般的なものはすでに辞書に入っていてうまく訳されるはずです。

共起情報の辞書への記述

翻訳者にとって問題となるのは,使いたい翻訳ソフトで,共起情報の記述がどの程度できるかになります。翻訳者を想定していないソフトですと,共起情報の記述はまったくできないものもかなりあります。このような翻訳ソフトの場合,システムがあらかじめ用意した辞書(「基本辞書」あるいは「システム辞書」などと呼ばれます)にあるもの以外新たな共起情報を加えることができいません。したがって,"take a fish"の共起情報が基本辞書に登録されていないと,これは例えば「魚を取る」と訳されることになり,「魚を釣る」と訳すことがとても難しくなります。確かに"take a fish"を丸ごと「魚を釣る」と登録することはできますが,こうしても"take two fish"とか"take a lot of fish"とか"take a big fish"などの場合「取る」となってしまい,「釣る」とは訳せないのです。

翻訳の下訳に使うのでしたら,こうした最低限の共起情報の記述ができなければ話になりません。思い通りの訳を出せる範囲がとても狭くなってしまうわけです。

上では動詞と目的語の共起情報の記述についてみましたが,この他にもたくさんの種類があります。もうひとつ形容詞とそれが修飾する名詞の例を見てみましょう。

まず次の例を見てください。

<原文> Important dependencies limit their interchangeability.
<訳例1> 重要な依存性がそれらの互換性を制限する。

そのまま単純に訳すと<訳例1>のようになります。まあ一応きちんと訳されていますが,「重要な依存性とは」なんだかよくわかりません。たとえば次のようにした方がよいとは思いませんか?

<訳例2> 簡単には解消できない依存性が,互換性を制限する。

この方が意味がはっきりしますよね。現在の翻訳ソフトでも"important dependencies"を「簡単には解消できない依存性」と訳すことはできます。importantがdependency(dependencies)を修飾するときは「簡単には解消できない」と指定することができるのです。表記法は翻訳ソフトによってかなり違うのでここでは省略しますが,構文解析を行った結果できる「構文解析木」を見ることによりこのような判断が可能になります。このような共起を登録しておけば,"Two important depencendies"は「2つの簡単には解消できない依存性」と翻訳されます。

より複雑な共起情報の記述

共起は2つの単語について起こるだけではありません。たとえば次の例を見ましょう。

<原文> The knob gives you control over the volume.
<訳例1> そのつまみはあなたに音量に関して制御を与える。

この例を単純に訳すと<訳例1> のようになるのですが,高校生の「和文英訳」としてはよいとしても「翻訳」と呼ぶに値するものではありません。たとえば,次のようにすればまあ一応合格でしょうか。

<訳例2> そのつまみによって音量の制御が可能になる。

このような訳語を出力するには"give","you","control","over"の4つの単語の関係を記述して「"<A> give you control over <B>"を「<A>によって<B>の制御が可能になる」と訳すことにすればよいのです。ここまでできる翻訳ソフトは片手で数えられるぐらいしかないのではないかと思います。翻訳者ならそのようなソフトを選ばないといけません。 ちなみに,私ならこの例は次のように訳しますかね。

<訳例3> そのつまみで音量調整ができる。

この章では,共起情報の記述について説明しました。時間ができたら,市販されている翻訳ソフトの例を加えてみようと思いますが,しばらくお待ちください。

前の章 目次に戻る