About このプロジェクト

Stack Overflow の質問12,000件とDeveloper Survey を組み合わせ、 「学習者がどこでつまづくか」をマクロ・メゾ・ミクロの3層で定量分析したデータアナリストポートフォリオ第3作。 公的統計(第1作)・商業データ(第2作)に続き、テキスト+メタデータの分析を扱う。

分析パイプライン

1

データ取得(Day 2–3)

Stack Exchange API v2.3 でPython・JavaScript・Java・Go の質問を言語・年別に各300件取得(計12,000件)。tenacity によるバックオフ自動制御、SQLite キャッシュで再取得コストを抑制。

2

前処理(Day 4)

質問本文のHTML除去(BeautifulSoup4)→ NLTK英語ストップワード+ドメイン固有語の除去 → Parquet 形式で保存。

3

マクロ分析(Day 5)

Developer Survey 2022–2024 の使用率・希望率を言語別に集計。質問の回答率10年推移も算出。pandas + PyYAML で設定外出し。

4

メゾ分析(Day 6)

タグ共起行列を構築し networkx でグラフ化 → Louvain法でコミュニティ検出 → 媒介中心性上位50ノードを抽出してD3.js用JSONを生成。

5

ミクロ分析(Day 7–8)

質問タイトル+タグを TF-IDF(sklearn)でベクトル化 → LSA(TruncatedSVD)で50次元に削減 → HDBSCANでクラスタリング(クラスタ数自動決定)。クラスタラベルはグローバルIDF(セントロイド方式)で上位語を選択。

6

フロントエンド(Day 9–12)

スクロールテリング型SPA。Plotly.js でトレンドグラフ・横棒グラフ、D3.js v7 でforce-directed network。IntersectionObserver でスクロール連動アニメーション。

利用技術スタック

ライブラリ用途バージョン
Python分析全般3.13
pandas / pyarrowデータ処理・Parquet保存2.x / 19.x
scikit-learnTF-IDF・LSA(TruncatedSVD)1.x
hdbscan密度ベースクラスタリング0.8.x
networkxタグ共起グラフ・中心性計算3.x
python-louvainコミュニティ検出0.16
nltk英語ストップワード・トークナイズ3.9.x
tenacityAPI バックオフ制御9.x
loguruロギング0.7.x
Plotly.jsトレンドグラフ・横棒グラフ2.35.2
D3.jsforce-directed ネットワーク図7.9.0

データソースと利用規約

本サイトは学習・ポートフォリオ目的で作成しています。分析結果の正確性については可能な限り検証しましたが保証するものではありません。Stack Overflow および Stack Exchange は Stack Exchange Inc. の商標です。本プロジェクトは Stack Exchange Inc. とは無関係です。

作者

👤

中江 哲夫(Tetsu Nakae)

データアナリスト・マーケティングプランナー

慶應義塾大学法学部卒。電通ヤング&ルビカムにてブランドリサーチ・ディレクターとして25年以上のマーケティング実務を経験後、データサイエンスを独習。Python エンジニア認定(基礎・データ分析)、Google Data Analytics プロフェッショナル認定取得。

本プロジェクトは「公的データ」「商業データ」「テキスト+メタデータ」を扱うポートフォリオ3部作の第3作。