鶏むね肉には共通のバーコードがなかった——買い物比較ツール、初めての生鮮食品
📌 記事の取り扱いについて(公開当時の内容を含みます — タップで詳細)
本記事は公開当時の体験・気づきをまとめたものです。現在のツール数・プラン数・対象年齢・記事数・仕様とは異なる場合があります。最新の内容は各ツールページをご確認ください。ツールや外部サービスの仕様・料金は変更されることがあるため、利用前には各公式情報も併せてご確認ください。記載に誤りを見つけられた場合はお問い合わせフォームよりご連絡いただけると助かります。
「鶏むね肉を追加して」というリクエスト
買い物比較ツールに、リクエストが届きました。「国産鶏むね肉を追加してほしい」。
なるほど、と思いました。これまでツールに載せてきたのは洗剤やティッシュ、飲料といった加工品ばかり。鶏むね肉は家計の味方だし、まとめ買いするなら安いところを探したい気持ちはよく分かります。いつもの手順で追加すればすぐ終わるだろう、と軽く考えていました。
甘かったです。
共通の番号がない世界があるなんて
私のツールは、商品ごとのバーコード番号(JANコードというらしい)を頼りに「同じ商品」を各ショップから集めて、単価の安い順に並べる仕組みになっています。番号が同じなら、容量違いや派生品の混入をかなり減らせます。この番号のおかげで、だいぶ安心して価格を比べられていました。
ところが、今回探した「国産鶏むね肉」には、店をまたいで同じ商品だと確かめられる共通の番号が見つかりませんでした。
考えてみれば当たり前で、工場で箱詰めされる加工品と違って、生鮮品は店ごとに切り方も量も違います。「国産鶏むね肉2kg」と一口に言っても、それは規格化された「同じ商品」ではないのです。スーパーで当たり前に見ていた値札の裏に、共通の番号で管理できる世界とできない世界の境界線があるなんて、このリクエストが来るまで考えたこともありませんでした。
番号が使えないなら、条件の掛け算で絞ります
では、どうやって「国産鶏むね肉」だけを集めるのか。あれこれAIと試すうちにたどり着いたのは、条件を掛け算する方法でした。
まず「鶏むね肉」というキーワードで検索します。ただしこれだけだと、サラダチキンのような加工品や、ふるさと納税の返礼品まで混ざってきます。そこで検索対象を鶏肉のジャンルに絞り込み、さらに「これが商品名に入っていたら外す」という除外語を重ねます。キーワードで広く集めて、ジャンルで枠をはめて、除外語でふるいにかけます。
番号でかなり絞れていたことを、三段構えの条件でじわじわ近づけていく感覚でした。
「100gあたり」に換算して、やっと比べられます
集めたあとにも問題がありました。2kgのパックと300gのパックでは、価格をそのまま並べても意味がありません。そこで「100gあたり何円か」に換算して並べることにしました。スーパーの精肉コーナーの値札と同じ表示形式です。
ここまでやって、ようやく「安い順に並べる」が成立しました。加工品のときも、サイズ違いは容量あたりの単価に換算して比べていました。生鮮で変わったのは、その基準を1gあたりから100gあたりに変えたこと。生鮮品は、比べる土俵を自分で作るところから始まるようです。
重さの二重カウント、確定できない単価
土俵ができても、パズルは続きました。
たとえば「12kg(2kg×6)」という商品名。人間が読めば総量12kgだと分かりますが、機械的に処理すると「12kgが6個で72kg」と数えてしまい、単価がありえないほど安く出ます。総量と内訳のどちらを採用するか、表記のパターンごとに判定を作りました。
もっと厄介だったのが「1kg/2kgから選択」という商品。表示されている価格がどちらの重さのものか、商品名からは確定できません。単価を計算しようがないので、こういう商品は思い切って除外することにしました。「0.9〜1.1kg」のような幅のある表記は、中間の1kgとして扱います。1つ直すと次の表記パターンが現れて、そのたびに判定を書き足していきました。
同じ「安い順」でも、分野が変わると別のゲーム
出来上がってみれば、画面に出るのはこれまでと同じ「安い順に並んだ表」です。でも、その裏では、商品の集め方も重さの読み方も、加工品のときとはずいぶん違う仕組みが働くことになりました。
「安い順に並べる」という一言は同じでも、商品の分野が変わると難しさが全然違います。バーコードという共通の物差しがある世界と、キーワードと換算と例外処理で物差しを手作りする世界。リクエストひとつで、その両方を見せてもらった気がします。
次はどんな商品のリクエストが来るのでしょう。今度は魚だったりしたら、また別のパズルが待っているのかもしれません。
← 他の制作記を見る | トップ | お問い合わせ