島根県安来市のフリーランスエンジニア_プログラマー画像1

政治家の発言を自動収集・整理するアプリの作り方【デモあり】|国会API・NewsAPI・GPT要約・モバイル対応の実装手順とコスト

「特定の政治家が過去に何を発言したか素早く調べたい」「国会発言・ニュース・SNSを横断して政治家の主張を一元管理したい」「選挙前に政治家の政策転換を自動検出するサービスを作りたい」——そんなニーズに応える政治家発言アーカイブシステムの開発手順を解説します。本記事では、国会会議録API・NewsAPI・Twitter APIから発言データを自動収集し、Claude APIで要約・カテゴリ分類・立場変化検出まで行うアプリを、実際に動くデモを交えながら解説します。React Native + Node.js + PostgreSQL + Elasticsearch + Redis の構成でSaaS化まで含めた実践的な内容です。

なぜ政治家発言アーカイブアプリが求められているか

政治家の発言は国会議事録・各党公式サイト・ニュースメディア・SNSに分散しており、一人の政治家の発言を時系列で追うのは困難です。既存の国会会議録検索システムは公式ながら検索性が低く、スマホでの利用も快適ではありません。AI要約・プッシュ通知・政策転換検出を組み合わせたモバイルファーストのシステムには明確な差別化余地があります。

既存サービスの課題 このシステムでの改善
国会議事録検索はPC向けで使いにくい モバイルファーストのUIで快適に閲覧
ニュース・国会・SNSがバラバラ 複数ソースを一元管理・統合検索
長文記事を読むのが大変 AIが3行要約を自動生成
政策転換に気づきにくい 過去発言と比較して立場変化を自動検出

実際に動かしてみる(デモ)

以下は実際に動作するデモです。「すべて」「経済」「安保」「福祉」「教育」のタブで絞り込み、検索バーでキーワード検索、「さらに読み込む」で追加表示できます。実際のシステムでは国会API・NewsAPIから自動収集したデータが表示されます。

デモシステム

政治家発言アーカイブ

自動収集・分析システム

1,234
収集記事数
45
登録政治家
12
カテゴリ

開発手順(8ステップ)

STEP 1:システム設計とアーキテクチャ

フロントエンドはReact Native + Expo(iOS/Android対応)、バックエンドはNode.js + Express(REST API)、データベースはPostgreSQL(構造化データ)+ Elasticsearch(全文検索)、キャッシュはRedis(高速レスポンス)、インフラはVercel(フロントエンド)+ AWS ECS(バックエンド)の構成が推奨です。初期段階はVercel + Supabaseで無料構築できます。月10万PVまでは無料枠で運用でき、それ以上になったらAWSに移行する段階的アプローチが現実的です。

STEP 2:データ収集システムの実装

主要な収集ソースは4つです。国会会議録検索システムAPI(参議院・衆院が公式提供・無料)は`https://kokkai.ndl.go.jp/api/`から議員名・発言内容・日付を取得できます。NewsAPIは月1,000リクエスト無料で主要ニュースサイトの記事を収集できます(月5,000円〜で無制限)。Twitter/X APIはBasicプランで月100万ツイート取得可能です。各党公式サイトはPlaywrightでスクレイピングします。GitHub ActionsまたはAWS Lambdaで6時間ごとに定期実行し、収集した記事はSHA-256ハッシュで重複を検出・除外します。

STEP 3:AI分析・自動分類機能の実装

収集した生データをClaude APIまたはOpenAI APIで構造化します。実装する機能は「カテゴリ自動分類」(経済・外交・福祉・教育などに分類)、「3行要約生成」(長文記事を要約)、「感情分析」(発言のトーンを肯定的/否定的/中立で判定)、「キーワード抽出」(重要単語を自動抽出してタグ付け)、「立場変化検出」(同一政治家の過去発言と比較してベクトル類似度で政策転換を検出)です。Claude Haikuを使えば1記事あたり0.1円以下で処理でき、月1万記事処理しても約1,000円です。

STEP 4:データベース設計

PostgreSQLで3テーブルを設計します。politiciansテーブル(議員名・政党・選挙区・プロフィール画像URL)、articlesテーブル(議員ID・タイトル・本文・要約・カテゴリ・ソース・発言日時・感情スコア・収集日時)、tagsテーブル(article_id・タグ名)です。articlesテーブルの`(politician_id, published_at DESC)`と`(category, published_at DESC)`に複合インデックスを設定します。全文検索はElasticsearchに記事データを同期し`match_phrase`クエリで実装します。

STEP 5:モバイルアプリ開発(React Native)

React Native + Expoでタブ・フィルター・検索UIを構築します。タイムライン表示(最新順・人気順・関連度順)、Firebase Cloud Messagingで特定政治家の新着発言をプッシュ通知、AsyncStorageで既読記事をキャッシュしてオフライン対応、Twitter/LINE/Facebookへのシェア機能を実装します。ダークモード対応はNativeWindまたはStyleSheetで実装します。スマホでのUXを重視し、ボタンサイズは最小44px・フォントサイズは最小13pxを確保します。

STEP 6:Elasticsearch全文検索の実装

