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
4
2.1k
コミュニティサービスに「あなたへ」フィードを リリースするまでの試行錯誤
takapy
1
730
NLPを活用したオンボーディング改善とコールドスタート問題への対策
takapy
4
4.7k
コミュニティサービスにおけるレコメンデーションの変遷とMLパイプラインについて
takapy
2
6.5k
SageMaker StudioとStep Functionsを用いてMLOpsへの一歩を踏み出そう
takapy
0
7.6k
GoogleColabとVSCodeを用いた分析環境運用Tips
takapy
15
13k
word2vecを利用した埋め込み分析とSWEMを用いた比較実験
takapy
0
2.1k
トピックモデルを活用したレコメンデーションの実装
takapy
1
6.1k
Streamlitとnlplotを使って自然言語を分析してみた
takapy
4
13k
Other Decks in Technology
See All in Technology
MAMを軸とした動画ハンドリングにおけるAI活用前提の整備と次世代ビジョン / abema-ai-mam
cyberagentdevelopers
PRO
1
110
IaC運用を楽にするためにCDK Pipelinesを導入したけど、思い通りにいかなかった話
smt7174
1
110
Autify Company Deck
autifyhq
1
39k
とあるユーザー企業におけるリスクベースで考えるセキュリティ業務のお話し
4su_para
3
320
ガチ勢によるPipeCD運用大全〜滑らかなCI/CDを添えて〜 / ai-pipecd-encyclopedia
cyberagentdevelopers
PRO
3
200
新R25、乃木坂46 Mobileなどのファンビジネスを支えるマルチテナンシーなプラットフォームの全体像 / cam-multi-cloud
cyberagentdevelopers
PRO
1
130
【若手エンジニア応援LT会】AWSで繋がり、共に成長! ~コミュニティ活動と新人教育への挑戦~
kazushi_ohata
0
170
コンテンツを支える 若手ゲームクリエイターの アートディレクションの事例紹介 / cagamefi-game
cyberagentdevelopers
PRO
1
120
ガバメントクラウド単独利用方式におけるIaC活用
techniczna
3
270
バクラクにおける可観測性向上の取り組み
yuu26
3
410
サイバーエージェントにおける生成AIのリスキリング施策の取り組み / cyber-ai-reskilling
cyberagentdevelopers
PRO
2
190
生成AIの強みと弱みを理解して、生成AIがもたらすパワーをプロダクトの価値へ繋げるために実践したこと / advance-ai-generating
cyberagentdevelopers
PRO
1
180
Featured
See All Featured
Six Lessons from altMBA
skipperchong
26
3.5k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
107
49k
Measuring & Analyzing Core Web Vitals
bluesmoon
1
39
Testing 201, or: Great Expectations
jmmastey
38
7k
Git: the NoSQL Database
bkeepers
PRO
425
64k
Teambox: Starting and Learning
jrom
132
8.7k
KATA
mclloyd
29
13k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
13
1.9k
Done Done
chrislema
181
16k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
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/
おわり ご清聴ありがとうございました