公開データを点数化してみたよ〜政府・自治体データの“使える度”スコアカード

IT政策の提案
公開データを点数化してみたよ〜政府・自治体データの“使える度”スコアカード

どうも〜おかむーです!今日はちょっとエンジニアっぽい視点で、政府や自治体が出してるデータを「使えるかどうか」を定量評価する話をしますよ〜

  • データ公開は増えてるけど“使える度”は千差万別
  • PDFに閉じた実績報告がまだまだ多い(これ見てくださいよ)
  • シンプルなスコアカードと自動計測で改善の優先順位が見える化できるよ!

結論

公開データの価値は「存在」じゃなくて「使えるかどうか」だと思うんです。e-StatやJapan Dashboardみたいなポータルは素晴らしいけど、現場の報告書(自治体PDFなど)を含めたデータ群に対して、機械可読性・メタデータ・更新性・ライセンスの4軸くらいでスコアリングして可視化するだけで、政策検証と二次利用がぐっと加速します!

レポート本文

現状観察:公的ポータルの“見た目”と“中身”

  • デジタル庁のJapan Dashboard(https://www.digital.go.jp/resources/japandashboard)は政府統計の可視化を牽引してるよね。見やすい!
  • e-Stat(https://dashboard.e-stat.go.jp/)はCSVやAPIでのデータ提供があるから開発者にはありがたい
  • ただし、地方の実績報告(例:須賀川市のデジタル田園都市構想の実績評価ページ)はPDFが主で、機械的に集めにくい。PDF埋め込みテーブルはCSV化しないと解析しづらいんです

要するに:ポータルはあるけど“点在するPDF”が足を引っ張っているということです

使える度スコアカード(提案)

エンジニア的に言うと、評価軸は簡単に自動化できるほうがいい。以下8項目でシンプルなスコアを作ると現場で使いやすいです。

  • 機械可読性 (CSV/JSON/NDJSON/Parquet=1, PDF=0)
  • API提供有無 (OpenAPI / REST / GraphQL)
  • メタデータ完全性 (タイトル/更新日/ライセンス/カラム説明)
  • ライセンスの明示 (CC0/CC-BY等)
  • 更新頻度と最終更新日の明示
  • 地理情報の標準化 (緯度経度/行政コード)
  • 時系列整合性 (日付カラムのISO化)
  • サンプル/説明ドキュメントの有無
  • スコアは各項目を0/1で合算して0〜8で評価。要するに、数値化してランキングできるってことです。

    実装イメージ(コード例)

    以下はPythonで公開URLを叩いて簡易スコアを出すサンプル。

    import requests
    

    from urllib.parse import urlparse

    def score_dataset(url):

    s = 0

    r = requests.head(url, allow_redirects=True, timeout=5)

    ctype = r.headers.get('content-type','')

    if 'application/json' in ctype or url.endswith('.csv') or 'text/csv' in ctype:

    s += 1 # 機械可読性

    # API判定(簡易)

    if '/api/' in url or 'application/json' in ctype:

    s += 1

    # メタデータ取得はここでは省略(実際はDCAT/JSON-LDを探す)

    return s

    print(score_dataset('https://dashboard.e-stat.go.jp/'))

    要するに、まずは“簡単に回せる”評価を作るのがポイントです。これで自治体のカタログを一括評価できるんですよ。

    PDFに埋まった報告書の扱い方

    これ見てくださいよ。須賀川市の実績評価はPDFで公開されている(https://www.city.sukagawa.fukushima.jp/...)。人が読む分にはいいけど、コード書く人ならわかると思うんですけど、解析パイプラインに入れるには一手間いるんです。

    対処法:

    • Tabula/Camelotでテーブル抽出
    • OCRが必要ならTesseractでプレ処理
    • 抽出後は必ずスキーマ検証(pandas + pandera/pyarrow schema)

    サンプル:CamelotでテーブルをCSV化

    import camelot
    

    tables = camelot.read_pdf('report.pdf', pages='1-end')

    for i,t in enumerate(tables):

    t.to_csv(f'table_{i}.csv')

    メタデータ化の自動化パターン

    • カタログサイトにDCAT互換のJSON-LDを埋める
    • データごとに小さなREADME.md(またはdataset.json)を置く
    • CIでスコアを再計算してBadgesを生成する(例:GitHub Pagesで公開)

    こうすると、自治体職員が「どこを優先して直せば効果が出るか」が感覚じゃなくて数値でわかるようになります!

    活用シナリオ

    • 政策監査:交付金やKPIの実績を自動で集めて不整合を検出
    • Civic Tech:ボランティアがデータを拾って可視化して再配布
    • 行政内部:更新不足・ライセンス未明示を洗い出して改善計画を作る

    まとめ

    データを出すこと自体は既に進んでいます。でも“使えるデータ”にするための小さな工夫(機械可読性、メタデータ、明示的ライセンス、定期更新)を自動で検出してスコア化するだけで、利用者も行政も得をします。まずはスコアカードを作って1カ所のPDFをCSVに変換するところから始めましょう!

    おかむーから一言

    テクノロジーは道具です。小さな自動化が、現場の意思決定を変えるんですよ!一緒にデータを使える形にしていきましょう!

    シェアする