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
4.3k
自然言語可視化ライブラリ 「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
4.9k
コミュニティサービスに「あなたへ」フィードを リリースするまでの試行錯誤
takapy
1
1.6k
NLPを活用したオンボーディング改善とコールドスタート問題への対策
takapy
4
5.5k
コミュニティサービスにおけるレコメンデーションの変遷とMLパイプラインについて
takapy
2
7.1k
SageMaker StudioとStep Functionsを用いてMLOpsへの一歩を踏み出そう
takapy
0
8.4k
GoogleColabとVSCodeを用いた分析環境運用Tips
takapy
15
14k
word2vecを利用した埋め込み分析とSWEMを用いた比較実験
takapy
0
2.4k
トピックモデルを活用したレコメンデーションの実装
takapy
1
6.6k
Streamlitとnlplotを使って自然言語を分析してみた
takapy
4
15k
Other Decks in Technology
See All in Technology
メッセージ駆動が可能にする結合の最適化
j5ik2o
6
850
Progressive Deliveryで支える!スケールする衛星コンステレーションの地上システム運用 / Ground Station Operation for Scalable Satellite Constellation by Progressive Delivery
iselegant
1
210
FFMとJVMの実装から学ぶJavaのインテグリティ
kazumura
0
150
リアーキテクティングのその先へ 〜品質と開発生産性の壁を越えるプラットフォーム戦略〜 / architecture-con2025
visional_engineering_and_design
0
4k
Capitole du Libre 2025 - Keynote - Cloud du Coeur
ju_hnny5
0
120
新しい風。SolidFlutterで実現するシンプルな状態管理
zozotech
PRO
0
130
re:Invent2025 事前勉強会 歴史と愉しみ方10分LT編
toshi_atsumi
0
220
機密情報の漏洩を防げ! Webフロントエンド開発で意識すべき漏洩パターンとその対策
mizdra
PRO
10
4.6k
雲勉LT_Amazon Bedrock AgentCoreを知りAIエージェントに入門しよう!
ymae
2
170
TypeScript 6.0で非推奨化されるオプションたち
uhyo
12
3.2k
仕様は“書く”より“語る” - 分断を超えたチーム開発の実践 / 20251115 Naoki Takahashi
shift_evolve
PRO
1
1.1k
adk-samples に学ぶデータ分析 LLM エージェント開発
na0
2
170
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
463
33k
Building Applications with DynamoDB
mza
96
6.8k
Rails Girls Zürich Keynote
gr2m
95
14k
How GitHub (no longer) Works
holman
315
140k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
980
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.1k
Music & Morning Musume
bryan
46
7k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Fireside Chat
paigeccino
41
3.7k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
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/
おわり ご清聴ありがとうございました