(先日の記事にもそれが現れてきている)
ざっくりといえば、統計処理なのか、論理処理なのかという違いとみることができる。(異論はあるでしょうが…)
すべでの単語を取り出して、それらの関係を明確にして、同義関係・類義関係・階層関係などを定義して、それらを操作するルールを定義することで、その文・文章を理解することができると考えてきていた。
しかし、それがなかなかうまくいかない。
例をあげてみよう。「警察の犬」と言った場合に、どういう意味を持つだろうか。
警察犬?それとも、警察の手下といったような意味?
それは、その会話の中における、いわゆる文脈に依存するのだろう。
同様に単語の区切り位置も文脈によって変わってくることがある。
すべての文脈を抜き出して、それらをルール化すればいいのだろうか?
人間がその文を理解するときに、そんなに膨大なルールを参照しているというようなことがあるのだろうか。少なくとも自分にはその自覚はない。
大まかなイメージとしては、ある単語(あるいは概念)ノードが発火しており、会話によって、信号が別の単語(概念)に伝達し、意味をそのネットワーク全体が意味を構成しているというような印象を持っている。
まさに、Connectionist的な考え方だろうか。
そこで、コーパスから共起関係を抜き出して、それによって信号の伝達経路を定義し、簡単な実験を行ってみた。想像できるとおり、こんな簡単な仕組みでは、簡単な例ではそれなりの結果は出てくるが、ちょっと複雑な例ではうまくいかない。
実は、ここに罠があって、形態素解析を使って、共起関係を作成している。
形態素が確定してしまった段階で、自由度がある程度制限されているのだろう。
必ずしも、人間と同じ仕組みを構築する必要があるとは思わないが、ある程度は参考にした方がいいのかもしれない。
今後も、さらに考察していきたい。