2022年3月29日火曜日

WordCloudで「葉」のポピュラーな形態を確認

 前回の記事で、植物の「葉」に関する珍しい形態を探してみました。その際に、抽出した関連用語の出現回数を得ていました。そこで今回はこれを利用して、(どれだけ意味があるかは別として)葉に関するポピュラーな用語にはどんなものがあるかを、WordCloudで可視化してみました。前回記事の場合とは逆で、よく使われる用語ほど大きな文字で表されています。

 あまり正確ではありませんが、ほぼ、「葉の形や色」「葉のつき方」「葉の縁」「葉の裂け方」「葉のその他の形態」に分類してプロットしました。ちょっと楽しめますか。

葉の形や色
長楕円形、卵形、楕円形、披針形、等々、これは納得ですね。

葉のつき方
3出複葉(両側と中央に3枚の葉)、小葉(それぞれの葉)

葉の縁
全縁(ギザギザなし)、鋸歯が多い

葉の裂け方

葉のその他の形態

2022年3月25日金曜日

植物図鑑などで珍しい形態の「葉」を見つけたい

 植物図鑑や写真集を眺めていて、「葉」の形態が珍しいものを見つけたいと思いました。でも、漫然と眺めていたのでは日が暮れてしまいます。そこで、植物の特性の説明文に対する自然言語処理の登場です。

■「葉」の特性を示す用語の抽出
 まず、参考資料[1]に掲載されている、植物全2,174種(別名を含めると3,000種以上)に関する、簡潔な一行説明文の全てに自然言語処理(形態素解析と単語間・文節間係り受け解析)を施します。その結果を利用して、「葉」の特性に関する用語を全て抽出します。原則的には、「葉」の前方にある名詞、形容詞、動詞などの修飾語と、「葉」からその述語までの範囲の関連用語が対象となりますが、例外的に、その範囲を超えて、述語の後方まで調べる場合もあります。当然、その中で、「葉」以外の「花」や「果実」等に関する用語は除去するのですが、これがなかなか難しいです。ですが、用語の品詞と係り受けの種類などを頼りに、何とか曲がりなりにも目的を達するアプリケーションを作成しました。その実行結果が図1なのです!

 完璧ではありませんが、ご覧の通り、(重複無しで)約600語を抽出できました。この結果は、植物界の葉の形態の全貌を凝縮している、と言えないこともない。(ただし、上述の困難さから、花や果実に関する用語も若干入り込んでいます。)これなら、目視で、「おや、これは何だろう?」という珍しい特性が見つかるはずです。

■珍しい特性を持つ「葉」を調べる
 このようにして、「葉」の幾つかの珍しい特性が見つかりました。例えば、図2に示すように、「表裏逆転」「右右左左」「2回偶数羽状複葉」「魚骨状」などです。あまり聞いたことのない、何か珍しそうな特性に見えます。


 ここまで来れば、あとは、植物写真集[1]を検索すれば良い。実際、図3に示す通り、該当植物が見つかり、一行説明文(詳細説明文へのリンクもあります)と写真を見て納得できました。こんな楽しみ方もあるのではないでしょうか。


 なお、「珍しい用語」は、出現頻度が低いと考えられますので、図1に示した各用語の出現頻度を計算して「珍しい」に当たりをつけるのも良いでしょう。実際、出現度数は以下の通りでした。WordCloudは、普通、出現頻度の高い単語を検出するための可視化ですが、ここではそれの逆順の使い方に相当します。
 なお、これらの関連用語の出現頻度のWordCloudによる可視化については、こちらの記事に書きました。

■「花」についても同様に調べる
 さて、「葉」以外に「花」についても、同様に調べることができます。「花」の方が「葉」よりも多様であり、特性に関する抽出用語もうんと多いと予想しましたが、結果はむしろその逆でした。すなわち、上述の方法で調査する限り、「葉」の特性の方がより多様であることを示す結果となりました。(詳細は略しますが。)

■国立国語研究所「長単位」向け係り受け解析モデル
 これまでの記事でも述べましたが、今回のアプリケーションは、参考資料[2][3]の国語研長単位解析モデルを利用しています。このため、上に示した通り、「楕円形」「長楕円形」「羽状複葉」「2回偶数羽状複葉」などがバラバラにならず、それぞれまとまった単語(形態素)として認識されており、アプリケーション作成がとても楽になっています。

