自然言語処理の「自然」とは?

こんにちは。湯本正典です。
先端IT活用推進コンソーシアム(AITC)
コンテキスト・コンピューティング研究部会(CC研究部会)で
サブリーダをしています。

この研究部会では、以下の計画で活動しています。
http://aitc.jp/wg/context/plan.html


自然言語とは、わたくしたちが日常使っている普通の言葉。要は、母国語です。
日本人なら日本語です。母国語をコンピュータで扱うことを自然言語処理といいます。
この「自然」ってどいう意味なのでしょうか?
人間が自然に使っている言語
人間の間で自然発生した言語

うーん。これは明らかに、
プログラミング言語は人工的だ!
という暗黙の了解があるのでしょうね。
プログラミング言語を母国語としてしまう人がもし現れたら。。。
そして増殖したら。。。
プログラミング言語自然言語の仲間入りができるのでしょうか?

わたくしにとって(わたくしにとってで、世の中的には少数派。
くれぐれも学校の試験で以下のことは書かないように。×になります。)
自然言語は、自然法則を記述する言語。
ですから、「数学」が一番「自然」な言語だと思います。
#すみません。かなり偏屈です。
「数学」という言語が自然の中にあって、それで自然法則が記述できている。
それを人間が発見した。そういうことだと思っています。
これは、完全に感覚的な問題、好みの問題ですので、今のところ、議論する対象ではありません。
おそらく、人間が自然をどう理解するかという「認知」の問題なのでしょうね。

つまり、わたくしの感覚としては、以下のような感じです。

数学:自然言語
母国語:人工言語(メタ自然言語
プログラミング言語:メタ人工言語

とっても変だと思いますが、上記のように思ってしまいます。

数学という自然言語があり、また、人間の作り出したおのおのの母国語がある。
その数学と各母国語を取り持つのが、プログラミング言語である。

こんな風に考えると、いろいろと面白いと思います。
たとえば、今、人間は、
母国語A − 母国語B
を翻訳だと思っています。

でも、
母国語A−(あるプログラミング言語を介して)−数学−(あるプログラミング言語を介して)−母国語B
なんてことができるかもしれません。
面倒な手続きと思うかもしれませんが、やってくれるのは、回転が早くて記憶のいいコンピュータです。


さらに、人間の夢である動植物との会話もできるかもしれません。
動植物も自然法則にしたがって行動しているのですから、その行動は結局、数学で記述されるはずです。
ですから、仮説として、こんなことができないか?と思うのです。
犬の行動を決める法則−(あるプログラミング言語を介して)−数学−(あるプログラミング言語を介して)−人間の母国語
どうでしょうね。

最後に、「俺が数学わからないのに、犬に数学がわかるわけない!」というあなた。大丈夫です。
あなたも数学で記述される「人間の行動を決める法則」に従って動いているのですから。
人間も自然界の中にいる以上、自然の法則に従っているのではないでしょうか?
その自然の法則を記述するのが数学です。
こうして書いてしまうと、その法則を利用して人間をコントロールするのか!と不安になるかもしれません。
大丈夫です。そのために、自然法則の中に「確率統計」という、当たるも八卦、当たらぬも八卦を正当化する数学が発見されたのでしょう。
数学に従っているというのと、数学が理解できるのは、まったく違います。


【舞台裏】
すべての法則が、現段階で人間が理解している「現在の数学」で記述されるかは疑問である。
新しい法則が見つかれば、人間が新しく理解する「新しい数学」が必要かもしれない。
「新しい数学」は、人間がこれから「発見する」数学である。
過去の「新しい数学」である「ディラックデルタ関数」は「超関数」として数学の仲間入りを果たした。
現在の「新しい数学」である「ファインマン経路積分」は「虚数の測度」の問題をちゃんと解決して、数学の仲間入りができるだろうか?