- Engineering
- DX推進事業マネージャー
- CTO、CTO候補
- Other occupations (4)
- Development
- Business
- Other
オープンデータではじめるデータ構造化 〜生成AIでオープンデータを整理する〜
こんにちは、AI開発チームです。
今回は「データ構造化」という取り組みについて、オープンデータを題材に紹介します。
「データ構造化」とは、ばらばらに記載された文章やPDF、報告書などの非構造化データを、コンピュータが扱いやすい形(CSVやデータベース)に変換することを指します。AIを活用することで、この作業を効率的かつ高精度に行えるようになってきました。マイクロベースにおいて、MiraiE Structifyというサービスにおいて、証明書や契約書といったドキュメントを機械学習に読込可能なデータセットに変換するサービスを開発しちえます。
船舶事故報告書を題材に
今回取り上げるのは、国土交通省が公開している「船舶事故報告書」。
この報告書には、事故の発生日時や場所、関係する船舶名、原因、再発防止策などが文章形式で記載されています。
https://jtsb.mlit.go.jp/jtsb/ship/index.php
こうした報告書をそのまま読むのは人間にとっては容易ですが、統計的に分析したり、GIS(地図システム)に載せたりするには「構造化」されていることが必要です。
そこで、以下のようなポイントを意識してデータ化を行いました。
- 発生場所:海上事故は住所が存在しないため、報告書に記載された緯度経度を直接抽出
- 関係船舶:衝突や玉突き事故では複数の船舶が関与するため、最大6船舶まで記録できるスキーマを準備
- 日付:和暦で書かれているケースも多いため、西暦に変換して保存
- 自由記述:事故の概要、原因、再発防止策などは要約してテキスト化
生成AIによる構造化
以前はルールベースや正規表現で手作業に近い処理をしていましたが、現在は生成AI(LLM)を使ったアプローチを取り入れています。
例えば、報告書のPDFをAIに読み込ませて以下のように指示します:
「この報告書から、発生日時、発生場所、関係船舶、事故種類、原因、再発防止策を抽出し、JSON形式で出力してください。」
すると、AIが文章を解析して、事前に指定したスキーマに沿った形でデータを返してくれます。
シンプルな報告書なら小型モデル(例:Haiku)でも対応可能で、大規模モデルを使えばより複雑な文章も正確に抽出できます。
出力結果イメージ
構造化の結果は以下のようなCSVにまとまります。
このようにデータ化することで、事故の傾向分析や、地図上での可視化、再発防止策の比較検討などが容易になります。
考察
実際にやってみて感じたのは次の2点です。
- モデルごとの得意不得意がある
短文の抽出は軽量モデルで十分ですが、長文の「事故の概要」や「原因」抽出では大規模モデルが安定。 - スキーマ設計が肝
どの項目を抽出するかをあらかじめ定義しておかないと、AIが返す結果もバラつきが大きくなるため、事前設計が重要です。
まとめ
- データ構造化は、非構造データを機械可読な形式に変換するプロセス
- 船舶事故報告書のような公開データを題材にすることで、社会的にも意義のある活用が可能
- 生成AIを使うと、従来より効率的に精度の高いデータ化が実現できる
最後に
私たちは「データ構造化 × 生成AI」をキーワードに、公共データや業務文書を整理・活用する技術を磨いています。
もしこの記事を読んで「こういう取り組みに関わってみたい」と思った方がいれば、お気軽にお話聞きにきてください!