LoginSignup
0
2

More than 1 year has passed since last update.

【kintone x OCR】~正規表現検索編~ kintoneのOCRプラグインを開発する④【GCP】

Last updated at Posted at 2021-02-23

無償で試してみる

下記に「アカウント申請」という件名(本文なし)でメールを送付頂ければ、数分程度でアカウント情報を返信します。
ocr.lastonemile@gmail.com

  • 利用規約に同意の上、ご利用ください。 https://tanoshimane.stores.jp/news/603313afc19c4527490eb72e
  • kintoneというクラウドアプリ上に構築しており、そのゲストIDを発行します。
  • 30日間又は100ページまで(kintoneの利用料含めて)無償で利用可能です。

詳細:https://qiita.com/Lastonemile/items/65b9102c868e09b3248e

プラグインのダウンロード

kintone用OCRプラグイン及びテンプレートが、下記よりダウンロード(無償で購入)可能です。

利用(設定)方法

  • IEではご利用いただけません(Chrome,edgeは動作確認済、その他ブラウザは未検証です)
  • 初回利用時から1か月間無償でご利用いただけます。
  • ご利用にあたり、ご利用者のドメイン情報を取得します(ドメイン毎に利用期間を管理しています)。
  • 利用にあたり、別途Google Cloud Vision のAPIキーを取得頂く必要がございます。(取得代行も行っています)
    Cloud Visionの詳細:https://cloud.google.com/vision/docs?hl=ja
    APIキー取得方法:https://syncer.jp/cloud-vision-api
    APIキーの管理には十分ご注意ください

最終目標

kintone上でこの↓画像(請求書)をOCR処理し、請求番号・支払期限・振込先・請求元・明細(品名・数量・・・のテーブル部分)の値を取得することを最終目標とします。
請求書サンプル.jpg

尚、説明は後回しで「まず試したい」という方は、プラグイン(テンプレート)のダウンロードからkintone用のプラグインとテンプレートを試用(1か月間)頂けます。

今回(正規表現検索編)の目標

前回(③)で今後の課題とした、近接した値を取得するために、正規表現を利用した値の取得を行いたいと思います。*ここ↓から「数量」と「単位」の値を上手く取得したいと思います。
TABLE.PNG
正規表現の詳細:https://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE

具体的な取得方法

今回の文書では、数量の列には数字のみ(今回であれば1,3,5)しか記載されません。逆にに単位の列には数字以外しか記載されません。このように対象文字列のパターンを利用して値を取得する方法を正規表現検索と定義します。

KEYWORD検索+ZONE検索で取得した値の中から、予め定めた「正規表現」に一致しない値については、対象から除外します。具体的には、「数量」は数字のみなので正規表現に従い[0-9]とし、「単位」列は正規表現に従い[^0-9]と定めます。

//seiki→[0-9]や[^0-9]
//seiki.test()で正規表現(seiki)に合致しているか判定
let seiki;
for(let i = 0; i < list.length; i++){
   if(seiki && seiki.test(list[i].String)){
      result.push(list[i]);
   }
}

そうすることで、「数量」列と「単位」列の値を上手く取得(分離)出来ました。

kintoneアカウントを持っていない方

下記より、メールアドレス登録のみでご利用いただけます。
OCRシステム ユーザー登録: https://qiita.com/Lastonemile/items/65b9102c868e09b3248e

kintoneアカウントを持っている方

プラグイン(テンプレート)のダウンロード

ここまでの説明及び、以降の記事内容も網羅したkintone用OCRプラグイン及びテンプレートが、下記よりダウンロード(無償で購入)可能です。

利用方法:https://qiita.com/Lastonemile/items/c40cdd8543f14496c0c4

IEではご利用いただけません(Chrome,edgeは動作確認済、その他ブラウザは未検証です)
*初回利用時から1か月間無償でご利用いただけます。
*ご利用にあたり、ご利用者のドメイン情報を取得します(ドメイン毎に利用期間を管理しています)。
*利用にあたり、別途Google Cloud Vision のAPIキーを取得頂く必要がございます。(取得代行も行っています)
Cloud Visionの詳細:https://cloud.google.com/vision/docs?hl=ja
*利用時にCloud Visionの利用料金が発生する可能性があります。(2020/12/24現在 月間1000ユニットまで無料で利用可能です。)
Cloud Vision API料金:https://cloud.google.com/vision/pricing?hl=ja
APIキー取得方法:https://tanoshimane.stores.jp/news/602220196728be15433783e4
APIキーの管理には十分ご注意ください(自己責任でお願いします)

今後の課題

「単価」列の結果を見ると、5行目で実際は100が正しいのですが、10D(最後がアルファベットのD)になっています。*実は元文書も10Dなのですが、100を10Dと認識違いしたと仮定してください。

この場合、「正規表現検索」で数字のみと指定してしまうと、文字列自体を除外してしまい、値をロストします。そのため、次回は文字単位での認識違いへの対策を記載したいと思います。

ここまでで出来たこと

KEYWORZONE正規表現.PNG
*KEYWORD検索(請求番号・支払期限・振込先)、ZONE検索(請求元)に加え、正規表現検索を補完することで明細(数量・単位・金額)まで取得出来ました。

筆者の紹介

群馬県の渋川市・高崎市を中心に群馬県内でkintoneを利用したDX化支援を行っています。ご興味ある方はぜひご連絡ください。
https://ks-kiki.hp.peraichi.com/

関連記事

kintone OCRプラグイン Vision API arr.by LOM 利用方法
kintone OCRプラグイン 文書テンプレート作成方法
kintoneのOCRプラグインを開発する①
kintoneのOCRプラグインを開発する②
kintoneのOCRプラグインを開発する③

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2