自然言語処理

      計算機メーカに勤めて一番最初にやった 仕事が、日英機械翻訳システムの研究である。正確には大学を卒業する直前の 1月頃、入社予定の会社の研究所から「2ヵ月程アルバイトの形で研究してみ ないか」と誘われて、会社の寮に入れてもらって毎日研究所に通ったのである。 計算機なんて見た事も触ったことも無かったので、最初の2週間ぐらいは計算 機の操作法から始めて、それと並行してPrologプログラミングの勉強した。次 に格文法を使った機械翻訳の理論を教えてもらい、残りの1ヵ月ぐらいで、別 の人が作ったパーサが生成した構文解析木から英語の文章を生成する100 行ぐらいのプログラムを完成させた。研究所の上司は、入社後はぜひうちの研 究室に来て自然言語処理の研究を続けてくれたまえと言ってくれたが、結局断っ てオペレーティング・システムの研究室に入った。

      これには次のような理由があった。自然 言語処理を行うには、まず自然言語の文法構造のみならず、自然言語の意味を 理解しなければならない。プログラミング言語と違って、自然言語の意味は文 脈やそれが語られた状況に依存して大きく変わってくる。では、自然言語の意 味とは一体どんな法則によって統制されているのだろうか?このことを明らか にしない限り、自然言語処理の最も簡単な部分である機械翻訳ですらうまくで きない。これはプログラム言語のコンパイラや、プログラムの検証・合成理論 よりもはるかに挑戦的で難しい問題なのだ。私は上司の指示に従って格文法と いう、今から考えれば実に貧弱なアイディアに基づいて、さまざまな例文を解 析し、法則のこぐ一部でもいいから見つけ出そうと悪戦苦闘した。しかし、ど んなに条件を制限して法則らしきものの候補を考えても、必ずと言っていいほど例外 が見付かり、結局何も成果らしきものが得られなかった。そして、将来格文法 を超える強 力なアイディアが出て来たとしても、人間は自然言語の意味を統 制する法則なんておそらく発見できないだろうと直感した。

      この直感は当たっていたようである。そ の後格文法を超えるさまざまなアイディアが提案され、計算機科学者のみなら ず数理論理学者や言語学者たちが法則を発見すべく精力的に努力したようであ るが、うまく行かなかったようだ。自然言語処理の専門家によると、現在のと ろこ彼らは法則の発見を断念し、膨大な例文のデータベースから統計的に最も 確からしいものを選び、それをあてはめて自然言語を処理するアイディアが最 も有望と考えているらしい。それは人間が頭の中でやっている事と良く似てい るような気がする。経験を積み多くの文例を消化した人ほど言語能力が高い傾 向があるから、それを計算機でシミュレートしようというのだろう。これはす こぶる工学的なアプローチであり、数理科学的アプローチではない。数理科学 は現象の中にあくまで法則を見出そうとする。現象があまりにも複雑かつ多様 な場合は、まず小さな法則でもいいから何か見出せるような部分に限定して考 え、それから対象を徐々に広げていくという方法を取る。数学のさまざまな分 野で分類理論というものが研究されているが、これはまさに手がつけやすいよ うに対象を分類して、それから一つ一つ潰していこうという考えに基づいてい る。自然言語の場合は、至る所に例外が存在し分類理論自体が極めて成立しに くいため、数理科学的アプローチでは歯がたたないわけだ。

      結局、上司の強い勧めを断ったのは、数 学出身者としての私の敗北宣言のようなものだったのである。私としては、オ ペレーティング・システムのような、構造がはっきりしたものの方がまだ手が つけやす いと思ったのだ。それにしても、最近では極めて精度の高い機械翻 訳がリアルタイムでできる所まで技術が進歩しているようである。私が機械翻 訳をかじった頃から思えば夢のようなことである。法則の存在し得ない所で何 年も頑張り、数理科学的に見ればアドホックで強引なやり方で問題をねじ伏せ るというのは、工学者の偉いところである。こういう世界に入っていけるかど うかが、数学出身の計算機科学者が「ひと皮むける」かどうかの試金石のひと つではないかと思う。この「ひと皮むける」ことを、「数学を忘れて堕落する」 と言い替えて良いものかどうか、私は知らない。