随筆:「老婆心ですが」

by ご近所のきよきよ


 

 4年も自然言語のコーディングをしてきますと、なんかなんかの考えという物ができてきて、これから自然言語処理を始めようという方々に教えを垂れたくなるものです。許してください。


 

 機械翻訳なんかですと、何々方式とか何々理論とかあって、技術的には今はやりのフレームワークをこさえて、文法か意味をデータコマンドとして表現して、データ駆動型の文解析、文生成とかしています。多分・・・

 昔、5文型とかを基準にハードコーディングで行こうと設計を始めましたが、いつまで経っても完結しなかったことがあります。失敗の原因はフレームワークをきっちり作って行かなかったからだと思います。データ駆動でもハードコーディングでも良いですが、動作の枠組みをしっかり設計しておかないと、砂上の楼閣に陥ります。

 で、そのフレームワークですが、この4年のコードを整理してみますと次のような姿が抽出されます。

 新しくシステムを作る方は、このフレームワークを明確に設計してから(構築してからが望ましい)、実システムを作っていくようにしてください。こうした自然言語処理のフレームワークは他国言語への展開にも頼みになるし、フレームワークそれ自体でも価値がありますから、是非そうすることをお勧めします。


 

 それとステージの管理はアクター中心に考えて、動詞は補助的に考慮するのがよろしいと気がつきましたので、皆様もこの点気を付けてください。次の文例がそれを物語っています。

(文例)「列車は牟礼駅を出発した。百合は豊野で降りた。信子と私はそのまま、列車にゆられて話を弾ませていた。列車はスピードを増したようだった。窓の外は陽光がまぶしかった。私たちは遠くの山を見ていた。山には雪がもう無くなっていた。列車は長野に到着した。」

(説明)「百合は豊野で降りた」というように、ステージ「列車」からの転換を示唆していますが次の文を読むとステージは変化していません。「列車」がステージです。このように動詞はあまり各個としたステージ変換を決定しません。シーンの変化は「百合」の「降りる」事で、アクターが減っている事から、そのシーンの転換にはなっています。そして、次々にステージが「列車」から「地面」(「列車がスピードを増した」には「地面」ステージに対してです)、「窓の外」、「列車」、「山」、「列車」と推移しています。「〜で」とlocation格だけでなく、主格もステージ決定の大きなファクターだと気がつきます。これもこまめに変化しているのをしります。

 で、ステージ変換は名詞の所有、非所有という素材集合の把握がキーポイントとなります。所有の内部についてはステージは変化無くて、所有が離れると、ステージは切り替わる・・・そういうことです。



 さて、フレームワークをもう少し掘り下げてみましょう。フレームワークは細かい作業はシステムが隠れてやり、表だっては基本的な作業をコマンドで指定してもらって、完結した作業を実現するというものです。コマンド作成は人手しょうが、将来は自動学習していくように展開していける物であって欲しいわけです。で、基本的なコマンドとしては次のものが有るでしょう。

 次の図の文章を処理することを考えてみます。

 

扇型ツリーへのデータの設定

指示代名詞の解決


 文解析を例にしてコマンドのアイデアを書きましたが、本当は不適切で、意味理解本体で示すべきでした。文解析と意味理解とでは、結構処理の構造が異なるのです。そのことは、文解析は基本的に1次元の文字列で表現するという制約があるため、解析処理は複雑になります。意味理解は制約が無い分あるいみ処理自体はシンプルになります。そんなこんなで、頑張りましょう。


 以上、老婆心でした。

 

おわり