参考資料
[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

2022年3月22日火曜日

日本語解析では「くて」も曲者か?

  現代の日本語の係り受け解析を利用していて、時に困ったなあ、という場面に出会います。恐らく、解析プログラムのバグというわけではなく、その解析手法では必然的にそうなるように思われます。当方は素人なので、本当のことは分かりませんが、そういった事例を書き留めておいて、後日の検討、対策に資することができれば良い。

 ここで取り上げるのは、「短くて太い茎」や「小さくて厚い葉」などの「くて」です。図1に、以下の2つの例文とその係り受け解析結果を示します。(a)と(b)の違いは、「秋に」の有無だけです。

 (a) 小さくて厚い葉が秋に枯れる。
 (b) 小さくて厚い葉が枯れる。

 係り受け解析器として、参考資料[1]で紹介されている国語研長単位モデルja_gsdluw [2]を利用しました。

 当方のアプリケーションでは、係り受け解析結果を利用して、この場合「葉」を修飾する単語を全て求めたいのですが、例文(b)では、「小さくて→枯れる」という係り受けとなってしまいました。そのため、「葉」の修飾語としての「小さくて」を取り出すことができません。はて、どうしたものか。

 そこで、「小さくて厚い葉が、」のように、読点「、」を追加してみた結果が図2です。これだと、例文(a)と同じく、「小さくて→厚い」という適切な結果が得られました。しかし、こんな短い文に、普通は、読点は入れませんが...

 実は、こうしても、まだ疑問が残ります。以前、[3]で安岡孝一教授からご教示いただいた通り、本来、「小さくて」と「厚い」は共に「葉」を修飾するものです。なので、「小さくて→葉」「厚い→葉」のような係り受けとすべきと思われる... つまり、今回の「くて」も[3]での「で」も同じ問題のようです。

参考資料

[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

2022年3月17日木曜日

身近な春の雑草たちの言語学的解剖?(その2)

 前報(その1)の続編です。翌日に、さらに以下の3種の雑草を採取しました。本来は「言語学的解剖」のつもりでしたが、なんだかそれは野暮な気がしてきました。それはそれで、植物記述データベース(コーパス)を用意して本格的に取り組めばよい。ということで、今回は、追加した美しい花を眺めるだけで充分としました。

 前回は、植物を摘み取って持ち帰り、写真撮影していましたが、それだと、萎れたり、途中で花びらが落ちてしまう。そこで、今回は現地主義。白い紙を丸めて散歩に持参して、採取した植物を載せ、その場でスマホで撮影しました。

 そして、(植物図鑑などに頼らず)自分の観察に従って、以下に簡単な説明文を添えました。

●オオアラセイトウ:ハナダイコン、ショカツサイとも呼ばれる。
 4弁の淡い紫色の花が美しい。少し縮れて波打っているようだ。葉の縁のぎざぎざは、花の姿に似合わず鋭い。Every rose has its thornということか。

●スズランズイセン: 別名スノーフレーク
 鈴蘭に似た花のようだ。花弁の先端部にある緑色の斑点が珍しい。こちらも美しいが、有毒とのこと。

●ハナニラ:
 花弁は6枚だが、3枚づつ違う面にあるように見える。白みがかった淡い紫色の美しい花。雑草と呼ぶにはふさわしくないようだ。 太古から生き延びてきたのか、神秘的でもある。

2022年3月15日火曜日

身近な春の雑草たちの言語学的解剖?(その1)

  春めいてきました。本日(2022-03-15)午前中の近所散歩で、道端の雑草を摘み取ってみました。すぐに6種類ほど採取できましたが、まだまだ他にもたくさんありそうです。写真撮影して、Google Lensとデジタル植物写真集[1]などで調べると、すぐに名前が分かりました。普段はあまり気にとめていませんが、こうして眺めてみると、「雑草」と呼ぶには「かわいそうな植物たち」と思えるくらい美しい。

上段左から、
ナズナ(ぺんぺん草)スギナ(つくし)
ホトケノザ オオイヌノフグリ

 ここで、無慈悲にも、これらの可憐な雑草たちを解剖してみます。と言っても、メスで中身を切り開く訳ではありません。簡潔に一行で表現されたこれらの植物[1]に手を触れずに、言語学的に解析してみるのです。つまり、記述文の形態素解析と係り受け解析(単語間・文節間)[2]です。一般的な文章に比べて、堅めで専門的な難しい文ですが、完璧に解析されているようです。

ナズナ:根生葉は羽状、茎葉は細長く、果実は三味線のバチ状。
 従来の国語研究所「短単位」の形態素解析器では、植物専門用語「根生葉」や「茎葉」はひとまとまりにならずに、バラバラな単語として扱われました。しかし、今回の解析器[2]では「長単位」解析モデルが使われ(BERTがここにも進出しています)、上図のような結果が得られています。つまり、専門用語をユーザ辞書登録しなくても、このように形態素解析され、それが適切な係り受け解析(上図の矢印関係)につながっているようです。

ホトケノザ:丸い葉が蓮華座状につき葉腋から紅紫色の唇形花が出る。
 この例でも、「蓮華座状」や「唇形花」などがひとまとまりとなっていて、「長単位」形態素解析の効果が出ています。また、この文には途中に読点「、」がありませんが、「つき」「出る」に関する係り受けも適切に行われています。



オオイヌノフグリ:葉は広楕円形で、粗鋸歯があり、瑠璃色の小さい花が咲く。
 同様に、この例でも、「広楕円形」や「粗鋸歯」に関する形態素解析、係り受け解析は適切な結果となり、嬉しくなります。ところで、もしも「広楕円形で、」での読点「、」が無いとすると、結果は微妙に変わります。それも興味深いところであります。

 ところで、最後の「オオイヌノフグリ」という名前の由来を参考資料[3]で知って、ちょっと失笑といったところです。その内容は、ここでは述べられません。さらに別の面もあります。この植物の学名Veronica persicaは、「ベロニカ」という聖女の名前にちなんでいるそうです。花の形と色彩が高貴でそれにふさわしい。あらためて、群生している写真を載せておきます。

参考資料

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

[2] yasuokaの日記: esuparの国語研長単位向け係り受け解析モデルbert-base-japanese-unidic-luw-uposリリース
https://srad.jp/~yasuoka/journal/652806/

[3] 稲垣栄洋:身近な雑草の愉快な生き方、ちくま文庫、2011年4月発行

2022年3月9日水曜日

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

【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/


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/


2022年2月26日土曜日

机の上の小さな緑:ミントの水耕栽培

  まだまだ寒い日が続いています。こんな時期、机の上にちょっとした緑の植物が成長してくれると、どこか心が安まります。ネット通販で、500円ほどのミントの水耕栽培キットを購入しました。砂つぶほどの小さな種と、セラミック培養土、粉末肥料、簡易容器がセットになっていました。取説通り、栽培してみました。発芽率65%と書いてありましたが、100粒以上はあったので大丈夫だろうと思っていましたら、期待通り、見事に育っています。

14日後、小さな双葉が出始めた
27日後、こんなに密集して伸びてきた。間引きも必要。
45日後、葉もかなり大きく育った。これまでに数度間引いた。

 小学生の理科観察みたいですが、植物の不思議を垣間見ることになりました。まず、葉の出方ですが、双葉が出て、その中心からまた双葉が出ることをくり返して成長しています。その際、次の段の双葉は、前段と重ならないように90度回転した位置で伸びます。これは、「十字対生」と呼ばれるようです。

 これ以外に気づいたことですが、茎はある時期から容器の縁まで這うように伸び、縁に達するあたりで垂直方向に伸びて行きます。まるで、自分の生きる世界の境界を知っており、互いに重ならないように遠くで成長しようとしているように見えます。


2022年2月22日火曜日

MIT App Inventorの公式ガイドブックが出版されました

 スマホアプリ開発環境の一つとして有名なMIT AppInventorの新たな公式テキスト(ガイドブック)が、このほどMITeen Pressから出版され、本日(2022-02-22)、Kindle版も発行されたのでタブレット端末で読むことができました。

 MIT App Inventorは、世界195の国々の教育研究機関などで広く利用され、現時点のユーザ登録者数は1,400万人を超えているそうです。App Inventorのシステム開発、運営保守、教育/普及のためのチームは30名ほど(専任11名 + 非常勤9名 + 修士/博士学生スタッフ11名)で構成されているようです。そのチームのトップである、Prof. Abelsonが以下のブログで、この本について書いています:

●MIT Professor Hal Abelsonによるこの書籍の紹介
https://appinventor.mit.edu/blogs/hal/2021/11/17/BecomeAnAppInventor

 MIT App Inventorは、中学高校生から大学生、あるいは技術者に広く利用されていますが、今回の書籍は、初級者向けに書かれています。非常に洗練されたデザイン、構成、例題が光ります。楽しく、ワクワク感が引き立てられるように感じました。初級とはいえ、TinyDBやCloudDB、AI等も有効に利用した、Navigation、Chatアプリ、翻訳アプリの作成など、高度な機能も使いこなそうとしています。大勢の人々に受け入れられると思います。

(補足)ちょっと宣伝になってしまいますが...
 小生は私的ブログに、MIT App Inventorに関する記事をこれまで多数書いてきました。よろしければ、下記のまとめ(こちら)をご覧下さい。また、小生がかって、MITのワークショップで発表した拙論(こちら)も、大学における応用例としてご参考までに。


2022年2月21日月曜日

「で」の利用10例の係り受け解析とその利用

【what is this】先の記事では、「... で ...」の「で」が、どこに係るかを話題にしました。人間は違和感なく使っている場合でも、SuPar-UniDic [1]などの係り受け解析ではあまり適切な結果が得られない場合がありました。それをまとめて、係り受け解析を利用するアプリケーションでは、どのように対応するのかも、簡単に述べます。

■「で」の利用10例の係り受け解析
 
以下に「で」の使い方10例を検討します。いずれも、日本人にとっては、恐らくほとんど違和感はないと思います。SuPar-UniDic[1]による係り受け解析結果を示します。「...で」の係り先は、(0)〜(6)は「咲く。」でしたが、(7)〜(9)は「丸い」という結果となりました。

(0)場所1:庭先で丸い花がまばらに咲く。
(1)場所2:温室で丸い花がまばらに咲く。
(2)状況1:室温で丸い花がまばらに咲く。
(3)状況2:日陰で丸い花がまばらに咲く。
(4)理由1:暖気で丸い花がまばらに咲く。
(5)理由2:遮光で丸い花がまばらに咲く。
(6)時間1:7日で丸い花がまばらに咲く。
(7)特徴1:巨大で丸い花がまばらに咲く。
(8)特徴2:濃紺で丸い花がまばらに咲く。
(9)特徴3:黄色で丸い花がまばらに咲く。

 まず、場所、状況、理由、期間などを意味する「で」の使い方(0)〜(6)に対しては適切な結果です。そして、特徴を表す(7)〜(9)も一見妥当のように見えますが、先の記事に書いた通り、安岡孝一教授によると、以下のような係り受け解析の方が適切だろうとのことです。

(7')特徴1:巨大で丸い花がまばらに咲く。
(8')特徴2:濃紺で丸い花がまばらに咲く。
(9')特徴3:黄色で丸い花がまばらに咲く。

 なぜなら、これらの「...で」が修飾するのは本来「花」だからです。しかし、この場合の「で」は解析上、曲者のようです。確かに、見た目にも、「巨大で花」「濃紺で花」「黄色で花」は違和感があります。

■アプリケーション側での「で」の係り受け解析の利用
 
では、前報のアプリケーション等ではどのように利用したのでしようか。いくつか検討しましたが、結論として、上記の解析結果を素直に受け入れることにしました。すなわち、「巨大で丸い」「濃紺で丸い」「黄色で丸い」のように、複合語と考え、それが「花」に係るとして扱えば特に問題がないようです。

 一方、人間側がちょっと妥協して、コンピュータと共存するということであれば、次のように、(7)〜(9)にある「で」を「な」(単語によっては「の」)に変更するのが良いかもしれません。その場合は、以下のように、係り受け解析として適切な結果が得られ、アプリケーション側もハッピーではあります。

(7'')特徴1:巨大な丸い花がまばらに咲く。
(8'')特徴2:濃紺な丸い花がまばらに咲く。
(9'')特徴3:黄色な丸い花がまばらに咲く。

■上記以外に「で」の用法をご存知でしたら教えて下さい!
 ただし、「丸い花がまばらに咲く。」の先頭となり得るものをお願いします。

■現代の英訳ソフトはどうだろう
 今回取り上げた10例文に対して、現代の英訳ソフトはどうでしょうか。英訳結果を見ただけの判断ですが、真面目に?係り受け解析はやっていなくて、別のこと(seq2seqやAttentions)で処理しているように見えます。(これについては、後日、また述べてみたいのですが...)

●Google翻訳
(0) Round flowers bloom sparsely in the garden.
(1) Round flowers bloom sparsely in the greenhouse.
(2) Round flowers bloom sparsely at room temperature.
(3) Round flowers bloom sparsely in the shade.
(4) Warm and round flowers bloom sparsely.
(5) Round flowers bloom sparsely in the shade.
(6) Round flowers bloom sparsely in 7 days.
(7) Huge, round flowers bloom sparsely.
(8) Navy blue and round flowers bloom sparsely.
(9) Yellow, round flowers bloom sparsely.

 (4)はおかしいです。「暖気で」が正しく認識されていない。(8)は微妙?

●DeepL翻訳
(0) Round flowers bloom sparsely in the garden.
(1) Round flowers bloom sparsely in the greenhouse.
(2) Round flowers bloom sparsely at room temperature.
(3) Round flowers bloom sparsely in shade.
(4) Round flowers bloom sparsely in warm air.
(5) Round flowers bloom sparsely in shade.
(6) Sparse round flowers in 7 days.
(7) Huge round flowers sparsely bloom.
(8) Dark blue, round flowers sparsely bloom.
(9) Yellow with sparse round flowers.

 (6)は少し、(9)は完全におかしい。「黄色で」がうまく扱えていない。また、(6) (9)とも「咲く」が訳ぬけしている。これがこの英訳方式の本質というか特徴でもある!?

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