1,600日間続いたデータサイエンスプロジェクトの失敗
(lellep.xyz)- 1,600日間続けたデータサイエンスプロジェクトは、関心を失ったことで失敗に終わった
- テキストデータを扱う新たな挑戦として「ニュースティッカーのデータ収集と分析」を進めた
- 2020年3月、COVID-19関連ニュースを提供するドイツの公共ニュースサイト Tagesschau のニュースティッカーをデータソースに選定
- 2022年第3四半期に COVID-19 の重要性が薄れると、ウクライナ・ロシア戦争関連のニュースティッカーへ拡張
- データのメタパターン(投稿頻度など)と、トピック別の意味分析を実施
- 短期的なデータ探索のみを行い、実質的な分析は未完了
- 2024年第3四半期に、関心の低下と時間不足によりプロジェクトを中止
データ収集とシステム設計
- 2020年から2024年までの1,600日間、毎日ニュースデータの URL を収集し、生データをダウンロード
- Tagesschau には毎日短いニュースストーリーの一覧があり、各ストーリーにはタイムスタンプ、見出し、本文テキスト、マルチメディア要素が含まれる
- 手作業と Python ベースの半自動化データパイプラインを構築し、非構造化データを構造化されたニューススニペットへ変換
- URL 収集の自動化が難しかったため、毎日ウェブサイトを訪れて手動でリンクを集める方法を取った。これは Tagesschau の非構造的な URL スキームのため
- 4〜8週間ごとに Python で HTML ページを一括処理し、生データとして保存
- BeautifulSoup4 を使って HTML をパースし、SQLite データベースに保存
- プロジェクトの多くは自動化されたが、手動 ETL パイプラインと実際の分析は自動化されなかった
- DOM 構造の変更に備え、生の HTML データの保存を重視
プロジェクト失敗の教訓
- ストーリーテリングを考慮する:
- プロジェクト初期からストーリーテリングを構想し、結果を共有しやすいように設計する
- 素早く結果を出す:
- データを集めるだけでなく、小さなデータセットで素早く初期分析を行う
- 結果を公開して、作業のモチベーションを維持する(「Show Your Work」アプローチを活用)
- 自動化:
- データ収集と ETL パイプラインを可能な限り自動化し、反復作業を最小化する
- 今なら LLM ベースの AI エージェントを活用していただろう
- データ収集頻度の評価:
- 収集周期を事前に設定する(例: 毎日 vs 30秒間隔)
- 自動化可能なデータ収集頻度を設定する
- 生データの保存:
- 生データを保存し、将来のパースロジック変更に対応できるようにする
- クラウドの活用:
- シンプルで信頼性の高いインフラを構築し、実務的な技術習得の機会を作る
結論: 失敗を通じた成長
- 失敗したプロジェクトも学習経験となり、「より良いデータ実務者」になる助けになる
- データサイエンスプロジェクトの失敗は貴重な学習経験であり、「戦いの傷跡」を積み重ねる機会でもある
- 自然言語処理による自動化の機会を活用できなかったことが心残り
- 約10万件のニューススニペットを分析する機会を逃したことも大きな心残り
- 2024年の米国選挙など新たなニュースティッカーは今も登場しており、他の人が引き継ぐこともできる
- 関心のある人がプロジェクトを引き継ぐことを望んでおり、すべてのデータを共有する用意がある
「Go out and build something!」
1件のコメント
Hacker Newsの意見
このプロジェクトは失敗と呼ぶより、好奇心から試みて中断したものと見るべき。ブログに記事を上げてHNで紹介されたことだけでも成功だと思う
Webスクレイピングは依然として難しい分野であり、サイト側もスクレイピングを防ごうとする努力が多い
TagesschauのWebサイトを毎日訪れてリンクを集める手作業の工程があった。これは計画として適切ではなかった
COVID関連のデータサイエンス趣味プロジェクトを進めたが、6か月後に興味を失った。クラウド上ではスクレイパーが今も動き続けている
手作業の代わりにRSSフィードを活用して自動化すべきだった
プロジェクト初期からフィードバックを受けることが重要だ。これはプロジェクトの方向性を調整し、興味を取り戻す機会を与えてくれる
さまざまな関心をまたぐプロジェクトのダイナミズムが好きだ。複数のプロジェクトで学んだことを活かして新しいアイデアを得ている
タイトルは誤解を招く可能性がある。単にニュースフィードをスクレイピングする作業なら、数日で設定できる
個人プロジェクトを完成させるのに苦労する人は多い。データサイエンスはデータセットに対する洞察を見つける探索的な作業だ
データ収集の過程では、TagesschauのWebサイトの非構造的なURLスキームのために手作業が必要だった。安定したデータソースが必要だ
Webサイト開発者はスクレイパーを考慮していない。独自のデータセットを収集したいなら、Web開発者に公開APIの提供を求めるのがよい