📊

GPT-4Vにテーブルデータを読み取ってもらう

2023/10/23に公開

実現したいこと

GPT-4Vの中でも、画像をもとにデータ化するというのは、基本的な機能の1つかと思います。
今回は、その中でも数表の画像を基にデータ化するということを検証したいと思います。

利用するデータ

東京都のオープンデータのうち、八王子市の下水道使用料早見表というデータがありますが、CSVファイルではなくPDFで提供されています。(が、今回は画像として使います)

見ていただくと分かりますが、表が長いので50ごとに折り返しているんですよね。
こういうのって人間が見ると当たり前のように読めるのですが、データとして扱おうとするとコピーしたりとかも大変ですよね。

これをChatGPTのGPT-4Vを用いて、データ化が簡単にできるのかを検証していきます。

検証

初期レベル

まずは単純に、画像を渡して「添付画像の表から、CSVファイルを作成してください」としてみました。そこででてきたのが、次の通りです。

画像を読み取っているためか、処理時間は通常のChatGPTとの会話よりは時間がかかりますが、自動で動いているのでひとまず目をつむりましょう。

見た感じ数値に誤りはなさそうで、しっかりと出力してくれています。

一方で、課題もあります。ざっと今回ので私の理想と異なったのは次の4点です。

  • CSV化なので、データとして欲しかった
  • 表が長いと省略されてしまう(場合によっては途中で、エラーになることも)
  • 日本語のヘッダーが「排出量」が「番号」になっているなど、正しく出せていない
  • CSV形式で出してくれているので、列の区切りと数値のカンマが混同する

依頼の仕方を工夫をしてみよう

では、課題があるからChatGPTや生成AIが使えないのかというとそうではないです。これは私の依頼の仕方が悪いんです。

自分が、これを誰かにやってもらおうとすると最低限、部下の能力に合わせて次くらいの説明は必要ですよね。

添付画像の表から、CSVファイルを作成してください
区切り文字は、カンマではなくタブにしてください
表が長いので、まずは頭から50行をだしてください

さらに、続きを求めれば、同じ元の画像データから作ってくれます。

続いて、51行目から100行目をお願いします

(出力結果は省略)

列数にもよりますが、50~100行くらいで試してみて、今回の表だとできる範囲を見極めた上で依頼するとよいでしょう。
今回のデータはシンプルだったので、100行でも問題なく出せました。

それでもできなかったこと

CSV化なので、データとして欲しかった

これは明確にできませんと言われてしまいました。テキストでコピーして、CSV化を手動でするという作業は必要になりそうです。

CSVファイルとして生成することは直接的にはできませんが、完全なCSV形式のデータを生成し、提示することはできます。

日本語のヘッダーが「排出量」が「番号」になっているなど、正しく出せていない

ここは、現状のGPT-4Vの課題かなと思っています。
モデルの特徴上、文章を読み解くことはできるのですが、単品で出ている単語を正しく出すことは、まだまだ苦手なようです。(英語や数値はできるので、やはりこれは学習対象の差かと)

まとめ

表の画像を、CSVデータ化するという単純かつ面倒なタスクでしたが、GPT-4Vはしっかりとやり遂げてくれました。

まだまだ課題は多いですが、これだけでも十分価値があるように感じます。
とはいえ、別の事例だと読み取った数値が間違っていた(桁が多いと間違う?)こともあったようなので、そこは要注意ですね。

Discussion