2022年2月11日金曜日

BERTモデルを用いたSuPar-UniDic(日本語係り受け解析)の試用

 【what is this】前報の(こちら)と(こちら)は、GiNZA係り受け解析の利用でしたが、今回は、安岡孝一教授が公開している、BERTモデルを用いたSuPar-UniDic [1]に着目しました。これを利用して、植物に関する記述文から、「どのような形や色の」花が「どのような位置や向き時期に」咲くか、に関する情報を自動抽出するプログラムを作成しました。参考資料[2]から引用した例文8件に関して、妥当な結果を得ることができました。

植物の記述文から「どんな」花が「どのように」咲くかの抽出
 
やりたいことは前報と同じですが、単語間/文節間の係り受け解析に関して、安岡孝一教授が公開しているSuPar-UniDic [1]が、従来のものよりも非常に高精度になっていることを知り、試用させていただきました。
 その係り受け解析を利用して、植物に関する記述文から、「どのような形や色の」花が、「どのような位置や向き時期に」咲くかに関する情報を抽出するプログラムを作成しました。以下の例文8件にこれを適用しました。

--------- 以下、参考資料[2]から引用した例文8件(原文のまま)------------
[p1]ミチバタガラシ:葉は長楕円状で、淡黄の花を総状に咲かせ、直線状の長角果をつける。
[p2]スズランズイセン:高い花茎に壺形の白い花を数個うつむきに咲かせ、先は6裂する。
[p3]リキュウバイ:葉は楕円形で枝先に白い花が円錐状に咲き、蒴果がつく。
[p4]ホンコンドウダン:常緑で、早春に紅色の釣鐘形の花が下向きに咲く。
[p5]ヤマラッキョウ:鱗茎は狭卵形、葉は3角柱状で、茎先に紅紫色の花が散形状に咲く。
[p6]イヌホオズキ:葉は広卵形で、白い花を散形状につけ、液果が黒い。
[p7]シナアブラギリ:葉は広卵形で、白い花が円錐状につき丸い堅果が褐色に熟す。
[p8]アカメガシワ:葉は葉柄の長い卵形で、淡黄色の花が円錐状につく。
----------------------------------------------------------------------------------------------------

 これらの例文は、葉や花や果実に関する情報を含みますが、今回は、そのうちの「花」に着目します。「花」の前後に、花の形や色、花のつきかたに関する情報があります。花に対する述部は「咲かせ、咲き、咲く、つけ、つき、つく」などがあります。それらは、見出し語に揃えて(レンマ可して)扱えば良いです。また、「... 花......咲く(付く)」のパタンは、spaCyのルールベースマッチング(係り受けの種類のタグを利用)で見つけられます。作成したプログラムの実行結果を示します。

--------- 以下、「どんな」花が「どのように」咲くかの抽出結果------------
[p1]ミチバタガラシ -> [淡黄の] 花を [総状に] 咲かせ、
[p2]スズランズイセン -> [壺形の, 白い] 花を [高い, 花茎に, 数個, うつむきに] 咲かせ、
[p3]リキュウバイ -> [白い] 花が [枝先に, 円錐状に] 咲き、
[p4]ホンコンドウダン -> [釣鐘形の, 紅色の] 花が [早春に, 下向きに] 咲く。
[p5]ヤマラッキョウ -> [紅紫色の] 花が [茎先に, 散形状に] 咲く。
[p6]イヌホオズキ -> [白い] 花を [散形状に] つけ、
[p7]シナアブラギリ -> [白い] 花が [円錐状に] つき
[p8]アカメガシワ -> [淡黄色の] 花が [円錐状に] つく。
---------------------------------------------------------------------------------------------------
 いずれも、満足できる結果ではないでしょうか!

SuPar-UniDicによる係り受け解析結果の詳細
 
こんなに上手くいったのは、もちろん、上述の高精度なSuPar-UniDicによる文節化と係り受け解析のおかげです。上記例文のうちで最も複雑そうな例文 [p2]について、その係り受け解析結果を示します。画像になっていますが、その理由があります。実行結果はテキストなのに、グラフィックスみたいな綺麗な係受け矢印を示すためです!(クリックして拡大してください。)


 小生の作成したプログラムは、上図の係り受け関係の矢印と、係り受けの種類(acl, obl, advcl,  nummod, 等々)を適切に判断して、以下のような結果を得ています。

[p2]スズランズイセン :
高い花茎に壺形の白い花を数個うつむきに咲かせ、先は6裂する。
 -> [壺形の, 白い] 花を [高い, 花茎に, 数個, うつむきに] 咲かせ、

参考資料

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

[2] 渡辺坦:植物の名前を探しやすい デジタル植物写真集
http://plantidentifier.ec-net.jp/

2 件のコメント:

  1. SuPar-UniDicを使って下さって、ありがとうございます。ただ「6裂する」の「裂」がSYM(記号)になってしまってるのが、ちょっとクヤシイところです。現時点ではSuPar-UniDicより、ja_ginza_electraをdeplacyに繫ぐ方が、精度がいいだろうと思うのです。

    返信削除
    返信
    1. ご指摘ありがとうございます。ja_ginza_electraをdeplacyに繫ぐ方も試してみたいと思います。

      削除