自然言語処理の難しさ

っていう題でA4一枚のレポートを書かされたよ。なかなかいいこと書いたと思ったので先生に送信する前に晒してみる。

 翻訳ソフトなど機械による自然な解釈が必要になる場面で重要になるのが、語義の曖昧性の解決である。
・彼はその仕事をやった。 (ある動作をする)
・その日はジャズをやった。 (演奏/上映する)
・プレゼントとして時計をやった。 (譲渡する)
・机の上の本を向こうへやった。 (どかす)
・心配なので人をやった。 (遣いを出す)
・目を向こうへやった。 (視線を投げる)
 「やった」というだけでもこれだけの意味があり、「やった」という文字列を見ただけではどの意味になるのかは曖昧である。そこで近隣の単語や係り受けを見て、その共起確率により品詞や語義を決める、というのが現在の自然言語処理の手法であるが、これだけでは人間のような自然な解釈をすることはできない。それは今日の翻訳ソフトなどが身をもって示しているところである。
 それを解決するための方法の一つが上位知識の導入であり、それはより上位のレベルから下位のレベルの認識を補正する働きをする。例えば形態素解析と同時に構文解析を行い、構文上の意味から形態素解析の結果を補正するといったことが可能になりつつある。さらに、構文解析をより正確なものにするためにはさらにもっと上位の補正機構が必要になる。
 人間がコンピュータよりも圧倒的に優れている点は逆問題を解決することにある。夜、庭の暗がりに白いものを見たとき、それが雪に見えるのは、天気予報を見ていたからかもしれないし、やけに肌寒いのを感じたとったからかもしれない。人間はたとえ視覚が不完全な状況であっても、周囲の状況から認識を再構成できる。
 同様に、人間であれば新聞記事に誤表記を見つけても、前後の文章からのつながりや、常識的な推論によってそれを補正することができる。翻訳機械がこのような補正をするためにはどのような機能が必要になるだろうか。それは文脈の関連性を理解すること、常識的知識ベースによる推論を行うこと、抽象的な概念を内部表現として記述できること、などである。
 文章において、比喩や洒落を理解し、アナロジーによる対比構造などを理解することは時として人間にすら難しい作業であり、これを実現するためには非常に広範囲の知識と推論が必要になる。そういったものを持たなければ、例えば翻訳ソフトがとんちんかんな変換をして、それが文法的に何の問題も持たなかったとして、それを補正することは出来ないのである。しかしそこまでいくと自然言語処理の学術領域を逸脱して人工知能の問題になってしまう。
 つまり自然言語処理でも人工知能でも、その本質的な難しさというのは、人間の心的機能というものがそれ自身単独で機能しているわけではなく、常に複合的に働いていることによるのだと思う。先の雪の例えで言いたかったのはそれである。完全な自然言語処理を行うためには、学習、推論、知識表現、そして人間に近い感覚デバイスを備えていること(!)などが必要だろう。そして当然のことながらそれは非常に難しい。
 要するに自然言語処理が難しいのは、それが単に言葉だけの問題ではないから、ではないだろうか。

心の仕組み~人間関係にどう関わるか〈上〉 (NHKブックス)

心の仕組み~人間関係にどう関わるか〈上〉 (NHKブックス)

後半の議論は最近読んだこの本の影響がかなりある。