考察:「彷徨(かなた)、香澄、そして未来の未夢(みゆ)」

by ご近所のきよきよ



 この正月はなんとか曲がりなりにも、彷徨と香澄のコーディングを進めることができました。それで、更に未夢の将来が明確に見えてきました。それを今回は記していきたいと思います。未夢は文法が正しい日本語文の意味解析するソフトで、彷徨は文法が壊れている文章(会話文)の意味解析するソフト、香澄はセマンティックWebを念頭に置いた問い合わせ応答システムです。


1.

 彷徨で文法破壊文章にどう対応したかといいますと、最長一致法で日本語文章の分かち書き化して、総当たりの係り受けを想定して処理をするようにしました。ただし、形容詞は名詞に係り、副詞や助詞(「の」以外)は動詞に掛かること、係り受けパスは交差しないことを条件に計算しています。候補の文章はものすごく多くなりますが、データベースに文章データとして永続化していくことで、メモリオーバーフローを避けるようにしています。処理時間の問題は将来の課題としました。この点は、データベースマシンを興してなんとかなると思っています。

 そうして、候補の文章を1つに絞っていくのですが、それは実文章コーパスとか単語の共起頻度によって、もっとも確からしいものを選ぶという戦術を採って解決しています。これがどれほどの物かは、これからデバックし、実践評価していくことで分かってくるでしょう。それに本来どうあるべきかも分かってくるはずです。とにかくやってみたいと思います。


2.

 香澄はもう少し大変なプログラムかと思っていましたが、日本語の処理のシミュレーションは未夢がしっかりしたProlog文章を出力していれば簡単に行えるようです。シミュレーションはPrologデータベースに動画システムを設定して行うのですが、未夢で感じたほどには難しい処理にはなりませんでした。これからデバックし、実践していくことで評価していかねばならないことですが。香澄は2週間くらいでコーディングが終わりました。視点の変換(1階から2階を見れば上、2階から1階を見る状況では下というような変換)は知識Prolog文の追加で対応するつもりですが、その使い心地もこれからの実践で分かってくるものです。

 問い合わせ事項になったかどうかは、データベースを監視して行くことで実現していき、そのパターンマッチする事象ならトラップして値をプリントアウトします。これもProlog文で実現できました。この使い心地もこれからの実践で評価することになります。


3.

 未来の未夢は脳並みの柔軟性を持った自然言語処理システムにするのでした。脳は、データ構造とかデータのアドレスとかの情報を明に知ること無しで思考とか推論とか、文法学習とかしてしまいます。つまりこれは、データを固有の識別子で把握するだけで、様々な情報処理ができるようなフレームワークを作るべし・・・ということではないでしょうか。処理もオブジェクトであり、コンセプトもカテゴリーもオブジェクトとして把握して、それらの間のインターフェースも記述的ではない(XMLなどでインターフェースを記述もできるが、そうでなくても基本的には無記述で連接できる)なにかユニバーサルなものであるべしと。

 ちょっとそんなものを考えてみました。それを此処に記述していきましょう。これは、基本は、前の考察で、「オートノミックフレームワーク」と「データ駆動型フレームワーク」として提起した技術を深めていく物です。


 オートノミック(COMの機能など)をJavaで実現するとすれば、リフレクションを最大限使うことになります。そして、リフレクションをシステマティックに行うためにデータやプログラムエンティティは全てカテゴリーとして命名に意味を持たせ、システムのプリミティブなオブジェクトであるようにします。命名に意味を持たせるのは、この頃のwebフレームワークの常套手段です。そして、メソッドも命名規約を持たせます。例えば、

(1)boolean =matchXXXX(YYYYオブジェクト,ZZZZオブジェクト);

           ・・・XXXX,YYYY,ZZZZはカテゴリ名

(2)XXXX=analizeYYYY(YYYYオブジェクト);

(3)int =getXXXXSize();

(4)void setXXXX(XXXXオブジェクト);

(5)XXXX=getXXXX() ;

 オブジェクトはデフォルト値を必ず持つ物とします。


 データ駆動型フレームワークとしては、オブジェクトの同定をアドレスでなくて名前で全て行うようなものを作ることになります。そのためには名前とオブジェクトのアドレスを対で管理するテーブルが必要になります。ついでにオブジェクトの永続化を実現しますから、このテーブルは重要なピボット技術となります。そのテーブルにはオブジェクトクラスの継承データとか、包含関係、位置関係などの連想データを持って、カテゴリーの連想検索ができるようになっていたい。それは、アクセスが順序でなくて、記号としてのカテゴリが主要な手段になるからです。

 操作も基本的にJavaの演算を用いないで、ワークフレーム自前の操作オブジェクトによって実現することになります。




おわり