前回の記事で、植物の「葉」に関する珍しい形態を探してみました。その際に、抽出した関連用語の出現回数を得ていました。そこで今回はこれを利用して、(どれだけ意味があるかは別として)葉に関するポピュラーな用語にはどんなものがあるかを、WordCloudで可視化してみました。前回記事の場合とは逆で、よく使われる用語ほど大きな文字で表されています。
あまり正確ではありませんが、ほぼ、「葉の形や色」「葉のつき方」「葉の縁」「葉の裂け方」「葉のその他の形態」に分類してプロットしました。ちょっと楽しめますか。
I am a professor emeritus of CS at Kanagawa Institute of Technology, Japan. Originally my specialty was parallel and distributed systems. My current interests include machine learning, natural language processing, creating mobile apps with MIT App Inventor, and quantum computing. In the web version of this blog, clicking the icon on the right (a plastic sphere) will take you to the "List of Quantum Computing Articles". - Fujio Yamamoto (for e-mail, add "@ieee.org" after "yamamotof")
前回の記事で、植物の「葉」に関する珍しい形態を探してみました。その際に、抽出した関連用語の出現回数を得ていました。そこで今回はこれを利用して、(どれだけ意味があるかは別として)葉に関するポピュラーな用語にはどんなものがあるかを、WordCloudで可視化してみました。前回記事の場合とは逆で、よく使われる用語ほど大きな文字で表されています。
あまり正確ではありませんが、ほぼ、「葉の形や色」「葉のつき方」「葉の縁」「葉の裂け方」「葉のその他の形態」に分類してプロットしました。ちょっと楽しめますか。
植物図鑑や写真集を眺めていて、「葉」の形態が珍しいものを見つけたいと思いました。でも、漫然と眺めていたのでは日が暮れてしまいます。そこで、植物の特性の説明文に対する自然言語処理の登場です。
■「葉」の特性を示す用語の抽出
まず、参考資料[1]に掲載されている、植物全2,174種(別名を含めると3,000種以上)に関する、簡潔な一行説明文の全てに自然言語処理(形態素解析と単語間・文節間係り受け解析)を施します。その結果を利用して、「葉」の特性に関する用語を全て抽出します。原則的には、「葉」の前方にある名詞、形容詞、動詞などの修飾語と、「葉」からその述語までの範囲の関連用語が対象となりますが、例外的に、その範囲を超えて、述語の後方まで調べる場合もあります。当然、その中で、「葉」以外の「花」や「果実」等に関する用語は除去するのですが、これがなかなか難しいです。ですが、用語の品詞と係り受けの種類などを頼りに、何とか曲がりなりにも目的を達するアプリケーションを作成しました。その実行結果が図1なのです!
[2] yasuokaの日記: spaCy向け国語研長単位モデルja_gsdluw仮リリース
https://srad.jp/~yasuoka/journal/653385/
[3] UD Japanese GSD+GSDLUW r2.9 with Named Entity Gold Labels
https://github.com/megagonlabs/UD_Japanese-GSD/releases/tag/r2.9-NE
現代の日本語の係り受け解析を利用していて、時に困ったなあ、という場面に出会います。恐らく、解析プログラムのバグというわけではなく、その解析手法では必然的にそうなるように思われます。当方は素人なので、本当のことは分かりませんが、そういった事例を書き留めておいて、後日の検討、対策に資することができれば良い。
ここで取り上げるのは、「短くて太い茎」や「小さくて厚い葉」などの「くて」です。図1に、以下の2つの例文とその係り受け解析結果を示します。(a)と(b)の違いは、「秋に」の有無だけです。
(a) 小さくて厚い葉が秋に枯れる。
(b) 小さくて厚い葉が枯れる。
参考資料
[1] yasuokaの日記: spaCy向け国語研長単位モデルja_gsdluw仮リリース
https://srad.jp/~yasuoka/journal/653385/
[2] UD Japanese GSD+GSDLUW r2.9 with Named Entity Gold Labels
https://github.com/megagonlabs/UD_Japanese-GSD/releases/tag/r2.9-NE
[3] 例文 "紫色で細長い唇形花が総状に咲く" の係り受け解析
https://sparse-dense.blogspot.com/2022/02/blog-post.html
前報(その1)の続編です。翌日に、さらに以下の3種の雑草を採取しました。本来は「言語学的解剖」のつもりでしたが、なんだかそれは野暮な気がしてきました。それはそれで、植物記述データベース(コーパス)を用意して本格的に取り組めばよい。ということで、今回は、追加した美しい花を眺めるだけで充分としました。
前回は、植物を摘み取って持ち帰り、写真撮影していましたが、それだと、萎れたり、途中で花びらが落ちてしまう。そこで、今回は現地主義。白い紙を丸めて散歩に持参して、採取した植物を載せ、その場でスマホで撮影しました。
そして、(植物図鑑などに頼らず)自分の観察に従って、以下に簡単な説明文を添えました。
●オオアラセイトウ:ハナダイコン、ショカツサイとも呼ばれる。
4弁の淡い紫色の花が美しい。少し縮れて波打っているようだ。葉の縁のぎざぎざは、花の姿に似合わず鋭い。Every rose has its thornということか。
●ハナニラ:
花弁は6枚だが、3枚づつ違う面にあるように見える。白みがかった淡い紫色の美しい花。雑草と呼ぶにはふさわしくないようだ。 太古から生き延びてきたのか、神秘的でもある。
春めいてきました。本日(2022-03-15)午前中の近所散歩で、道端の雑草を摘み取ってみました。すぐに6種類ほど採取できましたが、まだまだ他にもたくさんありそうです。写真撮影して、Google Lensとデジタル植物写真集[1]などで調べると、すぐに名前が分かりました。普段はあまり気にとめていませんが、こうして眺めてみると、「雑草」と呼ぶには「かわいそうな植物たち」と思えるくらい美しい。
参考資料
[1] 渡辺坦:植物の名前を探しやすい デジタル植物写真集
http://plantidentifier.ec-net.jp/
[2] yasuokaの日記: esuparの国語研長単位向け係り受け解析モデルbert-base-japanese-unidic-luw-uposリリース
https://srad.jp/~yasuoka/journal/652806/
[3] 稲垣栄洋:身近な雑草の愉快な生き方、ちくま文庫、2011年4月発行
【what is this】先の記事の続編です。植物に関する記述文からjsonテキストを自動生成する際のさらに難しい例文に出会いました。これを記録しておき、係り受け解析の他にどのような情報(推論の枠組みや辞書類)が必要なのかを検討したい。
■散歩で見つけたウメの小枝
確実に春めいてきました。近所にあった田んぼや畑は年々消えて行きますが、それでも散歩道の近くには農家が散在しています。道の一角に無人の野菜販売スタンドがあります。小さな貯金箱みたいなのが置いてあり、一包みあたり、百円をそこへ投入して買います。今日は、野菜の他に、梅の小枝3本ほどを束ねたものも置いてありました。これはいい、と思って買いました。図1のように、丸い小さな蕾もたくさんついています。
■ウメについての簡潔な記述からのjson自動生成
この梅に関する簡潔な記述が、参考資料[1]にあります。
ウメ:花に柄がなく、葉が出る前に咲き、古枝に棘がある。
図1の写真からも分かるように、これはウメを的確に表現していると思います。これから、次のような(ウメの"花"についての)jsonテキストを自動生成したい、ということがすぐに想い浮かびました:
{"花":{"柄":"無い", "時期":"葉が出る前"}}
しかし、これは難しそうです。図2には、SuPar-UniDic[2]による係り受け解析結果を示しましたが、他にどんな情報(辞書や推定の枠組み)が必要なのでしょうか。
課題は多そうです。例えば、「葉が」という主語があるのですが、この文は主に「花」について述べており、「葉」は「咲く」ことを修飾しているに過ぎません。また、「出る前に」だけでなく、「出た後に」や「出る前後に」や「出る頃に」などが出現することも多そうですので、これらを全部、「時期」というkey(タグ)に集約できるのでしょうか。難しそうですが、今後の検討材料として記憶しておく価値はあるでしょう。参考資料
[1] 渡辺坦:植物の名前を探しやすい デジタル植物写真集
http://plantidentifier.ec-net.jp/
[2] yasuokaの日記: BERTモデルを用いた日本語係り受け解析ツールSuPar-UniDicリリース
https://srad.jp/~yasuoka/journal/645402/
【what is this】先の記事では、植物に関する記述文から、葉や花などに関する特徴を取り出し、構造化して表現するアプリを作成しました。しかしながら、対象とする文の表現は多様であり、まだまだ課題が多いことを改めて知りました。その一部をここで検討します。係り受け解析結果を、アプリ側でどのように解釈し利用するかだけでなく、(アプリに特有の)植物に関する知識も取り入れる方策が必要です。
■植物に関する記述文からJsonテキストを生成する
実は過去に、(ここにあるように)「植物記述文からJsonテキストを生成」を行いました。その時のJsonのkey(タグ)は、大まかな特性に関する事前に用意された数個に限定していました。今回は、そのkeyをもっと精密なものにしたいと思います。
何をやりたいのかを、図1で説明します。例文L1〜L5は、ある植物の「葉」の特徴を述べています。表現は違いますが、内容は、以下の通り全く同一と言えます:
従って、これら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] yasuokaの日記: BERTモデルを用いた日本語係り受け解析ツールSuPar-UniDicリリースhttps://srad.jp/~yasuoka/journal/645402/