AI活用 PDFの表の読み取り

学校や園から配られるプリントを、あとから検索できるようにテキストに起こす仕組みを動かしています。PDFが増えていても、いつ何のお知らせが来たかを言葉で探せるようにしたかったからです。

ほとんどのプリントはうまくいきました。ただ、ひとつだけ毎回失敗するものがありました。時間割です。

表だけが、毎回文字化けしました

PDFから文字を取り出すのは、ふつうは一瞬です。お知らせの文章なら、ほぼそのまま読めるテキストになります。

ところが時間割を通すと、出てくるのは意味の取れない文字の並びでした。曜日と時限と科目がばらばらになって、どれがどの枠なのか分かりません。ところどころ「〓」のような読めない記号も混ざります。

最初は、取り出し方が悪いのだと思いました。ツールを変えてみたり、設定を変えてみたりしましたが、どれも似たような結果でした。

表は、文章ではなく絵でした

理由を聞いてみて、ようやく腑に落ちました。

PDFの中では、文字がどこに置かれているかという情報しか持っていないことがあります。人間はそれを見て「これは縦の列だな」「この行は月曜だな」と理解しますが、それは見た目から読み取っているだけで、データとして「表である」と書かれているわけではないんです。

だから文字を順番に拾うと、表の形は消えます。消えた時点で、時間割は意味を失います。壊れていたのではなく、最初からそういうものでした。

それなら、人間と同じように見て読んでもらうしかありません。

「読む」のをやめて「見る」に変えました

やり方を変えました。文字を取り出すのをあきらめて、PDFを画像に変換し、それを拡大して、いくつかのタイルに分けて、一枚ずつ目で見て書き起こしてもらう形にしました。

時間はかかります。一枚の時間割に、文章のプリント何枚分もの手間がかかります。でも、結果は正確でした。曜日と時限がちゃんと対応した形で起こせるようになりました。

AIにPDFを渡すときは、まず「これは文章か、絵か」を分けて考えるといいのだと思います。お知らせの本文は文章です。表、図、手書き、写真に撮った紙は、たとえ文字が写っていても絵です。絵として扱うと決めた瞬間に、やり方が決まります。

重い処理は、必要な回だけにしました

困ったのは、この見て読む作業がかなり重いことでした。毎回これをやると、一度に処理できる量が減ります。

そこで、手順を二段にしました。まず全部のPDFを軽い方法で処理してみて、結果を点検する。文字化けしているものが一枚でもあれば、そこから先だけをじっくり見るやり方に切り替える。表が来なかった週は、軽いまま終わります。

全部をていねいにやるか、全部を雑にやるか、の二択で考えていたのがよくなかったなと思いました。先に安いほうで試して、だめだったものだけ高いほうに送る。この形にしてから、処理時間がぐっと安定しました。

手書きは、いまも読めません

ひとつ、正直に書いておきます。画像として見る形にしても、余白に手書きで書き足されたメモは読み切れませんでした。印刷された文字は問題なく起こせるのですが、手書きだけは推測になってしまいます。

ここは無理をしないことにしました。読めなかった箇所は「読めませんでした」と印をつけて残し、日付や持ち物といった大事な情報は印刷部分から取る、と決めています。

自動化でいちばん怖いのは、読めなかったことではなく、読めていないのに読めたつもりで進むことです。分からないところを分からないまま残してくれるほうが、結果的に安心して任せられます。

同じことをやってみたい方へ

表や時間割を含むPDFをAIに読ませたい方は、この形で頼んでみてください。

このPDFの中身を、検索できるテキストに書き起こしてください。

■ まず種類を見分けてください
・ページごとに「文章中心」か「表・図・手書き中心」かを判定してください
・文章中心のページは、そのまま文字を抽出してかまいません

■ 抽出結果を必ず点検してください
・抽出したテキストを自分で読み返して、
 意味の通らない並びや文字化け記号が混ざっていないか確認してください
・混ざっていたら、抽出は失敗とみなして次の方法に切り替えてください

■ 表・図・手書きのページはこうしてください
・ページを画像に変換し、拡大して、複数のタイルに分割して
 一枚ずつ目で見て書き起こしてください
・表は「行と列の対応」が崩れていないか、
 書き起こしたあとに元の画像と見比べて確認してください

■ 読めなかったところの扱い
・推測で埋めないでください
・読めなかった箇所は【判読不可】と明記して残してください
・日付・持ち物・締切など重要な情報は、
 手書き部分ではなく印刷部分から取ってください
・最後に【判読不可】が何箇所あったか教えてください

まとめ

うまくいかないときは、頼み方が悪いのではなく、そもそも渡しているものの性質が違う、ということがあるのだなと思いました。