文法を計算する(1)
我々は、他人が話す、いままで一度も聞いたことがない文でも、それが文法的に正しいものであれば、ただちにそれを理解する。また、話したいことがあれば、自分がいままでしゃべったこともない文を、正しい文法で即座に話すことができる。
我々が持っているのは、日本語・英語の同じ意味を持つ二つの文章のペアを、気が遠くなるほど大量に集めて、高性能のGPUを使って何日もかけて「学習」するディープラーニングの機械翻訳技術とは、違う言語能力である。
「正しい文法で」と書いたが、我々は、母語の文法を、あとで習得する外国語の文法のように明示的に「知っている」わけではない。ただ、我々のからだは、なにが文法的に正しく、何が文法的に正しくないかを、正確に知っているのは確かである。
複雑性の理論では、計算可能なもっとも簡単なクラスを「多項式時間で計算可能 P」と呼ぶのだが、我々の言語能力は、明らかにクラスPに属するはずだ。だって、「多項式時間」どころではなく、リアルタイムに相手の話す言葉が文法にかなっているかを判断して聞き取り、リアルタイムに文法的に正しい文を生成してしゃべることができるのだから。
言語能力を計算能力として捉えようとするときに、その中心的な課題は、文法的に正しい文を生成する計算規則を見つけることだ。それは、文法の計算ルールを見つけることだと言って良い。
60年ほど前に、Lambekは、驚くべき発見をする。
文法の計算ルールは、次のたった二つの式で表されるというのだ。
文法の計算ルールは、次のたった二つの式で表されるというのだ。
(x/y)y --> x
y(y\x) --> x
y(y\x) --> x
(x/y)y --> xは、x/yという型を持つ語の後ろに、型yを持つ語が続けば、それは、型xを持つものに変換され、
y(x\y) --> xは、型yを持つ語の後ろに、x\yという型を持つ語が続けば、それは、型xを持つものに変換されることを意味する。
y(x\y) --> xは、型yを持つ語の後ろに、x\yという型を持つ語が続けば、それは、型xを持つものに変換されることを意味する。
Lambekは、名詞を表す型nと、文を表す型sというたった二つの型を用いて、語の並びから、先の二つの計算ルールで文を導く計算をしてみせる。( 計算部分、青字でおぎなっておいた。)
そのためには、伝統的な品詞分類を離れて、次のような新しい品詞分類を導入すればいいという。(図2)
自動詞 n\s
形容詞 n/n
副詞 s\s または n\s/(n\s)
前置詞 s\s/n
接続詞 s\s/s
他動詞 n\s/n
形容詞 n/n
副詞 s\s または n\s/(n\s)
前置詞 s\s/n
接続詞 s\s/s
他動詞 n\s/n
Lambekの60年前のこの論文、"The mathematics of sentence structure" は、不思議な魅力を持った論文だ。それは、何か新しいことを教えてくれる。僕の好きな論文の一つだ。
http://lecomte.al.free.fr/ressources/PARIS8_LSL/Lambek.pdf
http://lecomte.al.free.fr/ressources/PARIS8_LSL/Lambek.pdf
コメント
コメントを投稿