IBMRPAでOCR処理したテキストの処理の注意点
IBMRPAはOCR機能を提供し、Tesseract、ABBYY、Google Cloud Visionを用いて、PDFなどからテキストを抽出することが可能です。ABBYYについては、IBMRPAにライセンスが付属するため、外部のAPIを呼び出すことなくOCR処理をすることが可能ですが、今回、ABBYYで取得したテキストをRESTAPIを用いて他システムと連携させようと試してみたところ、特殊文字の取り扱いについて注意すべき点があったため共有したいと思います。
ABBYYによりOCR処理
ABBYYによるテキスト抽出を使用する際には、「OCRによるPDFテキストの取得」というコマンドを使用します。
以下のように様々なパラメータを設定できます。
座標やアンカーを指定する際には、PDFテキストの抽出ツールを用いるのが便利です。GUIを用いて領域を指定し、コマンドを生成することが可能です。
パラグラフ・セパレータやライン・セパレータ
OCR処理で取得したテキストを確認してみると、エディタによっては以下の様に特殊な記号が表示されるケースがあります。
これは、Line separatorやParagraph separatorが含まれているためです。
U+2028: Line separator
U+2029: Paragraph separator
これらの文字が含まれる場合、そのままJSONに変換して送信すると正しく処理されなかったり、生成AIで扱う際などに英文字として認識されて想定と異なる結果が出力されたりするため注意が必要です。
そこで、これらの文字を削除や置換して対応することになります。具体的には、正規表現による置換、削除や、IBMRPAのコマンドによるエスケープ文字の追加による対応が可能です。
正規表現によるテキストの置換、削除
パラグラフ・セパレータを削除や他の文字に置換したい場合には、「テキストの置換」コマンドを用いることが可能です。
なお、正規表現では、パラグラフ・セパレータは、\p{Zp}、ライン・セパレータは\p{Zl}で表現可能です。
エスケープ文字の追加
改行コードやその他のエスケープが必要な文字をエスケープするには、「テキストへのエスケープ文字の追加」コマンドを用いることが可能です。
RESTAPIなどで利用する場合には、テキストはJSON=trueにすることで、エスケープが可能です。falseにした場合はURLエンコードされるようです。
まとめ
IBMRPAにはOCR機能が付属し、画像からテキストを抽出することが可能です。抽出結果にパラグラフ・セパレータなどの特殊文字が含まれる場合には、後続の処理に影響を与える可能性があるため、削除やエスケープが必要です。そのために、正規表現による削除や、コマンドによるエスケープが可能です。
また、実はwatsonx OrchestrateにはIBM RPAのライセンスが付属します。今回紹介したOCR処理と生成AIを組み合わせて、他システムに連携するなど、様々な処理を実装することが可能です。