2022年3月1日火曜日

植物記述文からのjsonテキスト自動生成の精密化(1)

【what is this】先の記事では、植物に関する記述文から、葉や花などに関する特徴を取り出し、構造化して表現するアプリを作成しました。しかしながら、対象とする文の表現は多様であり、まだまだ課題が多いことを改めて知りました。その一部をここで検討します。係り受け解析結果を、アプリ側でどのように解釈し利用するかだけでなく、(アプリに特有の)植物に関する知識も取り入れる方策が必要です。

植物に関する記述文からJsonテキストを生成する
 
実は過去に、(ここにあるように)「植物記述文からJsonテキストを生成」を行いました。その時のJsonのkey(タグ)は、大まかな特性に関する事前に用意された数個に限定していました。今回は、そのkeyをもっと精密なものにしたいと思います。

 何をやりたいのかを、図1で説明します。例文L1〜L5は、ある植物の「葉」の特徴を述べています。表現は違いますが、内容は、以下の通り全く同一と言えます:

  1. 葉に脈と剛毛がある。
  2. 脈は3本あって明瞭である。
  3. 剛毛は両面につく。

 従って、これら5つの文を、いずれも、図中の「json1」のようなJsonテキストに自動変換したいのです。一方、例文L5の「両面に」を「果実に」に変更した例文F5は、「json2」のように変換したい。なぜなら、今は「葉」に関する特徴を抽出したいのですから。

Jsonテキスト生成の検討
 
この課題について、簡単に検討します。ここでは、SuPar-UniDic[1]による係り受け解析を利用させていただきました。まず、例文L1の係り受け解析結果は図2のとおりです。「葉」に係る「ある」を経由して「脈」をkeyとすることができるでしょう。そして、「3本の」と「明瞭な」が並列的に「脈」を修飾することを利用して、json1の前半部は生成できます。後半部の生成は、「葉は」の述部「つける」から遡って作れそうです。

 次に、例文L5をみます。図3の通り、今度は「葉は」が「明瞭で」に係るので、L1の場合と様子が違いますので、慎重にkeyとなるものを見つけ、適切に係り受け関係をたどりながらjson1を生成する必要があります。

 そして、最後の例文F5です。例文L5にある「両面に」が「果実に」に変わっただけなので、図4の通り、係り受けの関係は全く変わりません。しかし、「剛毛」は「葉」にではなく「果実」につくので、「葉」に着目している限り、json1の後半を削除したjson2のようなjsonテキストを生成する必要があります。


 まとめとして、少なくとも、図1に示したようにjsonテキストを生成できなければ、真の自然言語処理とは言えませんので、検討を深めて行きたいと思います。

参考資料
[1] yasuokaの日記: BERTモデルを用いた日本語係り受け解析ツールSuPar-UniDicリリースhttps://srad.jp/~yasuoka/journal/645402/


0 件のコメント:

コメントを投稿