RPA+AIで紙文書を自動処理する時代がすぐそこに!UiPathの「Receipt and Invoice AI」プレビュー版を試す
2019年7月28日
本日はUiPathの「Receipt and Invoice AI」について記事を紹介したいと思います。
まだ、英語しか処理はできませんが、記事の筆者は「Receipt and Invoice AI」を試した内容を紹介しています。
「UiPath Studio」にベータ版のパッケージを追加すると、AIを使って請求書や領収書から情報を取り出せるようになります。
■紙文書に意味を持たせるRPAに期待すること
その中の1つに間違いなく含まれるのは、「文書の自動処理」だろう。
数え上げればキリがない文章処理は、どの企業でも時間と人手を取られるやっかいな業務だ。
現状はRPAでもまだやっかいな文書の処理が、AIによって自動化される時代がすぐそこに来ている
OCRでテキストを抽出し「合計金額:」などの見出しを手掛かりに数値を取り出すようにするなど、それなりに方法はある。しかし、複数のフォーマットに対応させたり、「合計」「合計金額」「TOTAL」など異なる文言に対応させるのは、やはり面倒な作業が必要で、さらに、取引先の都合でデザインが途中で変わる度に、処理に手を加えなければならないこともある。
もちろん、今はAIの時代なのだから、クラウド上の各種サービスを活用するという手もある。だが、請求書を処理したければ、請求書用のエンティティを定義したり学習に時間をかけてモデルを作ったり、意外に手間が掛かる。
記事の筆者もIBMの「Watson」を使って、いろいろチャレンジをしてはみたものの、学習のベースに使うサンプルを集めるのが大変(自分のところにある請求書だけだと種類が限られる)なので、なかなか難航している。
そんな中、RPAベンダーとして知られるUiPathから、「Receipt and Invoice AI」のベータプログラムが公開されたわけだ。
「Receipt and Invoice AI」のプレビュー版は、UiPathのフォーラム「Receipt and Invoice AI – Now available in Public Preview!」で入手できる。
具体的には、「Machine Lerning Extractor」と呼ばれるアクティビティ(UiPath Studioでさまざまな処理を実現するパーツの1つ)で、領収書または請求書のデータを入力として与えると、クラウド上のAIサービスと連携し、その中から「billing-addr」「invoice-no」「date」「total」など、あらかじめ定義した分類情報から、欲しいデータを自動的に抽出してくれるものだ。
冒頭でも触れたように、請求書は英語とスペイン語、領収書は英語とルーマニア語にしか対応していないので、日本で使えるようになるのはまだ先だが、非構造化文書をRPAで手軽に扱えるようになる日は、どうやら遠くなさそうだ。
■シンプルなワークフローのサンプルを作ってみる
動作条件や事前の準備については、前掲したUiPathのフォーラムへの投稿を参照して欲しいが、簡単に言えば、パッケージマネージャーにベータフィードをソースとして追加した状態で、「UiPath.IntelligentOCR.Activities」と「UiPath.MachineLearningExtractor」を追加すればいい。
フォーラムには、アクティビティの使い方と動作する様子のビデオ、サンプルのワークフローも掲載されている。ただし、説明は英語で、サンプルもそれなりに複雑なものとなっているので、今回はもう少しシンプルなサンプルを作成してみた。
UiPath.IntelligentOCR.Activitiesは日本語化されているので、だいぶ見やすくなったが、大きな流れとしては、以下6つのステップとなる。
1.文書の指定
まずは読み込む文書を指定しておく。PDFでもJPGでもいい。
2.タクソノミーのロード
タクソノミーは、分類の定義だ。これをあらかじめ読み込んでおく。
タクソノミーとして読み込むデータは、「タクソノミーマネージャー」と呼ばれる専用のUIを使って、あらかじめ定義しておく。
例えば請求書なら、送付元の企業名(name)、住所(Vendor-Addr)、請求書番号(invoice-no)、日付(date)、合計金額(total)、税額(tax)などといった具合だ。加えて、それぞれに格納するデータの型(TextやNumber)を定義しておく。
要するに、文書から取り出したい項目を定義しておく部分だ。
3.ドキュメントをデジタル化
続いて文書をデジタル化する。UiPath StudioにはさまざまなOCRエンジンが搭載されているが、今回はMicrosoft OCRを使って、文書からテキスト情報を取り出しておく。
4.データをAIで分析
OCRで取り出した文書のデータ(オブジェクトモデルとテキスト)をAIで分析する。
詳細は不明だが、おそらく自然言語処理系のAIを、請求書もしくは領収書で学習させたモデルと考えられる。
学習済みのデータから、その文書が請求書なのか領収書なのかを分類できるし、文書内のどの部分が「日付」で、どこか「合計金額」なのかといったことを、この処理で認識させることができる。
なお、正式リリース後の扱いがどうなるかは不明だが、現状は無料で利用でき、4MBもしくは2ページまでのドキュメントを1分間あたり10リクエストまで受け付けてくれる。
5.検証ステーションでチェック
この処理は必須ではないのだが、より確実性を高めたい場合は配置しておいた方がいいアクティビティだ。
要するに、AIで検出された結果を画面上に示し、その成否を人の目で判断し、間違って認識された部分を修正するためのGUI画面となる。
現状、英語の請求書であれば、かなり正確に認識されるので不要な気もするが、実務で使う場合は、実装しておいた方がいいだろう。
6.結果をエクスポート
検証ステーションでチェックしたデータを最終的にエクスポートする。
7.CSV書き出し
エクスポートしたデータから必要な部分を指定して処理する。ここでは無難にCSVに書き出している。
■英語の請求書は正確に認識する
というわけで、英語の請求書のサンプルをインターネット上からダウンロードして試してみたが、なかなか正確だ。
請求書の場合、表形式になっている明細の部分が認識されにくいようで、同じ請求書で試しても、表の部分が認識されたりされなかったりする。ただし実際の処理で使いそうな、名前や日付、合計金額などのデータは、ほぼ確実に拾ってくれる。
PDFだけでなくJPGも処理可能で、郵送で届いた請求書などでも、スキャンして取り込んだデータを読み込ませれば、同様に処理できる。
英語版の請求書はかなり正確に読み取ってくれる試しに日本語の請求書をリクエストしてみたが、日付しか認識できなかった
クラウドへリクエストを投げるので、1つ1つの処理には数秒を要する。大量処理を行うには工夫が必要となりそうだが、それでも人が請求書を見て、宛先や金額を判断して、別のシステムに入力し直すといった操作よりも、はるかに高速な処理ができそうだ。
個人的には、今すぐにでも日本語版が欲しいところだ。
請求書、領収書、注文書など、いろいろな処理に応用できれば、RPAの適用の幅は飛躍的に広がるし、中小零細、個人事務所などでも、これさえあればRPAによる自動処理を自前で導入できる。
繰り返しになるが、UiPathの日本法人には、最優先で、この日本語化に取り組んで頂きたいところだ。
この記事の筆者が記述しているように、RPAの適用の幅は格段に広がると思いますので、日本語化が早く実現するようになってほしいと思います。
引用記事:
https://internet.watch.impress.co.jp/docs/column/shimizu/1196742.html