セルフメディケーションの抽出
レシートの識別で
ピアゴのレシートはできた
なるべく拡大撮影した方がうまく識別できる
Coopも問題ない
ただし向きが縦向きになっていないと正しく認識しない
杏林堂は横向きでもできた
他のCreate やココカラファインでも
画像を拡大すればできる
つまり解像度も重要だが文字の大きさが重要
画像のズームなどが現時点では自動でできないし
向きの修正もできないため
まずは面倒だがレシートを人力で行い
その後に作成されたCSVファイルをDBに取り込むようにする
次に問題となるのがCSVファイルをどんどん追加でsqliteDBに後で追加できるかということ
GPTでのチャットが乱立しているので
SQLに関してのものを探す
レシート分析システム
レシート情報最適化提案
Graph RAG活用法
日用品食料品管理法
でプロンプトも重要
レシート画像から 購入した店舗名 購入日時 商品名 単価 を取り出しDBへ保存。
このデータを毎日蓄積していき 購入した店舗、商品価格から最適な店舗での購入を知らせるようにしたい。
レシートのOCRには gemini を使う また商品購入の間隔からどれくらいの期間で消費するか予測し、購入のタイミングを知らせるようにしたい。
理由としては、特売のときに購入しておけばコストを削減できるため
だけだと足りない
次にセルフメディケーションの抽出を試す
杏林堂なら商品名に♦️マークがつく
ピアゴならセ[ と商品名につく
ココカラファインはまだ試していない
Gemini で
DBで購入管理したい
そのために
購入店舗名
購入年月日
商品名
価格
個数
をCSVファイルにしたい
また食品なども同時に購入することがあるため
セルフメディケーション対象商品を識別できるようにしたい
この場合、◆をCSVにいれる以外の方法で何かあるか?
に対して
承知いたしました。セルフメディケーション税制対象商品を明確に識別しつつ、購入データをCSVで管理したいというご要望ですね。
◆マークをCSVに直接入れる以外の方法で、よりデータとして扱いやすく、かつ後から分析しやすい方法をいくつか提案します。
1. 専用の「セルフメディケーション対象フラグ」列を追加する
これが最も一般的で、データ管理のベストプラクティスです。
購入店舗名 購入年月日 商品名 価格 個数 セルフメディケーション対象 杏林堂袋井旭町店 2025/06/18 サンテビオ 15mL 871 1 TRUE (または 1, Y, ○など) 杏林堂袋井旭町店 2025/06/18 (食品A) 200 1 FALSE (または 0, N, ×など) ... ... ... ... ... ...
利点:
* 明確な識別: セルフメディケーション対象か否かが一目で分かります。
* フィルタリング・ソートが容易: CSVをDBにインポートしたり、スプレッドシートで開いたりした際に、「セルフメディケーション対象」列でフィルタリングやソートを行うことで、対象商品のみを簡単に抽出できます。
* 集計が容易: 対象商品の合計金額などを計算する際に、このフラグ列を条件に設定することで簡単に集計できます。
* データの一貫性: 「◆」のような記号を直接入れるよりも、TRUE/FALSEや1/0といった標準的なデータ形式の方が、後のデータ処理(プログラミングによる集計など)がしやすくなります。
* OCRとの連携: OCRで「◆」マークや「セルフメディケーション対象」という文字列を認識した場合、その情報に基づいてこのフラグ列に自動的に「TRUE」を設定するようなシステムを構築することも可能です。
2. 「セルフメディケーション対象金額」列を追加する(より詳細な管理)
セルフメディケーション対象の商品であればその金額を、そうでなければ0円を記入する列を設ける方法です。これにより、対象金額の合計がより簡単に算出できます。
購入店舗名 購入年月日 商品名 価格 個数 セルフメディケーション対象金額 杏林堂袋井旭町店 2025/06/18 サンテビオ 15mL 871 1 871 杏林堂袋井旭町店 2025/06/18 (食品A) 200 1 0 ... ... ... ... ... ...
利点:
* セルフメディケーション対象金額の合計が、この列を単純に合計するだけで算出できます。
* 「セルフメディケーション対象」かどうかのフラグも兼ねることができます(金額が0でなければ対象)。
OCRで実現する場合の考慮事項:
* OCRでレシートを読み取った際に、商品名に「◆」があることを認識し、その商品に対応する価格を「セルフメディケーション対象金額」の列に転記するロジックが必要になります。
* 食品などの非対象商品は、この列には0を自動で入力するように設定します。
どちらを選ぶべきか?
* シンプルに「対象か否か」だけを識別したいなら、「セルフメディケーション対象フラグ」列(1番目の案)がおすすめです。 後から合計金額を出すのは簡単です。
* 合計金額の算出をより直接的に行いたい場合や、金額をベースに集計を行いたい場合は、「セルフメディケーション対象金額」列(2番目の案)も有効です。
どちらの方法でも、CSVファイルとしては非常に扱いやすくなります。DBに取り込んだ後も、この列を使って柔軟な集計や分析が可能になります。
CSVファイルの例(1番目の案を採用した場合):
コード スニペット
購入店舗名,購入年月日,商品名,価格,個数,セルフメディケーション対象 杏林堂袋井旭町店,2025/06/18,サンテビオ 15mL,871,1,TRUE 杏林堂袋井旭町店,2025/06/18,牛乳,250,1,FALSE 杏林堂袋井旭町店,2025/06/18,パン,150,2,FALSE 杏林堂袋井旭町店,2025/06/18,〇〇鎮痛剤,1280,1,TRUE
とりあえずCSVファイルを作成できるので
mkdir purcharge_history
で作業ディレクトリの作成
購入店舗名,購入年月日,商品名,価格,個数,セルフメディケーション対象金額 杏林堂 袋井旭町店,2025/06/18,サンテビオ 15mL,871,1,871 ピアゴ 袋井店,2025/04/18,タイレノールA 30錠,1772,1,1772
このcsvファイルを 日付_購入店舗名.csv で作成
とchatfgpt で行ったが
ファイルは作成されない
面倒なので gemini で作成する
vim 20250618_杏林堂袋井旭町店.csv
中身を
購入店舗名,購入年月日,商品名,価格,個数,セルフメディケーション対象金額 杏林堂 袋井旭町店,2025/06/18,サンテビオ 15mL,871,1,871
vim 20250418_ピアゴ袋井店.csv 中身を 購入店舗名,購入年月日,商品名,価格,個数,セルフメディケーション対象金額 ピアゴ 袋井店,2025/04/18,タイレノールA 30錠,1772,1,1772
コープとクリエイトで試したら単品価格がないので
単品価格のカラムの追加
一度
rm *.csv
で削除して作り直す
vim 20240618-19.csv
内容を
購入店舗名,購入年月日,商品名,単品税抜価格,価格,個数,セルフメディケーション対象金額 杏林堂 袋井旭町店,2025/06/18,サンテビオ 15mL,968,871,1,871 ピアゴ 袋井店,2025/04/18,タイレノールA 30錠,1790,1772,1,1772 COOP ユーコープ 袋井町店,2025/06/19,COゼリーエネルギー,118,354,3,0 COOP ユーコープ 袋井町店,2025/06/19,鮭・くず桜,238,190,1,0 COOP ユーコープ 袋井町店,2025/06/19,天ぷら用えび,398,238,1,0 COOP ユーコープ 袋井町店,2025/06/19,たい,398,398,1,0 COOP ユーコープ 袋井町店,2025/06/19,塩銀鮭切身,398,398,1,0 COOP ユーコープ 袋井町店,2025/06/19,真あじ開き,398,796,2,0 ドラッグストア クリエイト 袋井山名店,2025/06/18,日興フーズ 王様のチーズ,298,298,1,0 ドラッグストア クリエイト 袋井山名店,2025/06/18,ロイヤルブレッド山型(5),139,139,1,0 ドラッグストア クリエイト 袋井山名店,2025/06/18,家族の潤い白桃ミックス,108,216,2,0 ドラッグストア クリエイト 袋井山名店,2025/06/18,鶏卵卵パック MS 10個,228,228,1,0
で保存
Geminiでは回数制限があるようで時間をおけばできるが10回ぐらいで
無料枠が終わる
Pro にすると3回が限界
残りは chatGPT 4.5 で作成した
vim 20250614-19.csv
内容を
購入店舗名,購入年月日,商品名,単品税抜価格,価格,個数,セルフメディケーション対象金額 杏林堂 袋井旭町店,2025/06/18,サンテビオ 15mL,968,871,1,871 ピアゴ 袋井店,2025/04/18,タイレノールA 30錠,1790,1772,1,1772 COOP ユーコープ 袋井町店,2025/06/19,COゼリーエネルギー,118,354,3,0 COOP ユーコープ 袋井町店,2025/06/19,鮭・くず桜,238,190,1,0 COOP ユーコープ 袋井町店,2025/06/19,天ぷら用えび,398,238,1,0 COOP ユーコープ 袋井町店,2025/06/19,たい,398,398,1,0 COOP ユーコープ 袋井町店,2025/06/19,塩銀鮭切身,398,398,1,0 COOP ユーコープ 袋井町店,2025/06/19,真あじ開き,398,796,2,0 ドラッグストア クリエイト 袋井山名店,2025/06/18,日興フーズ 王様のチーズ,298,298,1,0 ドラッグストア クリエイト 袋井山名店,2025/06/18,ロイヤルブレッド山型(5),139,139,1,0 ドラッグストア クリエイト 袋井山名店,2025/06/18,家族の潤い白桃ミックス,108,216,2,0 ドラッグストア クリエイト 袋井山名店,2025/06/18,鶏卵卵パック MS 10個,228,228,1,0 ドラッグストア クリエイト 袋井山名店,2025/06/17,ぶなしめじ,98,98,1,0 ドラッグストア クリエイト 袋井山名店,2025/06/17,森永バター 200g,458,412,1,0 ドラッグストア クリエイト 袋井山名店,2025/06/17,鶏卵パック MS 10個,228,228,1,0 COOP ユーコープ 袋井町店,2025/06/17,バジルMIXピッツァ,428,342,1,0 COOP ユーコープ 袋井町店,2025/06/17,若鶏ムネ肉,594,594,1,0 COOP ユーコープ 袋井町店,2025/06/17,ボスコEVオリーブオイル,898,898,1,0 COOP ユーコープ 袋井町店,2025/06/17,豚小間切れ,190,190,1,0 COOP ユーコープ 袋井町店,2025/06/17,赤魚粕漬け,398,398,1,0 COOP ユーコープ 袋井町店,2025/06/17,ししゃも,298,298,1,0 COOP ユーコープ 袋井町店,2025/06/17,塩銀鮭切身,597,597,1,0 COOP ユーコープ 袋井町店,2025/06/17,真あじ開き,398,796,2,0 COOP ユーコープ 袋井町店,2025/06/17,なす/袋,138,138,1,0 COOP ユーコープ 袋井町店,2025/06/17,まいたけ,88,88,1,0 COOP ユーコープ 袋井町店,2025/06/17,COゼリーエネルギー,118,354,3,0 COOP ユーコープ 袋井町店,2025/06/17,フィリピンバナナ,138,276,2,0 COOP ユーコープ 袋井町店,2025/06/14,シュガーコーン,278,278,1,0 COOP ユーコープ 袋井町店,2025/06/14,CO冷凍茶豆,158,158,1,0 COOP ユーコープ 袋井町店,2025/06/14,豚小間,535,535,1,0 COOP ユーコープ 袋井町店,2025/06/14,生豚挽肉,522,522,1,0 COOP ユーコープ 袋井町店,2025/06/14,豚ヒレかたまりカナダ,630,567,1,0 COOP ユーコープ 袋井町店,2025/06/14,かつおたたき,398,398,1,0 COOP ユーコープ 袋井町店,2025/06/14,塩銀鮭切身,498,996,2,0 COOP ユーコープ 袋井町店,2025/06/14,真あじ開き,398,1194,3,0 COOP ユーコープ 袋井町店,2025/06/14,COゼリーエネルギー60F,178,178,1,0 COOP ユーコープ 袋井町店,2025/06/14,COジョウエラミックスナッツ,298,298,1,0 COOP ユーコープ 袋井町店,2025/06/14,黄金しょうが,178,178,1,0 とれたて食楽部,2025/06/14,イチゴ/鈴木康友,230,230,1,0 とれたて食楽部,2025/06/14,雑貨/小路仁徳,390,390,1,0 とれたて食楽部,2025/06/14,コーヒー/濱小路徳,1090,1090,1,0 とれたて食楽部,2025/06/14,アーリーレッド,230,230,1,0 とれたて食楽部,2025/06/14,きゅうり/丸数農園,150,150,1,0 とれたて食楽部,2025/06/14,白ねぎ/鈴木正孝,170,170,1,0 とれたて食楽部,2025/06/14,バラ/大場安輝子,300,150,1,0 とれたて食楽部,2025/06/14,なす/大石真智子,260,130,1,0 とれたて食楽部,2025/06/14,レタス/山田さち子,140,140,1,0 とれたて食楽部,2025/06/14,ピーマン/小林宗作,140,140,1,0 とれたて食楽部,2025/06/14,じゃが芋/澤口正則,250,250,1,0 とれたて食楽部,2025/06/14,大根/石原義浩,150,150,1,0 とれたて食楽部,2025/06/14,菌床椎茸/永井晃太,260,260,1,0
として保存
次に店舗ごとのcsvの作成
vim 20250613.csv
で
購入店舗名,購入年月日,商品名,単品税抜価格,価格,個数,セルフメディケーション対象金額 遠鉄ストア 浅羽店,2025/06/13,イチジク習慣,398,1592,4,0 遠鉄ストア 浅羽店,2025/06/13,はごろも シーチキンLフ,338,338,1,0
vim 20250612.csv
で
購入店舗名,購入年月日,商品名,単品税抜価格,価格,個数,セルフメディケーション対象金額 ピアゴ 袋井店,2025/06/12,明治おいしい牛乳900ml,247,247,1,0 ピアゴ 袋井店,2025/06/12,明和水産 切身・丸魚,478,478,1,0 ピアゴ 袋井店,2025/06/12,だしのきいたなめらか玉子,128,128,1,0 ピアゴ 袋井店,2025/06/12,おかめ納豆 まろやか旨味ミ,97,97,1,0
vim 20250605.csv
で
購入店舗名,購入年月日,商品名,単品税抜価格,価格,個数,セルフメディケーション対象金額 とれたて食楽部,2025/06/05,その他切り花/竹原秀,210,210,1,0 とれたて食楽部,2025/06/05,コーヒー/満り路仁徳,1090,1090,1,0 とれたて食楽部,2025/06/05,ベビーリーフ/南グロー,120,120,1,0 とれたて食楽部,2025/06/05,きゅうり/河井 恵美,100,100,1,0 とれたて食楽部,2025/06/05,レタス/山田さち子,150,150,1,0 とれたて食楽部,2025/06/05,豚小間切,336,336,1,0 とれたて食楽部,2025/06/05,静岡そだち牛肉入りコロ,390,390,1,0 とれたて食楽部,2025/06/05,ルッコラ/Gファーム,180,180,1,0 とれたて食楽部,2025/06/05,ごぼう/とれたて食楽部,280,280,1,0
vim 20250611.csv
で
購入店舗名,購入年月日,商品名,単品税抜価格,価格,個数,セルフメディケーション対象金額 ドラッグストア クリエイト 袋井山名店,2025/06/11,鶏卵パック MS 10個,228,228,1,0 ドラッグストア クリエイト 袋井山名店,2025/06/11,ロイヤルブレッド(6),139,139,1,0 ドラッグストア クリエイト 袋井山名店,2025/06/11,フルーツフェスタアップル,198,198,1,0 ドラッグストア クリエイト 袋井山名店,2025/06/11,フルーツフェスタフルーツ,198,198,1,0
vim 20250621.csv
で
購入店舗名,購入年月日,商品名,単品税抜価格,価格,個数,セルフメディケーション対象金額 ドラッグストア クリエイト 袋井山名店,2025/06/21,ロイヤルブレッド(6),139,139,1,0 ドラッグストア クリエイト 袋井山名店,2025/06/21,日興フーズ 王様のチーズ,298,298,1,0 ドラッグストア クリエイト 袋井山名店,2025/06/21,家族の潤いマスカット,108,108,1,0 ドラッグストア クリエイト 袋井山名店,2025/06/21,家族の潤い白桃ミックス,108,216,2,0 ドラッグストア クリエイト 袋井山名店,2025/06/21,ビオヨーグルト プレーン加糖,178,356,2,0 ドラッグストア クリエイト 袋井山名店,2025/06/21,雪印メグミルク 牧場の朝ヨー,99,198,2,0 ドラッグストア クリエイト 袋井山名店,2025/06/21,ブルボン デザートマルシェ白,93,278,3,0 ドラッグストア クリエイト 袋井山名店,2025/06/21,フルーツフェスタフルーツミックス,198,396,2,0 ドラッグストア クリエイト 袋井山名店,2025/06/21,鶏卵パック MS 10個,228,228,1,0
これだと商品名が違っていたので修正する
購入店舗名,購入年月日,商品名,単品税抜価格,価格,個数,セルフメディケーション対象金額 ドラッグストア クリエイト 袋井山名店,2025/06/21,ロイヤルブレッド(6),139,139,1,0 ドラッグストア クリエイト 袋井山名店,2025/06/21,日興フーズ 王様のデーツ,298,298,1,0 ドラッグストア クリエイト 袋井山名店,2025/06/21,家族の潤いマスカット,108,108,1,0 ドラッグストア クリエイト 袋井山名店,2025/06/21,家族の潤い白桃ミックス,108,216,2,0 ドラッグストア クリエイト 袋井山名店,2025/06/21,ビオヨーグルト プレーン加糖,178,356,2,0 ドラッグストア クリエイト 袋井山名店,2025/06/21,雪印メグミルク 牧場の朝ヨー,99,198,2,0 ドラッグストア クリエイト 袋井山名店,2025/06/21,ブルボン デザートマルシェ白,93,278,3,0 ドラッグストア クリエイト 袋井山名店,2025/06/21,フルーツフェスタフルーツミックス,198,396,2,0 ドラッグストア クリエイト 袋井山名店,2025/06/21,鶏卵パック MS 10個,228,228,1,0
が正解
これを使ってsqliteにインポートする