無償で試してみる
下記に「アカウント申請」という件名(本文なし)でメールを送付頂ければ、数分程度でアカウント情報を返信します。
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処理し、請求番号・支払期限・振込先・請求元・明細(品名・数量・・・のテーブル部分)の値を取得することを最終目標とします。
尚、説明は後回しで「まず試したい」という方は、プラグイン(テンプレート)のダウンロードからkintone用のプラグインとテンプレートを試用(1か月間)頂けます。
今回(文字列置換編)の目標
前回(④)の最後で今後の課題とした、文字単位での認識違いの対策を説明したいと思います。対象となるのは↓の「単価」列の5行目で100を10Dと認識違いしていますので、100と取得できるようにしたいと思います。
具体的な取得方法
今回の「単価」列には、数字しか記載されません。そのため、数字以外の文字で特に数字に間違い易い文字については、数字と間違って認識している可能性が高いと思われます。
そこで、取得した値の中に数字に間違い易い文字(下記参照)が含まれている場合は、間違い易い数字に変換することとします。
*例えば、今回のように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 Vision のAPIキーを取得頂く必要がございます。(取得代行も行っています)
Cloud Visionの詳細:https://cloud.google.com/vision/docs?hl=ja
APIキー取得方法:https://syncer.jp/cloud-vision-api
APIキーの管理には十分ご注意ください(自己責任でお願いします)
今後の課題
「品名」列の結果を見ると、その左側のseq番号を取得してしまっています。この場合、正規表現では上手くパターン化出来ないため、他の方法が必要です。
そのため、次回はこの品名列の値を取得することを目標とします。
ここまでで出来たこと
*KEYWORD検索(請求番号・支払期限・振込先)、ZONE検索(請求元)、正規表現検索(明細(数量・単位・金額))に加え、文字列置換で単価まで取得出来ました。
筆者の紹介
群馬県の渋川市・高崎市を中心に群馬県内でkintoneを利用したDX化支援を行っています。ご興味ある方はぜひご連絡ください。
https://ks-kiki.hp.peraichi.com/