【kintone x OCR】~正規表現検索編~ kintoneのOCRプラグインを開発する④【GCP】
無償で試してみる
下記に「アカウント申請」という件名(本文なし)でメールを送付頂ければ、数分程度でアカウント情報を返信します。 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キーの管理には十分ご注意ください
最終目標
https://ks-kiki.hp.peraichi.com/最終目標 kintone上でこの↓画像(請求書)をOCR処理し、請求番号・支払期限・振込先・請求元・明細(品名・数量・・・のテーブル部分)の値を取得することを最終目標とします。
尚、説明は後回しで「まず試したい」という方は、プラグイン(テンプレート)のダウンロードからkintone用のプラグインとテンプレートを試用(1か月間)頂けます。
今回(正規表現検索編)の目標
前回(③)で今後の課題とした、近接した値を取得するために、正規表現を利用した値の取得を行いたいと思います。*ここ↓から「数量」と「単位」の値を上手く取得したいと思います。 正規表現の詳細: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と認識違いしたと仮定してください。
この場合、「正規表現検索」で数字のみと指定してしまうと、文字列自体を除外してしまい、値をロストします。そのため、次回は文字単位での認識違いへの対策を記載したいと思います。
ここまでで出来たこと
*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プラグインを開発する③