産業保健で使えるかも?な生成AI:(6)熱中症救急搬送数PDFから数字を抜き出そう
趣味…ではなくて仕事として、毎年4月末〜10月初旬は消防庁の熱中症情報ページをチェックしています。こちらには1週間ごとの熱中症救急搬送数のデータが掲載されておりまして、この数字と気象庁の最高気温の数字を毎週拾い上げてグラフを作っています。で、熱中症教育の資料として使うわけです。
今年も情報公開が始まりまして、毎年と同じ様にPDFファイルをダウンロードしてAcrobat Readerで表部分のテキストを選択→コピーして、Excelでテキストファイルウィザードを使ってインポート…と作業したら、値が表の形に並ばない…A列に1週間・各集団のデータがドバッと並んでいる…。
おかしいなぁと思って昨年と今年のPDFファイルをチェックしてみると、「PDF変換」の記載が変わっている…。どうやらPDFファイルの作成方法を変更した様です。
色々試行錯誤しましたが、「コピー→ペースト」というシンプル操作やテキストファイルウィザードでのインポートではどうにもならなさそう。かと言って、毎週手作業で(1)「普通にペーストして縦に並んだデータを作成」→(2)「行と列を交換してペーストして横に並んだデータを作成」→(3)「1日ずつカット&ペーストして表の形に整形する」なんて作業はやりたくありません。
そこで(1)は仕方ないとして、「貼り付けたシートからデータを引用して表形式に並べ替える」Excelシートを作る事を考えました。しかしこれも数分で終わるとはいえ地味にイヤな作業。
そこで考えました。「ChatGPTにお願いして並べ替えるExcelシートを作ってもらう」と。
準備したのはExcelファイルを1つ。中身は「貼り付け」というシートと「加工後」というシート。シート「貼り付け」にはPDFファイルからコピペした、A列に1週間分・全集団のデータが並んでいるデータを入れています。シート「加工後」にはそれを横並び・1週間ごとの表に並べ直したデータを入れています。
プロンプトを2〜3個試してみて、最終的にはこれでうまく行きました。何をどうして欲しいのか、具体的に指示するのが大事です。
Sheet1のA列にあるデータを並べ替えて、Sheet2のA1セル~W7セルのように並び替える、Excel書類を作成して下さい。
・作成するExcel書類の中で、Sheet1に該当するシートは「貼り付け」という名前です。
・作成するExcel書類の中で、Sheet2に該当するシートは「加工後」という名前です。
・シート「貼り付け」のデータを引用してシート「加工後」に成形したデータを入力する様、シート「加工後」に関数を設定します。
この指示からChatGPTが作ってくれたExcelファイルで、シート「貼り付け」に消防庁PDFからデータをコピペしたら、シート「加工後」に表形式に並べ直したデータが表示されました。
これで、これからも楽に作業できるね。めでたしめでたし。
…と思っていたのですが、人間便利を覚えるとさらに楽をしたくなるものです。そう、気付いてしまったのです。
「そもそもChatGPTにお願いして、PDFファイルから表の部分をExcelファイルに書き出してもらえばいいんじゃないの?」
…と。
さっそくPDFファイルをChatGPTに読み込ませて、表のタイトルを指定して「この表をExcelファイルに書き出して」とか、書き出し後のExcelファイルも読み込ませて「こんなExcelファイルにして欲しい」とお願いしたりとか、色々プロンプトを試してみます。しかしこれがなかなかうまくいかない。何でだろう…?
まぁ並べ替えExcelファイルがあるから、そこまで深追いしなくてもいいかな…と考え始めた時、ふとChatGPTからの回答にこう書いてある事に気付いたのです。
『PDFファイルのテキスト抽出に問題があるようです。OCR(光学文字認識)を使用してテキストを抽出する必要がありそうです。』
そういえば、ChatGPTは画像から文字や表を読み取ってデジタル化するOCR機能があるのです。ならばちょっと視点を変えてみよう。PDFファイルをAcrobat Readerのらスナップショット機能で画像としてコピーしてChatGPT画面にてペースト。するとコピーした画像がChatGPTにアップロードされました。
そして一言、こうお願いしました。
画像の表からExcelファイルを作成して下さい
すると何と言う事でしょう、PDFと同じ並びでデータの入ったExcelシートをサックリと作成してくれました。あのプロンプトの試行錯誤は何だったんでしょうね…。とにかく、これで毎週の作業がもっと楽になりました。ChatGPT、便利ですねぇ。
というわけで、今回の教訓。
迷った時は「何をしたいのか」を一度シンプルに考え直してみよう。
お粗末さまでした。
この記事が気に入ったらサポートをしてみませんか?