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.4k
自然言語可視化ライブラリ 「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
5.1k
コミュニティサービスに「あなたへ」フィードを リリースするまでの試行錯誤
takapy
1
1.7k
NLPを活用したオンボーディング改善とコールドスタート問題への対策
takapy
4
5.6k
コミュニティサービスにおけるレコメンデーションの変遷とMLパイプラインについて
takapy
2
7.1k
SageMaker StudioとStep Functionsを用いてMLOpsへの一歩を踏み出そう
takapy
0
8.5k
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
MySQLのSpatial(GIS)機能をもっと充実させたい ~ MyNA望年会2025LT
sakaik
0
150
AWS re:Invent 2025~初参加の成果と学び~
kubomasataka
1
200
Amazon Quick Suite で始める手軽な AI エージェント
shimy
2
2.1k
ソフトウェアエンジニアとAIエンジニアの役割分担についてのある事例
kworkdev
PRO
0
320
AIエージェントを5分で一気におさらい!AIエージェント「構築」元年に備えよう
yakumo
1
120
MariaDB Connector/C のcaching_sha2_passwordプラグインの仕様について
boro1234
0
1.1k
アラフォーおじさん、はじめてre:Inventに行く / A 40-Something Guy’s First re:Invent Adventure
kaminashi
0
180
AWSの新機能をフル活用した「re:Inventエージェント」開発秘話
minorun365
2
510
『君の名は』と聞く君の名は。 / Your name, you who asks for mine.
nttcom
1
130
Claude Skillsの テスト業務での活用事例
moritamasami
1
120
2025-12-27 Claude CodeでPRレビュー対応を効率化する@機械学習社会実装勉強会第54回
nakamasato
4
1.2k
AIBuildersDay_track_A_iidaxs
iidaxs
4
1.5k
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.3k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Six Lessons from altMBA
skipperchong
29
4.1k
Navigating Team Friction
lara
191
16k
Exploring anti-patterns in Rails
aemeredith
2
210
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
Code Reviewing Like a Champion
maltzj
527
40k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Utilizing Notion as your number one productivity tool
mfonobong
2
190
YesSQL, Process and Tooling at Scale
rocio
174
15k
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/
おわり ご清聴ありがとうございました