1Atariの商品情報解析エンジンは、どうやって単価を揃えているのか
数字を見つけて割り算するだけでは、正しい単価比較にはなりません。内容量・成分量・摂取量・セット構成を区別し、比較できる商品だけ単価を出す1Atariの考え方を実例で説明します。
Amazonの商品ページには、内容量や個数が「500mL×24本」「60日分×3個」のようにさまざまな形で書かれています。1Atariはこれらを読み取り、共通の単位あたりの単価に揃えて並べています。
この記事では、その途中で何を区別し、どんなときに単価を出さないのかを、実際に見つかった例を使って説明します。
単価比較は、数字を割るだけではない
最も単純な例から始めます。
| 商品の表記 | 計算の流れ |
|---|---|
| 500mL × 24本 | 500mL × 24 = 12L → 価格 ÷ 12L = 1Lあたりの価格 |
ここまでは掛け算と割り算だけです。ただ、商品情報が複雑になると、数字を見つけて割るだけでは誤った単価になります。商品情報には、内容量以外にもいろいろな意味の数字が混ざっているためです。
- 商品そのものの内容量
- 商品数・セット構成
- 使用期間・摂取量
- 成分量
- 付属品や商品説明中の数字
商品情報から「内容量」を読み取る
内容量は、次のような形で書かれています。
- 500mL
- 1.8kg
- 120粒
- 350mL×2個
書かれている場所も商品によって違います。商品名(タイトル)に入っていることもあれば、タイトルには無く、商品ページの特徴(Feature)や、サイズなどの属性情報(property)にだけ書かれていることもあります。1Atariでは、タイトルだけでなく、こうした複数の場所から内容量の情報を探しています。
数字があっても、それが内容量とは限らない
この記事で一番伝えたいのはここです。サプリメントのような商品には、次のような数字が並びます。
| 表記 | 意味 | 内容量として使えるか |
|---|---|---|
| 1粒2000IU | 成分量 | 使えない |
| 1日2粒 | 摂取量 | 使えない |
| 60日分 | 使用期間 | 使えない |
どれも数字と単位が付いていますが、商品の量ではありません。これらを内容量として扱うと、単価は大きく狂います。実際に、「60日分×3個セット」の「3個」が内容量3枚と解釈されて、極端に高い単価が表示された事例がありました。この経験から、日分・成分量・摂取量は内容量として計算に使わないようにしています。
一方、タイトルに「90日分 (90粒)」のように日数と粒数が両方書かれている場合は、粒数を比較の基準にします。日数から粒数を逆算するのではなく、商品情報に書かれている粒数を使います。
セット商品は単純に足せない
セット商品は、内容によって扱いが変わります。
| 表記 | 扱い |
|---|---|
| シャンプー 400mL + トリートメント 400mL | 800mLとして合算しない(比較対象外) |
| シャンプー 400mL × 2個 | 800mLとして計算する |
後者は同じ商品が2個なので、800mLのシャンプーとして単価を出せます。前者は種類の違う商品が1つの価格に入っているため、合計の量でシャンプーの単価を出すことはできません。数字が同じ400mLでも、意味が違います。
単位が違えば、単純比較できない
「400mL + 400g」のように、容量と重さのような次元の違う量が組み合わさった商品も、足し合わせることはできません。1Atariでは、こうした商品をmixed-units(単位混在)として、単価比較の対象から外します。
情報が足りないときは、無理に計算しない
これは1Atariの大事な設計方針です。例えば「60日分×3個」とだけ書かれている商品では、1個の内容が何粒なのか分かりません。「60日分だから60粒だろう」と推測すれば数字は出せますが、根拠のない数字になります。
そのため1Atariでは、比較の根拠を確定できない商品には、単価を無理に出しません。商品ページから内容量が確認できた商品だけを、比較の対象にしています。
複数の情報源を照合する
内容量の候補が複数の場所(title、property、Feature、同じ商品の別サイズなど)から見つかることがあります。1Atariではそれらを照合し、次のような状態で判断しています。
| 状態 | 意味 |
|---|---|
| high | 複数の情報源が一致している |
| pending | 情報源が1つだけなど、確認材料がまだ少ない |
| conflict | 情報源同士で内容量が食い違っている |
| no-source | 内容量の情報源が見つからない |
conflictやno-sourceの商品は、単価の比較対象にしません。
単価を計算した後もチェックする
内容量を読み取って計算して終わりではありません。計算後にも、次の点を確認しています。
- カテゴリーの比較単位と合っているか(飲料なら1Lあたり、など)
- 明らかに異常な値になっていないか
- 比較対象として妥当か
実際にあった例が、「伊賀ノ天然水 強炭酸水 500ml 24入リ」です。「24入リ」の24が掛け算されず、500mLとして計算されたため、単価が本来の24倍になり、範囲外の値として単価が出なくなっていました。500mL×24本=12Lと読めていれば起きない誤りです。こうした異常は、計算後のチェックで気づくきっかけになります。
実データからエンジンを改善する
1Atariでは、実際の商品で見つかった問題を次の流れで改善しています。
- 実際の商品で問題を見つける
- ルールを改善する
- その商品を評価ケースに追加する
- 再発を防ぐ
評価ケースは、最初は34件でした。実データで見つかった問題を追加するたびに38件、45件と増え、現在は68件です。評価は現在68/68件で期待どおりの結果になっています。ただし、これは性能の証明ではありません。開発中に見つかった問題を回帰テストとして固定し、直したはずの問題が再発しないようにするための記録です。
1Atariの商品情報解析エンジン
1Atariでは、商品ごとに異なる容量・数量・単位などの商品情報を解析し、比較可能な単価に揃えるための独自の商品情報解析エンジンを開発・運用しています。機械学習のような仕組みではなく、実際の商品で見つかった書き方をルールとして積み重ね、評価ケースで確かめながら育てているものです。
比較できる根拠があるときだけ単価を出す。この方針で作っています。表示価格だけでは比べにくい理由は「なぜスーパーでは同じ商品でも容量が違う?」、Amazonの単価表示との違いは「Amazonにも単価表示があるのに、なぜ商品比較は難しい?」、単価比較の見方の整理は「単価比較には「3つの世代」がある」で説明しています。実際の比較結果は、ミネラルウォーターなどの各カテゴリーで確認できます。
1Atariでは、商品を検索すると内容量から計算した単価を確認できます。
商品を検索する関連する単価比較:ミネラルウォーター価格比較