随筆:「日本語の研究コツコツと」

by ご近所のきよきよ


 
 物事はすんなりとは行かないようです。未夢も大体動くようになって、欲が出て辞書の形式を変えたらメモリ不足で分かち書き化プログラムが動かなくなってしまいました。
 もともとが形態素解析しない単純な最長一致法を使っていましたので、それに有利なようにできるだけ長い単語列を一区切りにしていこうということで、「情報の単位」を基本に辞書をつくっていました。活用語尾とか助動詞列は全て動詞なり形容詞、形容動詞にまとめていたのです。だから辞書項目は多いのですが、曖昧として生成される分かち書き化された文(おおくはゴミ)は少なく押さえられます。
 これを普通の形態素もいれて、状況に応じて計算機で情報の単位を組み立てていくのもおもしろいし、格調高いシステムになるかなと考えたのです。それで、不用意に形態素を辞書に登録していきました。そうしたら、ゴミの解析結果が無数に出力させるようになって、簡単な文でもメモリ不足で落ちるようになってしまったのです。FMV M7/1007はもっとインテリジェントの高いアルゴリズムを装備したプログラムにしろと迫っているのです。64ビットマシンならあるいは問題なく通るのかもしれません(Windows向けJavaが64ビットになればですが)。でもスピードも出ませんし、そもそも樋口一葉のような長文には今のやりかたは対応できなのです。適当なところで、カンマ区切りで文を切り出して行く必要があります。そのときには体言止めとか、接続詞区切りとか微妙な処理をしていく事が必要になります。
 今考えているのは、もとの「情報の単位」を想定した辞書の構成にすることと、長文の短文分割を実現することを主軸に、この難局を切り抜けることです。文の分断は、それはそれとして大きな意味ある研究だと思うからでもあります。

 何処か遠くまで旅に出たい気分です。ちょっと根詰めたかな。心をリフレッシュする旅が必要な・・・。このところ本屋にも行かなかったし、図書館にも行きませんでした。その結果がメモリ不足・・・。
 
 
 ということで、ここは気を取り直して、以下に、今までの未夢のデバックテストで気の付いた日本語の形というものを記していきたいと思います。
 
 
1.動詞格情報について
 係り受けとか形態素の形は明快な日本語も動詞の格構造は文法からは推し量れない、意味を考慮した手法が必要になるようです。
 基本的には、格助詞(「が」、「の」、「を」、「に」、「へ」、「と」、「から」、「より」、「て」)は格をある程度規定するのですが、副助詞(「は」、「も」、「きり」、「だけ」・・・)は格を規定しません。そこで、先ずは、格助詞である程度格を推定してから、欠落している格を副助詞に割り当てるというアルゴリズムを立てました。さらに、場所(+location)と時間(+time)とその他(+object)と3タイプに名詞を分けて、格を推定しています。
 これで大体良いのですが、でも完全ではないですね。意味を捉えて、曖昧性も考慮しながら処理を組み立てて行かなくてはなりません。日本語は、意味にウエイトが置かれた文法体系に成っているといえます。厳密さに欠けると言われる所以ですが、それだけダイナミックな楽しい言語なのだとも言えます。
 
 それと、動詞の格支配を分類してみました。大体6タイプに別れるようです。
(1)頭で何かをするもの(感じる体系)
 「私は彼女が好きだ」・・・「が」が目的格になっている。
(2)頭で何かをするもの(発話体系)
 「私はそれを美しいと思う」、「私はそれを美しいと言う」・・・「と」が入れ子文格を指している。そんな使役形式であること。
(3)体でなにかをするもの(「いる(stay)」体系)
 「私はそこに居る」・・・目的格を持たない。
(4)体が他者との関係の中に置かれるもの(「会う(join)」体系)
 「私は彼女に会う」「私は彼女と会う」・・・target格を持つ。
(5)手で何かするもの(操作体系)
 「私はりんごを彼女に渡した」・・・目的格がある。
(6)足でなにかするもの(移動体系)
 「私は公園を散歩した」・・・「を」が場所格を表す。
 
 いろいろバリエーションはありますが、未夢ではこのタイプを辞書に定義して作業してます。なんとなく行ってる見たいです。
 
2.これからの作業
 思いも掛けず未夢のもろさが出てしまって、先ずは「情報の単位」を基盤に分かち書き化プログラムを動かそうと辞書周りの機能を充実させたく思っています。辞書入力システムをつくることです。
 それと、格パターンのマッチング処理がまずくてこれまたメモリ不足になる(考えられる全ての格の組み合わせをテーブルに持とうとしている、しかもオンデマンドでテーブルを作っている・・・最低のヘボをやってました)ので、ここを直してと。
 長文の分割処理の実現ですね。これだけで、今月は終わってしまうかなと感じています。とにかく、負荷テストをクリアさせてこその未夢の完成ですから。
 
 この問題が起きないときには次の2つを考えていました。
(1)文法に従わない文の解析
 「山緑、歩く谷、水清し」なんて文を立派に意味解析したい。未夢は文法中心の文解析、意味解析をしていますが、これを破壊したい。この機能は彷徨(かなた)パッケージとして作り込んでいきます。彷徨プロジェクトみたいなものです。
 これには意味フレームに単語を埋め込むという方式を取るつもりです。単語とかステージ、シーンに意味フレームを当てて、それを完成させていく過程が文解析という立場を取るのです。
(2)知識ベースの構築
 彷徨でつかうフレームを体系的に管理していくつもりです。未夢の辞書ユーティリティもここに含めていきます。結構纏まった、面白いシステムになります。Rhu(ルー)パッケージとして実現しますが、Rhuプロジェクトと言って良いくらいの大きさのプログラム開発です。
 と同時に意味の記法をまとめて、未夢、彷徨、Rhuを統一した意味解析システムとしていきます。今の未夢はJavaのオブジェクトになってますから、これを永続化コードにしなくてはなりません。XMLはちょっと重たくて・・・。未夢の辞書に記述できるような1ラインの簡略構文を考案しています。
 
 
 ということで、未夢の完成は9月頃でしょうか。今年いっぱい掛かる事でしょうか。とにかく、ここを越えねば、未来は開かれていかないわけで・・・・・踏ん張り所ですね。
 
 
 
 

おわり