行政の統計資料のような非構造化データをGPTで構造化データに変換する
https://note.com/mahlab/n/n998d8601cfab
(LangChainを経由して) #Unstructured で表をプレーンテキストとして読み取った後、GPTに1例与えたところJSONに構造化できたという報告
UnstructuredPDFLoader
(2024/01時点ではUnstructuredFileLoaderを使うことになると思われる)
PDFのような非構造化データを、ある程度LLMで扱いやすい形に変換してくれるライブラリにUnstructured.ioというものがあります。
code:読み取り結果
Document(page_content='区分 年 実 数 対前回増減率(%) 平成3年=100 実 数 (人) 対前回増減率(%) 平成3年=100 実 数 (万円) 対前回増減率(%) 平成3年=100 平成3年 1,147 △1.8 100.0 5,194 5.9 100.0 15,930,427 15.9 100.0 6 1,077 △ 6.1 93.9 5,000 △ 3.7 96.3 14,540,481 △ 8.7 91.3 9 1,016 △ 5.7 88.6 5,124 2.5 98.7 13,940,972 △ 4.1 87.5 11 993 △ 2.3 86.6 5,162 0.7 99.4 13,264,532 △ 4.9 83.3 14 930 △ 6.3 81.1 4,964 △ 3.8 95.6 11,430,624 △ 13.8 71.8 16 868 △ 6.7 75.7 4,885 △ 1.6 94.1 11,687,119 2.2 73.4 19 807 △ 7.0 70.4 4,516 △ 7.6 86.9 10,663,723 △ 8.8 66.9 24 618 △ 23.4 40.2 3,565 △ 21.1 △ 32.1 8,660,500 △ 18.0 △ 19.8 26 609 △ 24.5 53.1 3,323 △ 26.4 64.0 8,578,315 △ 19.6 53.8 28 724 18.9 67.2 4,368 31.4 87.4 9,108,900 6.2 62.6 商 店 数 従 業 者 数 年 間 販 売 額\n\n注:平成21年商業統計調査は中止\n\n資料:商業統計調査', lookup_str='', metadata={'source': './7syougyou_01.pdf'}, lookup_index=0)
code:GPTに構造化させるプロンプト
以下に示すデータは、市町村の統計データとして提供されているPDFをUnstructuredPDFLoaderによりテキスト化したものである。
平成3年から28年までの行をJSONデータに変換せよ。
以下は平成3年度の行をJSON化した場合の例である。
# JSON
[
(
"年": "平成3年",
"商店数": (
"実数": 1147,
"対前回増減率_%": -1.8,
"平成3年=100": 100.0
)
)
]
# データ
{data0.page_content}
データ変換エンジンとしてLLMを使うのは確かに。非構造化データの構造化データへの変換は、function callingが出たことによって精度が更に高くなった。#LLMProd