オープンデータではじめるデータ構造化 〜生成AIでオープンデータを整理する〜
オープンデータではじめるデータ構造化 〜生成AIでオープンデータを整理する〜
こんにちは、マイクロベースのAI開発チームの「データ構造化」という取り組みについて、オープンデータを題材に紹介します。
「データ構造化」とは、ばらばらに記載された文章やPDF、報告書などの非構造化データを、コンピュータが扱いやすい形(CSVやデータベース)に変換することを指します。AIを活用することで、この作業を効率的かつ高精度に行えるようになってきました。マイクロベースにおいて、証明書や契約書といったドキュメントを機械学習に読込可能なデータセットに変換するサービスに取り組んでおり、これからデータ構造化に取り組まれる方向けに紹介いたします。
船舶事故報告書を題材に
今回取り上げるのは、国土交通省が公開している「船舶事故報告書」。
この報告書には、事故の発生日時や場所、関係する船舶名、原因、再発防止策などが文章形式で記載されています。
こうした報告書をそのまま読むのは人間にとっては容易ですが、統計的に分析したり、GIS(地図システム)に載せたりするには「構造化」されていることが必要です。
そこで、以下のようなポイントを意識してデータ化を行いました。
- 発生場所:海上事故は住所が存在しないため、報告書に記載された緯度経度を直接抽出
- 関係船舶:衝突や玉突き事故では複数の船舶が関与するため、最大6船舶まで記録できるスキーマを準備
- 日付:和暦で書かれているケースも多いため、西暦に変換して保存
- 自由記述:事故の概要、原因、再発防止策などは要約してテキスト化
生成AIによる構造化
以前はルールベースや正規表現で手作業に近い処理をしていましたが、現在は生成AI(LLM)を使ったアプローチを取り入れています。
例えば、報告書のPDFをAIに読み込ませて以下のように指示します:
「この報告書から、発生日時、発生場所、関係船舶、事故種類、原因、再発防止策を抽出し、JSON形式で出力してください。」
すると、AIが文章を解析して、事前に指定したスキーマに沿った形でデータを返してくれます。
シンプルな報告書なら小型モデル(例:Haiku)でも対応可能で、大規模モデルを使えばより複雑な文章も正確に抽出できます。
出力結果イメージ
構造化の結果は以下のようなCSVにまとまります。
ファイル名 | 発生日時 | 発生場所 | 事故種類 | 船舶名1 | 船舶名2 | 事故概要 | 原因 | 再発防止策 |
---|---|---|---|---|---|---|---|---|
report_001.pdf | 2023-05-12 14:30 | 北緯35°10′ 東経139°40′ | 衝突 | 第五〇〇〇丸 | 第八〇〇〇丸 | ○○航路上で衝突 | 見張り不足 | 夜間航行時の当直強化 |
report_002.pdf | 2022-11-03 09:20 | 北緯34°20′ 東経135°30′ | 転覆 | 第三〇〇〇丸 | null | 強風下で転覆 | 構造強度不足 | 点検体制の改善 |
このようにデータ化することで、事故の傾向分析や、地図上での可視化、再発防止策の比較検討などが容易になります。
考察
実際にやってみて感じたのは次の3点です。
-
モデルごとの得意不得意がある
短文の抽出は軽量モデルで十分ですが、長文の「事故の概要」や「原因」抽出では大規模モデルが安定。
-
スキーマ設計が肝
どの項目を抽出するかをあらかじめ定義しておかないと、AIが返す結果もバラつきが大きくなるため、事前設計が重要です。
まとめ
- データ構造化は、非構造データを機械可読な形式に変換するプロセス
- 船舶事故報告書のような公開データを題材にすることで、社会的にも意義のある活用が可能
- 生成AIを使うと、従来より効率的に精度の高いデータ化が実現できる
最後に
私たちは「データ構造化 × 生成AI」をキーワードに、公共データや業務文書を整理・活用する技術を磨いています。
もしこの記事を読んで「こういう取り組みに関わってみたい」と思った方がいれば、ぜひ採用ページ をご覧ください。

マイクロベースでは、官公庁・不動産事業者・インフラ事業者向けに、健全な都市インフラ、住まいの新陳代謝の実現に向けた、不動産価格予測や空き家予測などの予測AIサービスの開発・提供に取り組んでいます。 microgeo.biz/jp
Discussion