投稿

7月, 2021の投稿を表示しています

Google Document AI で文書画像からフォーム要素(キー名とその値)を抽出する

イメージ
本記事では、Document AI の汎用的な Form Parser を利用した簡単な実験を通して、文書画像から抽出できる情報を見ていきます。 【目次】 [1]はじめに [2]実験準備 (1)環境準備 (2)フォーム解析結果のデータ構造 (3)本記事で利用するユーティリティ関数 [3]Google のサンプル画像解析例 (1)画像データの準備 (2)解析の実行と結果確認 [4]Google フォームの画像解析例 (1)画像データの準備 (2)解析の実行と結果確認 (3)修正した画像で解析の実行と結果確認 [5]表形式の画像解析例 (1)画像データの準備 (2)フォーム解析の結果確認 (3)Google Knowledge Graphとの関係 [6]罫線のない表形式画像の解析例 (1)画像データの準備 (2)解析の実行と結果確認 [7]最後に [1]はじめに OCR(Google ならVision APIなど)を利用すると、画像から文字を抽出することができます。小説のような文章中心の文書をスキャンする場合は、OCRの機能で十分な場合が多いと思います。 一方、例えば、請求書をスキャンする場合は、そこに書かれている全ての文字を列挙したいわけではなく、請求元や請求日、各金額などの必要な項目をコンピュータで再利用しやすい形式で抽出したい、ということではないかと思います。 つまり、請求書などのようなテンプレート(様式?、フォーム?)にそった文書をスキャンする目的は、そこに書かれている「文字」を抽出することよりも、そこに書かれている「情報」を抽出することだと思います。 (多くの場合、様式といわれるような文書は、アンケートのように、質問と回答のペア(キー/バリューで表現)で効率よく情報を取得できるように作られていると思います。) Google の Document AI は、このような、文書画像から、OCRより一歩踏み込んだ情報を抽出することを目的としているようです。 Document AI( https://cloud.google.com/document-ai ) また、Document AI の動機や技術的な仕組みは以下のブログで触れられています。 Extracting Structured Data from Templatic Documents https

Google Document AI の Python クライアントライブラリを利用して画像から表形式データを抽出する

イメージ
本記事では、Google Document AIを利用するための準備作業、Pythonクライアントライブラリを利用したAPIの呼び出し方、そして文書画像に対するテーブル解析の結果をみていきます。 【目次】 [1]はじめに [2]GCPプロジェクトの準備 [3]プロセッサの準備 (1)プロセッサの選択 (2)プロセッサの作成手順 (3)Cloud Console でプロセッサの動作を確認 [4]APIの仕様 (1)DocumentProcessorService.ProcessDocument メソッド (2)引数:ProcessRequest (3)戻り値:ProcessResponseとTable [5]Python クライアントライブラリの準備 [6]Python クライアントライブラリを利用した解析サンプル (1)DocumentProcessorService.ProcessDocument を利用する方法 (2)サンプル画像 (3)解析結果の確認 (参考)レスポンスデータ(ProcessResponse)をJSONファイルで保存、再現する方法 [7]最後に [1]はじめに Google の Document AI を利用すると、文書画像から、OCRより一歩踏み込んだ情報を抽出することができそうです。 Document AI( https://cloud.google.com/document-ai ) 以前の記事で、Document AI を利用して、文書画像の中にある表形式のレイアウトが認識される例を見ました。 Google Document AIで画像から表形式データを抽出する(Vision API OCRとの違い) この記事では、以下のサイトを利用して無料でテーブル解析を行って、Vision API のOCRとの違いをみました。 試してみましょう(Try it!) https://cloud.google.com/document-ai/docs/drag-and-drop この記事を書いた時点では、APIがベータ版でしたが、現時点ではv1になっているようです。 そこで本記事では、Google Document AIを利用するための準備作業、Pythonクライアントライブラリを利用したAPIの呼び出し方、そして文書画像に対するテーブル解析

法人番号公表サイトのWeb-APIを利用した法人情報の取得と文字の取扱い

イメージ
本記事では、国税庁の法人番号公表サイトで提供されている法人番号システムWeb-APIを利用した法人情報の取得方法と、法人情報における文字の取扱いについて見ていきます。 【目次】 [1]はじめに [2]法人番号システム Web-API利用の準備 [3]Web-APIの利用サンプルコード [4]文字の取扱い [1]はじめに 国税庁の法人番号公表サイトでは、法人番号の指定を受けた者の基本3情報(1.商号又は名称、2.本店又は主たる事務所の所在地、3.法人番号)を公表しています。 国税庁法人番号公表サイト https://www.houjin-bangou.nta.go.jp/ このサイトでは、法人の検索、基本3情報のダウンロードに加えて、 指定した法人番号や法人名で抽出した法人に係る情報、指定した期間及び地域で抽出した法人の更新(差分)情報を取得する ことができる「法人番号システム Web-API」も提供しています。 法人番号とは、国税庁が指定する13桁の識別番号で、素人的にざっくり考えれば、個人に対するマイナンバーの法人版(法人を特定する番号)と考えると理解しやすいですが、マイナンバーと違って公開情報です。 法人番号の詳細については、上記サイトのほか、Wikipediaの説明も参考になります。 法人番号(Wikipedia) https://ja.wikipedia.org/wiki/%E6%B3%95%E4%BA%BA%E7%95%AA%E5%8F%B7 Wikipediaの説明を読むと、法人番号は、いわゆる登記された会社や法人だけでなく、国の機関や地方公共団体も指定されるようです。法人番号が割り当てられていれば、法人番号公表サイトで検索することができます。 (「衆議院」なども法人番号が割り振られているとは知りませんでした。実際、検索することができました。) ところで、設立登記が行われるような法人に関しては、登記情報をもとにした情報提供が行われているようです。そうだとすると、私として技術的に興味深いのは、どのように登記情報の文字を扱っているかな?というところです。 具体的には、登記ではJISコードが割り当てられていない文字も扱う必要があり(よく外字登録して利用されるような文字など)、インターネットで情報提供を行う場合、このような文字をどのように扱うのかな