Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
自然言語可視化ライブラリ 「nlplot」のご紹介
Search
Takanobu Nozawa
September 22, 2022
Technology
3
3.6k
自然言語可視化ライブラリ 「nlplot」のご紹介
2022/09/22に開催された「みんなのPython勉強会#85」にて登壇した資料です #stapy #python
Takanobu Nozawa
September 22, 2022
Tweet
Share
More Decks by Takanobu Nozawa
See All by Takanobu Nozawa
低コストで実現する社内文書RAG機能を搭載したAIチャットボット開発
takapy
3
640
コミュニティサービスに「あなたへ」フィードを リリースするまでの試行錯誤
takapy
1
650
NLPを活用したオンボーディング改善とコールドスタート問題への対策
takapy
4
4.6k
コミュニティサービスにおけるレコメンデーションの変遷とMLパイプラインについて
takapy
2
6.4k
SageMaker StudioとStep Functionsを用いてMLOpsへの一歩を踏み出そう
takapy
0
7.6k
GoogleColabとVSCodeを用いた分析環境運用Tips
takapy
15
13k
word2vecを利用した埋め込み分析とSWEMを用いた比較実験
takapy
0
2.1k
トピックモデルを活用したレコメンデーションの実装
takapy
0
6.1k
Streamlitとnlplotを使って自然言語を分析してみた
takapy
4
13k
Other Decks in Technology
See All in Technology
【shownet.conf_】多様化するネットワーク環境を柔軟に統合するルーティングテクノロジー
shownet
PRO
0
300
Tracking down sources of kernel errors with retsnoop
ennael
PRO
0
150
【shownet.conf_】ローカル5Gを活用したウォーキングツアーの体感向上
shownet
PRO
0
270
軽いノリで"自動化"に取り組んではいけないという話
tetsuyaooooo
1
320
映像・音声伝送システム
jtes
0
200
Causal Impactを用いたLINE Pay UIの効果検証とABテスト実施への貢献
lycorptech_jp
PRO
3
520
Oracle GoldenGate 23ai 導入Tips
oracle4engineer
PRO
1
220
C# 13 / .NET 9 の新機能 (RC 1 時点)
nenonaninu
1
1.2k
Understanding and Optimising INP
akshayysharma
0
150
Strict Concurrencyにしたらdeinitでクラッシュする話
0si43
0
120
DenoでもViteしたい!インポートパスのエイリアスを指定してラクラクアプリ開発
bengo4com
1
1.8k
【shownet.conf_】ShowNet伝送改めShowNet APN 2024
shownet
PRO
0
350
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
94
5.1k
Building Applications with DynamoDB
mza
90
6k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Web development in the modern age
philhawksworth
205
10k
Infographics Made Easy
chrislema
239
18k
A Tale of Four Properties
chriscoyier
155
22k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
2
220
Mobile First: as difficult as doing things right
swwweet
222
8.8k
What's new in Ruby 2.0
geeforr
341
31k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
26
1.9k
The Cost Of JavaScript in 2023
addyosmani
43
5.8k
Transcript
自然言語可視化ライブラリ 「nlplot」のご紹介 Takanobu Nozawa 2022/9/22 みんなのPython勉強会#85
▪自己紹介 名前:野澤 哲照(Nozawa Takanobu) 所属:コネヒト株式会社 :たかぱい@takapy0210 • ML Engineer, ML
PdM(見習い)として、機械学習のサービス導入を 軸に、機械学習基盤や機械学習モデル, APIの開発をしたりしています • ビジネスと機械学習を紐付けながら、どのようにインパクトを出すか に興味があります • 本日お話しするnlplotの開発者です
▪今日話すこと 1. コネヒトという会社、プロダクトの紹介 2. nlplotとは 3. nlplotを開発したきっかけ 4. nlplotの使い方 5.
streamlitと組み合わせたデモ 6. まとめ
コネヒトという会社について 簡単に紹介させてください
▪コネヒトのVISION ありとあらゆる価値観が見つめ直され、 それぞれに思い描く家族の姿はどんどん変わっている 家族の数だけ形があって、つくりたい未来がある 私たちコネヒトは「家族像」というテーマに向き合う会社です
▪コネヒトの事業 「あなたの家族像が実現できる社会をつくる」 というVISIONに基づく中期的な目標として 子どもを望む家族像の多様性を実現するために日々取り組んでいます サービス | コネヒト株式会社
▪ママリについて 家族に向き合うママの毎日は、新しい選択の連続。慌ただ しい日々の中で、正解のない選択をし続けることは容易な ことではありません 「ママの一歩を支える」をミッションに、悩みの「解消」 と「共感」を軸に、妊活中女性・プレママ・ママに寄り添 うコミュニティを運営しています 子どもを出産したママの3人に1人(※)が利用するアプリ に加え、Instagram、LINE、Twitter、facebookといった SNS、情報サイトを通じて、ママが日々の選択に自信を
もって一歩を踏み出せるよう取り組んでいます ※「ママリ」で2019年内に出産予定と設定したユーザー数と、厚生労 働省発表「人口動態統計」の出生数から算出
▪家族ノートについて 家族ノートでは、一般的なアンケート調査とは異なり、 日々の暮らしの中で無意識的に行っている「検索」や「質 問/回答」の中に現れる、家族の心の動きや真の欲求を知 ることができます ママの3人に1人(※1)が利用するアプリ「ママリ」の月 間400万検索、130万投稿(※2)もの活発な利用の中 で、家族が今悩んでいることや、求めている商品・サービ スがタイムリーに反映され、アンケート調査等では踏み込 めないリアルな課題や態度変容が映し出されています
家族ノートを通して、家族の悩みを社会に届け、志を共に するパートナーのみなさんとともに「あなたの家族像が実 現できる社会」の実現に取り組んでいます ※1:「ママリ」で2019年内に出産予定と設定したユーザー数と、厚生労働省発表「人 口動態統計」の出生数から算出。 ※2:2021年3月現在。
nlplot とは Github Star★よろしくお願いします! nlplot
▪nlplotとは • 自然言語をいい感じに可視化できるライブラリ • nlp + plot から命名 • pip
install nlplot でインストール可能 • 本日紹介する使い方の一部はブログにも書いているのでご興味あ る方は是非(Github Star★も!何卒!)
▪nlplotとは 以下のような可視化が手軽に行える機能を有する • bar chart • tree map • histogram
• wordcloud • co-occurrence network • sunburst chart
▪nlplotとは 2022/09現在も定期的にダウンロードされている cf. https://pepy.tech/project/nlplot
nlplotを開発した背景
▪nlplotを開発した背景 自然言語データを扱う中で、同じような可視化方法で分析を行なうこ とが多かった(例:頻出単語の可視化 etc…) 同じ分析を少ないコストで、かつ誰でも再現性ある形で行えるように なったらハッピーじゃない?そうだよね? → ライブラリにしてしまおう!という結構軽いノリで始めた 軽いノリだったが、PyPIへの登録作業など初めてのことも多く苦労し た。と同時に良い経験にもなった。
▪なぜOSSにしたのか 理由は2点 • 自分が課題感を持ったということは、地球上で1人くらいは同じこ と思っている人いるよね?その人が幸せになれば嬉しい • 自分自身、独学も転職も技術コミュニティからいろいろな恩恵を 得て進めて来れた部分が大きいので、その恩返しを少しでもでき れば嬉しい
nlplotの使い方
▪nlplotの使い方 日本語の場合はtokenizeされているデータがあることが前提 今回はTwitterのハッシュタグデータをサンプルとして使用 →#データサイエンティスト と #kaggle がついている投稿
▪nlplotの使い方 以下のようにインスタンスを生成できる
▪nlplotの使い方 描画の対象外としたいワード(ストップワード)の計算もできる
▪bar chart unigram
▪bar chart bigram
▪bar chart 異なるデータ群を比較することも可能
▪bar chart 異なるデータ群を比較することも可能
▪tree map
▪histogram 出現単語数(今回の例だとハッシュタグの数)の分布
▪wordcloud 日本語データも特に意識することなく描画が可能
▪co-occurrence networks & sunburst chart これから説明する共起ネットワークとサンバーストチャートの描画に は、事前にグラフのビルド処理が必要 ビルド処理のmin_edge_frequency引数でプロットするノードの数を 制限できる(指定数以下のエッジ(辺)しか存在しないノードはプロッ ト対象から除外することができる)
▪co-occurrence networks ノードの色は、コミュニティを表している ノードの大きさは、隣接エッジが多ければ多いほど大きくなる
▪sunburst chart 色の濃さはネットワークの媒介中心性が高いほど濃い色になる (媒介中心性 is 着目している点以外の2点を結ぶ最短経路のうち、その点を通過するものの割合) 幅は前述した隣接エッジが多ければ多いほど大きくなる
streamlitを使ったデモ
▪streamlitとは • pythonでフロントエンドを構築することができるフレームワーク • フレームワーク側がデザイン仕様をある程度定めているため、デザ イン決めのコストが(ほぼ)無く、データ処理・分析のスクリプト 開発に注力できる
▪streamlitとは • サポートされているライブラリも多い
▪streamlitとは • 例)irisのデータをプロットするサンプルコード
▪streamlitを使ったデモ • csvファイルをstreamlit上で読み込ませ、その中のデータをnlplotを 使用して可視化してみます • コードはGithubに公開しているので手元で動かしたい方がいれば是 非!(docker compose up で動くようにしています)
◦ https://github.com/takapy0210/nlplot_demo
まとめ
▪まとめ • nlplotの使い方を紹介しました • 普段自然言語のデータを扱う人には割と使えるライブラリになって いると思います ◦ 自然言語以外にも系列データであれば利用できると思います • 使いづらい点などあればISSUEの起票
or PRお待ちしております! • そして何よりGithub Star★よろしくお願いします() nlplot
最後に
▪We’re Hiring! 弊社ではMLエンジニアを絶賛募集中です! • ライフイベント/ライフスタイルの課題解決をするサービスに興味がある方 • MLプロダクト開発に興味のある方 機械学習への取り組み事例や、今後やっていきたいことなどをまとめた資料も あるので、興味ある方はこちらもご覧いただけると嬉しいです! →
https://tech.connehito.com/entry/ml_data_info コネヒト 機械学習 詳しくは で検索!
▪(宣伝) PyConJP 2022では自然言語処理やレコメンデーションの話をする 予定なので、ご興味ある方はぜひ(今年はオフライン開催予定 🎉) https://staging.pycon-jp-2022.pages.dev/
▪参考文献 • Networkxのグラフのクラスタリング(コミュニティ) ◦ https://bit.ly/3Sl5NPd • グラフ・ネットワーク分析で遊ぶ ◦ https://tjo.hatenablog.com/entry/2015/12/09/190000 •
Tutorial — NetworkX 2.8.6 documentation ◦ https://networkx.org/documentation/stable/tutorial.html • Streamlit ◦ https://streamlit.io/
おわり ご清聴ありがとうございました