考察:「パターンマッチング」

by ご近所のきよきよ


 
 パターンマッチングといえばプロダクションシステムを連想します。プロダクションシステムといえば、パターンセットを定義しておいて、最長一致でマッチングした項に付加されているアクションを実行するというものですね。
 これ前に、機械翻訳(瑞樹プロジェクト)と英子文字認識(雫プロジェクト)で使う事になったのですが、制御が難しいです。幾つかの候補からある適切なアクションを選んで実行させるというふうにプログラムは自然に作られていくのですが、この候補を選ぶという作業が曖昧で、なかなか排他にもっていけない。しかも候補選択パターンを抽出しても、パターンマッチングの順番を決めるのが一苦労になります。
 結局、最長一致でいくことになり、パターンをこまめに設計し直しながらデバックしていきました。今、考え直すに、全件マッチングで行くのが正しいあり方のようです。つまり、一個に絞り込めるまで、全件について付加条件を詳細化していく。無論不要となった項は刈り込む・・・というやりかたが一番良かったなと思うに至りました。無論スピードは落ちますが、並列化しやすいです。将来メニーコアマシンを手に入れられたら、断然有利な方法になります。
 曖昧性がある場合の解析処理には並列処理が必須ですね。しかもゴミが出るから、ゴミを押さえる処理も同時に走らす事・・・。で、メモリにゆとりを持てる環境にすること。64ビットマシンは必須でしょう。
 メニーコアマシンのキラーアプリケーションって、曖昧性処理に果敢に挑戦していくそんな、業務処理、ゲーム処理アプリケーションになると思います。科学技術計算も並列処理にも有効ですが、一般の人が使うプログラムといえば、業務か遊びですから、この辺考えるところです。
 
 人工知能の最終目標は、マッチングに使うパターンをマシンが自動的に設計し、利用していくようにすることでしょう。ここをどうするか、大きな問題ですね。
 
 人工知能学会論文誌にもパターンを中心に考えるものがありました(「メッセージの背後に潜む「問い」の抽出」(人工知能学会論文誌22巻1号J(2007年))。他も、コーパスからパターンを抽出して、いろいろな処理に利用していくというものが多いですね。今まで本で読んだ自然言語処理とは違う方向におおいに発展して行ってるのを感じます。
 私も「夏樹プロジェクト」で追っかけていこうと思っています。早く人工知能研究の最前線に立てるようになりたいものです。
 
 

おわり