1
/
5

LLMを用いて非構造データをデータ構造化してみた

Photo by Aerps.com on Unsplash

オープンデータではじめるデータ構造化 〜生成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点です。

  1. モデルごとの得意不得意がある
    短文の抽出は軽量モデルで十分ですが、長文の「事故の概要」や「原因」抽出では大規模モデルが安定。
  2. スキーマ設計が肝
    どの項目を抽出するかをあらかじめ定義しておかないと、AIが返す結果もバラつきが大きくなるため、事前設計が重要です。

まとめ

  • データ構造化は、非構造データを機械可読な形式に変換するプロセス
  • 船舶事故報告書のような公開データを題材にすることで、社会的にも意義のある活用が可能
  • 生成AIを使うと、従来より効率的に精度の高いデータ化が実現できる

最後に

私たちは「データ構造化 × 生成AI」をキーワードに、公共データや業務文書を整理・活用する技術を磨いています。

もしこの記事を読んで「こういう取り組みに関わってみたい」と思った方がいれば、お気軽にお話聞きにきてください!

Invitation from マイクロベース株式会社
If this story triggered your interest, have a chat with the team?
マイクロベース株式会社's job postings
2 Likes
2 Likes

Weekly ranking

Show other rankings
Like Kei Kawashima's Story
Let Kei Kawashima's company know you're interested in their content