PostgreSQLのデータをElasticsearchに同期するパイプラインを構築します。インデックス設計では`politician_name`・`title`・`content`・`tags`を`text`型(日本語アナライザー: kuromoji)で定義します。検索クエリは`multi_match`で複数フィールドを横断検索し、`highlight`で検索語をハイライト表示します。オートコンプリートは`completion suggester`で実装します。Elasticsearchの代替としてPostgreSQLの`pg_trgm`拡張機能でも日本語全文検索を実装できます(小規模なら十分)。

STEP 7:収益化モデルの実装

広告収益(Google AdSense・AdMob)、プレミアムプラン(月額480円で広告非表示・AI要約・PDF出力)、API販売(企業・研究機関向け月額9,800円〜)、レポート販売(政策比較レポート・議員活動分析1本980円)の4本柱で収益化します。DAU 5,000人・プレミアム会員100人・API販売5社を達成すれば月商約16.7万円が見込めます。選挙期間中(参院選・衆院選の3ヶ月前)はアクセスが5〜10倍に増加するためこの時期の集中投資が効果的です。Stripeでサブスクリプション課金を実装します。

STEP 8:SEO・マーケティングとリリース

SEOは「高市早苗 発言」「岸田首相 政策」などの政治家名+発言・政策のロングテールキーワードで上位表示を狙います。Twitter/Xで最新発言を自動投稿してバイラル拡散を狙います。政治系YouTuberへのアプローチやPR TIMESでのプレスリリース配信も有効です。App Store・Google Playへの申請は審査に1週間程度かかります。運用はDatadogで24時間監視、CI/CDパイプラインで安全にリリース、毎日自動バックアップを設定します。プライバシーポリシーには収集データの範囲・利用目的・第三者提供の有無を明記します。

開発・運用コストの目安

React Native + Node.js + PostgreSQL + Elasticsearch + Claude APIの構成なら、自動収集・AI要約・全文検索の基本フローを備えたMVPを10万円程度から開発できます。

フェーズ 内容 費用目安
フェーズ1(MVP) 国会API連携・記事一覧・検索・フィルター 10万〜30万円
フェーズ2(機能追加) AI要約・感情分析・プッシュ通知・立場変化検出 10万〜30万円
フェーズ3(収益化) Stripe課金・API販売・レポート機能 10万〜30万円
Claude API(月額) 月1万記事処理(Haiku使用) 月約1,000円
NewsAPI(月額) Developerプラン 月約5,000円
サーバー・DB(月額) Vercel Pro + Supabase Pro 月約4,500円
月額運用費(目安) API + サーバー + 保守合計 月約1.1万円

よくある質問

政治家の発言データを収集・公開するのは法的に問題ありませんか?

国会会議録は国会が公式に公開しているパブリックドメインのデータであり、利用に制限はありません。ニュース記事の引用は著作権法32条の「引用」の範囲内(出典明記・改変なし・主従関係が明確)であれば合法です。ただし記事全文をそのまま掲載することは著作権侵害になるため、要約・リンク掲載の形で実装します。SNS発言の収集はAPIの利用規約に従って実装します。リリース前に著作権に詳しい弁護士への確認を推奨します。

感情分析や立場変化検出の精度はどれくらいですか?

Claude APIやGPT-4の感情分析は一般的なテキストで精度80〜90%程度ですが、政治的発言は文脈依存が強くアイロニーや党略的表現が多いため精度が下がることがあります。立場変化検出は単純な賛否の変化は検出しやすいですが、政策の細部のニュアンス変化は難しいです。ユーザーに「AI分析は参考情報です」と明示することが重要です。精度向上には政治発言に特化したファインチューニングが有効ですが、初期段階では汎用モデルで十分です。

選挙期間中のアクセス急増にどう対応しますか?

選挙期間中は通常の5〜10倍のアクセスが見込まれます。対策としてRedisキャッシュで記事一覧・検索結果をキャッシュ(TTL 5分)、CloudFrontでCDN配信、Vercelは自動スケーリングするため追加設定不要、バックエンドはAWS ECSのオートスケーリンググループで負荷に応じてインスタンス数を自動調整します。選挙3ヶ月前からNewRelicでトラフィック予測を行い、キャパシティプランニングを実施します。

まとめ

React Native + Node.js + PostgreSQL + Elasticsearch + Claude APIの構成で政治家発言アーカイブアプリをMVP10万円程度から開発できます。国会会議録API(無料)をベースに国会の発言を収集し、NewsAPIとSNSで補完、Claude Haikuで月1,000円以下のコストでAI要約・分類を自動化できます。選挙期間中のアクセス急増を収益に転換する設計にすることで年間180万円以上の収益が見込めます。既存の国会会議録検索システムと差別化するため、モバイルファーストUI・AI要約・プッシュ通知・立場変化検出の4機能を最初から設計に組み込むことが成功の鍵です。

開発のご相談や見積もりはお気軽にお問い合わせください。要件定義からリリースまで一貫してサポートします。

メルカリせどりツールをPythonで開発 | Streamlit実装完全ガイド

React + Firebase で施設予約システムを実装|開発の全記録と実装ポイント