現時点でのGoogleOCR+ChatGPTによるデータ読み取り処理の問題点と対策

何回か前の投稿で書きましたが、プロンプトを調節することで、ChatGPTによるデータの判別精度はかなり改善します。しかし、今実際にこの処理をしていて悩まされるのが「GoogleOCRの読み取りエラー」です。

私はいくつかの種類があるGoogleOCRの中でもDocumentOCRというタイプのプロセッサを使用しています。なぜこのタイプを使用しているかは以下の2点の理由からです。

1. ChatGPTとの相性が良かったこと

2. 価格がほぼ無償であること

このGoogleのDocumentOCRを使用することで、ほぼどんな画像やPDFからもテキストを取り出すことができ、ChatGPTとの組み合わせで様々な入力作業の改善が期待できます。しかし今現在(ここを強調しておきますが)、このOCRにも弱点があり、それは「小さなカタカナがうまく読めない」ということです。(注意:手書き文字は対象外です)

「小さな」とは文字通り印刷された文字が小さいことを意味します。例えば、請求書の備考欄に他の欄と比べて小さいフォントで書かれた文字が並んでおり、その中にカタカナが入っている場合があります。この時、数字や漢字、ひらがなはうまく読み取れますが、カタカナがうまく読み取れず、日本語の漢字ではない中国語の漢字のような文字として認識されてしまいます。(言い切るのは問題があるかもしれませんが、私の環境ではほぼ100%の確立で発生します)

具体的に「小さい」とはどのくらいの大きさかは言えませんが、結果を見て文字化けのような文字列が取得されている場合、元の文字列を見ると必ずこの「小さいカタカナ」であることがほぼ100%です。ChatGPTの処理はGoogleOCRの処理結果に対して実施されるので、ここで問題が起こると必ずChatGPTの結果もおかしくなります。

今のところ「小さいカタカナ問題」は読み取り結果全体に対して致命的なエラーではないので、この仕組みを使い続けていますが、この先もこの状態が続くのであれば、GoogleOCRに代わる(あるいは他のプロセッサ)を使ってPDFや画像中の文字列を取得する仕組みが必要とも考えています。

個人的にはテクノロジーの進化により、この問題も近い将来起こらなくなることを期待していますが…

現時点ではこの問題に対しては、「マスターテーブルや辞書の使用」でリスクやチェック作業時間の増大を回避しています。

例えば、請求書内の請求元の会社名、商品名やそのコードについてのマスターを持っておくことで、ChatGPTを適用した後でさらにマスターテーブルの内容を使って、必要情報を上書きすることで請求書の読み取り結果の精度を向上させます。

あるいは、よく発生する一定の法則性を持つ読み取りエラーの場合は、その正誤表を辞書として持ち、ChatGPT処理後に修正したりします。

残念ながら、今現在はOCR+ChatGPTの正確性は100%ではないので、このようにマスターテーブルを使って精度向上を図るのは仕方ないと思っています。

Follow me!