【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プラグイン及びテンプレートが、下記よりダウンロード(無償で購入)可能です。

利用(設定)方法

最終目標

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

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

今回(文字列置換編)の目標

前回(④)の最後で今後の課題とした、文字単位での認識違いの対策を説明したいと思います。対象となるのは↓の「単価」列の5行目で100を10Dと認識違いしていますので、100と取得できるようにしたいと思います。 KEYWORZONE正規表現.PNG

具体的な取得方法

今回の「単価」列には、数字しか記載されません。そのため、数字以外の文字で特に数字に間違い易い文字については、数字と間違って認識している可能性が高いと思われます。

そこで、取得した値の中に数字に間違い易い文字(下記参照)が含まれている場合は、間違い易い数字に変換することとします。 アルファベット2数字.PNG *例えば、今回のようにDと認識した場合は0に変換します。

for (let i = 0; i < replacecsv.length; i++) {
   description = description.replace(replacecsv[i].Column1,replacecsv[i].Column2);
}

そうすることで、「単価」列が上手く取得出来ました。

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

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

利用(設定)方法

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

今後の課題

「品名」列の結果を見ると、その左側のseq番号を取得してしまっています。この場合、正規表現では上手くパターン化出来ないため、他の方法が必要です。

そのため、次回はこの品名列の値を取得することを目標とします。

ここまでで出来たこと

KEYWORZONE正規表現文字置換.PNG

*KEYWORD検索(請求番号・支払期限・振込先)、ZONE検索(請求元)、正規表現検索(明細(数量・単位・金額))に加え、文字列置換で単価まで取得出来ました。

筆者の紹介

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