LoginSignup
15
15

More than 1 year has passed since last update.

spacy_streamlitで爆速で「日本のオリンピックはどうなる?」の係り受けを確認する

Last updated at Posted at 2021-05-07

spacy_streamlitとは

streamlitはpythonの数行のコードでウェブアプリが作れる最近注目度急上昇中のライブラリである。
そしてspacyはpython上で色々試せる自然言語処理ライブラリである。

そのstreamlitとspacyが手を組んだだと・・
それが、spacy_streamlitである(あまり説明になっていない)。
first_page.PNG

基本的にはspacy_streamlitのgithub上のQuickstartに書かれていることと変わりないが、Quickstartは英語版のモデルを利用しているので、日本語版のモデルでも動作するか確認した。

※なお、以下の試したソースコードはここに置いた。

インストールなど

※今回の実行環境は、windows10(64bit)で実施。

spacy-streamlitのインストール

pip install spacy-streamlit --pre

spacyの日本語モデルのダウンロード

spacyには3種類の日本語モデル(ja_core_news_sm, ja_core_news_md, ja_core_news_lg)が
公開されているが、軽く試したかったので今回はja_core_news_sm,ja_core_news_mdの二つをダウンロードした。

python -m spacy download ja_core_news_sm
python -m spacy download ja_core_news_md

コード(実質4行)

以下コードをjapanese_spacy_streamlit_sample.pyとして保存。

import spacy_streamlit

models = ["ja_core_news_md", "ja_core_news_sm"]
default_text = "もうすぐ梅雨。日本のオリンピックはどうなる?"
spacy_streamlit.visualize(models, default_text)

・・以上。

早速以下コマンドを実行してみる。

streamlit run japanese_spacy_streamlit_sample.py

以下のようなウェブ画面が表示されれば成功である。

page1.PNG

上記画面のように、Split sentencesにデフォルトでチェックが入っているので、文章毎に係り受け解析を可視化してくれる。

  • ちなみに「日本のオリンピックはどうなる?」の係り受け結果はこちら。

page2.PNG

もちろん、ウェブアプリなので、Text to analyze上に別の文章を入力すると、入力した文章の係り受け結果を表示してくれる。

他にも

幾つかの結果を可視化してくれる。
※Text Classificationはspacyを理解しないと表示できなそうなので今後確認したい。

Named Entities(固有表現)

オリンピックがちゃんとイベントとして認識されている。
GPE: Geopolitical entity, i.e. countries, cities, states.
page3.PNG

Vectors & Similarity(単語類似度)

※1 デフォルトは"apple"と"orange"が入力されている。
※2 以下はspacyのja_core_news_mdモデルの結果を表示。

「日本」と「オリンピック」の単語の類似度の方が、「ギリシャ」と「オリンピック」の類似度より高い、ということを発見したりする。

page4.PNG

page6.PNG

Token attributes(トークンの属性)

page5.PNG

所感

どんな結果が出るのか試しに見たい時に、ウェブ画面上で文章や単語を入れると可視化してくれるので非常に便利で楽しい。

参考

15
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
15